ucos/ii 统计任务使用及显示

    使用ucos有段时间了,一次需求修改后好像有卡顿现象,可能是cpu使用率高了,需要优化一下, 不过最好先看下cpu使用率,于是找了下资料,发现统计任务启用后就可以查看了, 顺便还能看堆栈使用情况等,记录下使用须知。

创建一个任务后,在这个任务里面创建其它任务之前调用OSStatInit (这个函数可以执行统计任务检测堆栈,CPU使用率),
定义下面的函数,然后定时调用即可打印堆栈,CPU使用率信息。。。

#include "ucos_ii.h"

。。。

。。。
void  osStaDisplay(void)
{
    OS_TCB *ptcb = OSTCBList;
    if(ptcb)
        do{    
            printf("%s\t", ptcb->OSTCBTaskName);
            printf(" TaskPrio:%d   used/free:%d/%d  usage:%%%d\r\n", ptcb->OSTCBPrio, ptcb->OSTCBStkUsed, ptcb->OSTCBStkSize * sizeof(OS_STK) - ptcb->OSTCBStkUsed, ptcb->OSTCBStkUsed * 100 / (ptcb->OSTCBStkSize * sizeof(OS_STK) ));        
    //                ptcb->OSTCBCtxSwCtr
    //                ptcb->OSTCBCyclesStart
    //                ptcb->OSTCBCyclesTot
            OSTimeDly(OS_TICKS_PER_SEC/100);
        }while(ptcb = ptcb->OSTCBNext);
        
    printf("\r\nCPU_UseAge:%%%d", OSCPUUsage);
  printf("\r\n\r\n\r\n");
}   

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值