发 帖  
原厂入驻New
[文章]

使用IAR ETM Trace调试功能的要求

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

使用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功能。

相关经验

头像被屏蔽
提示: 作者被禁止或删除 内容自动屏蔽
回复

举报

评论

高级模式
您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
发文章
快速回复 返回顶部 返回列表