|
Самообновление bootloader AVR |
|
|
|
Feb 3 2011, 10:54
|
Частый гость
 
Группа: Участник
Сообщений: 172
Регистрация: 9-10-06
Пользователь №: 21 119

|
Цитата(dimka76 @ Feb 3 2011, 14:16)  1. Можно новую копию загрузчика зашить в область приложения, потом передать управление этой новой версии прошивки и она скопирует сама себя в область загрузчика.
2. Либо иметь область загрузчика размером (выраженном в страницах) таким, чтобы в ней помещалось два загрузчика. Далее алгоритм такой же как и в первом случае, только все действия происходят в области загрузчика. 1. В AVR109 (и в даташитах) сказано, что SPM команды могут выполняться только из области загрузчика 2. А как 2 загрузчика будут использовать общую область векторов прерываний, которая фьюзами устанавливается на начало области загрузчика? К тому же не всегда можно позволить выделить двойную область под загрузчик, зачастую его размер превышает половину максимального размера области загрузчика.
|
|
|
|
|
Feb 3 2011, 11:25
|
Частый гость
 
Группа: Участник
Сообщений: 172
Регистрация: 9-10-06
Пользователь №: 21 119

|
Цитата(_Pasha @ Feb 3 2011, 15:06)  это лок-фузами делается, там разница в том, что это NRWW секция и проц останавливается на время записи страницы. Если я правильно понял, то имеется в виду, что функция записи страницы должна находиться в NRWW секции основной программы. Но это неприменимо если размер загрузчика превышает половину максимального размера области загрузчика.
|
|
|
|
|
Feb 3 2011, 11:53
|
Частый гость
 
Группа: Участник
Сообщений: 172
Регистрация: 9-10-06
Пользователь №: 21 119

|
Цитата(_Pasha @ Feb 3 2011, 15:31)  Не обязательно. Из AVR109: "The SPM instruction can only be executed from the Boot Loader section."
|
|
|
|
|
Feb 3 2011, 13:49
|
Частый гость
 
Группа: Участник
Сообщений: 172
Регистрация: 9-10-06
Пользователь №: 21 119

|
Цитата(_Pasha @ Feb 3 2011, 17:36)  Значит, путь один - только макс. размер загрузчика и поддержка его двух копий. А как же таблица векторов прерываний - ведь она будет в первом бутлодере.
Сообщение отредактировал MVJ - Feb 3 2011, 13:57
|
|
|
|
|
Feb 4 2011, 06:34
|

developer
   
Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032

|
Цитата(MVJ @ Feb 3 2011, 14:53)  Из AVR109: "The SPM instruction can only be executed from the Boot Loader section." Действительно непонятно. Ведь например в mega48 или tiny2313 вообще только application section, т.е. секции загрузчика нет вообще. Но тем не менее есть поддержка самопрограммирования, т.е. имеет место быть команда SPM. Цитата(MVJ) А как же таблица векторов прерываний - ведь она будет в первом бутлодере. А вы не используйте прерывания.
--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|