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所示。
2.运行Led_blinky代码后,Instruction Trace窗口变成如图2所示,点击Suspend暂停代码运行,InstructionTrace窗口变成如图3所示. 3.单击Download tracebuffer from target,如上图3所示;将tracebuffer中保存的代码运行信息显示在Instruction Trace窗口中,如图4所示。单击选择Link to source和Link to disassembly,可以将该窗口中指令与源程序和汇编程序进行链接,如图5所示。
请注意:Cortex-M0+内核的MCU目前只支持以上的指令跟踪功能,LPC8xx系列、LPC11U6x/LPC11UEx和Kinetis KL系列MCU等。以下步骤5-7M+不支持。 4.下面通过对该功能进行配置,可以实现当某个变量为特定值时触发指令跟踪功能。首先,在Expressions窗口中添加&tick_ct变量,查看全局变量tick_ct的地址,并将其地址进行复制,如图6所示。 5.在Instruction Trace窗口中单击选择Shows theInstruction Trace configuration view,如图7所示。进入Instruction Trace Config窗口,单击Refresh fromtarget,如图8所示。
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所示。
7.重复步骤2和步骤3操作,完成后,单击选择Selectsthe instruction associated with the first trigger pack in the stream,代码自动跳转到进行了触发设置的位置,如图10、图11所示。
|