1. 程式人生 > 其它 >ucosiii輸出CPU利用率和堆疊利用率

ucosiii輸出CPU利用率和堆疊利用率

技術標籤:微控制器c語言

程式碼如下 需要開啟統計任務並把OS_CFG_DBG_EN 置一

效果如下:
在這裡插入圖片描述

void CPUUsage (void)
{
#if OS_CFG_DBG_EN > 0
	CPU_STK_SIZE free;
	CPU_STK_SIZE used;
	OS_ERR err;

	CPU_SR cpu_sr = 0u;
	OS_TCB *p_tcb;
	CPU_CRITICAL_ENTER();
	p_tcb = OSTaskDbgListPtr;
	CPU_CRITICAL_EXIT();
	printf("\r\n已用棧(B)   剩餘棧(B)   棧使用率(%%)  優先順序  CPU使用率(%%)   CPU最大使用率(%%)   呼叫次數     任務名\r\n"
); for (;;) { if (p_tcb != (OS_TCB *)0) { OSTaskStkChk(p_tcb, &free, &used, &err); printf("%4d %4d %3d%% %3d %10.2f%% %10.2f%% %8d %s \r\n", used, free, (used * 100) / (used + free), p_tcb->Prio, p_tcb->CPUUsage /
100.0, p_tcb->CPUUsageMax / 100.0, p_tcb->CtxSwCtr, p_tcb->NamePtr); CPU_CRITICAL_ENTER(); p_tcb = p_tcb->DbgNextPtr; //指向下一個任務的TCB CPU_CRITICAL_EXIT(); } else { break; } } } #endif