stm32程序不像PC,写一个大点的临时变量,没准程序就崩溃了。那怎么查看本地的临时变量占用多少比例的空间了呢?
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();
/* 打印标题 */
App_Printf("===============================================================\r\n");
App_Printf(" 优先级 使用栈 剩余栈 百分比 利用率 任务名\r\n");
App_Printf(" Prio Used Free Per CPU Taskname\r\n");
/* 遍历任务控制块列表(TCB list),打印所有的任务的优先级和名称 */
while (p_tcb != (OS_TCB *)0)
{
CPU = (float)p_tcb->CPUUsage / 100;
App_Printf(" %2d %5d %5d %02d%% %5.2f%% %s\r\n",
p_tcb->Prio,
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();
}
}