查看: 2081|回复: 0

[原创] LPC: MCUXpresso IDE指令跟踪功能的使用

[复制链接]

该用户从未签到

656

主题

6312

帖子

0

超级版主

Rank: 8Rank: 8

积分
20028
最后登录
2024-4-26
发表于 2020-6-12 10:55:49 | 显示全部楼层 |阅读模式

MCUXpresso IDE 指令跟踪功能使用

MCUXpresso IDE中集成了指令跟踪功能工具,用户可以使用该工具查看代码在MCU中的运行情况。MCUXPresso IDE的指令跟踪功能是通过操作片上RAM的跟踪缓冲区来实现的。在Cortex-M3和M4内核的芯片中使用的是ETB(Embedded Trace Buffer),Cortex-M0+内核的芯片上使用的是MTB(Micro Trace Buffer),通过指令跟踪可以实时的捕捉CPU中的代码运行信息,并且将该信息保存在片上缓冲区供IDE进行查看。
目前只针对某些特定型号的MCU提供了该功能,具体如下:
Cortex M0+内核MCU
对于M0+的MCU,需要具有MTB(Micro Trace Buffer)才可以支持指令跟踪功能。
支持MTB指令跟踪功能的MCU主要为Cortex-M0+内核的MCU,其中包括LPC8xx系列、LPC11U6x/LPC11UEx和Kinetis KL系列MCU等。
CortexM3/M4/M7内核MCU
对于CortexM3/M4/M7内核MCU,必须同时具备ETM(EmbeddedTraceMacrocell)ETB(EmbeddedTrace Buffer)才能支持指令跟踪功能
支持该指令跟踪功能的MCU主要为Cortex-M3、M4和M7内核的一部分MCU,其中包括LPC18xx/LPC43xx和Kinetis K系列的MCU。
LPC546xx/0xx,i.MXRT MCU
该系列MCU只具有ETM(Embedded TraceMacrocell)功能,要想实现指令跟踪功能,需要第三方调试连接工具和相关对应的指令跟踪方式,如SEGGER, PE Micro, ARM Keil , IAR等工具。
下面使用lpcopen_2_19_lpcxpresso_nxp_lpcxpresso_4337中的Led_blinky例程,对这一功能进行介绍。
开发环境:MCUXpressoIDE v11.1.1
例程: lpcopen_2_19_lpcxpresso_nxp_lpcxpresso_4337
开发板:LPCXpresso43xx/18xx开发板
1.在MCUXpresso IDE中,将Led_blinky工程文件下载到开发板中。在Instruction Trace窗口中单击 Record Continuously,如图1所示。
1.jpg

2.运行Led_blinky代码后,Instruction Trace窗口变成如图2所示,点击Suspend暂停代码运行,InstructionTrace窗口变成如图3所示.  
    23.jpg
3.单击Download tracebuffer from target,如上图3所示;将tracebuffer中保存的代码运行信息显示在Instruction Trace窗口中,如图4所示。单击选择Link to source和Link to disassembly,可以将该窗口中指令与源程序和汇编程序进行链接,如图5所示。
   45.jpg

请注意:Cortex-M0+内核的MCU目前只支持以上的指令跟踪功能,LPC8xx系列、LPC11U6x/LPC11UEx和Kinetis KL系列MCU等。以下步骤5-7M+不支持。
4.下面通过对该功能进行配置,可以实现当某个变量为特定值时触发指令跟踪功能。首先,在Expressions窗口中添加&tick_ct变量,查看全局变量tick_ct的地址,并将其地址进行复制,如图6所示。
   6.jpg
5.在Instruction Trace窗口中单击选择Shows theInstruction Trace configuration view,如图7所示。进入Instruction Trace Config窗口,单击Refresh fromtarget,如图8所示。
   7.jpg 8.jpg

6.在Instruction Trace Config窗口中,首先使能trace,然后在Stall窗口中设置当buffer中空余14个字节时停止指令跟踪;在Watchpoint comparators窗口中,设置变量地址和变量值两个比较器,将步骤5中复制的变量的地址0x20000008和变量的触发值0xff放置在Match Value中;在Trigger condition窗口中的One Input中选择Watchpoint comparator2;在Trigger position intrace窗口中,将words after trigger的值设置为56。完成上述配置后,点击Apply。具体步骤如图9所示。
9.jpg

7.重复步骤2和步骤3操作,完成后,单击选择Selectsthe instruction associated with the first trigger pack in the stream,代码自动跳转到进行了触发设置的位置,如图10、图11所示。
   1011.jpg
回复

使用道具 举报

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

本版积分规则

关闭

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

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2024-4-26 18:06 , Processed in 0.114949 second(s), 20 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表