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下就是
而我们所有的计算都是以cpu时基为基础,在freertos下以stm32h743为mcu,通常设时基为1ms,就是操作系统的tick,而freertos也提供了挂钩函数
所以我们要使用这两个挂钩函数,必须先配置使能在freertosconfig.h下
4. 获取cpu利用率
在st提供的sdk里面会有一个公共的文件cpu_utils.c和cpu_utils.h两个文件,这两个文件提供了获取freertos下获取cpu利用率的方案和方法,可以供参考,我们可以将两个文件加入工程,需要配置和修改一些东西
在cpu_utilis.c的文件开头注释部分有说明如何利用这个模块,按照模块说明,也就是我们上章节所列的首先必须使能idel和tick的hook函数配置。,还必须定义两个宏,对freertos就可以在freertosconfig.h中定义如下
在头文件中添加函数声明
这种方法只能用来初略估计,如需精确估计可开启一个比systick 优先级高的硬件定时器来,但是在一般正式的项目中,不这样做,这样会影响系统的实时性。
对外的api接口
直接调用就可以了。更多精细的测试和调试可以使用freertos+trace。
5. 测试
编译无误后,可以下载进行调试, 工程中有大概十几个任务
可以看到cpu的利用率。也可以利用st推出的cubemonitor进行测试,下次推送将给大家安排详细的cubemonitor使用。
原文标题:如何快速获取cpu利用率
文章出处:【微信公众号:嵌入式程序猿】欢迎添加关注!文章转载请注明出处。
乔治白:打造工业4.0的智能制造系统
艾迈斯欧司朗与Prosperity Group(佑昌集团)达成协议,出售其动态照明业务Traxon Technologies
由Google支持的Mobvoi已发布了新的TicWath 3 Pro智能手表
在移动通信领域Palor码的重要性
如何使用CMP180进行WLAN功率放大器的动态EVM测试
在freeRTOS环境下,如何用STM32配合CubeMonitor快速获取CPU利用率
腾讯“XR团队调整”!元宇宙“冷却”,科技公司集体转向类“ChatGPT”!
混合IT如何帮助您的企业驾驭新兴技术
视频广告投放新形态崛起,AI场景争夺成主流
导波雷达液位计常见故障_导波雷达液位计故障处理
闪电F-28垂直起降无人机的产品优势及应用范围
Melexis推广锁存器和开关产品中的集磁片(IMC)技术
OPPOR9s清新绿图赏:原来还能这么文艺时尚
比特币先生称加密数字货币的监管既不可取也没必要
关于讯飞人脸识别—自然交互的性能分析和应用
苹果13最适合买的配置
集成隔离电源的隔离器芯片主要应用领域
既然C编译器是C语言写,那么第一个C编译器是怎样来的?
让镜头更小更好的方法——超透镜
AI视觉在教育场景中的创新应用