参考:https://zhuanlan.zhihu.com/p/69237591
最近学习了MCU三种烧录方式,在此记录一下。
MCU的烧录方式可分为三种:ICP、ISP以及IAP。
ICP
ICP(In Circuit Programming,在电路编程),需要使用芯片对应产家的软件或仿真器烧录程序。ICP编程以SWD(Serial Wire Debug)接口进行。
在PC上运行芯片对应产家的软件通过SWD的端口更新芯片内部APROM(Application Program ROM,用于存储应用程序的Flash)、数据闪存(DataFlash,用于存储常量数据的Flash)以及用户配置字(Config)。
ISP
ISP(In System Programming,在系统编程),目标芯片使用USB、UART、SPI、I2C、RS485、CAN周边接口的LDROM引导代码去更新芯片内部APROM、数据闪存以及用户配置字。
IAP
IAP(In Application Programming,在应用编程),是用户自己的程序在运行过程中对User Flash的部分区域进行烧写。IAP是通过软件实现在线电擦除和编程的一种烧录方式。
IAP技术从结构上将Flash存储期映射为两个存储体,当运行一个存储体上的用户程序时,可对另一个存储体重新编程,之后将持续从一个存储体转向另一个存储体。
目的
为了在产品发布后可以方便地通过预留的通信口对产品中的固件持续进行更新升级。
区分
可以以烧录过程中使用的烧录工具来区分这三种烧录方式。
ICP:使用SWD接口进行烧录。
ISP:使用引导程序(Bootloader)加上外围电路UART/USB等接口进行烧录。
IAP:软件自身实现在线电擦除和编程,不使用任何工具。程序通常分为引导程序和应用程序两部分。