搜索
查看: 807|回复: 0

[原创] 使用IAR ETM Trace调试功能的要求

[复制链接]

该用户从未签到

39

主题

173

帖子

2

蝴蝶豆

金牌会员

最后登录
2021-3-29
发表于 2021-3-5 14:43:49 | 显示全部楼层 |阅读模式
在某些情况下,应用代码可能突然跑飞或者产生异常中断,此时导致问题的原因可能难以发现。调试这类问题时,可以考虑使用IAR所支持的ETM Trace调试功能,ETM Trace调试功能可以分析ETM嵌入式跟踪宏单元所记录的跑飞前后一段时间内MCU执行的所有指令,在查找此类复杂问题的原因时非常有帮助。
1.png
01
ETM嵌入式跟踪宏单元
ETM Trace调试功能的实现依赖于芯片上的ETM嵌入式跟踪宏单元,ETM是ARM CoreSight调试架构中的一个可选硬件模块。ETM单元用于提供指令跟踪。在使能并开始跟踪后,ETM模块会生成指令跟踪数据,并通过ARM CoreSight调试架构中的跟踪端口接口单元TPIU进行输出,跟踪数据通过硬件仿真器传输到PC端的调试器软件例如IAR中,IAR能够对这些跟踪数据进行解析并还原出MCU内部的指令执行情况。
2.png
由于具有完整的指令流数据的记录,ETM Trace可以通过对这些跟踪数据的分析,在分析代码跑飞或异常中断等情形时提供极大的帮助。

02
使用IAR ETM Trace调试功能的要求
(1) 芯片带有ETM模块
如上文所述,Trace功能依赖于ETM模块跟踪记录到的Trace数据,但是注意ETM硬件模块对于MCU而言是一个可选模块,并非所有型号的MCU都具有ETM模块,所以需要首先查询MCU的数据手册确认是否存在ETM硬件模块。

(2) 仿真器支持Trace功能
Trace功能会产生大量Trace数据,因此需要用到支持Trace功能的仿真器例如i-jet Trace,此类仿真器内部带有专门的存储空间,用于缓存Trace数据。不支持Trace功能的仿真器如普通版本的i-jet仿真器则不支持ETM Trace调试功能。
3.jpg
(3) Trace数据输出引脚和调试接口连接
带有ETM硬件模块的MCU会具有用于输出Trace数据的GPIO引脚,使用ETM Trace时,需要将芯片上的Trace数据输出引脚与调试接口连接。常用的20 Pin JTAG调试接口下,Trace数据输出引脚和时钟线对应的连接位置如下图所示:
4.png
(4) 芯片的引脚数量
若查询MCU数据手册,确认该型号MCU包含ETM硬件模块,还需要进一步确认所使用的MCU的引脚情况,部分型号MCU虽然内部带有ETM硬件模块,但是在引脚数量较少的型号中没有包含上述Trace数据的输出引脚,此时同样无法使用ETM Trace功能。


回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-4-20 06:23 , Processed in 0.154003 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表