如何快速获取CPU利用率


1. 摘要


本篇笔记主要介绍,在freeRTOS环境下,以STM32为例介绍如何快速获取CPU利用率,配合CubeMonitor测试微信

2. 准备工做ide

    1, IAR 8.32.1函数

    2, STM32Cube_FW_H7_V1.6.0测试


3. CPU使用率spa

这里的CPU使用率是指在必定周期内,除过空闲任务之外的全部任务栈CPU总运行时间的比值,操作系统

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

而咱们全部的计算都是以CPU时基为基础,在freeRTOS下以STM32H743为MCU,一般设时基为1ms,就是操做系统的TICK,而freeRTOS也提供了挂钩函数3d

因此咱们要使用这两个挂钩函数,必须先配置使能在freeRTOSConfig.h下调试


4. 获取CPU利用率blog

在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使用。


6. 参考文档

序号

文献

1

STM32H743RM

2

3, STM32Cube_FW_H7_V1.6.0

长按识别二维码添加关注

本文分享自微信公众号 - 嵌入式程序猿(InterruptISR)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索