如何在i.MX RT11xx系列上使能ETM Trace

简介
etm trace是一种高速trace,并提供强大的调试模式,可帮助客户解决最困难的问题。本文旨在介绍如何为i.mx rt11xx芯片启用etm trace以及使用utrace调试器的基本步骤。
安装软件
用户可以从https://www.lauterbach.com/frames.html?download_overview.html找到trace32安装软件包,将trace32_201909.7z下载到计算机上并进行安装。注意以下两点:1)由于安装包比较大,可以根据目标处理器安装软件组件,以节省硬盘空间; 2)可以在c: t32 bin windows64 drivers文件夹中找到安装的驱动程序。连接硬件trace32调试器硬件包括:
• 通用调试器硬件
• 特定于处理器体系结构的调试电缆                                       图1. 硬件连接示意图1. 以i.mx rt1170验证板为例,图2 i.mx rt1170验证板硬件连接图。      图2  i.mx rt1170 evk board 硬件连接图2. i.mx rt1170不需要通过烧写efuse来更改调试模式。
3. 焊接trace 信号线相关的电阻,trace_clk(r1885),trace_d0(r1881),trace_d1(r1882),trace_d2(r1883),trace_d3(r1884),并删除和网口复用的电阻,r1290, r1293, r1295, r1294, r1296(图3);trace的连接器(图4)。
图3 trace相关电阻
                      图4 trace信号的连接器
使用软件
点击cpu->system settings, 再点击cpu 以选择cpu类型,如图5所示。
                           图5 选择cpu类型
并将调试端口类型设置为swd,如图6所示:
图6 调试端口类型设置为jtag
最后在“mode”中选择“up”以调试模拟重启cpu,并在调试器和cpu之间建立通信。
加载应用以sdk_2.6.1_evk-mimx i.mx rt1170为例,打开iar hello_world项目,然后将其设置为debug mode,然后将生成的文件后缀设置为.elf,如图7所示,您可以在debug文件夹中找到生成的hello_world.elf文件。
                      图 7 在iar中生成.elf文件
创建脚本将以下脚本命令另存为.cmm格式文件,并将其命名为hello_world.cmm,winclear; --------------------------------------------------------------------------------
; initialize and start the debugger
reset
system.reset
system.cpu imxrt1176-cm7
system.config.debugporttype jtag
if combiprobe()||utrace()
(
system.config.connector mipi20t
)
system.option dualport on
system.memaccess dap
system.jtagclock 10mhz
trace.disable
etm.off
itm.off
system.attach
if run()
break
; --------------------------------------------------------------------------------
; load demo program (uses internal ram only)
data.load.elf ~~~~/hello_world_demo_cm7.elf
; --------------------------------------------------------------------------------
; initialize offchip trace (etm, itm)
if combiprobe()||utrace()||analyzer()
(
; set pinmux and enable clocks
data.set ad:0x400e821c %long 0x00000003 ; iomuxc.sw_mux_ctl_pad_gpio_disp_b2_02.mux_mode = 0x3
data.set ad:0x400e8220 %long 0x00000003 ; iomuxc.sw_mux_ctl_pad_gpio_disp_b2_03.mux_mode = 0x3
data.set ad:0x400e8224 %long 0x00000003 ; iomuxc.sw_mux_ctl_pad_gpio_disp_b2_04.mux_mode = 0x3
data.set ad:0x400e8228 %long 0x00000003 ; iomuxc.sw_mux_ctl_pad_gpio_disp_b2_05.mux_mode = 0x3
data.set ad:0x400e822c %long 0x00000003 ; iomuxc.sw_mux_ctl_pad_gpio_disp_b2_06.mux_mode = 0x3
data.set ad:0x40c08028 %long 0x0000000a ; iomuxc_setpinmux(iomuxc_gpio_lpsr_10_gpio12_io10,0u);
; switch clock multiplexer for the coresight trace
data.set ad:0x40cc0300 %long 0x00000400 ; ccm.clock_root[6].clock_root_control.mux = 0x4
; disable the effect of swo on tpiu
data.set edap:0x80048ef0 %le %long 0x00000001
data.set edap:0x80048f00 %le %long 0x00000001
tpiu.portsize 4
tpiu.portmode continuous
itm.datatrace correlateddata
itm.on
etm.trace on
etm.cond all
etm.on
)
if analyzer()
(
trace.method analyzer
trace.autoinit on
trace.autofocus
)
else if combiprobe()||utrace()
(
trace.method canalyzer
trace.autoinit on
canalyzer.autofocus
)
; --------------------------------------------------------------------------------
; start program execution
go.direct main
wait !state.run()
; --------------------------------------------------------------------------------
; open some windows
winclear
mode.hll
winpos 0. 0. 116. 26.
list.auto
winpos 120. 0. 100. 8.
frame.view
winpos 120. 14.
var.watch
var.addwatch %spotlight ast flags
winpos 120. 25.
trace.list
;winpos 0. 32.
;trace.draw.var %default plot1
enddo加载应用打开trace32 软件, 单击file-> load file. 找到上面生成的hello_world.elf文件并运行它。
1. 单击view-> list source 打开代码调试窗口
2. 单击step或按f2 单步执行程序
3. 单击go或按f7直接运行程序
4. 单击break或按 f8 暂停程序
trace调试trace32提供了一个称为trace.showfocus的强大功能,可以分析跟踪端口的信号完整性。
水平轴以纳秒为单位反映时间线。左侧显示了每个跟踪信号的当前延迟。红线显示采样点。每个信号可能有所不同。如果设置的值小于零或不是所有采样点都相等,则数据线会延迟。如果值大于零,则时钟线被延迟。
按下“scan”按钮将执行analyzer.showfocus以更新窗口。在最佳情况下,它应类似于图8所示:                      图8 窗口更新图例
trace32powerview提供了一个时序图,该时序显示了programcounters 何时处于哪个function/symbol 范围内。
在图9中点击“ chart”按钮将打开“图10 trace.chart.symbol”窗口。
                      图9 trace.list窗口
                     图10. chart.symbol 窗口
end
更多恩智浦ai-iot市场和产品信息,邀您同时关注“nxp客栈”微信公众号
nxp客栈
恩智浦致力于打造安全的连接和基础设施解决方案,为智慧生活保驾护航。
长按二维码,关注我们
恩智浦mcu加油站
这是由恩智浦官方运营的公众号,着重为您推荐恩智浦mcu的产品信息、开发技巧、教程文档、培训课程等内容。
长按二维码,关注我们
原文标题:如何在i.mx rt11xx系列上使能etm trace
文章出处:【微信公众号:恩智浦mcu加油站】欢迎添加关注!文章转载请注明出处。

半导体营收5年升3成 因为有它
MLO初体验:AR眼镜领域的“灯厂”
电线电缆导体材料的选择以及它的应用场合
对于以太网交换机有什么用你真的了解吗
双杰电气智能电网高端装备研发制造基地项目正式落户长丰
如何在i.MX RT11xx系列上使能ETM Trace
索尼首款电动车Vision-S已上路 并非意味着其要进军汽车制造业
一位软件工程师辛酸历程
铠侠与西数218层3D NANDFlash出货 年内量产
爱特梅尔发布综合式应用商店和协作工作平台
基于神经匹配的二维地图视觉定位
作为一种新型的显示技术产品,透明屏有哪些应用场景?
什么是超频 超频关键因素有哪些
中国T800碳纤维量产打破垄断 成本仅为350元/公斤
缓存如何工作,如何设计CPU缓存
突破!全球首颗量子通信卫星即将发射 助力军用通信安全性
5G接下来该如何发展?
简易手势探测器制作教程
5G时代中国移动即将未战先输?
从政策角度一览我国人工智能建设的轨迹