FreeRTOS打印任务对CPU的占有率

1:配置RTOS

1:打开RTOS Config Parameter
	找到Run Time And Task States gathering related definitions
	使能GENERATE_RUN_TIME_STATS
		USE_TRACE_FACILITY
		USE_STATS_FORMATTING_FUNCTIONS
		如果不使能,API将使用不了

在这里插入图片描述

2:添加高精度计时器

因为OS的的节拍周期是1ms 
需要一个更高精度周期的计数器来对它进行检测,从而得出任务占用率
根据参考手册 计数器需要在 10us - 50us 之间 ,当计数值达到时需要产生
一个中断来更新计数值

在这里插入图片描述
3:配置其他需要用到的外设和时钟

4:打开工程

定义一个全局变量来保存TIM6的计数更新
下图两个函数是系统提供的,需要在里面打开中断,计数清0
并且返回全局变量

在这里插入图片描述

找到TIM6的中断回调函数
我设置的更新事件触发中断,追源码找到更新事件触发的回调函数

在这里插入图片描述

在任务中调用此接口

void vTaskGetRunTimeStats( char *pcWriteBuffer )
参数是一个保存结果的buffer

最后打印buffer就可以看到任务对CPU的占用率

通过任务对CPU的占用率,可以合理的分配任务资源
这对于单片机来说是很重要的
如果空闲任务一直高占用CPU,说明选型的CPU 性能过剩,需要换到较低的芯片上
如果某个任务一直占用cpu,或者空闲任务占有率低于10% ,则需要更换
性能高一些的芯片
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

漏洞百出

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值