littlebot
Published on 2025-04-10 / 40 Visits
0

【源码】基于C语言的STM32 CAN Bootloader

项目简介

本项目是一个基于STM32微控制器的CAN Bootloader,能通过CAN总线实现固件的远程更新。该Bootloader不依赖STM32内置的Bootloader,而是借助CAN1接口与主机通信,接收固件数据并将其写入Flash存储器,具有接口灵活、不依赖BOOT引脚的特点。

项目的主要特性和功能

  • CAN通信:通过CAN1接口与主机通信,支持500KBaud的通信速率。
  • 固件更新协议:实现新的固件更新协议,支持固件数据的接收、校验和写入Flash。
  • CRC校验:使用STM32内置的CRC32单元进行固件数据的校验。
  • 独立运行:Bootloader独立于STM32内置的Bootloader运行,启动地址为0x08000000,固件启动地址为0x08002000。
  • 固件跳转:固件更新完成后,Bootloader会跳转到应用程序的入口点执行应用程序。

安装使用步骤

  1. 下载工具链:确保已安装arm-none-eabi工具链,可从ARM官网下载。
  2. 获取依赖库:运行以下命令获取并编译依赖库libopencm3bash make get-deps
  3. 编译项目:在项目根目录下运行以下命令编译Bootloader和Updater: bash make cd bootupdater make
  4. 上传固件:使用JTAG/SWD适配器将编译生成的可执行文件上传到STM32微控制器。
  5. 连接CAN接口:将STM32的CAN1接口与主机连接,确保通信正常。
  6. 发送固件:使用提供的C#程序通过PEAK Systems CAN to USB适配器发送Hex文件到STM32。
  7. 固件更新:Bootloader接收固件数据,进行CRC校验并写入Flash存储器。更新完成后,Bootloader跳转到应用程序入口点执行应用程序。

注意:具体的安装和使用步骤可能因硬件平台和配置而有所不同,请根据实际情况进行调整。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】