立即注册
查看: 1048|回复: 4

[单片机资料] STM32F103的SD卡Bootloader离线升级

已绑定手机
发表于 2021-8-5 18:07:16 | 显示全部楼层 |阅读模式 来自 广东省深圳市
这里使用STM32F103RCT6的芯片制作sd卡Bootloader。

一.硬件
这里使用的原子mini开发板,芯片为STM32F103RCT6,带SPI驱动的SD卡槽。

二.软件(寄存器编码,为的是减少Bootloader的代码占用空间)
1. SD卡使用的是SPI驱动。SPI1_Init()初始化,SPI1_ReadWriteByte读写。
1.jpg

2. SD卡驱动和FATFS文件系统。读SD卡、写SD卡、初始化SD卡等等,都是写好的驱动程序,直接可以用。这里也是用到了FATFS文件系统,需要移植两个文件。

3. 芯片Flash的操作。由于升级APP程序片需要用到Flash的操作,所以Flash的擦除,写入不能少。
2.jpg

4. APP程序跳入。当Flash里面写入了更新后的程序,需要跳转到Flash的起始地址,所以有一个函数需要。
3.jpg

5. 应用部分:
首先选择一个起始地址,是需要刷写程序的起始地址。只要大于Bootloader程序的总长度,并且APP程序的长度不能超过(芯片大小 - Bootloader程序大小)即可。
然后Flash中选取一个地址作为标志位,用于判断是否需要更新程序。
最后就是读取SD卡里的文件,把读取的写入到对应的Flash里面,完成跳转。
4.jpg
Main函数,先检测0x08002FFE这个地址的标志位,如果是0x02,说明有应用APP程序,不需要进行升级,所以直接iap_load_app(FLASH_APP_ADDR)跳转到APP的起始地址,开始运行程序,BOOT程序就到这里结束。

更多详细内容请下载附件查看
游客,如果您要查看本帖隐藏内容请回复
已绑定手机
发表于 2021-9-8 14:53:25 | 显示全部楼层 来自 湖北省宜昌市
谢谢分享,学习了!
已绑定手机
发表于 2021-9-13 22:09:43 | 显示全部楼层 来自 山东省日照市
感谢分享,学习!
已绑定手机
发表于 2021-9-27 09:33:07 | 显示全部楼层 来自 广东省深圳市
STM32还能离线升级啊,可以,学习下
已绑定手机
发表于 2023-12-15 15:00:54 | 显示全部楼层 来自 广东省深圳市
学习学习
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

合作/建议

TEL: 19168984579

工作时间:
周一到周五 9:00-11:30 13:30-19:30
  • 扫一扫关注公众号
  • 扫一扫打开小程序
Copyright © 2013-2024 一牛网 版权所有 All Rights Reserved. 帮助中心|隐私声明|联系我们|手机版|粤ICP备13053961号|营业执照|EDI证
在本版发帖搜索
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表