硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3260|回复: 2
收起左侧

[μCOS-II] 求UCOS2任务堆栈大小检测?

[复制链接]

35

主题

73

回帖

343

积分

高级会员

超越昨天

积分
343
QQ
发表于 2016-8-22 10:39:25 | 显示全部楼层 |阅读模式
求一段UCOS2任务堆栈大小检测用的程序,现在是机器跑一个小就死机。怀疑是某个任务堆栈设备大小。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106934
QQ
发表于 2016-8-22 10:49:29 | 显示全部楼层
在你的一个任务里面调用这个函数,即可,另外你的统计任务要初始化:

/*
*********************************************************************************************************
*    函 数 名: DispTaskInfo
*    功能说明: 将uCOS-II任务信息打印到串口
*    形    参: 无
*    返 回 值: 无
*********************************************************************************************************
*/
static void DispTaskInfo(void)
{
    OS_TCB      *ptcb;            /* 定义一个任务控制块指针, TCB = TASK CONTROL BLOCK */
    OS_STK_DATA stk;            /* 用于读取任务栈使用情况 */


    ptcb    = &OSTCBTbl[0];        /* 指向第1个任务控制块(TCB) */


    /* 打印标题 */
    printf("==================================================\\r\\n");
    printf("  优先级   使用栈  剩余栈  百分比   任务名\\r\\n");
    printf("  Prio     Used    Free    Per      Taskname\\r\\n");
   
   
    /* 遍历任务控制块列表(TCB list),打印所有的任务的优先级和名称 */
    while (ptcb != NULL)
    {
        /*
            ptcb->OSTCBPrio : 任务控制块中保存的任务的优先级
            ptcb->OSTCBTaskName : 任务控制块中保存的任务名称,需要在创建任务的时候
            调用OSTaskNameSet()指定任务名称,比如:
            OSTaskNameSet(APP_TASK_USER_IF_PRIO, "User I/F", &err);
        */
        OSTaskStkChk(ptcb->OSTCBPrio, &stk);    /* 获得任务栈已用空间 */
        printf("   %2d    %5d    %5d    %02d%%     %s\\r\\n", ptcb->OSTCBPrio,
            stk.OSUsed, stk.OSFree, (stk.OSUsed * 100) / (stk.OSUsed + stk.OSFree),
            ptcb->OSTCBTaskName);        
        ptcb = ptcb->OSTCBPrev;                    /* 指向上一个任务控制块 */
    }
}
=======================================
显示效果:
2.jpg
回复

使用道具 举报

35

主题

73

回帖

343

积分

高级会员

超越昨天

积分
343
QQ
 楼主| 发表于 2016-8-22 11:41:24 | 显示全部楼层

回 eric2013 的帖子

eric2013:在你的一个任务里面调用这个函数,即可,另外你的统计任务要初始化:

/*
*********************************************************************************************************
*    函 数 名: DispTaskInfo
....... (2016-08-22 10:49) 
非常好用,感谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-10 10:28 , Processed in 0.272124 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表