良许Linux教程网 干货合集 Cortex-M强大的调试和跟踪CoreSight技术

Cortex-M强大的调试和跟踪CoreSight技术

现在许多Cortex-M处理器能够方便地进行调试,这得益于一项基于Arm Cortex-M处理器设备的技术——CoreSight。CoreSight技术的引入,带来了强大且全新的调试和跟踪功能。

调试和跟踪功能

CoreSight两个主要功能就是调试和跟踪功能。

1.调试功能

  • 运行处理器的控制,允许启动和停止程序
  • 单步调试源码和汇编代码
  • 在处理器运行时设置断点
  • 即时读取/写入存储器内容和外设寄存器
  • 编程内部和外部FLASH存储器

2.跟踪功能

  • 串行线查看器(SWV)提供程序计数器(PC)采样,数据跟踪,事件跟踪和仪器跟踪信息
  • 指令(ETM)跟踪直接流式传输到您的PC,从而实现历史序列的调试,软件性能分析和代码覆盖率分析

一张图了解整体内容:

image-20231203203934870
image-20231203203934870

JTAG

JTAG是行业标准的接口,用于下载和调试目标处理器上的程序以及许多其他功能。它提供了连接设备的简便方法,并且在所有基于Arm处理器的设备上都可用。JTAG接口可与基于Cortex-M的设备一起使用,以访问CoreSight调试功能。

1.JTAG历史

JTAG是联合测试工作组(Joint Test Action Group)的简称,是在名为标准测试访问端口和边界扫描结构的IEEE的标准1149.1的常用名称。此标准用于验证设计与测试生产出的印刷电路板功能。

1990年JTAG正式由IEEE的1149.1-1990号文档标准化,在1994年,加入了补充文档对边界扫描描述语言(BSDL)进行了说明。从那时开始,这个标准被全球的电子企业广泛采用,边界扫描几乎成为了JTAG的同义词。

—引用维基百科

2.JTAG接口

JTAG的接口通常是4/5个接脚接口连到芯片上:

  • TDI(测试数据输入)
  • TDO(测试数据输出)
  • TCK(测试时钟)
  • TMS(测试模式选择)
  • TRST(测试复位)可选
image-20231203203917451
image-20231203203917451

SWD串行线调试

SWD,Serial Wire Debug(串行线调试)模式是标准JTAG接口的替代方法,它仅使用两个引脚即可提供与JTAG相同的调试功能,而不会降低性能,并通过串行线查看器(SWV)引入了数据跟踪功能。

在JTAG引脚中包含SWD接口引脚,从而允许标准目标连接器中使用。引脚包含:

  • TCLK-SWCLK(串行时钟)
  • TMS-SWDIO(串行数据输入/输出)
  • TDO-SWO(串行线输出-SWV使用)

关于SWV

SWV:Serial Wire Viewer,串行线查看器

基于Cortex-M3、 M4、 M7的设备能够根据所需信息或分析的类型,以多种方式提供高速数据跟踪信息。当系统处理器继续全速运行时,它通过SWO引脚传输。

可从ITM(仪器跟踪宏单元)和DWT(数据观察点和跟踪)单元获得信息,其中包括:

  • PC(程序计数器)采样
  • 显示CPU周期统计信息的事件计数器
  • 具有定时统计信息的异常和中断执行
  • 跟踪数据-用于时序分析的数据读取和写入
  • 用于简单printf样式调试的ITM跟踪信息

可参看我之前的文章《printf系列教程》,后台回复【printf系列教程】查看更多。

拓展:下载调试器

之前给大家分享过《下载调试接口 SWD 和 JTAG的区别》,选择下载调试器时也可以对比一下二者差异。

支持JTAG和SWD模式的下载调试器很多,J-Link、 ST-LINK、 ULINK这些大众化的工具都支持,还有很多小众的下载调试器(比如e-Link、 GD-Link等)同样也支持SWD模式。

那么,我们该选择哪一种呢? 哪一种更香呢?

支持全面的一点的算J-Link了,但正版的价格,对于普通个人来说,有压力。

有多种版本,算下来好几千一个。

image-20231203203929486
image-20231203203929486

同样,正版ULINK也和J-Link一样,价格上千。当然,很多人买到的ULINK和J-Link都是盗版。

相比ULINK和J-Link而言,正版的ST-Link价格就很划算,一个正版ST-Link V2才两三百,但缺点就是只能针对STM8/32使用。

当然,ST-Link还有一个神操作:变成J-link,请参看我的文章《ST-Link如何秒变J-link,手把手教你实现该功能》。

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部