реклама на сайте
подробности

 
 
> Самообновление bootloader AVR
MVJ
сообщение Feb 3 2011, 09:11
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 172
Регистрация: 9-10-06
Пользователь №: 21 119



В даташитах и в AVR109 упоминается, что есть возможность для загрузчика прошивать самого себя, но детально принцип не описан. Если загрузчик занимает более одной страницы, то, очевидно, уже после прошивки первой страницы целостность программы нарушится (могут поменяться распределение памяти, адреса вызова функций), и она не будет корректно работать. Где бы что почитать по этому вопросу?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
dimka76
сообщение Feb 3 2011, 10:16
Сообщение #2


developer
****

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



Т.е. вы хотите, чтобы загрузчик обновлял сам себя.

1. Можно новую копию загрузчика зашить в область приложения, потом передать управление этой новой версии прошивки и она скопирует сама себя в область загрузчика.

2. Либо иметь область загрузчика размером (выраженном в страницах) таким, чтобы в ней помещалось два загрузчика. Далее алгоритм такой же как и в первом случае, только все действия происходят в области загрузчика.


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post
MVJ
сообщение Feb 3 2011, 10:54
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 172
Регистрация: 9-10-06
Пользователь №: 21 119



Цитата(dimka76 @ Feb 3 2011, 14:16) *
1. Можно новую копию загрузчика зашить в область приложения, потом передать управление этой новой версии прошивки и она скопирует сама себя в область загрузчика.

2. Либо иметь область загрузчика размером (выраженном в страницах) таким, чтобы в ней помещалось два загрузчика. Далее алгоритм такой же как и в первом случае, только все действия происходят в области загрузчика.


1. В AVR109 (и в даташитах) сказано, что SPM команды могут выполняться только из области загрузчика
2. А как 2 загрузчика будут использовать общую область векторов прерываний, которая фьюзами устанавливается на начало области загрузчика? К тому же не всегда можно позволить выделить двойную область под загрузчик, зачастую его размер превышает половину максимального размера области загрузчика.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 3 2011, 11:06
Сообщение #4


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(MVJ @ Feb 3 2011, 13:54) *
1. В AVR109 (и в даташитах) сказано, что SPM команды могут выполняться только из области загрузчика

это лок-фузами делается, там разница в том, что это NRWW секция и проц останавливается на время записи страницы.
Go to the top of the page
 
+Quote Post
MVJ
сообщение Feb 3 2011, 11:25
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 172
Регистрация: 9-10-06
Пользователь №: 21 119



Цитата(_Pasha @ Feb 3 2011, 15:06) *
это лок-фузами делается, там разница в том, что это NRWW секция и проц останавливается на время записи страницы.

Если я правильно понял, то имеется в виду, что функция записи страницы должна находиться в NRWW секции основной программы. Но это неприменимо если размер загрузчика превышает половину максимального размера области загрузчика.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 3 2011, 11:31
Сообщение #6


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(MVJ @ Feb 3 2011, 14:25) *
Если я правильно понял, то имеется в виду, что функция записи страницы должна находиться в NRWW секции основной программы.

Не обязательно. Просто обновление NRWW секции тянет за собой невозможность установки блокировки чтения и записи области загрузчика. Если в локере нет необходимости, проблем не существует.
Go to the top of the page
 
+Quote Post
MVJ
сообщение Feb 3 2011, 11:53
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 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."
Go to the top of the page
 
+Quote Post
dimka76
сообщение Feb 4 2011, 06:34
Сообщение #8


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)
А как же таблица векторов прерываний - ведь она будет в первом бутлодере.


А вы не используйте прерывания.


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 4 2011, 07:50
Сообщение #9


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(dimka76 @ Feb 4 2011, 10:34) *
Действительно непонятно.
Ведь например в mega48 или tiny2313 вообще только application section, т.е. секции загрузчика нет вообще. Но тем не менее есть поддержка самопрограммирования, т.е. имеет место быть команда SPM.

А там, где есть загрузчик, команда не выполняется. Оно во всех ДШ описано буквально одним предложением. С беглого просмотра не найдешь.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- MVJ   Самообновление bootloader AVR   Feb 3 2011, 09:11
|- - _Pasha   Цитата(MVJ @ Feb 3 2011, 14:53) Из AVR109...   Feb 3 2011, 12:15
||- - Сергей Борщ   QUOTE (_Pasha @ Feb 3 2011, 14:15) Непоня...   Feb 3 2011, 13:01
||- - _Pasha   Цитата(Сергей Борщ @ Feb 3 2011, 16:01) В...   Feb 3 2011, 13:36
||- - MVJ   Цитата(_Pasha @ Feb 3 2011, 17:36) Значит...   Feb 3 2011, 13:49
||- - _Pasha   Цитата(MVJ @ Feb 3 2011, 16:49) А как же ...   Feb 3 2011, 14:09
||- - Палыч   Непонятно: зачем нужно обновлять bootloader? Ну, п...   Feb 3 2011, 14:21
||- - MVJ   Цитата(Палыч @ Feb 3 2011, 18:21) ..сдела...   Feb 4 2011, 10:52
||- - Палыч   Цитата(MVJ @ Feb 4 2011, 13:52) ...то пол...   Feb 4 2011, 11:21
|||- - MVJ   Цитата(Палыч @ Feb 4 2011, 15:21) Если ра...   Feb 4 2011, 12:23
||- - mempfis_   Цитата(MVJ @ Feb 4 2011, 14:52) Действите...   Mar 23 2011, 11:04
||- - Палыч   Цитата(mempfis_ @ Mar 23 2011, 14:04) Поэ...   Mar 23 2011, 12:15
|- - dimka76   Цитата(_Pasha @ Feb 4 2011, 10:50) А там,...   Feb 4 2011, 08:01
|- - Палыч   Цитата(_Pasha @ Feb 4 2011, 10:50) А там,...   Feb 4 2011, 08:46
|- - _Pasha   Цитата(Палыч @ Feb 4 2011, 12:46) Если хо...   Feb 4 2011, 09:03
- - kovigor   Цитата(MVJ @ Feb 3 2011, 12:11) В даташит...   Feb 4 2011, 10:01
|- - Палыч   Цитата(kovigor @ Feb 4 2011, 13:01) Загру...   Feb 4 2011, 10:13
|- - delamoure   Цитата(Палыч @ Feb 4 2011, 12:13) Я тоже ...   Feb 14 2011, 10:38
- - _Pasha   Я тут подумал,как оно должно выглядеть. 1. Имеется...   Feb 4 2011, 16:03
- - BigallS   Есть хорошая статья по этой теме http://easyelectr...   Mar 23 2011, 10:43


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 17:26
Рейтинг@Mail.ru


Страница сгенерированна за 0.01514 секунд с 7
ELECTRONIX ©2004-2016