详解CoreSight技术中的调试和跟踪功能

如今众多cortex-m处理器能这么方便调试,在于有一项基于arm cortex-m处理器设备的coresight技术,该技术引入了强大的新调试(debug)和跟踪(trace)功能。
下面就来重点讲讲关于coresight中调试和跟踪的相关内容。
调试和跟踪功能
coresight两个主要功能就是调试和跟踪功能。
1.调试功能
运行处理器的控制,允许启动和停止程序
单步调试源码和汇编代码
在处理器运行时设置断点
即时读取/写入存储器内容和外设寄存器
编程内部和外部flash存储器
2.跟踪功能
串行线查看器(swv)提供程序计数器(pc)采样,数据跟踪,事件跟踪和仪器跟踪信息
指令(etm)跟踪直接流式传输到您的pc,从而实现历史序列的调试,软件性能分析和代码覆盖率分析
一张图了解整体内容:
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(测试复位)可选
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跟踪信息
可参看我之前的文章《打印输出教程》。
拓展:下载调试器
之前给大家分享过《下载调试接口 swd 和 jtag的区别》,选择下载调试器时也可以对比一下二者差异。
支持jtag和swd模式的下载调试器很多,j-link、 st-link、 ulink这些大众化的工具都支持,还有很多小众的下载调试器(比如e-link、 gd-link等)同样也支持swd模式。
那么,我们该选择哪一种呢? 哪一种更香呢?
支持全面的一点的算j-link了,但正版的价格,对于普通个人来说,有压力。
有多种版本,算下来好几千一个。
同样,正版ulink也和j-link一样,价格上千。当然,很多人买到的ulink和j-link都是盗版。
相比ulink和j-link而言,正版的st-link价格就很划算,一个正版st-link v2才两三百,但缺点就是只能针对stm8/32使用。
原文标题:arm基础教程 | arm cortex-m的调试和跟踪技术
文章出处:【微信公众号:strongerhuang】欢迎添加关注!文章转载请注明出处。


利用车辆计算网关平台推动软件定义的汽车
如何使用Arduino制作智能垃圾箱
三星有望超越Intel?成为全球最大的半导体厂商
ROHM具有业界超高性能的650V耐压GaN HEMT
京东发布iPhone8限量快递盒,玩文艺讲情怀用文物科普搞事情
详解CoreSight技术中的调试和跟踪功能
北京20G免费流量开领:只要北京运营商的号码即可!
中瑞宏芯致力于开发新一代碳化硅功率芯片和模块
基于安路PCIe SGDMA 高速数据传输方案
LBP特征的描述、原理以及特征向量进行提取的步骤解析
中国移动公布了2019至2020年分布式块存储产品集中采购结果
机器人不断发展,未来人机共存将是趋势
如何利用RTLinux进行嵌入式应用程序的开发
Configuration Wizard的语法规则
基于微处理器实现锂电池外围检测系统的设计
特斯拉目前正通过各种方法提升Model 3的生产和交付效率
LED灯带SASO认证 IEC检测和检验要求
NVIDIA车载人工智能(AI)引擎助力 起重机也能无人驾驶
电气中的三相交流电如何区分相序?
汽车混合动力系统发动机和电机的协作关系