单片机-烧录方式(ICP/ISP/IAP)
- ■ ICP(In Circuit Programing)在电路编程
- ■ ISP(In System Programing)在系统编程 (BOOT0和BOOT0选择烧录接口 在进入ISP,有协议要求)
- ■ IAP(In applicating Programing)在应用编程 (用于远程推送升级)
- ■ 案例一CW32L083RCS6
- ■ 01. CW32L083RCS6描述
- ■ 02. CW32L083RCS6-LQFP64 通过 CW-Writer工具烧录
- ■ 案例二
■ ICP(In Circuit Programing)在电路编程
| 编号 | 描述 |
|---|---|
| 1 | ICP(In-Circuit Programming,在电路编程)的升级原理,可以简单概括为“硬件直连,绕过CPU,直接操作Flash”。 |
| 1 | ICP 完全不依赖芯片内部的任何引导程序(Bootloader),而是通过专用的硬件调试接口,直接对单片机的存储单元进行读写。 |
| 1 | ICP 必须通过单片机预留的专用调试引脚与外部连接。最常见的接口标准是 JTAG 和 SWD(Serial Wire Debug,串行线调试)。 |
| 1 | 使用对应厂家的软件以及仿真器都可以烧录程序, |
| 2 | 目前主流的有Jtag(Joint Test Action Group)以及SWD(Serial Wire Debug)接口。 而ICP编程就是以SWD接口进行的。<\b> SWDIO:串行数据线,负责双向传输程序数据。 SWCLK:串行时钟线,由调试器提供时钟信号,指挥数据传输的节奏。 GND:地线,确保调试器与单片机共地。 VCC:电源线,为目标板供电或检测目标板电压。 |
| 3 | ICP使用SWD接口进行烧录程序。常用的烧录工具为J-Link、ST-Link、Nu-Link。 与之配套的烧录软件为J-Flash、NuMicro_ICP_Programming_Tool、st-link utility。 |
■ ISP(In System Programing)在系统编程 (BOOT0和BOOT0选择烧录接口 在进入ISP,有协议要求)
| 编号 | 描述 |
|---|---|
| 1 | 出厂自带 引导程序Bootloader的 CW32L083 为例 将 BOOT0 引脚拉高来强制芯片进入 ISP 下载模式,芯片就会跳过用户程序,直接启动并运行这个系统自带的 Bootloader。 |
| 1 | ISP是指“在系统上编程”,目标芯片使用USB/UART/SPI/I²C/RS-485/CAN周边接口的LDROM引导代码去更新晶片内部APROM、数据闪存(DataFlash)和用户配置字(Config)。 |
| 2 | ISP是使用引导程序通过USB/UART等接口进行烧录的,首先就是需要有BoodLoad程序。 |
| 3 | 行业通用的标准文件传输协议 典型代表:YMODEM 协议。 |
//## ■ 01.
//## ■ 02.
■ IAP(In applicating Programing)在应用编程 (用于远程推送升级)
| 编号 | 描述 |
|---|---|
| 1 | 自己写的 Bootloader 实现升级。Bootloader + App 组合 一般上电运行app 通过接收指令或者检测到升级标志后下载文件校验后再跳转到Bootloader 进行app文件替换升级。 |
| 1 | IAP就是通过软件实现在线电擦除和编程的方法。 |
| 2 | IAP技术是从结构上将Flash存储器映射为两个存储体,当运行一个存储体上的用户程序时,可对另一个存储体重新编程,之后将程序从一个存储体转向另一个。 |
| 3 | IAP就是通过软件实现在线电擦除和编程的方法,没有使用任何工具,仅仅是通过软件的方法来更新Flash中的数据。 |
■ 案例一CW32L083RCS6
■ 01. CW32L083RCS6描述
CW32L083 是出厂自带 Bootloader 的。
CW32L083 出厂时,厂家已经在芯片内部的“系统存储区(System Memory)”预置了 Bootloader 程序。这部分空间对用户来说是只读的,你无法擦除或修改它。
如何触发进入:通常需要通过硬件引脚来强制芯片进入 ISP 下载模式。以 CW32L083 为例,一般在芯片复位时,将 BOOT0 引脚拉高,芯片就会跳过用户程序,直接启动并运行这个系统自带的 Bootloader。
■ 02. CW32L083RCS6-LQFP64 通过 CW-Writer工具烧录
CW32L083 是出厂自带 Bootloader 的。