第8章 STM32F407的终极调试组件Event Recorder

MDK调试器提供了Component Viewer和Event Recorder,它们显示软件组件的执行状态和事件信息,从而帮助您了解和分析内部操作。 所需的基础结构已在MDK中间件和Keil RTX5中实现。 但是,可以将这些视图轻松添加到其他软件组件或用户应用程序。

1.1添加 Event Recorder 组件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这里主要设置方框里面的两个参数 。
Number of Records :表示 Event Recorder 缓冲 可以记录的消息条数。
Time Stamp Source :表示时间戳来源, 有如下五种可以选择,我们这里使用 DWT时钟周期计数器 。

1.2 j-Link的配置

下面 这个地方最重要 \color{Red}{这个地方最重要} 这个地方最重要 ,一定要正确设置当前系统工作的主频如果不正确,会导致 E vent Statistics的时间统计不正确 。
在这里插入图片描述
警告 \color{Blue}{警告} 警告 :如果大家调试状态弹出SWD配置时钟超出范围的问题或者下面错误, 可以考虑将上面截图中的Enable选项的对勾取消掉即可但内核时钟一定要修改为芯片的主频 。
在这里插入图片描述

2、printf 重定向

2.1 前期注意事项

在Event Recorder 实现printf输出需要使用MDK的 Debug 功能,输出的效果就跟串口调试工具上的显示效果是一样的。可以节省硬件uart引脚。
由于使能了 printf 重定向,大家的工程里面 一定不要 \color{Red}{一定不要} 一定不要再做重定向了,比如 fpuc fgetc 。
在这里插入图片描述
另外需要添加微库 MicroLib。
在这里插入图片描述

2.2 初始化

在main函数中添加头文件和初始化。

//1、添加头文件
#include "EventRecorder.h"
#include "EventRecorderConf.h"
//2、初始化 EventRecorder 并开启
EventRecorderInitialize(EventRecordAll, 1U);
EventRecorderStart();

添加打印窗口。
在这里插入图片描述
效果如下:
在这里插入图片描述

3、Event Statiistiics 时间测量功能的实现

3.1 初始化

在函数中添加头文件和初始化。

//1、添加头文件
#include "EventRecorder.h"
#include "EventRecorderConf.h"
//2、初始化 EventRecorder 并开启
EventRecorderInitialize(EventRecordAll, 1U);
EventRecorderStart();

3.2 添加测量起始和结束时间函数

时间测量功能简单易用,仅需一个起始函数,一个停止函数即可 。当前支持4组 ,每组支持16路测量,也就是可以同时测量 64 路 。
时间测量的 API 函数支持多任务和中断里面随意调用 。
1、 测量起始函数:EventStartG (slot) 或者EventStartGv (slot, val1, val2)

  • 函数中的字母G是表示分组A,B,C,D,即实际调用函数为EventStartA,EventStartB,EventStartC和EventStartD。
  • 函数的第一个形参slot的范围是0-15,也就是每个分组可以测试16路。
  • 函数后面的两个形象val1和val2是32位变量,用户可以用这两个形参来传递变量数值给Event Statistics调试组件里面,方便图形化展示。简单的说,这两个变量仅仅起到一个传递变量数值的作用。

2、 测量停止函数:EventStopG (slot) 或者 EventStopGv (slot, val1, val2)

  • 函数中的字母G是表示分组A,B,C,D,即实际调用函数为EventStopA,EventStopB,EventStopC和EventStopD。
  • 函数的第一个形参slot的范围是0-15,也就是每个分组可以测试16路。
  • 函数后面的两个形象val1和val2是32位变量,用户可以用这两个形参来传递变量数值给Event Statistics调试组件里面,方便图形化展示。简单的说,这两个变量仅仅起到一个传递变量数值的作用。
//在要测量的代码前后加上起始和结束时间 
EventStartA(0);
测量的代码部分
EventStopA(0);

添加测量窗口。
在这里插入图片描述
效果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值