Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Пн мар 06, 2023 11:20:28
Здравсвуйте, котаны
Интересные вопросы назрели.
Может кто сталкивался.
Как правильно организовать заголовок прошивки и бутлоадера.
Идея в том, чтобы заголовок был перед прошивкой во флеше.
Это реализуемо для прошивки, но нереализуемо для бутлоадера, т.к. посдедний находится по нулевому адресу.
на сколько я понимаю, это нельзя сделать без разбиения бутлоадера на две части?
Пн мар 06, 2023 11:29:49
Ничё не понял.Заголовок всегда впереди, на то он и заголовок. Бутлоадер можно разместить где угодно, и основную программу можно разместить где угодно.
И лучше конкретизировать мк.
Пн мар 06, 2023 11:44:21
Ничё не понял.Заголовок всегда впереди, на то он и заголовок. Бутлоадер можно разместить где угодно, и основную программу можно разместить где угодно.
И лучше конкретизировать мк.
CortexM4... Китаёзный.
Я к тому, что если мы размещаем бут по нулевому адресу, то впереди него мы ж не сможем положить данные.
Нужен какой то dummy код , который просто прыгнет по адресу бутлоадера?
Заодно и валидирует всё в соответствии с заголовком
Пн мар 06, 2023 13:40:26
Сколько данных? В таблице векторов прерываний обычно есть пустое место, часто этого достаточно.
Пн мар 06, 2023 13:42:19
Сколько данных? В таблице векторов прерываний обычно есть пустое место, часто этого достаточно.
Больше килобайта. ключи , подписи, хэши.
Да и не хотелось бы это располагать в векторах.
Пн мар 06, 2023 13:59:36
Килобайт сразу за таблицей векторов расположить точно так же как саму таблицу векторов.
Пн мар 06, 2023 14:30:13
Бутлоадер...
никада не работал с бутлоадер))
а эта штука работает по интернету ? или только по тупому UART ? ))
по UART не интересно...
по интернету интересно)) это можно заливать прошивку удалённо по интернету... типа как в роутере))
надо будет над этим поработать...
Пн мар 06, 2023 16:23:13
это смотря какой BOOT иногда там не толка процедура записи флеш прописана но инициализациявсех портоф и дисплея куда выводится POST но такой в 1к арядли влезет впрочем примеры таки есть в любители экзотики 512бт впихивали
Вт мар 07, 2023 09:06:50
...
а эта штука работает по интернету ? или только по тупому UART ? )) ...
по интернету интересно)) это можно заливать прошивку удалённо по интернету... типа как в роутере))
надо будет над этим поработать...
Те же мобильные телефоны как один из примеров.
Второе - удаленное обновление ПО в модемах и для ESP...
Тут уж как угодно сделать можно. Начальному загрузчику что тырнет, что UART, что древни "проводки" - это всего лишь КАНАЛ ОБМЕНА данными. Главное чтобы МК (или самоделка) имел возможность "самоперепрошивки" ПЗУ.
Чт мар 09, 2023 16:34:37
угу )) осталось только написать... этот самозагрузчик))
Пт мар 10, 2023 11:40:33
Так пускай заголовок будет в файле прошивки, а при самой прошивке отрезайте его. В микроконтроллере есть процессор, который с этим справится.
Пт мар 10, 2023 13:48:25
далеконе в каждом там должен быть мапинг ROM областей с возможностью заблокировать запись в бут иначе нихрена не выйдет....
Вт мар 14, 2023 16:12:54
Так пускай заголовок будет в файле прошивки, а при самой прошивке отрезайте его. В микроконтроллере есть процессор, который с этим справится.
так заголовок для бутлоадера должен идти впереди
А впереди нельзя.
Значит надо его располагать сзади.
Но тогда надо переделываться бинарь
Вт мар 14, 2023 16:21:14
Не, не получается у меня в толк взять. Вот есть файл с заголовками всякими. Отправляете его в микроконтроллер, тот этот файл анализирует, заголовки отбрасывает, а прошивку складывает куда надо. Что не так?
Вт мар 14, 2023 17:04:40
Не, не получается у меня в толк взять. Вот есть файл с заголовками всякими. Отправляете его в микроконтроллер, тот этот файл анализирует, заголовки отбрасывает, а прошивку складывает куда надо. Что не так?
Кто заголовок готовить будет? Прицеплять его впереди прошивки.
Вт мар 14, 2023 17:39:59
Так это же совсем другая задача!
Вт мар 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 и добавить его в заголовок, что можно сделать чуть не вручную. В итоге сложность постбилда сокращается.
Хз, может тут и есть подводные камни...
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.