查看: 586|回复: 0

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

[复制链接]
  • TA的每日心情
    开心
    2023-6-12 14:34
  • 签到天数: 165 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2021-3-5 15:05:21 | 显示全部楼层 |阅读模式
    分享到:
    在某些情况下,应用代码可能突然跑飞或者产生异常中断,此时导致问题的原因可能难以发现。调试这类问题时,可以考虑使用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功能。


    回复

    使用道具 举报

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

    本版积分规则

    关闭

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



    手机版|小黑屋|与非网

    GMT+8, 2024-4-19 21:23 , Processed in 0.109871 second(s), 16 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.