在执行多任务的过程中,如果发现某一任务占用的时间过长,可以拆分这个任务来提高任务并行的效率。FreeRTOS可以通过函数vTaskGetRunTimeStats()来统计各个任务的运行时间占总运行时间的百分比,具体输出格式如下:
在FreeRTOS.h中需要开启或配置如下的宏定义:
/*
* 1:增加任务运行时统计
配置位置:
#define portGET_RUN_TIME_COUNTER_VALUE() FreeRTOSRunTimeTicks
#ifndef configGENERATE_RUN_TIME_STATS
#define configGENERATE_RUN_TIME_STATS 1
#endif
#ifndef portCONFIGURE_TIMER_FOR_RUN_TIME_STATS
#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() ConfigureTimerForRunTimeStats()
#endif
#ifndef configUSE_STATS_FORMATTING_FUNCTIONS
#define configUSE_STATS_FORMATTING_FUNCTIONS 1
#endif
*/
其中ConfigureTimerForRunTimeStats()为配置运行统计时间的定

文章讲述了在FreeRTOS操作系统中,如何通过vTaskGetRunTimeStats()函数来统计任务运行时间,并优化长时间运行的任务。通过配置运行统计时间的定时器,调整内存管理策略从heap_1.c到heap_4.c,成功解决了程序崩溃的问题。
最低0.47元/天 解锁文章
16万+

被折叠的 条评论
为什么被折叠?



