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