用Tracealyzer快照模式,能夠跟蹤RTOS系統的運行時間受限于硬件可用的RAM大小,通常只能追蹤幾十秒的時間。使用流模式則不會存在這個問題,只要電腦硬盤空間足夠,可用追蹤幾小時甚至幾天的時間。
流模式需要提供一個可用于實時傳輸跟蹤事件數據的通訊端口,例如使用J-Linkk RTT、Uart和USB等接口。很多CortexM3/M4/M7 等架構的芯片會配有 ITM(Instrument Trace Macrocell),來打包和傳輸 DWT 產生的事件。ITM有 32個通道,通過SWO進行串行傳輸。借助ITM來實現流模式的數據傳輸,可以不受調試器的限制,只要使用的調試器支持SWO調試都可以使用,但推薦使用速率較高的調試器。
ITM能夠提供較高的傳輸速度。經測試,Renesas S7G2運行在240MHz,使用IAR EWARM 7.1和I-jet調試器時,每秒可以傳輸73 400個事件,達到1175KB/s的傳輸速率。
使用ARM-ITM流模式
下文將以IAR EWARM 8.40、I-jet調試器和Tracealyzer 4.35為例說明如何配置和使用ITM實現流模式跟蹤。
Note:
1、只有Tracealyzer v4.1及更新的版本才支持ITM流模式。
2、所使用的MCU須支持ITM。ITM對于MCU來說是一個可選的配置,不是所有的M3/M4/M7芯片都支持,但主流的芯片一般都支持。
一、將streamports下J-Link_RTT內的源文件加入到工程。
圖 1 ARM ITM實現的源文件
二、在trcConfig.h中配置
#define TRC_CFG_HARDWARE_PORT TRC_HARDWARE
_PORT_ARM_Cortex_M
#define TRC_CFG_RECORDER_MODE TRC_RECORDER
_MODE_STREAMING
三、工程設置中選擇調試接口,與實際所使用的一致,這里使用SWD。
圖 2 設置調試接口
四、啟動Trace,須使用vTraceEnable(TRC_START)。
五、進入IAR EWARM的調試環境,點擊上方的SWO配置圖標,打開SWO設置。
圖 3 打開EWARM的SWO配置窗口
六、設置正確的CPU時鐘,并勾選所使用的ITM通道,默認使用通道1,確認之后退出并關閉IAR EWARM。
圖 4 EWARM SWO設置
七、從工程目錄下的settings目錄,打開工程的*.dnx文件(EWARM 7.x的格式為*.dni)
圖 5 dnx文件
將ITMLogFile改成如下所示:
保存文件后再打開IAR,進入調試查看SWO中的設置界面進行確認。
八、啟動Tracealyzer,PSF Streaming Settings的Target Connection設置為Name Pipe,Name與EWARM *dnx中設置的一致。EWARM與Tracealyzer利用Windows通信機制(命名管道-Named Pipe,在不相關進程之間實現通信)傳遞數據,由此,Tracealyzer可以通過EWARM來實時獲取跟蹤數據。
圖 6 設置流模式的連接方式
九、開啟實時跟蹤。需要先啟動Tracealyzer,Live Stream窗口中點“Start Session”之后,EWARM再進入調試,然后就可以實現實時跟蹤。
審核編輯:湯梓紅
-
ARM
+關注
關注
134文章
9084瀏覽量
367387 -
ITM
+關注
關注
0文章
6瀏覽量
8918 -
Cortex
+關注
關注
2文章
202瀏覽量
46484 -
RTOS
+關注
關注
22文章
811瀏覽量
119595 -
調試器
+關注
關注
1文章
303瀏覽量
23716
原文標題:Tracealyzer利用CortexM的ITM實現流跟蹤
文章出處:【微信號:麥克泰技術,微信公眾號:麥克泰技術】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論