[工具下载] 三种烧录方式ICP、IAP和ISP详解

[复制链接]
355|1
rosemoore 发表于 2025-8-14 07:22 | 显示全部楼层 |阅读模式
  • ICP(In Circuit Programing) 在电路编程  SWD接口
  • ISP(In System Programing) 在系统编程(在线编程)   ISP 串口下载 (USB, UART即TTL,RS232COM口)。
  • IAP(In applicating Programing) 在应用编程

ICP(In-Circuit Programming):  ICP是在芯片安装到用户应用板上后,通过JTAGI办议对闪存微控制器中存储器编程。

ISP是指可以在板级上进行编程,也就是不用拆芯片下来,写的是整个程序,一般是通过ISP接口线来写。(芯片一般固化了用来ISP升级的boot程序)

IAP虽然同样也是在板级上进行编程,但是是自已对自已进行编程,在应用中进行编程,也即可以只是更改某一部分而不影响系统的其它部分,另外接口程序是自已写的,这样可以进行远程升级而不影响应用。(通常自己编写一个bootloader程序)


1、ICP(In Circuit Programing)

使用过新唐单片机的一定知道,新唐单片机配套了一套编程工具,那就是NuMicro_ICP_Programming_Tool。就像ST芯片配置的有J-Flash工具一样。

使用对应厂家的软件以及仿真器都可以烧录程序,目前主流的有Jtag(Joint Test Action Group)以及SWD(Serial Wire Debug)接口。而ICP编程就是以SWD接口进行的。

下图为Jtag接口和SWD接口的区别:

d4e91dd4668bbde238cc6807f0298e39.jpeg

执行ICP功能,仅需要3个引脚RESET、ICPDA及 ICPCK。RESET用于进入或退出ICP模式,ICPDA为数据输入输出脚,ICPCK为编程时钟输入脚。用户需要在系统板上预留VDD、GND以及这三个脚。

d52147876e159df970fc550551b4e89e.png

新唐官方给了详细的描述,ICP是指“在电路编程”,PC上运行的软件“NuMicro ICP编程工具”透过SWD的端口更新晶片内部APROM、LDROM、数据闪存(DataFlash)和目标用户配置字(Config)芯片。

a4e42d850f49481cc10889cac464ef4c.jpeg

2、ISP(In System Programing)

ISP是指“在系统上编程”,目标芯片使用USB/UART/SPI/I²C/RS-485/CAN周边接口的LDROM引导代码去更新晶片内部APROM、数据闪存(DataFlash)和用户配置字(Config)。

fb4ad655f14c8489c102128d9d4458ef.jpeg

https://www.docin.com/p-2143981023.html

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。

685cb963e2a2cc223b401f2403f64e6e.png


2、ISP是使用引导程序通过USB/UART等接口进行烧录的,首先就是需要有BoodLoad程序。最常见的烧录方式就是学习8051单片机时使用的STC-ISP烧录工具了。

3b17ab9cf101f2c1857cd47dc203114d.png


3、**IAP就是通过软件实现在线电擦除和编程的方法,**没有使用任何工具,仅仅是通过软件的方法来更新Flash中的数据。

讲述一个案例,那就是通过4G模块来远程更新程序。将Flash分成两块区域,第一块为Boodload程序,第二块区域存放的是应用程序APP。4G模块和目标板通讯,通讯中包含是否更新的位,如果主板接收到需要更新的位,就往Flash中写入一个标志位,比如’P’,之后程序跳到第一段程序Boodload程序中执行,首先判断Flash中的是否有更新程序的标志位’P’,如果有则通过规定的协议进行更新应用程序中的程序,更新完毕后清除Flash中的更新标志位,跳转到应用程序中去执行。如果没有更新程序标志位‘P’,跳到应用程序执行。


总结:

  • ICP:使用SWD接口进行烧录,如J-Link烧录器和J-Flash软件配合使用。
  • ISP:使用引导程序(Bootload)加上外围UART/USB等接口进行烧录。
  • IAP:软件自身实现在线电擦除和编程的方法,不使用任何工具。程序通常分成两块,分别为引导程序和应用程序。

神明祷告 发表于 2025-9-14 14:38 | 显示全部楼层
ICP:需专用编程器连接芯片引脚,板上烧录,适合批量生产,可能需断部分电路。
IAP:依赖内部 Bootloader,通过串口等在程序运行时更新固件,无需拆芯片,便于现场升级。
ISP:用 UART 等标准接口,无需专用编程器,直接对板上芯片烧录,适用于研发调试与小批量生产。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

64

主题

1636

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部