RTOS UCOSII统计任务堆栈使用/剩余大小及使用率

2024-10-14 07:55:06

1、编写统计任务堆栈使用/剩余大小及使用率的函数。#defineOS_TASK_S哌囿亡噱TAT_EN1u/*Enable(1)orDisable(0)thestatisticstask*/#defineOS_TMR_EN1u/*Enable(1)orDisable(0)codegenerationforTIMERS*//*********************************************************************************************************************************************** 函数名 : vAppTask_DebugInfo* 描 述 : 应用任务调试信息**********************************************************************************************************************************************/static void vAppTask_DebugInfo(void){ OS_TCB * ptcb = &OSTCBTbl[0];//Table TCB OS_STK_DATA stkDat; printf("************************************ App Task Debug Info ***********************************\r\n"); printf(" Prio Used Free Per TaskName\r\n"); while (ptcb != NULL) { OSTaskStkChk(ptcb->OSTCBPrio, &stkDat);//Check task stack printf(" %2d %5d %5d %02d%% %s\r\n", ptcb->OSTCBPrio, stkDat.OSUsed, stkDat.OSFree, (stkDat.OSUsed * 100)/(stkDat.OSUsed + stkDat.OSFree), ptcb->OSTCBTaskName); ptcb = ptcb->OSTCBPrev;//Previous TCB list } printf("\r\n");}

RTOS UCOSII统计任务堆栈使用/剩余大小及使用率

2、使能设置任务名的宏定义OS_TASK_NAME_EN#define OS_TASK_NAME_EN 1u//Enable task names

RTOS UCOSII统计任务堆栈使用/剩余大小及使用率

3、设置任务名称OSTaskNameSet()void OSTaskNameSet(INT8U prio, INT8U *pname, INT8U *perr)

RTOS UCOSII统计任务堆栈使用/剩余大小及使用率RTOS UCOSII统计任务堆栈使用/剩余大小及使用率

5、UCOSII内置任务说明。uC/OS-II Idle : 为UCOSII空闲任务uC/OS-II Stat : 为UCOSII统计任务uC/OS-II Tmr : 为UCOSII软件定时器任务

RTOS UCOSII统计任务堆栈使用/剩余大小及使用率

6、补充说明1.uC/OS-II Idle为必须任务,不可屏蔽。2.uC/OS-II Stat和uC/OS-II Tmr为可屏蔽任务,可通过相应的宏使能。3.OS_TMR_EN为使能uC/OS-II Tmr任务的宏。4.OS_TASK_STAT_EN为使能uC/OS-II Stat任务的宏。

RTOS UCOSII统计任务堆栈使用/剩余大小及使用率
猜你喜欢