IAP在线升级方案
大学刚毕业那会心血来潮,针对面试题中的远程升级问题写了一篇简单的帖子,如今已工作一年,再次遇到IAP问题,工作之余,简单记录下思路,以供后续优化升级之便。
IAP在线升级分为3部分:
1.Bootloader:负责新版本的完整性和参数检查、应用程序的拷贝,切换等工作。
2.串口/无线 下载 用户应用程序
3.用户应用程序。
配合合理的Flash分区,可以十分方便的后期调试应用程序。比如下面的分区形式:

将Flash划分成2部分,每一部分都包含Boot、Params和App,
其中Params包含Boot 大小,起始地址,App的起始地址,版本号,空间大小,结束字符 等信息,
在App 中通过__attribute__((at(XXX_ADDR)))方式将BOOT 烧录文件转换成的数组 和 Params 写入到指定地址内存中,
这样就形成了一个完整的后续升级文件,调试起来十分方便,而且Params区的加入可以方便后续调整应用程序的实际大小,不受BOOT的限制。

浙公网安备 33010602011771号