uxTaskGetSystemState:此函数用于获取系统中所有的任务状态,每个任务的状态信息保存在一个TaskStatus_t类型的结构体里面.要使用此函数必须把 configUSE_TRACE_FACILITY 打开,在FreeRtos.h文件的744行(V9.0)

返回值:统计到任务状态的个数,也就是填写到数组pxTaskStatusArray中的个数,此值应该等于函数uxTaskGetNumberOfTask()的返回值,如果uxArraySize太小的话返回值可能为0

UBaseType_t uxTaskGetSystemState( TaskStatus_t * const pxTaskStatusArray,

const UBaseType_t uxArraySize,

uint32_t * const pulTotalRunTime )

typedef struct xTASK_STATUS

{
TaskHandle_t xHandle;//任务句柄
const char *pcTaskName;//任务名字
UBaseType_t xTaskNumber;//任务编号  typedef unsigned long UBaseType_t;
eTaskState eCurrentState;//当前任务状态,eTaskState是一个枚举类型
UBaseType_t uxCurrentPriority;//任务当前的优先级
UBaseType_t uxBasePriority;//任务基础优先级
uint32_t ulRunTimeCounter;//任务运行的总时间
StackType_t *pxStackBase;//堆栈基地址
uint16_t usStackHighWaterMark;//从任务创建以来任务堆栈剩余的最小大小,此值如果太小的话说//明堆栈有溢出的风险

} TaskStatus_t;

u32 TotalRunTime;
UBaseType_t ArraySize,x;
TaskStatus_t *StatusArray;
//第一步:函数uxTaskGetSystemState()的使用
printf("/*********第一步:函数函数uxTaskGetSystemState()的使用*****/\r\n");
ArraySize=uxTaskGetNumberOfTasks();//获取系统任务数量
StatusArray=pvPortMalloc(ArraySize*sizeof(TaskStatus_t));//申请内存
if(StatusArray!=NULL) //内存申请成功
{
ArraySize=uxTaskGetSystemState((TaskStatus_t* )StatusArray,
(UBaseType_t)ArraySize,
(uint32_t*)&TotalRunTime);
printf("TaskName\t\tPriority\t\tTaskNumber\t\t\r\n");
for(x=0;x<ArraySize;x++)
{
//通过串口打印出获取到的系统的有关信息 比如任务名称,
//任务优先级和任务编号
printf("%s\t\t%d\t\t\t%d\t\t\t\r\n",
StatusArray[x].pcTaskName,
(int)StatusArray[x].uxCurrentPriority,
(int)StatusArray[x].xTaskNumber);
}

}
vPortFree(StatusArray);  //释放内存

最新文章

  1. chrome浏览器跨域设置
  2. jquery checkbox操作
  3. Robot Framework--04 工作区
  4. linux 下的clock_gettime() 获取精确时间函数
  5. jspSmartUpload上传下载全攻略
  6. flexgrid的应用
  7. hql查询语句 内存中的情况,fetch迫切查询关键字
  8. 转】Maven学习总结(三)——使用Maven构建项目
  9. 我的博客已搬迁到http://www.lsworks.net
  10. Reflector+Reflexil 相结合实现对DLL文件修改
  11. 通过WriteProcessMemory改写进程的内存
  12. 关于 keybd_event (vb篇)
  13. 【慎思堂】之JS牛腩总结
  14. 带parent指针的successor求解
  15. Oracle 自定义函数、存储过程
  16. python 3.6练习题(仿购物车)
  17. NATS_12:NATS Streaming详解
  18. IE与Cognos的那些事
  19. [uart]3.tty驱动分析
  20. TableLayout 中不显示动态添加的tableRow

热门文章

  1. 翻译:《实用的Python编程》09_01_Packages
  2. 安卓to鸿蒙系列:Timber
  3. gitlab支持https最简单方法
  4. 拓扑排序详解(梅开二度之dfs版按字典序输出拓扑路径+dfs版输出全部拓扑路径
  5. RF-日期时间拼接(20191024_195355)
  6. hdu4544 优先队列(小贪心)
  7. hdu2604 矩阵快速幂
  8. Python中math和cmath模块的使用
  9. GUI基础知识点
  10. Java 在Word中添加数学公式(Latex/MathML)