399|2

115

帖子

0

资源

一粒金砂(中级)

Tracealyzer跟踪RTOS需要多少处理器开销?

Tracealyzer是一个用于RTOS系统的跟踪和可视化分析工具,对系统运行时的行为提供了前所未有的洞察方法。以往需要几天甚至更长时间才能解决的问题,可以使用Tracealyzer快速解决。加速了调试及减少对系统验证和性能优化所需要的时间。但不少用户对于使用Tracealyzer时将造成多大的处理器开销有着担忧,本文将回答这一问题。

1.png

基于软件的数据跟踪始终会存在一些处理器开销,其确切的数量为f和e的乘积f * e,其中f是平均事件频率,e是用于存储事件的平均执行时间。这两个参数的值依赖于用户具体的应用程序和处理器。应用程序中的RTOS调用越多,则数据追踪的处理器开销也越大。使用的处理器运行速度越快,则开销越少。

 

下面以一些具体的参数来进行分析。在32位MCU上,存储某一事件需要耗费的时间通常为几微秒,假设e的值为3 us。平均事件速率则通常为每秒几千次,假设f的值约为5000 Hz。根据上述f*e的公式计算:

 

5000 Hz x 0.000003 s= 1.5%

 

由上述计算可知,基于软件的RTOS跟踪并不会造成过高的处理器开销,用户可依据自己具体的应用程序和处理器运行速度进行处理器开销的计算。

若想进一步减少RTOS数据追踪的处理器开销,可尝试以下方式:

• 确保至少开启了低级别的编译器优化选项

• 如果使用快照模式进行数据追踪,可以排除掉一些不太重要的事件的记录

• 使用流模式而不是快照模式。快照模式针对内存效率进行了优化,而流模式则针对速度进行了优化且速度明显加快。流可以通过流端口进行自定义,用于各种目标主机接口,甚至可以令数据传输到设备文件系统

• 如果使用流模式,请确保在缓冲区已满的情况下数据传输不会阻塞。使用非阻塞传输模式时,如果Tracealyzer随后报告事件丢失,则数据吞吐量过小通常是问题所在。通过调整流端口设置(如使用较大的缓冲区)或使用更快的传输通道(如使用USB或更好的调试器)来解决此问题。

 

Tracealyzer不需要额外的跟踪硬件,这意味着可以在产品部署时使用。用户可尝试在应用程序的最终版本中任保留RTOS跟踪的设计,例如将快照模式作为系统运行的记录模块,这样Tracealyzer记录器就成为系统应用程序的一部分而不是额外的开销了。且这样的方式可以帮助用户记录一些产品在现场实际运行过程中的问题,而这些问题通常是难以复现的,这将对厂商解决产品实际问题时带来相当大的改变。

个人签名

提供专业嵌入式系统培训,为嵌入式研发提供丰富的工具,软件和解决方案。


回复

2292

帖子

1

资源

五彩晶圆(初级)

监控整体造成的性能损失相对很小了,这中性能的监控不仅在嵌入式,在很多后台应用里面也大量存在。最牛逼的是当年sun 搞的 solaris的trace内核设施。自此以后trace是很多系统标配。

个人签名人已离开,无事别找,找也找不到。

回复

269

帖子

0

资源

一粒金砂(中级)

现在不少单片机性能过剩,trace调试加上也无妨,而且也方便摆脱调试器找问题


回复
您需要登录后才可以回帖 登录 | 注册

关闭
站长推荐上一条 1/7 下一条

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表