关于STM32的IAP和flash的坑

本文介绍了在STM32开发中如何实现IAP(在应用中编程),以便进行在线升级。通过详细解释Bootloader和APP的划分,以及如何处理Flash的分区和写入,展示了如何在出现错误时保持系统的可用性。此外,还提到了STM32的Flash特性,如页大小和写入步骤,为开发者提供了实际操作的指导。
摘要由CSDN通过智能技术生成

开发环境

我用的是STM32F103,正点原子的库函数版本。刚开始用的用的是STM32C8T6,后来发现程序编译完都有28K,FLASH总共64K,考虑的要IAP,换了STM32CBT6,封装都是 LQFP-48的,但是FLASH大一点,价格贵一点,咋们不差钱,免得后面不够用(最后换了国产GD32CBT6)。

编译环境keil5破解版,嘘嘘嘘~
下载器ST-LINK,淘宝45包邮

IAP

什么是IAP?为啥要IAP?IAP即为In Application Programming(在应用中编程),简单理解就是跟手机OTA一样在线升级。一般单片机出厂都会烧录好程序,但是这个万一测试不足。人有失蹄,马有失手,程序员总会写BUG。到了用户手上,用户使用环境,操作方式都和测试环境不用,一下就出问题了。怎么办?快递回来?重新烧录程序?快递费加人工费,卖产品还赚个球啊。这时候你就需要OTA啊,给用户在线升级到下个版本就好了,解决问题。
单片机怎么实现在线升级?就是IAP功能。一片STM32芯片的flash内一个用户程序,开机复位地址是0x08000000,接着是中断向量变,0X08000004才是用户的main函数入口。
在这里插入图片描述
而IAP方案则是将主程序为两部分,两部分区域各存放一个程序,一个叫b

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值