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

 
 
> 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
Ответов
menzoda
сообщение Jun 7 2016, 13:35
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 13-09-12
Пользователь №: 73 530



Загрузчик может и сам себя обновить. Правда, возрастает риск, ведь при неудачном обновлении загрузчик сам себя и поломает же. Однако, у нас обновление загрузчика это чисто технологическая задача, не для конечных пользователей, поэтому мы спокойно используем именно этот вариант. Если даже что-то пойдет не так - то рядом будут специалисты, которые все восстановят. Пока сбоев не было.
Go to the top of the page
 
+Quote Post
Ruslan1
сообщение Jun 7 2016, 17:41
Сообщение #3


Гуру
******

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



Цитата(menzoda @ Jun 7 2016, 16:35) *
Загрузчик может и сам себя обновить. Правда, возрастает риск, ведь при неудачном обновлении загрузчик сам себя и поломает же. Однако, у нас обновление загрузчика это чисто технологическая задача, не для конечных пользователей, поэтому мы спокойно используем именно этот вариант. Если даже что-то пойдет не так - то рядом будут специалисты, которые все восстановят. Пока сбоев не было.

Сам себя - это как? перемещается, например, в RAM (или, как писали выше, в зарезервированную область флэш), и исполняется отсюда, ну и пишет все что хочет в област загрузчика ?

Сам себя обновить- несколько стремно, именно для удаленного обновления задумывается. Локально можно и программатор подключить (хотя и не так удабно).
И нужно еще посмотреть почему такое "самопереписывание" считается менее надежным- не совсем понятно, какие дополнительно факторы действуют, по сравнению с вариантом "два загрузчика".

Ну и, по-моему, абсолютно безопасного варианта не бывает, я за него и не борюсь.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jun 8 2016, 04:18
Сообщение #4


Гуру
******

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



Цитата(Ruslan1 @ Jun 7 2016, 23:41) *
И нужно еще посмотреть почему такое "самопереписывание" считается менее надежным- не совсем понятно, какие дополнительно факторы действуют, по сравнению с вариантом "два загрузчика".
Ну и, по-моему, абсолютно безопасного варианта не бывает, я за него и не борюсь.

"самопереписывание" ненадёжно, потому что при этом по любому есть момент времени когда во флеш нет исправного загрузчика. А МК всегда стартует с одного и того же адреса.
Абсолютно безопасный вариант - необновляемый загрузчик. При этом основное ПО будет обновляться абсолютно безопасно. Мы у себя в изделиях именно такой вариант и применяем, так как нам необходимо обновление ПО на объектах заказчика, без возможности демонтажа или подключения отладчика "на горячую".

Цитата(Kabdim @ Jun 8 2016, 09:16) *
Безопасный вариант уже был предложен - трёхуровневый(минимальный бутлоадер, полноценный, основная прошивка), но видимо всем лениво его делать ради фикса редкого шанса испортить загрузчиком сам загрузчик. Для себя я бы сделал, но вот лишней страницы во флеше уже нет.

Какой смысл в этой 3х-уровневости? Всё равно остаётся необновляемый загрузчик. Зачем нужна ещё одна прослойка между первоначальным загрузчиком и основным ПО? Чтобы создать себе дополнительную работу?
Достаточно одного необновляемого загрузчика и основного ПО.
Go to the top of the page
 
+Quote Post
Kabdim
сообщение Jun 8 2016, 07:29
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842



Цитата(jcxz @ Jun 8 2016, 07:18) *
Какой смысл в этой 3х-уровневости? Всё равно остаётся необновляемый загрузчик. Зачем нужна ещё одна прослойка между первоначальным загрузчиком и основным ПО? Чтобы создать себе дополнительную работу?
Достаточно одного необновляемого загрузчика и основного ПО.

Имхо довольно очевидный смысл. Копирование из флеша во флеш, проверка crc/sign, установка новых векторов прерываний и переход можно сделать без ошибок раз и навсегда. Обложить тестами с близким к 100% покрытию. И забыть, а части более подверженные ошибкам/обновлениям вынести уже во второй. Вам достаточно одного и вы считаете своё мнение единственно верным - я за вас рад. Для себя правильным считаю другое.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Ruslan1   STM32: загрузка загрузчика   Jun 6 2016, 22:16
- - aaarrr   Добавьте еще один "нижний" загрузчик. Ра...   Jun 6 2016, 22:50
|- - jcxz   Цитата(aaarrr @ Jun 7 2016, 04:50) ...   Jun 7 2016, 03:04
|- - Сергей Борщ   QUOTE (jcxz @ Jun 7 2016, 06:04) Можно и ...   Jun 7 2016, 06:03
|- - Ruslan1   Спасибо, буду думать. несрочно, так что еще и поте...   Jun 7 2016, 10:24
|- - 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 Текстовая версия Сейчас: 23rd July 2025 - 15:45
Рейтинг@Mail.ru


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