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

 
 
 
Reply to this topicStart new topic
> LPC1768 перепрошивка из-под себя, с внешней EEPROM, Подобие бутлодера.
Tronix286
сообщение Nov 27 2014, 12:53
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 25-10-14
Пользователь №: 83 341



Здравствуйте,

Нет ли готового решения бутлодера, который при старте смотрит флажок во внешней spi flash, и если он установлен, перепрошивает себя, считывая прошивку из той же spi flash?
Возможно просто велосипедю, да к тому же еще и не работает. А именно, при передаче управления в основную прошивку она не стартует. Замотался sad.gif
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 27 2014, 13:59
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



У меня готового нет. Но если вы покажете свой код передачи управления - совместными усилиями можем найти ошибку.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
jcxz
сообщение Nov 27 2014, 15:05
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Если перепрошивает именно себя, то передача управления на новую прошивку для LPC1768:
Код
  __DSB();
  WDT.MOD = B0 | B1;
  WDT.FEED = 0xAA;
  WDT.FEED = 0x55;
  WDT.FEED = 0xAA;
  WDT.FEED = 0xAA;
  while (1);
Go to the top of the page
 
+Quote Post
Velund
сообщение Nov 29 2014, 13:20
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 693
Регистрация: 19-11-04
Пользователь №: 1 177



Ну я бы не сказал, что вариант перешивки "себя" так уж безопасен.

У меня сделан бутлоадер, который вписан в первые 32к флеша (меньше с декомпрессором/декриптовщиком прошивки из сериального флеша, минимальной диагностикой железа и сервисным меню с загрузкой по xmodem не получилось). Он стартует, заданное время ждет с последовательного порта последовательность запроса входа в локальный режим, потом проверяет контрольные суммы основной прошивки, если порушены - смотрит нет ли готового загрузочного пакета в сериальном флеше (и прошивает его если есть), и если уж совсем плохо - выдает индикацию ошибки и ждет инициации локального режима уже до упора. Если прошивка во флеше есть - двигает векторы прерываний на начало области application и переходит по ее ресетному вектору.

Если прошивке надо удаленно обновиться, она грузит пакет в serial flash, ставит флаг в BBRAM (у часов) и передает управление бутлоадеру. Флаг снимается бутлоадером только в случае успешной прошивки или после 5 неудачных попыток (счетчик тоже в энергонезависимой памяти).

Несколько тысяч изделий "в поле" больше года, пока проблем не зафиксировано.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 21:00
Рейтинг@Mail.ru


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