温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

在freeRTOS环境下如何快速获取CPU利用率

发布时间:2021-12-22 17:07:41 来源:亿速云 阅读:474 作者:柒染 栏目:互联网科技

在freeRTOS环境下如何快速获取CPU利用率,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。


1. 摘要  

在freeRTOS环境下,以STM32为例介绍如何快速获取CPU利用率,配合CubeMonitor测试

2. 准备工作

    1, IAR 8.32.1

    2, STM32Cube_FW_H7_V1.6.0

3. CPU使用率

这里的CPU使用率是指在一定周期内,除过空闲任务以外的所有任务栈CPU总运行时间的比值,

osCPU_Usage = (100 - (osCPU_TotalIdleTime * 100) / CALCULATION_PERIOD);  其实就是计算出空闲任务的时间,就能获取CPU的利用率,而空闲任务运行时间的获取,可以利用钩子或者叫挂钩函数,具体在freeRTOS下就是

在freeRTOS环境下如何快速获取CPU利用率

而我们所有的计算都是以CPU时基为基础,在freeRTOS下以STM32H743为MCU,通常设时基为1ms,就是操作系统的TICK,而freeRTOS也提供了挂钩函数

在freeRTOS环境下如何快速获取CPU利用率

所以我们要使用这两个挂钩函数,必须先配置使能在freeRTOSConfig.h下

在freeRTOS环境下如何快速获取CPU利用率

4. 获取CPU利用率

在ST提供的SDK里面会有一个公共的文件cpu_utils.c和cpu_utils.h两个文件,这两个文件提供了获取freeRTOS下获取CPU利用率的方案和方法,可以供参考,我们可以将两个文件加入工程,需要配置和修改一些东西

在freeRTOS环境下如何快速获取CPU利用率

在freeRTOS环境下如何快速获取CPU利用率

在cpu_utilis.c的文件开头注释部分有说明如何利用这个模块,按照模块说明,也就是我们上章节所列的首先必须使能IDEL和TICK的HOOK函数配置。,还必须定义两个宏,对freeRTOS就可以在freeRTOSConfig.h中定义如下

在freeRTOS环境下如何快速获取CPU利用率

在头文件中添加函数声明

在freeRTOS环境下如何快速获取CPU利用率

这种方法只能用来初略估计,如需精确估计可开启一个比sysTick 优先级高的硬件定时器来,但是在一般正式的项目中,不这样做,这样会影响系统的实时性。

对外的API接口

在freeRTOS环境下如何快速获取CPU利用率

直接调用就可以了。更多精细的测试和调试可以使用freeRTOS+Trace。

在freeRTOS环境下如何快速获取CPU利用率

5. 测试

编译无误后,可以下载进行调试, 工程中有大概十几个任务

在freeRTOS环境下如何快速获取CPU利用率

在freeRTOS环境下如何快速获取CPU利用率

可以看到CPU的利用率。也可以利用ST推出的CubeMonitor进行测试,下次推送将给大家安排详细的CubeMonitor使用。

6. 参考文档

序号

文献

1

STM32H743RM

2

3, STM32Cube_FW_H7_V1.6.0

看完上述内容,你们掌握在freeRTOS环境下如何快速获取CPU利用率的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI