Цитата(A. Fig Lee @ Dec 19 2013, 02:37)

У нас на Кортексе М3 и сам бутлоадер можно апдейтить.
При провале питания, во время такого обновления, потеряете своё устройство.
Цитата(kolobok0 @ Dec 19 2013, 03:14)

сейчас для себя решил следующее:
...
Во всех наших устройствах на М3 мы давно так и делаем:
1. ПО разделено на 2 независимых: бутлоадер и рабочее. Обновляется только рабочее.
2. Загрузка нового ПО во флешь (внутреннюю флешь программ в нерабочую область или в SPI флешь) в рабочем ПО по рабочему протоколу.
3. По завершении загрузки - выставление флага и ресет.
4. В бутлоадере: проверка наличия флага, проверка валидности ПО во флешь. Если валидно - обновление ПО и снятие флага после.
5. Переход на рабочее ПО из бутлоадера.
Бутлоадер и рабочее ПО никак не связаны - при переходе на рабочее ПО, бутлоадер переходит на начальный (стартовый) адрес.
Проблем с прерываниями в бутлоадере нет если правильно управлять таблицей прерывания и NVIC и инитить всю периферию с нуля.