前文说过,在STM32F0xx系列芯片上进行IAP升级,使用串口方式进行IAP升级确实简单。但是实际操作中并不方便:因为需要串口线,电脑,外加电脑端的UI,而且操作繁琐不便于远程升级。
串口IAP链接:
https://blog.youkuaiyun.com/triv2009/article/details/78706013
也有GPRS方式IAP的,但是硬件成本高,开发难度大,维护时间长,只适合车辆网用途而已。
而本次推荐的是使用SD/TF卡方式进行IAP升级,操作更为简单些,只需要提供*.bin文件即可插卡升级。
当然SD卡升级的方式需要硬件上增加SD/TF卡座,需要SPI接口(3线,SCK,SDI,SDO),不过算起来这增加的硬件成本也不高,一个SD/TF卡座的硬件成本也就0.5RMB以内,唯一缺点是占用PCB空间较大。
然后说说软件该怎么改,由于读写SD/TF卡需要文件系统,特别是"读文件"操作比较占用FLASH空间,所以IAP段占用的地址空间就特别大,一般都要0x3000的空间,就算经过中等优化,也得0x2200。IAP段要占用12K空间,对于STM32F0xxF4之类只有16K FLASH来说,这确实够呛,所以至少需要32K或以上的FLASH空间才适合使用SD/TF卡的升级方式。
//------------------------------------------------------------------------------------------------------------------
SPI初始化:
//使能APB2上相关时钟
//使能SPI时钟,使能GPIOA时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1 ,ENABLE );
</

本文介绍了在STM32F0系列微控制器上,通过SD/TF卡进行固件(IAP)升级的方法。相较于串口升级的不便,SD卡升级方式更简单,只需提供.bin文件。然而,这种方式需要额外的SD卡座硬件,并且由于文件系统的需求,会占用较多的FLASH空间,适合于至少32K FLASH空间的STM32F0芯片。文章还详细讲解了SPI接口的初始化以及读取BIN文件的关键函数。
最低0.47元/天 解锁文章
3538

被折叠的 条评论
为什么被折叠?



