项目简介
本项目是一个基于STM32微控制器的CAN Bootloader,能通过CAN总线实现固件的远程更新。该Bootloader不依赖STM32内置的Bootloader,而是借助CAN1接口与主机通信,接收固件数据并将其写入Flash存储器,具有接口灵活、不依赖BOOT引脚的特点。
项目的主要特性和功能
- CAN通信:通过CAN1接口与主机通信,支持500KBaud的通信速率。
- 固件更新协议:实现新的固件更新协议,支持固件数据的接收、校验和写入Flash。
- CRC校验:使用STM32内置的CRC32单元进行固件数据的校验。
- 独立运行:Bootloader独立于STM32内置的Bootloader运行,启动地址为0x08000000,固件启动地址为0x08002000。
- 固件跳转:固件更新完成后,Bootloader会跳转到应用程序的入口点执行应用程序。
安装使用步骤
- 下载工具链:确保已安装
arm-none-eabi
工具链,可从ARM官网下载。 - 获取依赖库:运行以下命令获取并编译依赖库
libopencm3
:bash make get-deps
- 编译项目:在项目根目录下运行以下命令编译Bootloader和Updater:
bash make cd bootupdater make
- 上传固件:使用JTAG/SWD适配器将编译生成的可执行文件上传到STM32微控制器。
- 连接CAN接口:将STM32的CAN1接口与主机连接,确保通信正常。
- 发送固件:使用提供的C#程序通过PEAK Systems CAN to USB适配器发送Hex文件到STM32。
- 固件更新:Bootloader接收固件数据,进行CRC校验并写入Flash存储器。更新完成后,Bootloader跳转到应用程序入口点执行应用程序。
注意:具体的安装和使用步骤可能因硬件平台和配置而有所不同,请根据实际情况进行调整。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】