一、ISP(in-system programming,在系统编程)
PC 机通过串口把 bin/hex 文件直接烧录到单片机内部 FLASH 中,比如利用 JLINK 或者 USB 转 TTL 进行烧录。
二、IAP(in-application programming,在应用编程,在线升级)
(1)在实现 IAP 功能时, 单片机内部一定要有两块存储区,一般一块被称为 BOOT 区,另外一块被称为存储区。
(2)单片机上电运行在 BOOT 区,如果有外部改写程序的条件满足,则对存储区的程序进行改写操作。 如果外部改写程序的条件不满足,程序指针跳到存储区,开始执行放在存储区的程序,这样便实现了 IAP 功能。
由此可以想到手机系统升级时,需要先联网下载一个升级包,然后升级操作需要关机重启进行,即上电就运行在 boot 区,发现在存储区存在满足改写程序条件的升级包,则执行升级。