在使用freertos的情形中,免不了在创建任务的时候需要来手动给任务划分堆栈大小,对于一些资源比较紧张的处理器,肯定是需要把空间合理运用的,这个时候就可以考虑使用vTaskList这个os自带的一个函数来监控各个任务处于的一个工作状态以及当前运行状态下剩下的堆栈大小。
使用此函数需要在FreeRTOSConfig.h里面来把下面两个宏定义打开
#define configUSE_TRACE_FACILITY 1
#define configUSE_STATS_FORMATTING_FUNCTIONS 1
打开之后就能调用vTaskList来监测任务堆栈使用情况了。
defaultTask X 3 1900 1
IDLE R 0 100 3
imu_data_proces B 5 6030 5
gnss_data_proce B 5 459 6
Tmr Svc B 2 995 4
calibration_pro B 3 211 8
self_teat_task S 4 483 12
第一列是任务名,第二列状态X表示的是运行态,R表示就绪,B表示阻塞,S表示挂起,D表示删除,第三列表示的是就是任务优先级了,第四列表示剩余堆栈历史最小剩余值,第五列表示热舞编号