MCU之IAP升级

  1. IAP升级简介

    IAP是In Application Programming的首字母缩写,IAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写,目的是在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级

  2. IAP升级流程

IAP固件升级流程图

  1. IAP升级要点提炼
    1) 单个升级包校验错误或者接收超时的时候,要重置升级流程,重新等待接收起始命令;
    2)跳转到APP前,要对接收总包数,整个固件进行校验,避免跳转到APP卡死;
    3 ) 将升级数据写入ROM时,要判断写入地址合法性,写入和读出数据是否一致。避免将BOOT代码区或者参数存储区擦除甚至是访问非法地址造成程序发生致命的错误;
    4)跳转到APP前,要关闭所有中断,复位所有外设。避免执行APP时,BOOT程序仍然在产生中断;

  2. IAP升级方式

    方式一: 在ROM资源比较紧张的情况下,边擦除APP边写入升级数据
    方式二:在ROM资源充足的情况下,即程序设计时APP划分的可用地址空间超过两倍固件大小。可以把该空间分为两个区域SPACE1和SPACE2,接收到升级包后,先写入到SPACE 2,升级完成校验成功后再覆盖到SPACE1。
    .优缺点对比:方式二需要较大的存储空间。即使是升级失败,SPACE1中的APP仍能使用;方式一一旦升级失败,只能等待重新升级。

总结:
1) 设置流程图时要考虑到各种情况,逻辑上严密,严谨,不能有死角。除if…else if …涉及到的情况外,不要漏掉else…可能发生的情况,一旦这种情况发生,有可能对你的程序造成灾难性的影响;
2)程序执行发生错误时,要有从故障恢复到正常的能力,这一点在BOOT的设计上尤为重要。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值