1 Star 3 Fork 5

eming / bootloader_stm32f103_md

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

功能说明:

  • 这个bootloader的主要功能是按照下载的升级包类型升级应用程序,然后跳转到应用程序区运行。
  • 仅支持非压缩的固件。
  • 升级包均附加64字节包头,用来保存升级包名称,长度,校验等信息,类似u-boot镜像头。
  • 支持STM32F103CB芯片。

FLASH分区说明:

  • 目前所有数据均使用芯片内部Flash存储,因此将Flash分为4个分区。
    • 分区1为bootloader分区,固定20K - 64字节,这最后64字节用来保存应用程序镜像头。
    • 分区2为应用程序区,镜像起始地址为0x08004FC0,程序入口地址为0x08005000。
    • 分区3用来保存下载的升级包。
    • 分区4位于Flash的最后2K,用来保存一些升级信息。
  • 当前bootloader支持128K分区参数,具体可参见flash.h文件。
  • 如果需要将数据保存在外部Flash,可自行改造。

升级流程说明:

  1. 首先需要使用到mkuzimage工具,用来生成非压缩固件。

    • 非压缩固件 mkuzimage -a 0x08004FC0 -e 0x08005000 -i image.bin -o uimage.bin
  2. 然后将升级包(uimage.bin)通过某种通信方式(串口,网口,4G等)下载到分区3,这部分需要在应用中实现。也可以在bootloader命令行下使用ymodem命令,具体下述。

  3. 最后更新位于分区4的升级标志(分区4偏移地址0,值为0xAA55),这一步建议在应用程序中完成。也可在bootloader命令行下,输入iap-start命令,更新这个标志。

  4. 复位,bootloader会自动解析升级包类型,然后升级。

使用ymodem下载固件及补丁包(超级终端使用SecureCRT)

  1. 下载应用程序到分区2
    • 分区2固件由bootloader直接引导,所以必须使用mkuzimage生成非压缩固件,然后下载,在超级终端输入命令: #ymodem app
    • 超级终端窗口收到CCC时,用YMODEM发送文件。
  • 下载成功后,设备会自动重启,并引导到应用程序运行。
  1. 下载升级包到分区3
    • 升级包支持上文提到的2种类型,下载时可任选一种,在超级终端输入命令: #ymodem patch
    • 超级终端窗口收到CCC时,用YMODEM发送文件。
    • 下载成功后,设备会自动重启,并自动升级到新版本程序。

其他:

这个项目使用了很多源于网络的开源代码,例如atomlib等,在此表示感谢。

空文件

简介

中等容量stm32的bootloader,支持应用程序跳转,固件升级,不支持差分补丁升级 展开 收起
C 等 3 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/eming/bootloader_stm32f103_md.git
git@gitee.com:eming/bootloader_stm32f103_md.git
eming
bootloader_stm32f103_md
bootloader_stm32f103_md
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891