Написать загрузчик для обновления встроенного ПО без программатора #29

Closed
opened 2024-05-24 14:00:06 +03:00 by movefasta · 9 comments
movefasta commented 2024-05-24 14:00:06 +03:00 (Migrated from gitlab.com)

Тех.задание

  • При обычной загрузке, бутлоадер проверяет срс прошивки и флаг говорящий о том, что он вызван, если срс ок и флаг не активен, то он передает управление на адрес прошивки, если флаг или срс не Ок, то начинает слушать can
  • Второй вариант. Если пришла команда по кан на запуск бутлоадера из уже работающей прошивке, то устанавливаем флаг и либо перезагружается, либо прыгаем на стартовый адрес бутлоадера как тебе удобнее.
  • Потом получаем уже в бутлоадере команды по чтению текущей версии прошивки, чтонию блоков Флэша и записи блоков Флэша.
  • При записи прошивки компьютер выдает команду на запись Флэша и начинает передавать блоки с адресами, которые ты после стирания соответствующих секторов записываешь с проверкой срс пакетов разумеется. В конце записи тебе приходит команда окончании прошивки. После чего ты записываешь контрольную сумму прошивки, сбрасываешь флаг вызова бутлоадера и перезагружаешь процессор. Все события, которые происходили в процессе дублируешь соответствующим миганием светодиода.
  • По-моему ничего не забыл.

Лучше найти уже готовые варианты

Мат.часть:

  1. bootloader_design_for_microcontrollers_in_embedded_systems

Примеры:

  1. https://github.com/RafaelLaya/stm32f446xx_bootloader
Тех.задание - При обычной загрузке, бутлоадер проверяет срс прошивки и флаг говорящий о том, что он вызван, если срс ок и флаг не активен, то он передает управление на адрес прошивки, если флаг или срс не Ок, то начинает слушать can - Второй вариант. Если пришла команда по кан на запуск бутлоадера из уже работающей прошивке, то устанавливаем флаг и либо перезагружается, либо прыгаем на стартовый адрес бутлоадера как тебе удобнее. - Потом получаем уже в бутлоадере команды по чтению текущей версии прошивки, чтонию блоков Флэша и записи блоков Флэша. - При записи прошивки компьютер выдает команду на запись Флэша и начинает передавать блоки с адресами, которые ты после стирания соответствующих секторов записываешь с проверкой срс пакетов разумеется. В конце записи тебе приходит команда окончании прошивки. После чего ты записываешь контрольную сумму прошивки, сбрасываешь флаг вызова бутлоадера и перезагружаешь процессор. Все события, которые происходили в процессе дублируешь соответствующим миганием светодиода. - По-моему ничего не забыл. Лучше найти уже готовые варианты Мат.часть: 1. [bootloader_design_for_microcontrollers_in_embedded_systems](https://www.beningo.com/wp-content/uploads/images/Papers/bootloader_design_for_microcontrollers_in_embedded_systems%20.pdf) Примеры: 1. https://github.com/RafaelLaya/stm32f446xx_bootloader
movefasta commented 2024-05-24 14:00:06 +03:00 (Migrated from gitlab.com)

assigned to @vanyabeat

assigned to @vanyabeat
movefasta commented 2024-05-24 15:01:41 +03:00 (Migrated from gitlab.com)

changed the description

changed the description
movefasta commented 2024-05-24 15:02:04 +03:00 (Migrated from gitlab.com)

changed the description

changed the description
vanyabeat commented 2024-05-31 19:15:58 +03:00 (Migrated from gitlab.com)

unassigned @vanyabeat

unassigned @vanyabeat
movefasta commented 2025-01-14 12:16:28 +03:00 (Migrated from gitlab.com)

assigned to @AlexxTop

assigned to @AlexxTop
movefasta commented 2025-02-18 16:49:44 +03:00 (Migrated from gitlab.com)

unassigned @AlexxTop

unassigned @AlexxTop
movefasta commented 2025-02-18 16:49:57 +03:00 (Migrated from gitlab.com)

assigned to @keklolov7

assigned to @keklolov7
movefasta commented 2025-02-26 12:21:01 +03:00 (Migrated from gitlab.com)

changed the description

changed the description
movefasta commented 2025-02-26 12:21:16 +03:00 (Migrated from gitlab.com)

changed the description

changed the description
keklolov7 (Migrated from gitlab.com) closed this issue 2025-05-23 09:23:44 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: robossembler/servo#29
No description provided.