102.9 - 其他 | EventRecorder 調試筆記


參考:

http://forum.armfly.com/forum.php?mod=viewthread&tid=87176&fromuid=20118
(出處: 安富萊電子論壇)

Note:按步驟操作后,出現編譯問題,檢查CMSIS庫文件的版本是否過低。

 

1.Event Recorder 是什么?

MDK 中的一個功能,用於記錄事件,代替串口輸出調試信息。

 Event Recorder 工作原理

特點:

  • 提升應用程序動態執行期間的檢測能力。

  • 支持的事件類型濾除機制,比如運行錯誤,API 調用,內部操作和操作信息的區分。

  • 可以在任務中,RTOS 內核中和中斷服務程序中任意調用。

  • 對於帶ITM 功能的Cortex-M3/M4/M7/M33 內核芯片,執行記錄期間,全程無需開關中斷操作。對於不帶ITM 功能的Cortex-M0/M0+/M23,是需要開關中斷的。

  • 支持printf 重定向。

  • 各種link 通吃,支持SWD 接口或者JTAG 接口方式的JLINK、STLINK、ULINK 和CMSIS-DAP。

  • 對於帶DWT 時鍾周期計數器功能的Cortex-M3/M4/M7/M33 內核芯片,創建時間戳時,可以有效降低系統負擔,無需專用定時器來實現。

  • Event Recorder 執行時間具有時間確定性,即執行的時間是確定的,而且執行速度超快,因此,實際產品中的代碼依然可以帶有這部分,無需創建debug 和release 兩種版本。

  • RTX5 及其所有中間件都支持Event Recorder 調試。

2.Event Recorder 怎么用?

 a.通過RTE 環境,為工程添加Event Recorder 功能

 b.配置EventRecorderConf.h

c.初始化

/* 初始化EventRecorder並開啟*/
EventRecorderInitialize(EventRecordAll, 1U);
EventRecorderStart();

d.調試窗口

 

3.時間測量功能的實現

時間測量功能簡單易用,僅需一個起始函數,一個停止函數即可。

當前支持4 組,每組支持16 路測量,也就是可以同時測量64 路。

EventStartA(0);
//測量的代碼部分
EventStopA(0)

運行后,顯示Event Statistics 調試組件。

 

4.Event Recorder 需要注意什么?

a.工程無需重定向printf,需要勾選MicroLib。

b.為了時間准確,在仿真器配置的地方,填入正確的Core

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM