基于 SDIO 和 FatFs 系统的 STM32 Bootloader 程序
1. 引言
在嵌入式系统开发中,固件升级是非常重要的一项功能。当系统上线运行后,难免会遇到需要更新固
件的情况,例如修复 bug、添加新功能或者改进性能等。而 STM32 系列的微控制器是嵌入式开发中
常用的芯片,它们具有强大的处理能力和丰富的外设接口,使得在这些芯片上实现一个稳定可靠的
Bootloader 程序成为可能。
本文将围绕基于 SDIO 和 FatFs 系统的 STM32 Bootloader 程序展开介绍。该 Bootloader 程序
通过使用 FatFs 文件系统来读取 bin 文件,实现了自动检测 SD 卡,并对固定名称的 bin 文件进行
首包校验,将 bin 文件循环读取并写入到 Flash 中,从而完成固件升级。
2. 功能简介
本 Bootloader 程序主要包括以下功能:
2.1. SD 卡检测与读取
开机后,Bootloader 程序会自动检测 SD 卡的存在。一旦检测到 SD 卡,程序即会进入 SD 卡读取模
式。
2.2. bin 文件读取
在 SD 卡读取模式下,Bootloader 程序会通过使用 FatFs 文件系统,读取固定名称的 bin 文件。
FatFs 是一个通用的文件系统模块,支持 FAT12/FAT16/FAT32 格式的文件系统。通过 FatFs 系
统,Bootloader 程序可以非常方便地访问 SD 卡中的文件。
2.3. 首包校验
在读取 bin 文件之前,Bootloader 程序会对该升级包的起始地址进行校验,以确保升级包的完整
性。如果校验通过,则继续进行后续的升级操作。
2.4. bin 文件写入 Flash
当升级包的起始地址校验通过后,Bootloader 程序会循环读取 bin 文件,并将读取到的数据写入
到 Flash 中。这样,固件升级的过程将以高效且稳定的方式进行。
3. 详细流程