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