Есть задача под М48 и нужно при этом иметь возможность обновления программы.
Посмотрел документ от атмела (AVR112: TWI Bootloader for devices without boot section).
Реализовано так:
1. Переход на бут происходит с адреса 0 (раздельных областей для программы и загрузчика нет).
2. Выход из загрузчика:
Код
void (*FuncPtr) (void) = (void (*)(void)) ((LAST_INTVECT_ADDRESS + 2) / 2); // Set up function pointer to address after last interrupt vector.
FuncPtr ();
FuncPtr ();
То есть точка входа для основной программы - это первый адрес после таблицы векторов. Но можно ли быть уверенным что это всегда так (для IAR)?
И ещё: насколько универсальны фунции самопрограммирования использованные в appn (ProcessPageErase, ProcessPageUpdate, Erase_One_Page)?Будут ли они работать на M8, M88? Кто-нибудь ими пользовался?