目录
ICP、ISP、IAP、JTAG、SWD下载方式
概述
JTAG
SWD
ICP
ISP
IAP
ISP与ICP的差别
ISP和IAP的差别
ICP、ISP、IAP、JTAG、SWD下载方式
概述
JTAG和SWD是一种标准协议,包含硬件标准和软件标准。ICP、ISP和IAP属于实际烧录程序的方式。
JTAG
优点:
-
不限于ARM内核单片机,能支持更多的单片机调试和下载
-
因为1的原因,所以使用范围更广
缺点:
-
需要更多的脚位
SWD
优点:
-
引脚数少,有利于节约电路板尺寸
-
SWD具有其特殊功能,比如能通过I/O打印调试信息
-
在高速大数据情况下,SWD整体性能比JTAG更好
缺点:
-
SWD是ARM设计的协议,主要针对他们的内核的芯片进行程序调试和下载
ICP
ICP:In Circuit Programing 在电路编程
主要烧录方式:可通过CPU的Debug Access Port 烧录代码,比如ARM Cortex的Debug Interface主要是SWD或JTAG
ISP
IAP:In applicating Programing 在应用编程
主要烧录方式:在系统编程,可借助MCU厂商预置的Bootloader 实现通过板载UART或USB接口烧录代码,比如STM32存储映射Code分区中的System memory可以预置厂商的Bootloader,让MCU支持通过UART下载(不限于UART,具体由厂商预置Bootloader实现而定)
用烧写器将code写入Flash,芯片在目标开发板,不脱离系统,即称在系统编程。
例如:STM32 在出厂时由ST 在这个存储区间内部预置了一段BootLoader(也即ISP 程序),这段程序出厂后无法修改。厂家提供的BootLoader 一般支持UART 协议,可以让我们直接通过串口将程序代码烧录到Main Flash memory 中。
IAP
IAP:In applicating Programing 在应用编程
主要烧录方式:由开发者实现Bootloader功能,比如STM32存储映射Code分区中的Flash本是存储用户应用程序的区间(上电从此处执行用户代码),开发者可以将自己实现的Bootloader存放到Flash区间,MCU上电启动先执行用户的Bootloader代码,该代码可为用户应用程序的下载、校验、增量/补丁更新、升级、恢复等提供支持,如果用户代码提供了网络访问功能,IAP 还能通过无线网络下载更新代码,实现OTA空中升级功能。
ISP与ICP的差别
For ISP
-
MCU必须处于可执行程序的状态 (除了上电, 还要接XTAL), 且必须预烧ISP-code在LDROM里面
-
烧录范围只限于APROM, DataFlash或CONFIG (但对使用者来说, 应经够了)
-
chip在LOCK的状态下, 仍然可以只更新某一区块 (APROM, DataFlash或CONFIG)
-
因为烧录的动作取决于ISP-code的写法, 所以给系统设计者的弹性较大
For ICP
-
MCU只要处于上电状态即可, 不必预烧任何code在MCU里面
-
烧录范围涵盖整颗MCU, 包括 APROM, DataFlash, CONFIG, LDROM 和 ROMMAP
-
chip在LOCK的状态下, 无法只更新某一区块, 只能在erase-ALL之后, 更新某一区块, 再逐一烧回其它区块(因为ICP的本质就是走串行接口的Writer Mode, chip被LOCK之后, 除了erase-ALL, 所有烧录动作皆会被禁止)
-
因为烧录纯粹是ICP硬件的行为, MCU无法自己更新自己, 所以给系统设计者的弹性较小(例如: 无法藉由ICP去实现IAP的功能)
ISP和IAP的差别
For ISP
-
ISP 程序升级需要到现场解决,不过好一点的是不必拆机器了
-
ISP一般是厂家已经写好的程序,不允许修改
For IAP
-
更新升级不需要到现场,例如:可通过无线网络下载更新代码,实现OTA空中升级功能
-
IAP可由开发者自己实现Bootloader功能,更加灵活
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)