STM32远程升级IAP功能+备份功能实现。(flash读写操作)

  1. 远程升级加备份一共需要4个扇区,要确保flash可以被分成四个扇区(F4的扇区好大,4个16k,1个64k,剩下都是128k,对于小容量芯片非常不友好)。
    第一个存放出厂程序,也叫启动程序boot loader,第二个存放运行的升级程序,第三个存放接收的升级程序,第四存放备份数据。
  2. 由于stm32f401rct6只能分成2个64k和1个128k,所以存放接收的升级程序和备份空间放到了一切。
    日常备份数据时并不会擦除整个扇区,只有存满64k的空间才会擦除。
    接收升级程序前找到最后一个备份数据,拷贝到ram空间中,接着擦除整个扇区,再把升级程序以及备份数据写入。(注:将升级程序拷贝到第二个扇区后,把第三个扇区存放接收升级程序的特定位置写入垃圾数据(flash只能从1变成0,不能从0变1),避免启动程序一直重复。

注意点:

  1. flash只能从1变成0,不能从0变1。

  2. 有指针指向flash的时候不能进行读写操作,会出现某些flash寄存器出错,包括但不限于:WRG,PGP,PGS。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值