Виснет Arduino Nano V3.0 при 88% заполнения скетча.
- Войдите на сайт для отправки комментариев
Вс, 13/07/2014 - 15:34
Доброго времени суток.
Посдкажите если кто знает из-за чего виснет выпонение скетча если размер кода от 88% и выше ?
причем например виснет если добавляешь строку в статический массив строк объявленный на глобал скопе!
удаляешь - начинает работать.
дебаггера у ардуино IDE нету , поэтому только одни предположения - что нехватает стека, но как это подтверить или опровергнуть без дебаггера ?.
и еще вопросик - переменные статические которые создаются на Global Scope у компилятора ардуино где память отжирают в стеке или для них есть отдельная область?
Заранее спасибо.
У атмела нет физического разделения стека и памяти. К любой ячейке стека можно обратится как к ячейке памяти. Компилятор не контролирует глубину стека или, например, выход за пределы массива. Мне ваша ситуация скорее напоминает второе. Кстати глубину заполнения стека можно прочитать из регистров процессора. Не думаю, что у вас имеют место жесткие рекурсии, другим сособом вряд ли получится переполнить стек. Попробуйте все же найти выход за пределы массива.
Оптимизировать код надо на уровне ASM - без оптимизации всегда должен быть запас 30...40% - потому что утечки памяти могут быть где угодно. Вообще у Proteus вроде есть эмуляция ардуино - вот и смотрите на эмуляторах где у вас дыры.