|
打印信息函数如下,在用keil调试过程中发现download后显示cpu占用率均为0,而在线仿真之后cpu占用率不为0,这个是什么原因呢?望大神指点
/*
*********************************************************************************************************
* 函 数 名: DispTaskInfo
* 功能说明: 将uCOS-III任务信息通过串口打印出来
* 形 参:无
* 返 回 值: 无
*********************************************************************************************************
*/
static void DispTaskInfo(void)
{
OS_TCB *p_tcb; /* 定义一个任务控制块指针, TCB = TASK CONTROL BLOCK */
CPU_SR_ALLOC();
CPU_CRITICAL_ENTER();
p_tcb = OSTaskDbgListPtr;
CPU_CRITICAL_EXIT();
/* 打印标题 */
printf("===============================================================\r\n");
printf (" CPU使用率:%5.2f%%, CPU最大使用率:%5.2f%%\r\n", (float)OSStatTaskCPUUsage / 100, (float)OSStatTaskCPUUsageMax / 100);
printf("---------------------------------------------------------------\r\n");
printf(" 优先级 使用栈 剩余栈 百分比 利用率 任务名\r\n");
printf(" Prio Used Free Per CPU Taskname\r\n");
/* 遍历任务控制块列表(TCB list),打印所有的任务的优先级和名称 */
while (p_tcb != (OS_TCB *)0)
{
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),
(float)p_tcb->CPUUsage / 100,
p_tcb->NamePtr);
CPU_CRITICAL_ENTER();
p_tcb = p_tcb->DbgNextPtr;
CPU_CRITICAL_EXIT();
}
printf("===============================================================\r\n");
}
download:
===============================================================
CPU使用率: 8.14%, CPU最大使用率:68.25%
---------------------------------------------------------------
优先级 使用栈 剩余栈 百分比 利用率 任务名
Prio Used Free Per CPU Taskname
5 98 158 38% 0.00% App Task KeyPro
3 25 231 09% 0.00% App Task Disp
3 25 231 09% 0.00% App Msp Pro
29 41 87 32% 0.00% uC/OS-III Timer Task
30 30 70 30% 0.00% uC/OS-III Stat Task
1 30 98 23% 0.00% uC/OS-III Tick Task
31 18 110 14% 0.00% uC/OS-III Idle Task
===============================================================
debug:
===============================================================
CPU使用率: 8.21%, CPU最大使用率:68.89%
---------------------------------------------------------------
优先级 使用栈 剩余栈 百分比 利用率 任务名
Prio Used Free Per CPU Taskname
5 106 150 41% 0.21% App Task KeyPro
3 25 231 09% 0.01% App Task Disp
3 25 231 09% 2.32% App Msp Pro
29 41 87 32% 4.46% uC/OS-III Timer Task
30 30 70 30% 0.30% uC/OS-III Stat Task
1 30 98 23% 2.79% uC/OS-III Tick Task
31 18 110 14% 89.88% uC/OS-III Idle Task
===============================================================
|
-
-
|