基于IAP实现的STM32F系列固件升级(远程升级 + SD卡升级)

谈到STM32固件更新,首先就要了解一下固件的概念。固件是指下载到芯片里面去运行的二进制代码数据,是代码工程编译之后生成的,大家如果用的是MDK Keil的话,点了那个编译之后,就会生成固件,点击下载,固件就会被下载到STM32里面。我们平时说的下载程序,实际就是下载固件。

固件更新,就是指通过一些方法,将芯片里面原有的固件替换为新的固件。这篇文章提供两种方法,都是基于STM32 IAP技术实现的(要注意哟,不支持IAP功能的芯片,是不能做固件更新的),一种方法是通过网络的方式,从远程服务器上下载固件后,更新到芯片里面。另一种方法是将固件放到U盘或SD卡里面,再插到开发板上,更新到芯片里面

如果你不是新手,也不是啥也不知道的,只是想找现成的教程,代码工程以及操作演示,我已经准备好了,就不用接着看我啰嗦了,可以直接点下面的链接观看以及下载代码工程和资料:

STM32F103xE系列芯片固件远程升级

STM32F103xE系列芯片IAP升级固件

两个教程都是用正点原子的战舰V3开发板(STM32F103)来做的,包含可直接编译使用的代码工程(使用Keil),以及操作演示(看视频又快又直观,博客可能说不清道不明,还可能有错)。第一个教程使用的是SIM800C的4G模块联网,从网络上的FTP服务器上下载固件后,进行固件更新。第二个教程使用SD卡的方式进行固件更新。课程讲得比较详细,包括硬件,固件更新的原理,代码讲解,以及实际的操作演示,新手也能看得明白。不过课程录制也辛苦,还是收了几个钱,就当做大家给我的辛苦费吧,也希望能帮助到大家。

好,接下来我要开始啰嗦几句了。可能有的人会问,固件更新不就下载程序嘛,这有啥难的,直接用JLINK下载不就好了吗?确实,用JLINK是可以更新固件的,但是你是不是要带着电脑和JLINK才行啊?
对于要拿出去卖的商用产品,一旦卖出去了,用这种方法,你想再更新固件就难了,要么你去客户那边刷程序,要么用能把东西寄回来,这样的邮费和时间成本,老板是受不了的,用户体验也不好。所以对于商用的产品,最好能够把固件更新的功能做进去,需要更新固件的时候就很方便了。

其实单片机的固件更新就是围绕着IAP来实现的,什么是IAP?IAP就是在应用编程,也就是单片机在运行代码的同时,还能对片上ROM进行擦除和编程。我们知道对于STM32,代码是下载到片上ROM的,也是在片上ROM上直接运行的,固件更新就是在代码里面,通过片上ROM的擦除和编程操作,对固件进行更新,其中很关键的部分就是Bootloader。

好了,讲到这里,大家应该对STM32F103的固件升级更新就有了大致的了解了,详细的课程里面也已经说了,下面是STM32F103xE系列芯片通过FTP远程升级固件的演示截图
远程升级演示
个人觉得用视频的方式来讲解要比用博文讲解的方式直观的多,感谢支持,有问题请私信留言。

  • 7
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32微控制器通过SD卡升级固件,可以在设备无法通过其他通信接口进行固件升级时提供一种便捷的方法。以下是一个关于如何使用SD卡进行STM32固件升级的简略步骤: 首先,需要在STM32的硬件电路上为SD卡准备一个SPI接口。这可以通过连接SPI总线上的片选引脚来实现,然后将SD卡插入SD卡槽中。 接下来,需要编写适当的代码,使STM32能够通过SPI接口读取SD卡上的固件文件。可以使用相应的库函数来实现SPI接口和SD卡的读取操作。 然后,在SD卡上存储一个包含所需固件的文件。这个文件可以是一个.bin、.hex或其他适合STM32加载和解析的格式。 接下来,在STM32固件中添加相应的代码来检测SD卡是否已插入,并读取SD卡上的固件文件。可以使用文件系统库函数来检索并加载固件文件。 然后,将从SD卡加载的固件数据存储在STM32的内部存储器中,如闪存或SRAM。 最后,STM32重启并加载新固件,这可以通过简单地跳转到已加载的固件的入口点来实现。 需要注意的是,SD卡升级固件的过程可能还涉及到其他的一些细节,如固件校验和,以确保成功的升级。此外,还应该考虑到SD卡的容量、文件系统的选择等因素。 以上是一个简略的步骤,具体的实现和细节可能因硬件和软件配置而不同。因此,需要根据具体的STM32型号和SD卡接口来查阅对应的参考资料和文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值