Настраиваемый загрузчик для микроконтроллеров STM32. Этот проект включает в себя демонстрации для различных аппаратных средств, как выполнить программу прошивки в приложении, расположенной на внешней SD-карте с файловой системой FAT32.
В каждом примере используется та же библиотека загрузчика, расположенную в папке lib/stm32-bootloader . Примеры расположены в папке projects , и они поставляются с отдельным, выделенным файлом Readme с описанием, связанным с этой конкретной реализацией.
ОБНОВЛЕНИЕ: Пример STM32L496-Discovery поддерживает компиляцию и создание проекта с помощью встроенного GNU Arm Intlaintchain (ARM GCC), в дополнение к IAR EWARM. Проверьте проект Readme для получения дополнительной информации.
Пожалуйста, обратитесь к https://akospasztor.github.io/stm32-bootloader для полной документации исходного кода библиотеки загрузчика.
Repository
├── docs
├── drivers
│ ├── CMSIS
│ └── STM32L4xx_HAL_Driver
├── lib
│ ├── fatfs
│ └── stm32-bootloader
└── projects
├── STM32L476-CustomHw
├── STM32L496-CustomHw
└── STM32L496-Discovery
Папка docs содержит сгенерированную документацию исходного кода загрузчика и другие статические файлы, связанные с документацией.
Папка drivers содержит программный интерфейс CMSIS (стандарт программного интерфейса Cortex Microcontroller), а также драйверы HAL (аппаратный уровень абстракции) от ST.
Исходный код загрузчика и соответствующий файл заголовка можно найти в папке lib/stm32-bootloader . Кроме того, папка lib также содержит библиотеку FATFS.
Различные демонстрации находятся в папке projects . Каждый пример проекта содержит папку include и source папку», где заголовок и исходные файлы расположены соответственно. Компилятор и SDK-специфические файлы расположены в соответствующих подпапках. Кроме того, в каждом примере проекта есть выделенный файл Readme, подробно объясняющий его функциональность.
Этот репозиторий содержит следующие примеры.
| Микроконтроллер | Аппаратное обеспечение | Проектный путь |
|---|---|---|
| STM32L476VG | Обычай | Проекты/STM32L476-CUSTOMHW |
| STM32L496VG | Обычай | Проекты/STM32L496-CUSTOMHW |
| STM32L496AG | 32L496GDiscovery | Проекты/STM32L496-Discovery |
Bootloader может быть легко настроен и адаптирован к требуемому аппаратному обеспечению и среде, т.е. для выполнения обновлений прошивки по различным интерфейсам или даже для реализации обновлений в эфире (OTA), если оборудование включает беспроводные модули связи беспроводной связи. Чтобы выполнить успешное программирование применения, необходимо сохранить следующую последовательность:
Bootloader_Init() .Bootloader_Erase() .Bootloader_FlashBegin() .Bootloader_FlashNext() . Процедура программирования требует, чтобы 8 байтов данных (двойное слово) было запрограммировано сразу на вспышку. Эта функция автоматически увеличивает адрес, на котором записываются данные.Bootloader_FlashEnd() .Изображение приложения должно быть в двоичном формате. Если проверка контрольной суммы включена, двоичный файл должен включать значение контрольной суммы в конце изображения. При создании изображения приложения контрольная сумма должна быть рассчитана по всему изображению (кроме области контрольной суммы) со следующими параметрами:
Важные примечания :
system_stm32xxxx.c по умолчанию. Это должно быть либо отключено (загрузчик может быть настроен для выполнения перемещения векторной таблицы перед прыжком), либо вручную установить регистр смещения векторной таблицы (VTOR) в соответствующее значение смещения, которое является начальным адресом пространства приложения. Для получения дополнительной информации, пожалуйста, обратитесь к [1]. Bootloader может быть широко настроен в файле bootloader.h . Файл включает в себя подробные комментарии и описания, связанные с настраиваемыми параметрами и определениями.
[1] PM0214, "STM32F3 Series, STM32F4 Series, STM32L4 Series и STM32L4+ RESTEX®-M4 Руководство по программированию", http://www.st.com/resource/en/programming_manual/dm00046982.pdf