Цитата(Палыч @ Feb 3 2011, 18:21)

..сделать это "дешевле" в два приёма.
1. Загружается в Application Section программа загрузки bootloader'а.
2. Эта программа зашивает уже сам загрузчик.
Проблема с SPM - надуманная: достаточно в конце области BLS иметь код - типа функции Do_spm из примеров загрузчиков от Atmel. При необходимости программа из Application Section к нему обращается по заранее известному адресу...
Поскольку перед записью страницы ее нужно очистить, то получается, что страницу, содержащую Do_spm переписать нельзя. Тогда прошивка МК должна содержать 3 секции: приложение, загрузчик и секция с Do_spm(в концеNRWW). Первые две перекрестно обновляются, а 3-я обновлению не подлежит.
Цитата(Палыч @ Feb 4 2011, 14:13)

Я тоже был удивлён необходимостью обновления загрузчика, но потом, в оправдание автора топика, в голову пришла мысль - для чего это может быть использовано. Например, устройство имеет несколько интерфейсов для общения с "внешним миром"
Действительно МК имеет 2 интерфеса (СОМ-порта) для общения с "внешним миром": на однои RS485, на другом GSM-модем, который получает обновление для МК и хранит его в своей памяти. С обновлением через RS485 проблем нет, а вот при обновлении с GSM-модема загрузчик должен кроме всего прочего поддерживать минимальную функциональность модема. Здесь есть некоторые ньюансы, которые, возможно будет необходимость подправить. Отсюда и такой большой размер загрузчика (~3k) и желание иметь возможность его обновлять.