Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: LPC1768 перепрошивка из-под себя, с внешней EEPROM
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Tronix286
Здравствуйте,

Нет ли готового решения бутлодера, который при старте смотрит флажок во внешней spi flash, и если он установлен, перепрошивает себя, считывая прошивку из той же spi flash?
Возможно просто велосипедю, да к тому же еще и не работает. А именно, при передаче управления в основную прошивку она не стартует. Замотался sad.gif
Сергей Борщ
У меня готового нет. Но если вы покажете свой код передачи управления - совместными усилиями можем найти ошибку.
jcxz
Если перепрошивает именно себя, то передача управления на новую прошивку для LPC1768:
Код
  __DSB();
  WDT.MOD = B0 | B1;
  WDT.FEED = 0xAA;
  WDT.FEED = 0x55;
  WDT.FEED = 0xAA;
  WDT.FEED = 0xAA;
  while (1);
Velund
Ну я бы не сказал, что вариант перешивки "себя" так уж безопасен.

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

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

Несколько тысяч изделий "в поле" больше года, пока проблем не зафиксировано.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.