打印
[牛人杂谈]

SWD、JTAG、DAP、STLink、JLink、ULink这些之间有什么关系

[复制链接]
1200|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
仿真器(Simulator)
调试器(Debugger)
JTAG(Joint Test Action Group)(测试行动联合组织)
SWD(Serial Wire Debug)(串行线调试)
DAP(Debug Access Port)(调试访问端口)(DAP通常是指CMSIS-DAP)
仿真器与调试器时不同的两个东西,但是现在这两者通常被混为一谈。
仿真器(Simulator)是什么:
使用仿真器时,不需要有MCU实物。

仿真器现在很少用,因为他已被调试器取代。

仿真器分为两种,软件仿真器和硬件仿真器。

软件仿真器就是在PC上模拟MCU的运行,比如可以在Keil上模拟51单片机的运行而不需要51单片机实物。

硬件仿真器。比如51单片机的仿真器,它相对于51单片机,主要就是多了一个调试的功能(参考普中的51仿真器)。

仿真器没落的原因:

第一点,仿真器往往只适用于那些内核中不含有硬件调试模块的MCU,比如51单片机,这种MCU不能进行调试,如果想要进行调试,只能使用仿真器。(在STM32中,Cortex-M内核含有硬件调试模块,可以进行调试)

第二点,仿真器的价格贵,而且不通用。比如51仿真器只能仿真51。如果你想仿真STM32F1xx,就需要STM32F1xx的仿真器。如果你想仿真STM32F4xx,就需要STM32F4xx的仿真器。


调试器(Debugger)是什么:
使用调试器时,必须要有MCU实物。调试器和MCU是合作关系。调试器往往具有下载功能。

图片中的都是调试器(Debugger)。包括STLink、JLink、ULink、DAP等等。

如果一个DAP遵循了CMSIS-DAP标准,他就可以支持所有Cortex-M内核的单片机,使用DAP最大的好处就是免驱动,不用下载驱动。但是STM32CubeIDE只支持STLink和JLink。

因为在STM32单片机中,Cortex-M内核含有硬件调试模块,可以进行调试,不需要另外的、单独的仿真器。我们只需要使用仿真器将电脑和MCU连接起来,再配置一下相关的设置,就可以进行调试了。

Cortex-M内核含有硬件调试模块,该模块可以在取指(指令断点)或者访问数据(数据断点)时停止。内核停止时,可以查询内核的内部状态和系统的外部状态(外设的状态)。完成查询后,可以恢复程序的执行。


使用特权

评论回复
沙发
yiyigirl2014|  楼主 | 2023-11-27 20:26 | 只看该作者
JTAG(Joint Test Action Group)和SWD(Serial Wire Debug)是什么:
JTAG和SWD都是调试接口。不过这两种调试接口是完全不同的。
JTAG接口有5个:JTMS、JTCK、JTDI、JTDO、NJTRST
SWD接口有2个:SWCLK、SWDIO
为了节省IO口资源,通常使用的都是SWD。

使用特权

评论回复
板凳
yiyigirl2014|  楼主 | 2023-11-27 20:26 | 只看该作者
无论使用的是哪种调试器,都需要注意,使用的调试接口到底是JTAG还是SWD。

使用特权

评论回复
地板
Stahan| | 2023-11-28 10:57 | 只看该作者
51的调试器多少钱啊

使用特权

评论回复
5
Stahan| | 2023-11-28 10:57 | 只看该作者
好像一直51都是用串口下载啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

213

主题

3530

帖子

10

粉丝