使用IAR ETM Trace调试功能的要求
时间:2023-07-21 06:07:03 来源: 作者:
点击统计:
使用IARETMTrace调试功能的要求[复制链接]在某些情况下,应用代码可能突然跑飞或者产生异常中断,此时导致问题的原因可能难以发现。
调试这类问题时,可以考虑使用IAR所支持的ETMTrace调试功能,ETMTrace调试功能可以分析ETM嵌入式跟踪宏单元所记录的跑飞前后一段时间内MCU执行的所有指令,在查找此类复杂问题的原因时非常有帮助。
ETMTrace调试功能的实现依赖于芯片上的ETM嵌入式跟踪宏单元,ETM是ARMCoreSight调试架构中的一个可选硬件模块。
ETM单元用于提供指令跟踪。
在使能并开始跟踪后,ETM模块会生成指令跟踪数据,并通过ARMCoreSight调试架构中的跟踪端口接口单元TPIU进行输出,跟踪数据通过硬件仿真器传输到PC端的调试器软件例如IAR中,IAR能够对这些跟踪数据进行解析并还原出MCU内部的指令执行情况。
由于具有完整的指令流数据的记录,ETMTrace可以通过对这些跟踪数据的分析,在分析代码跑飞或异常中断等情形时提供极大的帮助。
(1)芯片带有ETM模块如上文所述,Trace功能依赖于ETM模块跟踪记录到的Trace数据,但是注意ETM硬件模块对于MCU而言是一个可选模块,并非所有型号的MCU都具有ETM模块,所以需要首先查询MCU的数据手册确认是否存在ETM硬件模块。
(2)仿真器支持Trace功能Trace功能会产生大量Trace数据,因此需要用到支持Trace功能的仿真器例如i-jetTrace,此类仿真器内部带有专门的存储空间,用于缓存Trace数据。
不支持Trace功能的仿真器如普通版本的i-jet仿真器则不支持ETMTrace调试功能。
(3)Trace数据输出引脚和调试接口连接带有ETM硬件模块的MCU会具有用于输出Trace数据的GPIO引脚,使用ETMTrace时,需要将芯片上的Trace数据输出引脚与调试接口连接。
常用的20PinJTAG调试接口下,Trace数据输出引脚和时钟线对应的连接位置如下图所示:(4)芯片的引脚数量若查询MCU数据手册,确认该型号MCU包含ETM硬件模块,还需要进一步确认所使用的MCU的引脚情况,部分型号MCU虽然内部带有ETM硬件模块,但是在引脚数量较少的型号中没有包含上述Trace数据的输出引脚,此时同样无法使用ETMTrace功能。
此帖出自综合技术交流论坛|||IAR所支持的ETMTrace调试功能,能解决BUG有时程序跑飞,一般的代码有BUG|||jlink是不是不支持?没有这几个脚的样子。
线上逛 MPS 芯云展厅,了解最新技术,简单闯关赢好礼!线上逛 MPS 芯云展厅,了解最新技术,简单闯关赢好礼![复制链接]MPS 线上芯云展厅重磅上线啦~两轮智慧出行、人工智能、电感、智能电机、智能驾驶及中大功率电源,六大前沿应用资讯一网打尽,技术资料随手下载,干货多多,精彩不断,简单闯关还能赢好礼! 【活动时间】即日起——5月16日 【参与方式】Step1:逛>> MPS 芯云展厅,点击地图中的定...
TVS二极管是否可以用稳压二极管替代?一、二者的相同点 TVS是在稳压管工艺基础上发展起来的新产品,是一种新型的高效电路保护器件之一,具有P秒级的响应时间和高浪涌吸收能力;稳压二极管(又名齐纳二极管),是利用PN结反向击穿状态,能在电流变化大变化范围内,而保持电压稳定所研发出来稳压作用的二极管。 从定义上来看,它们的共同点: (1)在一定条件情况下,均可以限...
J-Link无法连接芯片的常见解决办法J-Link无法连接芯片的常见解决办法[复制链接]在某些情况下,J-Link/Flasher仿真器可能无法与芯片正确连接,而导致在IDE中调试失败,出现例如“FailedtogetCPUstatusafter4retries”的报错信息,无法获取芯片的状态,可能是由于J-Link未与芯片成功连接导致的。 常见解决办法 一、验证J-Link与PC的连接通常使用J-LinkCommander来验证J-...