ISP:in system program 顾名思义,在系统编程,单片机不用从电路上拆下,直接用下载器或者串口即可完成程序的烧写。这个是用于工程师调试程序,或者出厂时烧写程序。本质上是芯片出厂时烧录到flash区域的一个导引程序,如STM32,通过改变BOOT0/1引脚实现串口编程,实际上就是一小段导引程序。
IAP:in application program 在应用编程,即程序正常运行过程中,自动对自己运行的程序升级。可以通过串口、网口、CAN、无线等通信口,将接收到的程序存入到新的Flash区域,从而实现程序的更新,应用场所一般是希望远程升级的,即不用人到现场就可以实现程序的升级。本质上,是用户自己编写的一个导引程序,名字叫Bootloader,然后划分出存储新程序的位置,设置程序更新标记,当升级失败时重新跳回到原来程序执行。