一文读懂 ICP、ISP、IAP、JTAG、SWD、三种启动模式

您所在的位置:网站首页 jtag与swd接口定义 一文读懂 ICP、ISP、IAP、JTAG、SWD、三种启动模式

一文读懂 ICP、ISP、IAP、JTAG、SWD、三种启动模式

2024-07-13 21:31| 来源: 网络整理| 查看: 265

前言

单片机的 BOOT0、BOOT1 两个引脚有什么作用?单片机的三种启动模式有什么区别?JTAG、SWD 是什么,有什么区别?单片机的下载方式有哪些?下面我们以 STM32 单片机为例,来解答这些问题。

文章目录 前言启动模式调试接口下载方式调试方式总结参考文章

启动模式

STM32 单片机可通过 BOOT0、BOOT1 两个引脚选择三种不同的启动模式,如下表所示:

BOOT0BOOT1启动模式说明0x从主闪存存储器启动主闪存存储器是 STM32 内置的 Flash,该启动方式是让程序正常运行的启动方式。10从系统存储器启动系统存储器是 STM32 内部的一块特定的 ROM,在 STM32 出厂时,由 ST 在这个区域预置了一段 BootLoader,用户无法修改。11从内置 SRAM 启动内置 SRAM,既然是 SRAM,自然没有断电存储的能力,所以该模式一般用于程序调试。

需要注意的是,当 STM32 上电时,无论哪种启动模式,程序都将会从地址 0x0000 0000 开始执行,三种启动模式只是将各自的存储空间映射到地址 0x0000 0000。

调试接口

JTAG(Joint Test Action Group)和 SWD(Serial Wire Debug)是两种常用的调试接口,均可用于程序的下载和调试。

JTAG 这个名字是由该标准的制定者 —— 联合测试行动小组(Joint Test Action Group)的名字缩写而来。它是一种标准化的测试接口,最初用于检测电路板上的连接错误,后来被广泛应用于芯片内部逻辑测试、边界扫描、调试和编程等领域。 JTAG 接口通常由 4 或 5 根信号线组成,分别是: TCK(Test Clock):测试时钟线,提供同步时钟信号;TMS(Test Mode Select):测试模式选择线,用于控制 JTAG 状态机的转换;TDI(Test Data Input):测试数据输入线,用于向目标芯片发送数据;TDO(Test Data Output):测试数据输出线,用于从目标芯片接收数据;TRST(Test Reset)(可选):测试复位线,用于复位 JTAG 状态机。 SWD(Serial Wire Debug)是一种两线调试接口,由 ARM 公司提出,用于替代 JTAG 接口,提高调试效率和降低成本。 SWD 接口只需要两根信号线,分别是: SWCLK(Serial Wire Clock):串行时钟线,提供同步时钟信号;SWDIO(Serial Wire Data Input/Output):串行数据输入输出线,用于双向数据传输。

需要注意的是,玩单片机的还会经常见到 STLink、JLink、DAPLink、CMSIS DAP 等名词,这些属于是仿真器的类型,而不是调试接口。

下载方式

单片机的下载方式分为 ICP(In Circuit Programing)、ISP(In System Programing)和 IAP(In Application Programing)三种:

ICP(In Circuit Programing): 在电路编程,使用 JTAG/SWD 等调试接口进行编程,如下图所示: 在这里插入图片描述ISP(In System Programming): 在系统编程,使用系统存储器中预置的 BootLoader 和外围 UART/SPI/IIC 等通讯接口进行编程,如下图所示: 在这里插入图片描述IAP(In Application Programming): 在应用编程,使用内置 Flash 中用户自定义的 BootLoader 和外围 UART/SPI/IIC 等通讯接口进行编程。这种方式将内置 Flash 分成了两个区域,一个区域用于存储用户自定义的 BootLoader,另一个区域用于存储真正需要运行的 APP 程序。如下图所示: 在这里插入图片描述 调试方式 在 Flash 中调试: 即将程序下载到内置 Flash 中进行调试,这是一般情况下 Keil、IAR 等集成开发环境默认的调试方式。在 SRAM 中调试: 即将程序下载到内置 SRAM 中进行调试。这种调试方式具有下载速度快、不改写 Flash 中原有程序的优点,但是需要对 Keil、IAR 等集成开发环境进行相应的配置(具体如何配置此处不在展开),并且需要将 STM32 单片机的 BOOT0、BOOT1 两个引脚均拉高(从内置 SRAM 启动)。

在没有特殊需求的情况下,我们选择默认的在 Flash 中调试即可。在 SRAM 中调试虽然下载更快,但是操作比较繁琐。

总结

本篇文章依次讲述了启动模式、调试接口、下载方式、调试方式,下面来总结一下它们之间的对应关系,如下表所示:

下载与调试方式对应的接口对应的启动模式(BOOT0 BOOT1)ICPJTAG/SWD 等调试接口从主闪存存储器启动(0 x)ISPUART/SPI/IIC 等通讯接口从系统存储器启动(1 0)IAPUART/SPI/IIC 等通讯接口从主闪存存储器启动(0 x)在 Flash 中调试JTAG/SWD 等调试接口从主闪存存储器启动(0 x)在 SRAM 中调试JTAG/SWD 等调试接口从内置 SRAM 启动(1 1) 参考文章

https://blog.csdn.net/qq_46187594/article/details/107836761 https://blog.csdn.net/hbsyaaa/article/details/116141061 https://blog.csdn.net/weixin_43764974/article/details/131464428 https://blog.csdn.net/zyxhangiian123456789/article/details/79100920



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3