0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

恩智浦MCU加油站 来源:未知 2023-10-12 08:55 次阅读

简介

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加油站】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16019

    浏览量

    343671
  • 恩智浦
    +关注

    关注

    14

    文章

    5715

    浏览量

    100779

原文标题:如何在i.MX RT11xx系列上使能ETM Trace

文章出处:【微信号:NXP_SMART_HARDWARE,微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    I.MX RT1052代码执行在哪里?

    试用的开发板里有了I.MX RT1052 但是看I.MX RT1052有代码与数据的SPI Flash,还有SRAM,还有片上的TCM 代码可以执行在TCM上么?还是在SRAM上运行。
    发表于 11-09 06:49

    i.MX RT中FlexSPI外设不常用的读选通采样时钟源

    i.MX RT中FlexSPI外设不常用的读选通采样时钟源
    的头像 发表于 10-30 17:44 266次阅读
    <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>中FlexSPI外设不常用的读选通采样时钟源

    浅谈i.MX RT10xx系列MCU外接24MHz晶振的作用

    浅谈i.MX RT10xx系列MCU外接24MHz晶振的作用
    的头像 发表于 10-30 17:22 400次阅读
    浅谈<b class='flag-5'>i.MX</b> <b class='flag-5'>RT10xx</b><b class='flag-5'>系列</b>MCU外接24MHz晶振的作用

    i.MX RT1050上如何实现双大容量存储(MSC)设备

    i.MX RT1050上如何实现双大容量存储(MSC)设备
    的头像 发表于 10-30 17:08 336次阅读
    在<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1050上如何实现双大容量存储(MSC)设备

    i.MX RT500/600系列上串行NOR Flash双程序可交替启动设计

    i.MX RT500/600系列上串行NOR Flash双程序可交替启动设计
    的头像 发表于 10-27 09:36 264次阅读
    <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>500/600<b class='flag-5'>系列上</b>串行NOR Flash双程序可交替启动设计

    XMCD – i.MX RT11xx系列简单易用的特定外设配置功能

    i.MX RT1160/ RT1170 B0以及后续的RT1180开始,BootROM引入了XMCD新功能,其用途与传统DCD功能(之前文章介绍过)类似。DCD可以实现对芯片指定外设
    的头像 发表于 10-26 09:25 705次阅读
    XMCD – <b class='flag-5'>i.MX</b> <b class='flag-5'>RT11xx</b><b class='flag-5'>系列</b>简单易用的特定外设配置功能

    i.MX RT的FlexRAM配置问题

    i.MX RT的FlexRAM配置问题
    的头像 发表于 10-24 15:46 289次阅读
    <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>的FlexRAM配置问题

    i.MX RT的FreeRTOS MCUXpresso工程中添加runtime

    在调试 i.MX RT FreeRTOS MCUXpresso SDK工程的时候, 很多网友需要添加查看每个task的runtime功能。
    的头像 发表于 06-09 09:30 975次阅读
    在<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>的FreeRTOS MCUXpresso工程中添加runtime

    RT1050/1060/1064在硬件层面可以互换吗?我需要改变什么?

    我正在为我们的控制器使用 K66 和 KV58。 1) 我被告知 NXP 将更新 i.MX RT 系列而不是 K 和 KV 系列。我想开始开发基于
    发表于 05-19 12:43

    i.MX RT10xx使用FlexIO实现XY2-100振镜控制协议

    本文介绍了如何使用i.MX RT系列芯片上的FlexIO实现XY2-100激光振镜控制协议。FlexIO模块是NXP Kinetis和i.MX RT
    的头像 发表于 05-18 09:21 4025次阅读
    在<b class='flag-5'>i.MX</b> <b class='flag-5'>RT10xx</b>使用FlexIO实现XY2-100振镜控制协议

    i.MX RT系列(例如 RT1050/1060)有多少个PWM通道?

    i.MX RT 系列(例如 RT1050/1060)有多少个 PWM 通道? 我可以像在 KV58 MCU(两个 flexPWM 模块)上做同样的事情吗?
    发表于 05-18 07:07

    i.MX RT1170自定义引导加载程序,如何在i.MX RT处理器上完成?

    ))vt->reset)(); 跳之前是不是还有更多的步骤要注意? 2)与主应用程序相关,在我以前的引导加载程序中,我必须在跳转后再次设置中断向量表。这是如何在 i.MX RT 处理器上完成的?
    发表于 05-17 08:13

    i.MX RT1xxx从SD/eMMC启动

    最近在恩智浦官方社区上支持了一个关于i.MX RT从SD卡启动的案例,这让我想起了一年前写过的一篇《i.MX RT600从SD/eMMC启动》,那一篇重点介绍了基于eMMC设备制作程序
    的头像 发表于 05-11 14:34 754次阅读
    <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1xxx从SD/eMMC启动

    i.MX RT系列上是否有8个PWM通道可用?

    我使用 MKV58 通过 8 个 PWM 通道驱动 3 个 BLDC 和 1 个直流电机。 现在,我正在检查 i.MX RT 系列,只发现有 4 个 PWM 通道可供使用。 谁能告诉我 i.M
    发表于 05-06 06:33

    如何将i.MX RT1024与外部64MB SDRAM一起使用?

    我想将 i.MX RT1024 与外部 64MB SDRAM 一起使用。根据数据表,它支持 8/16 位 SDRAM 外部存储器接口。从性能的角度来看,哪种模式更好?如何?如果有任何链接/参考可以通过此详细信息,请告诉我。谢谢
    发表于 05-05 11:17