- posted
20 years ago
ATMega8
- Vote on answer
- posted
20 years ago
- Vote on answer
- posted
20 years ago
- Vote on answer
- posted
20 years ago
- Vote on answer
- posted
20 years ago
Привет, 26 января 2004 г., 17:49:41, ты писал(а):
VV> Есть тиражное изделие на ATMega323L (десятки тысяч штук). В нем есть VV> bootloader. Работает в автомобильных условиях и при сильных наводках VV> от ИБП. Есть единичные случаи самопроизвольного потирания флеша VV> бутлодером.
Может, просто баг в программе и управление "вылетает" за пределы application section и попадает в boot ? Могу предложить помещать код, подобный нижеприведенному, в конец aps, прямо перед бутом. Конечно, отлавливает не все, но хоть позволяет как-то, в меру возможностей, оградиться от хаотического исполнения кода.
mOS_limits_handler: nop ; nop ; cli ; ldi R16, mOS_E_EXEC_BEYOND_LIMITS call mOS_ExceptionProc ; rjmp mOS_limits_handler ;
Так же имеет смысл в стартапе класть в стек возвратов адрес процедуры обработки некорректного опустошения стека. Придумать аналогичных ловушек можно еще довольно много.
Всего хорошего.
- Vote on answer
- posted
20 years ago
- Vote on answer
- posted
20 years ago
Привет, 27 января 2004 г., 14:43:19, ты писал(а):
VV> Бесполезно. Если управление передастся на bootloader, то просто VV> сработает VV> reset по таймауту. Hужно защищаться именно от случайного перехода на VV> подпрограмму стирания или записи во flash. AK>> отлавливает не все, но хоть позволяет как-то, в меру возможностей, AK>> оградиться от хаотического исполнения кода. VV> Там вполне достаточно всяких параноидальных мер. Явление сугубо VV> единичное, VV> с вероятностью ~1/10000 за несколько месяцев.
Кстати, а откуда убежденность в том, что именно бутлоадер портит флэш ? У нас за 3 года использования AVR два раза слетала прошивка на mega163 по неизвестной причине. Причем характер повреждений так и остался тайной, т.к. была установлена защита от считывания.
Всего хорошего.
- Vote on answer
- posted
20 years ago
- Vote on answer
- posted
20 years ago