参考:
https://www.keil.com/pack/doc/compiler/EventRecorder/html/SCVD_Format.html
https://www.keil.com/support/docs/4012.htm
https://www.keil.com/pack/doc/compiler/EventRecorder/html/er_use.html#place_uninit_memory
0、特点
1.2.1 Event Recorder 的特色 Event Recorder 的特色主要有以下几点: 1. 提升应用程序动态执行期间的检测能力。 2. 支持的事件类型滤除机制,比如运行错误,API 调用,内部操作和操作信息的区分。 3. 可以在任务中,RTOS 内核中和中断服务程序中任意调用。 4. 对于带 ITM 功能的 Cortex-M3/M4/M7/M33 内核芯片,执行记录期间,全程无需开关中断操作。 对于不带 ITM 功能的 Cortex-M0/M0+/M23,是需要开关中断的。 5. 支持 printf 重定向。 6. 各种 link 通吃,支持 SWD 接口或者 JTAG 接口方式的 JLINK、STLINK、ULINK 和 CMSIS-DAP。 7. 对于带 DWT 时钟周期计数器功能的 Cortex-M3/M4/M7/M33 内核芯片,创建时间戳时,可以有效 降低系统负担,无需专用定时器来实现。 8. Event Recorder 执行时间具有时间确定性,即执行的时间是确定的,而且执行速度超快,因此,实 际产品中的代码依然可以带有这部分,无需创建 debug 和 release 两种版本。 9. RTX5 及其所有中间件都支持 Event Recorder 调试。
============================================摘录自安富莱电子
1、最好使用比较新的cmsis库,否则添加event recorder将无法编译通过
2、rte设置如下:
3、sct文件开辟一个NOINIT的sram区域,不开辟好像也可以,官网教程是开辟的。
4、初始化,记得添加头文件
void event_record_init(void)
{
EventRecorderInitialize(EventRecordAll, 1U);
EventRecorderStart();
}
5、添加测试时间代码,如下所示实例,2也可以去0-4,具体看配置文件
EventStartA(2);
//...
EventStopA(2);
6、配置文件,时间最小个数是8,把时钟频率设置正确,默认使用dwt
7、trace界面设置好正确的时钟频率
8、ac6编译器编译通过,调试单好利器。
具体可以看arm官网,教程比较详细。,这里仅仅是小结一下。