目录
- 1 IAP和OTA
- 2、升级方案
- 2.1 两种方案
- 2.2 优劣势对比
1 IAP和OTA
通俗来说,IAP和OTA就像是“设备的自我更新能力”与“远程快递服务”的关系。 IAP的全称是“在应用编程”。通俗地讲,就是设备不需要返厂,也不需要工程师拿着数据线连到电脑上,而是通过运行自身的代码,就能把旧程序擦掉、写入新程序。这就好比你的手机系统自带了“系统更新”功能,它自己有能力下载并替换自己的底层代码。这是一种底层的技术机制。而OTA(Over-The-Air)是无线传输的“空中快递”。OTA的全称是“空中下载技术”。顾名思义,就是通过网络(比如Wi-Fi、4G/5G、蓝牙等无线网络),把新的固件或软件包从云端服务器直接发送到你的设备上。这就好比手机厂商给你推送了一个更新包,你连着网就能自动接收。它是一种升级场景和交付方式。
两者的关系是相辅相成的,OTA负责“送”,IAP负责“装”。OTA是一套完整的解决方案:包含了云端平台、网络通信协议以及设备端。它的核心任务是把新固件安全地送到设备里。IAP是实现OTA的基础能力,当OTA把新固件通过网络下载到设备后,必须依靠 IAP 这种技术手段,才能将新固件真正烧录进芯片的 Flash 中完成替换。
2、升级方案
2.1 两种方案
在嵌入式和物联网设备的固件升级中主要有两个方案,分别被称为单分区覆盖式更新和双分区交替更新(AB Swap)。第一个方案是实现一个bootlloader和APP镜像,bootlloader包含的功能主要是升级和跳转两部分,正常启动的时候系统先从bootloader起,然后跳转到APP业务镜像中。当APP接收到升级指令的时候,设置一个升级标准位,然后从APP跳转到bootloader,bootloader判断升级标志有效时进入升级模式,开始接收固件并更新镜像文件,升级完成之后清楚升级标志位,下次启动时系统从bootloader跳转到APP。
还有一个方案是bootloader只做跳转,镜像分APP A 和 APP B,正常跳转到时候bootloader依据跳转标志位判断是跳转到APP A还是APP B,跳转后正常执行业务流程