博客
关于我
mdk平台下,cm3内核单片机使用event recorder,测试函数运行时间及printf打印
阅读量:591 次
发布时间:2019-03-11

本文共 1180 字,大约阅读时间需要 3 分钟。

Event Recorder 是一种高效的硬件记录器,主要用于复杂嵌入式系统中的数据采集与分析。以下将从多个维度详细介绍 Event Recorder 的功能及其使用方法。

Event Recorder 的特点

  • 高效检测:Event Recorder 能在应用程序运行时即时发现并记录各种事件信息,如运行错误、API 调用异常等,显著提升系统的实时性和可靠性。

  • 灵活配置:该工具支持多种事件类型的筛选机制,能够区分不同级别的系统操作和信息流,满足各类应用场景的需求。

  • 多样应用场景:不仅支持在RTOS 中部署,还可融入中断服务程序中运行,且对不同内核架构(如Cortex-M系列)有特殊优化。

    • 带 ITM 功能的处理:无需中断开关,简化了开发流程。
    • 其他处理:如Cortex-M0系列则需要中断控制。
  • 方便调试:支持 printf 重定向,便于出错时快速获取日志信息。同时兼容多种_debug工具(如SWD、JTAG等)。

  • 高效管理:通过内置的时间戳生成机制(如DWT计时器),能精确记录事件发生时间,减少系统资源占用,无需额外定时器。

  • 代码管理:由于任务执行时间可预测,开发者无需进行 debug 和 release 分支,极大提升了开发效率。

  • 兼容性优化:兆恩科技(ARM)官方文档指出Event Recorder 对于 RTX5 中间件完全支持,使用起来更加简便。


  • 使用方法

  • 库文件依赖:必须使用最新版本的 cmsis 库,否则可能导致编译失败。

  • 系统配置

    • 在 RTOS 中设置uously task (RTE),通常选择默认模式。
  • 配置SCT文件

    • 建议在SCT文件中开辟一个NOINIT的SRAM区域,或者参考官网文档进行配置。
    • 这一步可以防止非必要的初始化操作,提高资源利用率。
  • 初始化设置

    • 在代码中添加相应的头文件。
    • 调用 EventRecorderInitializeEventRecorderStart 初始化功能,并启动记录任务。
  • 事件操作

    • 使用如 EventStartA(n) 激活特定事件记录模式。

    • 在需要时调用 EventStopA(n) 停止记录。

  • 时间管理

    • 配置文件中需设置最小记录时间(默认为8个单元),并根据开发需求调整时钟频率。
  • 调试工具

    • 在AC6编译器下完成编译,最后使用合适的调试工具(如ST-Link、J-Link等)进行测试。
  • 最后的优化

    • 调试过程中可通过trace界面查看事件记录详情,确保配置正确。
  • 合规检查

    • 确保所有编译和调试过程顺利通过,最终生成可用于实际系统的优化版本。

  • 达到更高效的开发体验

    通过合理配置和使用Event Recorder,您可以在保证代码质量的同时,显著提高嵌入式开发效率。如果需要更详细的操作步骤,可参考 ARM 官方开发文档,或参考相关开发社区获取更多实用经验。

    转载地址:http://trevz.baihongyu.com/

    你可能感兴趣的文章
    MySQL Cluster 7.0.36 发布
    查看>>
    Multimodal Unsupervised Image-to-Image Translation多通道无监督图像翻译
    查看>>
    MySQL Cluster与MGR集群实战
    查看>>
    multipart/form-data与application/octet-stream的区别、application/x-www-form-urlencoded
    查看>>
    mysql cmake 报错,MySQL云服务器应用及cmake报错解决办法
    查看>>
    Multiple websites on single instance of IIS
    查看>>
    mysql CONCAT()函数拼接有NULL
    查看>>
    multiprocessing.Manager 嵌套共享对象不适用于队列
    查看>>
    multiprocessing.pool.map 和带有两个参数的函数
    查看>>
    MYSQL CONCAT函数
    查看>>
    multiprocessing.Pool:map_async 和 imap 有什么区别?
    查看>>
    MySQL Connector/Net 句柄泄露
    查看>>
    multiprocessor(中)
    查看>>
    mysql CPU使用率过高的一次处理经历
    查看>>
    Multisim中555定时器使用技巧
    查看>>
    MySQL CRUD 数据表基础操作实战
    查看>>
    multisim变压器反馈式_穿过隔离栅供电:认识隔离式直流/ 直流偏置电源
    查看>>
    mysql csv import meets charset
    查看>>
    multivariate_normal TypeError: ufunc ‘add‘ output (typecode ‘O‘) could not be coerced to provided……
    查看>>
    MySQL DBA 数据库优化策略
    查看>>