由于平台的差异性,FreeRTOS容易出现栈的溢出等现象,这时候在调试的时候使用

void vTaskList( char * pcWriteBuffer ) 这个函数很有必要

这个函数可以打印出栈名 栈状态 优先级 栈的剩余空间

这样就一目了然了,demo如下
void TASK_LIST(void *arg) { char pWriteBuffer[2048]; for(;;) { sys_msleep(10000
); vTaskList((char *)&pWriteBuffer); printf("task_name task_state priority
stack tasK_num\n"); printf("%s\n", pWriteBuffer); } vTaskDelete(NULL); return; }
打印如下
task_name task_state priority stack tasK_num TASK_LIST R 4 341 20 LOGUART_T B
5 457 1
R代表准备态 ready
B代表阻塞态 blocked

注意在FreeRTOSconfig.h要打开:

configUSE_TRACE_FACILITY 1
configUSE_STATS_FORMATTING_FUNCTIONS 1

得到了上面的任务剩余栈区大小,有利于后期开发的优化

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信