首页 > 其他分享 >(二)Event Recoder在嵌入式开发领域应用

(二)Event Recoder在嵌入式开发领域应用

时间:2024-12-26 22:26:42浏览次数:5  
标签:Recoder 记录 功耗 系统 嵌入式 3.1 Event 调试

目录

一、Event Recoder在嵌入式开领域的发展

二、简介

三、应用

3.1调试与故障诊断

3.1.1替代串口调试

3.1.2系统运行状态监测

3.1.3中间件及操作系统调试

3.2性能分析与优化

3.2.1代码执行时间测量

3.2.2资源使用情况分析

3.3系统验证与测试

3.3.1功能验证

3.3.2稳定性测试

3.4低功耗优化

3.4.1功耗分析

3.4.2节能策略验证

四、结束语


一、Event Recoder在嵌入式开领域的发展

        Event Recorder 是 MDK 在 5.22 版本增加并在 5.25 版本后进一步完善的功能,是一种在嵌入式开发领域中非常实用的调试和分析工具。

二、简介

工作原理

        通过在代码中调用 Event API 来记录软件运行的标志信息,这些信息被存储在内存中的特定缓冲区内,MDK 通过访问该缓冲区实现消息的图形化展示。

特点优势

  1. 支持 printf 重定向,无需占用芯片的外设资源,与传统的串口 printf 调试相比,获取数据的速度与 CPU 主频一样快,可在特定窗口中以图形化的形式显示信息,能清晰展示软件组件或用户代码的运行情况。
  2. 支持在任务中、RTOS 内核中和中断服务程序中任意调用。
  3. 对于带 ITM 功能的 Cortex-M3/M4/M7/M33 内核芯片,执行记录期间,全程无需开关中断操作,对于不带 ITM 功能的 Cortex-M0/M0+/M23,是需要开关中断的。
  4. Event Recorder 执行时间具有时间确定性,即执行的时间是确定的,而且执行速度超快,因此,实 际产品中的代码依然可以带有这部分,无需创建 debug 和 release 两种版本。

三、应用

3.1调试与故障诊断

3.1.1替代串口调试

        串口 printf 调试存在占用芯片外设资源、速度受串口限制以及在中断应用中调试受限等问题,而 Event Recorder 可直接获取芯片内存的数据,速度快且无需占用额外硬件资源,是替代串口调试的绝佳方式。

3.1.2系统运行状态监测

        实时记录系统初始化、任务调度、中断发生、函数调用等各种事件,开发人员可通过查看记录了解系统运行流程和状态变化,及时发现潜在问题和异常,如系统死机、任务卡顿、资源冲突等。

3.1.3中间件及操作系统调试

        支持对 Keil RTX 操作系统以及 MDK 自带的中间件,如文件系统、USB 组件、网络组件、图形界面等的调试,清楚地记录它们的执行情况,帮助开发人员快速定位和解决中间件及操作系统层面的问题。

RTX中使用Event Recoder:

3.2性能分析与优化

3.2.1代码执行时间测量

        可以精确测量代码中不同部分的执行时间,帮助开发人员找出耗时较长的代码段,进而进行优化。例如,通过测量任务切换时间、中断处理时间、关键算法的执行时间等,发现性能瓶颈,采取措施提高系统的实时性和响应速度。

3.2.2资源使用情况分析

        通过记录事件的发生频率和时间分布,分析系统资源的使用情况,如 CPU 使用率、内存占用情况等。开发人员可以根据这些信息,合理调整任务的优先级、优化内存分配策略,提高系统资源的利用率,避免资源浪费和系统性能下降。

3.3系统验证与测试

3.3.1功能验证

        在嵌入式系统的功能测试阶段,Event Recorder 可以记录系统在各种操作和输入情况下的响应事件,帮助测试人员验证系统是否按照预期的功能要求运行。通过对比实际记录的事件与预期的事件序列,及时发现功能实现中的错误和缺陷。

3.3.2稳定性测试

        在长时间的稳定性测试过程中,持续记录系统的运行事件,观察是否存在异常事件的积累或潜在的稳定性问题。例如,是否有内存泄漏、任务死锁、资源竞争等问题在长时间运行后逐渐暴露出来,以便及时进行修复和优化,提高系统的稳定性和可靠性。

3.4低功耗优化

3.4.1功耗分析

        结合硬件平台提供的功耗测量功能,Event Recorder 可以记录系统在不同工作模式和任务执行过程中的功耗变化情况。开发人员可以通过分析这些数据,找出功耗较高的操作和时间段,进而采取优化措施,如调整任务调度策略、降低不必要的外设活动等,以降低系统的整体功耗。

3.4.2节能策略验证

        在实现低功耗设计的过程中,通过 Event Recorder 记录系统在不同节能策略下的运行事件和功耗情况,验证节能策略的有效性。例如,记录系统在进入睡眠模式、唤醒过程以及不同频率切换时的事件和功耗,评估节能策略对系统功能和性能的影响,进行针对性的调整和优化。

四、结束语

接下来在Keil中实现时间记录、Printf重定向以及时间测量功能。

标签:Recoder,记录,功耗,系统,嵌入式,3.1,Event,调试
From: https://blog.csdn.net/FCZlll/article/details/144752372

相关文章

  • (一)认识Event Recoder
    目录一、不同领域EventRecoder的含义1.汽车领域2.嵌入式软件开发领域3.WebSphere4.航空领域二、结束语一、不同领域EventRecoder的含义1.汽车领域功能与作用        汽车EDR主要用于记录车辆在行驶过程中尤其是事故发生前后的关键数据,如碰撞前几秒内......
  • (三)在Keil工程中创建Event Recoder
    添加EventRecoder的步骤1.创建Keil工程2.打开“ManageRun-TimeEnvironment” 3.在“ManageRun-TimeEnvironment”中添加EventRecoder4.实现printf重定向        由于使能了printf重定向,工程里面一定不要再做重定向了,比如fpuc,fgetc。另外当前选择了......
  • ZLG嵌入式笔记(连载01) | 非常容易被忽略的电流倒灌
    在嵌入式开发工程中,电流倒灌是一个容易被忽视但可能导致严重后果的问题。本章节将深入探讨电流倒灌的成因、影响以及如何在实际工程中识别和预防这一问题。电流倒灌问题在5V电平的单片机时代几乎不会发生,主要是因为5V单片的IO耐压值高,单片机内部结构对IO保护设计很好。到了......
  • ZLG嵌入式笔记 | 电流倒灌揭秘:IO口损坏与系统故障的真相
    本期文章将继续深入了解电流倒灌,分析嵌入式系统中IO口损坏和系统稳定性问题的根本原因。在上期的工程笔记中,我们了解了电流倒灌并探讨了电流倒灌可能导致的一系列问题,包括IO口损坏、系统死机、系统不开机或休眠及唤醒异常。这些问题虽然听起来颇为技术性,但它们对嵌入式系统......
  • 《痞子衡嵌入式半月刊》 第 115 期
    痞子衡嵌入式半月刊:第115期这里分享嵌入式领域有用有趣的项目/工具以及一些热点新闻,农历年分二十四节气,希望在每个交节之日准时发布一期。本期刊是开源项目(GitHub:JayHeng/pzh-mcu-bi-weekly),欢迎提交issue,投稿或推荐你知道的嵌入式那些事儿。上期回顾:《痞子衡嵌入式半月......
  • 嵌入式单片机中串口通信实现详解
    串口通信的概念通信的概念通信指的是CPU和外部设备之间或者计算机与计算机之间的数据交互。                  通信的种类处理器与外部设备之间的通信方式有两种:   串行通信            并行通信      ......
  • EventTarget的简单实现
    mdn中EventTarget的简单实现代码letEventTarget=function(){this.listeners={};}EventTarget.prototype.listeners=null;EventTarget.prototype.addEventListener=function(type,callback){if(!(typeinthis.listeners)){this.listener......
  • 蓝桥杯-嵌入式-总结版本
    写往年嵌入式真题自己所遇到一些小细节的错误---------------------------------------------------UART----------------------------------------------------------------------当接收到中断时:stm32g4xx_it.c文件中的函数voidHardFault_Handler(void)将会调用voidHAL_UA......
  • 【甲方安全】工业行业+工控嵌入式设备:PLC网络的几种常用通讯方式
    电气论坛2023年02月28日14:00山东内容摘要随着工业时代的发展,工业自动化控制已进入网络时代,工业控制器连网也为网络管理提供了方便。MODBUS通信就是工业控制器的网络协议中的一种。关键词:MOBUS通信协议,RS485,CPU,程序设计一、PLC网络的几种常用通讯方式1.1周期I/O通信方式......
  • onVoipEvent
    functiononVoipEvent(functionlistener)功能描述监听VoIP通话相关事件。事件绑定需要在通话开始前完成。注意:不要在onLoad、onShow等生命周期内绑定事件,可能会因为生命周期多次调用而重复绑定。参数functionlistener事件监听函数回调参数Objectevent属性类型......