单片机的烧录方式主要可以分为三种:
1.ICP(In Circuit Programing)在电路编程
2.ISP(In System Programing)在系统编程
3.IAP(In applicating Programing)在应用编程
1.ICP(In Circuit Programing)
使用硬件对应厂家的软件以及仿真器都可以烧录程序,目前主流的有JTAG和SWD接口。而ICP编程就是以SWD接口进行的。
执行ICP功能,仅需要三个引脚:RESET、ICPDA、和ICPCK。RESET用于进入或退出ICP模式,ICPDA为数据输入输出引脚,ICPCK为编程时钟输入引脚。用户需要在系统板上预留VDD、GND和这三个引脚。
大致的工作流程:PC上运行的软件(ICP编程工具)通过SWD的接口更新芯片内部APROM、LDROM、数据闪存(DataFlash)和目标用户配置字(Config)
2.ISP(In System Programing)
与ICP不同的是,目标芯片通过USB/UART/SPI/I²C/RS-485/CAN等周边接口的LDROM引导代码去更新芯片的内部APROM、数据闪存(DataFlash)和用户配置字(Config)。
3.IAP(In applicating Programing)
IAP就是通过软件实现在线电擦除和编程的方法。IAP技术是从结构上将Flash存储器映射为两个存储体,当运行一个存储体上的用户程序时,可对另一个存储体重新编程,之后将程序从一个存储体转向另一个。
各自的烧录工具
1.ICP使用SWD接口进行烧录程序。常用的烧录工具为J-Link、ST-Link、Nu-Link。与之配套的烧录软件为J-Flash、NuMicro_ICP_Programming_Tool、st-link utility。
2.ISP是使用引导程序通过USB/UART等接口进行烧录的,首先就是需要有bootloader。最常见的烧录方式就是学习8051单片机时使用的STC-ISP烧录工具了。
3.IAP就是通过软件实现在线电擦除和编程的方法,没有使用任何工具,仅仅是通过软件的方法来更新Flash中的数据。
总结
1.ICP:使用SWD接口进行烧录,如J-Link烧录器和J-Flash软件配合使用。
2.ISP:使用引导程序(bootloader)加上外围UART/USB等接口进行烧录。
3.IAP:软件自身实现在线电擦除和编程的方法,不使用任何工具。程序通常分成两块,分别为引导程序和应用程序。