В разрабатывании обратите внимание: эта прошивка в настоящее время находится на этапе разработки. Функции могут измениться, а код может содержать ошибки. Используйте с осторожностью и сообщите о любых вопросах, с которыми вы сталкиваетесь.
Этот загрузчик для микроконтроллера STM32 предоставляет надежное и богатое функциональным решением для обновлений прошивки. Bootloader предназначен для облегчения обновлений прошивки через внутренние интерфейсы USB или UART, используя внешнюю вспышку SPI для временного хранения прошивки.

Двухлетная прошивка. Это позволяет обеспечить безопасные обновления прошивки с возможностью отката.
Откат прошивки: в случае сбоя обновления загрузчик может вернуться к предыдущей рабочей прошивке, обеспечивая работу устройства.
Валидация CRC32: каждая прошивка, хранящаяся во флэш -флэш, проверяется с использованием проверок CRC32 для обеспечения целостности данных и предотвращения выполнения поврежденного прошивки.
Зашифрованное хранилище: загрузчик хранит все данные прошивки, хранящиеся в SPI Flash в зашифрованной форме, повышая безопасность от несанкционированного доступа.
Управление версией: загрузчик может сообщить о текущей версии прошивки, помогая поддерживать и отслеживать версии прошивки, развернутые на устройстве.
Внешний сценарий Python: сценарий Python предоставляется для оказания помощи в загрузке новой прошивки на устройство. Этот скрипт также облегчает отчеты о версиях и другие операции, связанные с загрузчиком.
FW FILE ) и прикрепляет важные метаданные, такие как версия прошивки, имя прошивки, идентификатор прошивки, время сборки и дату к выходному файлу ( BIN FILE ).Lock Bin объединяет эти входы с файлом прошивки и шифрует пакет, чтобы обеспечить его безопасность во время передачи.BIN FILE ), который надежно содержит зашифрованную прошивку вместе со встроенными метадатами..fw , который содержит все метаданные, включая время сборки и дату.Host App отвечает за передачу зашифрованного файла прошивки в микроконтроллер..fw , извлекает необходимые метаданные для целей ведения журнала или проверки и устанавливает соединение с микроконтроллером через COM -порт (например, USB/UART).Host App через USB/UART. Этот трубопровод надежно обрабатывает обновления прошивки, обеспечивая целостность процесса от шифрования до установки. Добавление времени и даты сборки в файле .fw предлагает дальнейшую отслеживание для каждой версии прошивки.
Клонировать это хранилище:
git clone https://github.com/mayankpatel97/STM32-SPIFLASH-UART-BOOTLOADER.git
cd STM32-SPIFLASH-UART-BOOTLOADERНастройте загрузчик, используя свою предпочтительную IDE (например, STM32Cubeide) или через командную строку.
Создайте проект Bootloader и проведите его на микроконтроллер STM32.
Подключите устройство STM32 к компьютеру через USB или UART.
Запустите предоставленный сценарий Python для загрузки новой прошивки:
python firmware_loader.py --port /dev/ttyUSB0 --file firmware.binСценарий автоматически обрабатывает передачу, проверку и управление версиями.
После того, как прошивка будет успешно загружена, загрузчик будет выполнять проверку CRC16 и либо загрузиться в новую прошивку, либо вернуться к предыдущей версии, если обнаружена ошибка.
В случае проблемы с недавно загруженной прошивкой, загрузчик автоматически возвращается к предыдущей прошивке, хранящейся в другом слоте, что обеспечивает работу устройства.
Чтобы проверить в настоящее время работающую версию прошивки, используйте следующую команду:
python firmware_loader.py --port /dev/ttyUSB0 --versionЭтот проект лицензирован по лицензии MIT - для получения подробной информации см. Файл лицензии.
Не стесняйтесь внести свой вклад в этот проект, отправив запросы на привлечение или проблемы с открытием для любых ошибок или запросов функций.
Особая благодарность сообществу с открытым исходным кодом за предоставление инструментов и библиотек, которые помогли в разработке этого загрузчика.