RTOS 系统篇-统计任务的 CPU 使用率

RTOS 系统篇-统计任务的 CPU 使用率

概述

RTOS 中可以通过一些函数来统计每个任务使用 CPU 的时间,以及所使用时间占据总时间的比例。比如:系统在一段 100s 的时间内,任务 A 使用 CPU 运行了10s,任务 B 使用 CPU 运行了20s,剩下的 70s 由空闲任务在运行,则这段时间内总的 CPU 利用率是 30%,其中任务 A 占用了 10%,任务 B 占用了 20%。当然,CPU 的占用时长与 CPU 的运行速度有很大关系,同样的程序在不同的 CPU 上执行的时间不一样,因此对 CPU 的占用时间也不一样。

在调试代码时,可以根据这个时间占比情况来分析哪个任务的 CPU 占用率高,然后合理地分配或优化任务,也可以用于评估不同 CPU 运行完一段程序的性能。

统计 CPU 使用率的常见需求

主要有两种需求:

1)统计某个任务自启动 RTOS 后到当前时间,共占用了多少 CPU 的使用时间。

2)统计某个任务从 T1 时刻到 T2 时刻这段时间的 CPU 占用时间。

他们的区别可如下图所示:

在这里插入图片描述

统计任务或者一段代码占用 CPU 时间的基本原理

1)统计某个任务自启动 RTOS 后到当前时间,共占用了多少 CPU 的使用时间。

这种需求可以使用下述函数来实现:

猜你喜欢

转载自blog.csdn.net/wangyx1234/article/details/129056533