IAP(In Application Programming)即在应用程序编程,是一种自举程序。由于产品固化后不容易采用传统下载器更新固件使得许多产品中内置Bootloader程序用于远程更新固件,有的应用产品在产品固化后,只预留了SPI、UART等通信接口,所以如果需要固件更新,只能考虑使用预留的通信接口进行更新固件操作,在一些上网设备或者无线设备上,也会使用到该功能,例如通过BLE、WIFI等无线通信进行固件更新,我们称为OTA(over the air technology))空中下载技术,也是利用到了IAP升级的原理。HolyChip HA系列支持第二复位向量的MCU的功能均支持此功能。
实现IAP功能时,即用户程序需要在运行中对自身的功能程序进行更新操作,需要在设计固件程序时编写两个项目代码,第二个项目程序不执行正常的功能操作,而只是通过某种通信方式(如UART、SPI、IIC等通信接口)接收程序或数据,执行对第一部分代码的更新,称之为Bootloader程序;第一个项目代码才是真正的功能代码,称之为APP程序。这两部分项目代码都同时烧录在Flash的不同地址范围,并且可以通过软件复位的方式随意切换。本应用笔记将以HC88T3541为范例介绍此功能。
|