|
|
 |
Ответов
(1 - 12)
|
Nov 23 2009, 09:06
|
Местный
  
Группа: Свой
Сообщений: 327
Регистрация: 12-04-05
Из: Новосибирск
Пользователь №: 4 057

|
Цитата(Vladimir_J @ Nov 23 2009, 14:46)  Можно ли при помощи программы (расположенной в Application Flash Section) зашитой в микроконтроллер, пере прошить boot Flash section (заменить существующий boot на другой). Контролер: ATMEGA2560. Нет, конечно. Но Boot Flash Section может переписывать саму себя. Только не переписывай страницу из которой в данный момент исполняется код.
|
|
|
|
|
Nov 23 2009, 11:57
|

Участник

Группа: Свой
Сообщений: 74
Регистрация: 9-01-07
Из: Украина
Пользователь №: 24 228

|
Цитата(mempfis_ @ Nov 23 2009, 13:48)  Озвучте зачем нужно такое извращение? Врятли можно это сделать не поругавшись с линкером. Разве что натыкать в бутлоадере команд ICALL с указанием адресов ваших подпрограмм в области application. Плюс бутлоадер потеряет универсальность - ему придётся обходить участки памяти с вашими подпрограммами а сама программа для application-секции должна будет учитывать возможное расположение функций вызываемых из бутлоадера. У вас есть желание возится с линкером и во всех проектах где будет использоваться такой бутлоадер учитывать эти особенности? Извращение, если к примеру не фатит места в boot области  А саму этот кусок кода разместить в самом низу application Flash. С Уважением, Владимир
|
|
|
|
|
Nov 23 2009, 13:21
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(Vladimir_J @ Nov 23 2009, 10:46)  пере прошить boot Flash section потеряете безопасность вашего софта и живучесть устройства, т.к. 1. нельзя будет залочить boot область. 2. сбой во время обновления загрузчика приведет к тому, что девайс надо будет слать вам по почте на ремонт.. Цитата(Vladimir_J @ Nov 23 2009, 13:57)  Извращение, если к примеру не фатит места в boot области  А вы разделите бутлоадер на части, первая часть - та которая ведает SPM умеет читать/писать/верифицировать флеш, ее обязательно держите в boot области. вторая часть - шифрование, тут закрытый ключик надо обязательно хранить в boot области, и локами LPM из app запрещать иначе бестолку все. Ну а коль ключик из application нельзя читать, то и код работающий с ним, тоже должен лежать в boot области. А все остальное - поддержка разных интерфейсов / протокол общения с программаторами, обновляющим ПО, можно хранить в app. Очень желательно в boot области оставить поддержку какого-нить одного самого простого интерфейса на случай когда слетает все...
|
|
|
|
|
Nov 23 2009, 16:44
|
Участник

Группа: Участник
Сообщений: 40
Регистрация: 24-06-09
Из: Беларусь
Пользователь №: 50 607

|
Цитата(V_G @ Nov 23 2009, 17:22)  Перечитал даташит на xmegу, там пишут, что во время программирования бутлоадер не может читать коды из application section Во время самого процесса программирования. Как только запись завершена - бутлодырь может читать все A Boot Loader (Application code located in the Boot Loader Section of the Flash) can both read and write the Flash Program Memory, User Signature Row and EEPROM, and write the Lock Bits to a more secure setting. Application code in both the Application Section can read from the Flash, User Signature Row, Calibration Row and Fuses, and read and write the EEPROM.
|
|
|
|
|
Nov 23 2009, 23:50
|

Профессионал
    
Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955

|
Цитата(niXto @ Nov 24 2009, 02:44)  Во время самого процесса программирования. Как только запись завершена - бутлодырь может читать все Это естественно. Просто если весь код в бут-секции, вы просто после SPM выходите в основной цикл и можете общаться по интерфейсу и выполнять др. команды, не связанные с SPM,LPM, а если кусок - в application, то лучше после SPM ждать в цикле сигнала готовности. Хотя и не напряжно, согласен. Тем не менее перепрограммировать бутлоадер или располагать часть его когда в application также считаю вредным. Если не хватает места, оптимизируйте, перепишите на ассемблере и т.п. Хотя собсно в бутлоадере ничего сложного нет, все должно поместиться. Только если крутые алгоритмы шифрования впихивать... Переходите на xmegу, там DES, AES аппаратные, много кода не надо...
|
|
|
|
|
Nov 24 2009, 06:51
|
Местный
  
Группа: Свой
Сообщений: 327
Регистрация: 12-04-05
Из: Новосибирск
Пользователь №: 4 057

|
Цитата(V_G @ Nov 23 2009, 20:22)  Перечитал даташит на xmegу, там пишут, что во время программирования бутлоадер не может читать коды из application section: Так у автора темы ATMEGA2560 вроде. У меня на меге128 бутлоадер не влезал в boot section, пришлось часть процедур разместить в Application Section. Часть Application Section залочить действительно не получится, но можно программно в бутлоадере запретить переписывать страницы в App Section, в которых расположены процедуры бутлоадера.
|
|
|
|
|
Nov 24 2009, 08:59
|

Участник

Группа: Свой
Сообщений: 74
Регистрация: 9-01-07
Из: Украина
Пользователь №: 24 228

|
Огромное спасибо Всем тем кто ответил  Придумал как решать данную проблему, по совету defunct, так и поступлю: основной алгоритм будет располагаться в boot области, а все остальные в application зоне. С Уважением, Владимир  p.s. Да прибудет с Вами всеми - УДАЧА
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|