本文主要是介绍详解FreeRTOS:如何统计任务运行时间和CPU占有率(拓展篇—7),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
FreeRTOS 可以通过函数 vTaskGetRunTimeStats()来统计每个任务使用 CPU 的时间,以及所使用的时间占总时间的比例。在调试代码的时候我们可以根据这个时间使用值来分析哪个任务的 CPU 占用率高,然后合理的分配或优化任务。
本篇博文我们就来学习如何使用 FreeRTOS 运行时间状态统计功能。
要使用此功能的话宏 configGENERATE_RUN_TIME_STATS 必须为 1,还需要在定义其他两个宏。portCONFIGURE_TIMER_FOR_RUN_TIME_STATS()配置一个高精度定时器/计数器提供时基。portGET_RUN_TIME_COUNTER_VALUE()读取时基的时间值。
这三个宏在 FreeRTOSConfig.h 中定义,如下:
#define configGENERATE_RUN_TIME_STATS 1
#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() ConfigureTimeForRunTimeStats()
#define portGET_RUN_TIME_COUNTER_VALUE() FreeRTOSRunTimeTicks
这篇关于详解FreeRTOS:如何统计任务运行时间和CPU占有率(拓展篇—7)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!