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

 
 
> STM32: загрузка загрузчика, как обновить сам бутлоадер без программатора
Ruslan1
сообщение Jun 6 2016, 22:16
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



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

как это делается красиво? Есть бутлоадер и основная программа. Обновляем основную программу через файл- если бутлоадер видит файл на диске, то программирует камень согласно содержимомму данного файла (кроме области бутлоадера).
Хочется точно так же обновлять сам загрузчик, из файла.
Конкретно нужно для STM32F4, но тут вряд ли что-то особенное, отличное от других.

Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Jun 6 2016, 22:50
Сообщение #2


Гуру
******

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



Добавьте еще один "нижний" загрузчик. Работать будет так:
1. "Верхний" загрузчик записывает свое обновление в отдельную страницу памяти и вызывает сброс
2. "Нижний" проверяет CRC и версии образов "верхнего", затем копирует новый образ в рабочую область и передает ему управление
"Нижний" загрузчик пишется один раз и никогда не обновляется.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jun 7 2016, 03:04
Сообщение #3


Гуру
******

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



Цитата(aaarrr @ Jun 7 2016, 04:50) *
"Нижний" загрузчик пишется один раз и никогда не обновляется.

Можно и без этого ограничения обойтись.
Очевидно имеется в виду, что в составе устройства имеется некое устройство хранения (УХ) (файловая система или просто например SPI-флешка).
Основной бутлоадер (ОБ) сканирует УХ:
1. Если обнаруживает новое рабочее ПО, записывает его в область рабочего ПО флешь программ.
2. Если обнаруживает новый ОБ, то ищет на этом же УХ вспомогательный бутлоадер (ВБ) (скомпилённый для выполнения в области рабочего ПО флешь программ). Записывает ВБ в область рабочего ПО флешь программ. Передаёт ему управление. ВБ сканирует УХ, обнаружив новый ОБ, записывает его в область ОБ флешь программ и передаёт ему управление.
Единственный минус здесь - такое обновление ОБ небезопасно.
Go to the top of the page
 
+Quote Post
Ruslan1
сообщение Jun 7 2016, 10:24
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Спасибо, буду думать. несрочно, так что еще и потестирую.

Да, в системе есть SD-карточка, на которую файл прошивки попадает разными путями. Файл уже содержит необходимые чексуммы, то есть его валидность проверяется.
И в системе есть резервное питание, то есть вероятность выключения питания во время такого обновления минимальна.

Но таки да, процесс небезопасный, и хочется уменьшить вероятность сбоя.

Я еще думал про второй (вспомогательный) бутлоадер, который просто является частью основной программы и используется только для обновления основного бутлоадера.

Задача защиты от чтения не стоит, это не ширпотреб (пока что sm.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Ruslan1   STM32: загрузка загрузчика   Jun 6 2016, 22:16
|- - Сергей Борщ   QUOTE (jcxz @ Jun 7 2016, 06:04) Можно и ...   Jun 7 2016, 06:03
- - menzoda   Загрузчик может и сам себя обновить. Правда, возра...   Jun 7 2016, 13:35
|- - Ruslan1   Цитата(menzoda @ Jun 7 2016, 16:35) Загру...   Jun 7 2016, 17:41
|- - jcxz   Цитата(Ruslan1 @ Jun 7 2016, 23:41) И нуж...   Jun 8 2016, 04:18
|- - Kabdim   Цитата(jcxz @ Jun 8 2016, 07:18) Какой см...   Jun 8 2016, 07:29
|- - jcxz   Цитата(Kabdim @ Jun 8 2016, 13:29) Копиро...   Jun 8 2016, 08:09
- - Kabdim   Безопасный вариант уже был предложен - трёхуровнев...   Jun 8 2016, 03:16
- - ViKo   Поскольку функция загрузчика очевидна и однозначна...   Jun 8 2016, 05:43
|- - Сергей Борщ   QUOTE (ViKo @ Jun 8 2016, 08:43) Поскольк...   Jun 8 2016, 06:16
- - Kabdim   Способ загрузить прошивку откуда-то в мк остался и...   Jun 8 2016, 10:01
|- - jcxz   Цитата(Kabdim @ Jun 8 2016, 16:01) Способ...   Jun 8 2016, 12:56
- - Kabdim   Везет вам, у вас флеша хватает на 2 копии основной...   Jun 8 2016, 14:23
- - jcxz   Цитата(Kabdim @ Jun 8 2016, 20:23) Везет ...   Jun 9 2016, 02:45


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

 


RSS Текстовая версия Сейчас: 22nd August 2025 - 22:32
Рейтинг@Mail.ru


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