|
发表于 2016-5-4 00:38:55
|
显示全部楼层
调用这个函数:
/*
*********************************************************************************************************
* 函 数 名: DispTaskInfo
* 功能说明: 将uCOS-III任务信息通过串口打印出来
* 形 参:无
* 返 回 值: 无
*********************************************************************************************************
*/
static void DispTaskInfo(void)
{
OS_TCB *p_tcb; /* 定义一个任务控制块指针, TCB = TASK CONTROL BLOCK */
float CPU = 0.0f;
CPU_SR_ALLOC();
CPU_CRITICAL_ENTER();
p_tcb = OSTaskDbgListPtr;
CPU_CRITICAL_EXIT();
/* 打印标题 */
printf("===============================================================\\r\\n");
printf(" 优先级 使用栈 剩余栈 百分比 利用率 任务名\\r\\n");
printf(" Prio Used Free Per CPU Taskname\\r\\n");
/* 遍历任务控制块列表(TCB list),打印所有的任务的优先级和名称 */
while (p_tcb != (OS_TCB *)0)
{
CPU = (float)p_tcb->CPUUsage / 100;
printf(" %2d %5d %5d %02d%% %5.2f%% %s\\r\\n",
p_tcb->rio,
p_tcb->StkUsed,
p_tcb->StkFree,
(p_tcb->StkUsed * 100) / (p_tcb->StkUsed + p_tcb->StkFree),
CPU,
p_tcb->NamePtr);
CPU_CRITICAL_ENTER();
p_tcb = p_tcb->DbgNextPtr;
CPU_CRITICAL_EXIT();
}
}
就可以显示任务栈的使用情况了。 |
|