Понадобилось, на случай сбоя, сохранить данные для следующего запуска программы. Показалось, что все просто - объявить переменную в секции noinit и проверять ее значение после сброса. Но ни тут то было, в переменной все что угодно, только не то, что я туда записал. Проверялось так:
Код
uint8_t old_data __attribute__ ((section (".noinit")));
int main(void)
{
if(old_data==0xAB) LED_ON;
old_data=0xAB;
while(1)
{
}
}
Тут не все, не описан макрос вкл. светодиод и нет инициализации порта, которая выполняется до проверки переменной. В общем подаю питание, замыкаю ресет на землю... светодиод не горит
Может я в корне ошибаюсь и эта методика не подходит для сохранения данных?
WinAvr20060421.