在开发中,请注意:此固件目前处于开发阶段。功能可能会更改,并且代码可能包含错误。谨慎使用并报告您遇到的任何问题。
STM32微控制器的此引导加载程序为固件更新提供了坚固且功能丰富的解决方案。 Bootloader旨在通过内部USB或UART接口来促进固件更新,并利用外部SPI闪光灯临时存储固件。

双插槽固件存储:Bootloader在外部SPI Flash中管理两个单独的插槽,以存储不同版本的固件。这允许具有回滚功能的安全固件更新。
固件回滚:如果发生更新故障,引导加载程序可以还原为先前的工作固件,以确保设备保持运行。
CRC32验证:使用CRC32检查验证了SPI Flash中存储的每个固件,以确保数据完整性并防止损坏的固件被执行。
加密存储:Bootloader将所有存储在SPI Flash中的固件数据以加密形式存储,从而增强了安全性,以防止未经授权的访问。
版本管理:Bootloader可以报告当前的固件版本,帮助维护和跟踪设备上部署的固件版本。
外部Python脚本:提供了Python脚本,以帮助将新固件加载到设备上。该脚本还促进了版本报告和其他引导程序相关的操作。
FW FILE ),并连接至关重要的元数据,例如固件版本,固件名称,固件ID,构建时间和日期到输出文件( BIN FILE )。Lock Bin工具将这些输入与固件文件相结合,并加密包装以确保其在传输过程中的安全性。BIN FILE ),它与嵌入式元数据一起安全地包含加密的固件。.fw文件,其中包含所有元数据,包括构建时间和日期。Host App负责将加密的固件文件传输到微控制器。.fw文件,提取必要的元数据以记录或验证目的,并通过COM端口与微控制器建立连接(例如,USB/UART)。Host App接收加密的固件和元数据。该管道安全地处理固件更新,确保从加密到安装过程的过程的完整性。 .fw文件中的构建时间和日期的添加为每个固件版本提供了进一步的可追溯性。
克隆这个存储库:
git clone https://github.com/mayankpatel97/STM32-SPIFLASH-UART-BOOTLOADER.git
cd STM32-SPIFLASH-UART-BOOTLOADER使用您的首选IDE(例如,STM32Cubeide)或通过命令行配置引导加载程序。
构建Boot Loader项目,然后将其刷到您的STM32微控制器上。
通过USB或UART将STM32设备连接到计算机。
运行提供的Python脚本以加载新固件:
python firmware_loader.py --port /dev/ttyUSB0 --file firmware.bin该脚本将自动处理传输,验证和版本管理。
成功加载固件后,Bootloader将执行CRC16检查器,并在检测到错误时启动到新固件中或还原为上一个版本。
如果新加载的固件出现问题,则引导加载程序会自动恢复到另一个插槽中的先前固件,以确保设备保持运行。
要检查当前运行的固件版本,请使用以下命令:
python firmware_loader.py --port /dev/ttyUSB0 --version该项目是根据MIT许可证获得许可的 - 有关详细信息,请参见许可证文件。
通过提交拉动请求或为任何错误或功能请求开头问题,可以随意为该项目做出贡献。
特别感谢开源社区提供的工具和库有助于开发此引导程序。