Виснет Arduino Nano V3.0 при 88% заполнения скетча.

goodvin
Offline
Зарегистрирован: 13.07.2014

Доброго времени суток.

Посдкажите если кто знает из-за чего виснет выпонение скетча если размер кода от 88% и выше ?

причем например виснет если добавляешь строку в статический массив строк объявленный на глобал скопе!

удаляешь  - начинает работать.

дебаггера у ардуино IDE нету , поэтому только одни предположения - что нехватает стека, но как это подтверить или опровергнуть  без дебаггера ?.

и еще вопросик - переменные статические которые создаются на Global Scope у компилятора ардуино где память отжирают в стеке или для них есть отдельная область?

Заранее спасибо.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

У атмела нет физического разделения стека и памяти. К любой ячейке стека можно обратится как к ячейке памяти. Компилятор не контролирует глубину стека или, например, выход за пределы массива. Мне ваша ситуация скорее напоминает второе. Кстати глубину заполнения стека можно прочитать из регистров процессора. Не думаю, что у вас имеют место жесткие рекурсии, другим сособом вряд ли получится переполнить стек. Попробуйте все же найти выход за пределы массива.

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

Оптимизировать код надо на уровне ASM - без оптимизации всегда должен быть запас 30...40% - потому что утечки памяти могут быть где угодно. Вообще у Proteus вроде есть эмуляция ардуино - вот и смотрите на эмуляторах где у вас дыры.