
简介
ETM trace是一种高速Trace,并提供强大的调试模式,可帮助客户解决最困难的问题。本文旨在介绍如何为i.MX RT11xx芯片启用ETM Trace以及使用uTrace调试器的基本步骤。
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 DAPSYStem.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 flagsWinPOS 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 窗口更新图例
TRACE32 PowerView提供了一个时序图,该时序显示了program counters 何时处于哪个function/symbol 范围内。
在图9中点击“ Chart”按钮将打开“图10 Trace.Chart.sYmbol”窗口。
图9 Trace.List窗口
图10. Chart.sYmbol 窗口
来源:恩智浦MCU加油站
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。