Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

Расположение данных по нулевому адресу...

Пн мар 06, 2023 11:20:28

Здравсвуйте, котаны

Интересные вопросы назрели.
Может кто сталкивался.
Как правильно организовать заголовок прошивки и бутлоадера.

Идея в том, чтобы заголовок был перед прошивкой во флеше.
Это реализуемо для прошивки, но нереализуемо для бутлоадера, т.к. посдедний находится по нулевому адресу.

на сколько я понимаю, это нельзя сделать без разбиения бутлоадера на две части?

Re: Расположение данных по нулевому адресу...

Пн мар 06, 2023 11:29:49

Ничё не понял.Заголовок всегда впереди, на то он и заголовок. Бутлоадер можно разместить где угодно, и основную программу можно разместить где угодно.
И лучше конкретизировать мк.

Re: Расположение данных по нулевому адресу...

Пн мар 06, 2023 11:44:21

Ничё не понял.Заголовок всегда впереди, на то он и заголовок. Бутлоадер можно разместить где угодно, и основную программу можно разместить где угодно.
И лучше конкретизировать мк.



CortexM4... Китаёзный.

Я к тому, что если мы размещаем бут по нулевому адресу, то впереди него мы ж не сможем положить данные.
Нужен какой то dummy код , который просто прыгнет по адресу бутлоадера?
Заодно и валидирует всё в соответствии с заголовком

Re: Расположение данных по нулевому адресу...

Пн мар 06, 2023 13:40:26

Сколько данных? В таблице векторов прерываний обычно есть пустое место, часто этого достаточно.

Re: Расположение данных по нулевому адресу...

Пн мар 06, 2023 13:42:19

Сколько данных? В таблице векторов прерываний обычно есть пустое место, часто этого достаточно.



Больше килобайта. ключи , подписи, хэши.
Да и не хотелось бы это располагать в векторах.

Re: Расположение данных по нулевому адресу...

Пн мар 06, 2023 13:59:36

Килобайт сразу за таблицей векторов расположить точно так же как саму таблицу векторов.

Re: Расположение данных по нулевому адресу...

Пн мар 06, 2023 14:30:13

Бутлоадер...
никада не работал с бутлоадер))
:roll:
а эта штука работает по интернету ? или только по тупому UART ? ))
по UART не интересно...
:sleep:
по интернету интересно)) это можно заливать прошивку удалённо по интернету... типа как в роутере))
:idea: :roll:
надо будет над этим поработать...
:tea:

Re: Расположение данных по нулевому адресу...

Пн мар 06, 2023 16:23:13

это смотря какой BOOT иногда там не толка процедура записи флеш прописана но инициализациявсех портоф и дисплея куда выводится POST но такой в 1к арядли влезет впрочем примеры таки есть в любители экзотики 512бт впихивали

Re: Расположение данных по нулевому адресу...

Вт мар 07, 2023 09:06:50

...
а эта штука работает по интернету ? или только по тупому UART ? )) ...
по интернету интересно)) это можно заливать прошивку удалённо по интернету... типа как в роутере))
:idea: :roll:
надо будет над этим поработать...
:tea:

Те же мобильные телефоны как один из примеров.
Второе - удаленное обновление ПО в модемах и для ESP...
Тут уж как угодно сделать можно. Начальному загрузчику что тырнет, что UART, что древни "проводки" - это всего лишь КАНАЛ ОБМЕНА данными. Главное чтобы МК (или самоделка) имел возможность "самоперепрошивки" ПЗУ.
8)

Re: Расположение данных по нулевому адресу...

Чт мар 09, 2023 16:34:37

угу )) осталось только написать... этот самозагрузчик))
:tea:

Re: Расположение данных по нулевому адресу...

Пт мар 10, 2023 11:40:33

Так пускай заголовок будет в файле прошивки, а при самой прошивке отрезайте его. В микроконтроллере есть процессор, который с этим справится.

Re: Расположение данных по нулевому адресу...

Пт мар 10, 2023 13:48:25

далеконе в каждом там должен быть мапинг ROM областей с возможностью заблокировать запись в бут иначе нихрена не выйдет....

Re: Расположение данных по нулевому адресу...

Вт мар 14, 2023 16:12:54

Так пускай заголовок будет в файле прошивки, а при самой прошивке отрезайте его. В микроконтроллере есть процессор, который с этим справится.


так заголовок для бутлоадера должен идти впереди
А впереди нельзя.
Значит надо его располагать сзади.
Но тогда надо переделываться бинарь

Re: Расположение данных по нулевому адресу...

Вт мар 14, 2023 16:21:14

Не, не получается у меня в толк взять. Вот есть файл с заголовками всякими. Отправляете его в микроконтроллер, тот этот файл анализирует, заголовки отбрасывает, а прошивку складывает куда надо. Что не так?

Re: Расположение данных по нулевому адресу...

Вт мар 14, 2023 17:04:40

Не, не получается у меня в толк взять. Вот есть файл с заголовками всякими. Отправляете его в микроконтроллер, тот этот файл анализирует, заголовки отбрасывает, а прошивку складывает куда надо. Что не так?


Кто заголовок готовить будет? Прицеплять его впереди прошивки.

Re: Расположение данных по нулевому адресу...

Вт мар 14, 2023 17:39:59

Так это же совсем другая задача!

Re: Расположение данных по нулевому адресу...

Вт мар 14, 2023 17:49:56

Так это же совсем другая задача!


Это всё связанные задачи

В принципе я нашёл решение.

Для билда кастомного бинаря я испольую такой линкер.

Код:
BOOT_HEADER_SHADOW      : ORIGIN = 0x8000000 - LENGTH(_HEADER_SIZE),                                    
BOOTLOADER_FLASH(rx)       : ORIGIN = 0x8000000,                                                                
APP_HEADER_PARAM  (rx)   : ORIGIN = 0x8000000 + LENGTH(_BOOTLOADER_SIZE),                                         
FIRMWARE_FLASH (rx)      : ORIGIN = 0x8000000 + LENGTH(_BOOTLOADER_SIZE)+LENGTH(_HEADER_SIZE),                  
BOOT_HEADER_PARAM  (rx)   : ORIGIN = 0x8000000 + LENGTH(_ROM_SIZE) - LENGTH(_BOOTLOADER_SIZE) - LENGTH(_HEADER_SIZE),
BOOT_COPY(rx)            : ORIGIN = 0x8000000 + LENGTH(_ROM_SIZE) - LENGTH(_BOOTLOADER_SIZE),                   


сам бут переносит свой заголовок в конец флеша.
Все данные о прошивке уже лежат впереди бинаря.
Остаётся только посчитать CRC и добавить его в заголовок, что можно сделать чуть не вручную. В итоге сложность постбилда сокращается.

Хз, может тут и есть подводные камни...
Ответить