substkchk.c

来自「一个arm7实例」· C语言 代码 · 共 85 行

C
85
字号
/*******************************Copyright (c)**********************************
***************************************By Z.Q.Yang****************************/

/******************************************************************************
*文件名:substkchk
*功能:堆栈检测服务函数
*头文件:"user.h","config.h"
*作者:Z.Q.Yang
*******************************************************************************/
#include"config.h"
#include"user.h"

/******************************************************************************
*函数名:STKChk
*功能:堆栈检测函数
*入口参数:无
*出口参数:无
******************************************************************************/
void    STKChk(void)
{
    static uint8 flag;      /*静态变量,动态显示的时间记录*/
    OS_STK_DATA data;       /*用于检测堆栈的结构体变量*/

    GUIClr();
    GUIPrintf(20,55,1, "CPU %2d",OSCPUUsage);
    GUIDisText(52,55,'%',1);

    GUIPrintf(0,0,1,"%d-%d-%d  %d-%d-%d",HOUR,MIN,SEC,MONTH,DOM,YEAR);/*显示时间*/
    GUIPrintf(0,8,1, "Task");
    GUIPrintf(40,8,1, "Total Free  Used ");

    OSTaskStkChk(SubFunPro, &data);                 /*检测子功能任务的堆栈并显示*/
    GUIPrintf(0,20,1, "SubFun");                
    GUIPrintf(40,20,1, "%4d  %4d  %4d",
                    data.OSFree + data.OSUsed,
                    data.OSFree,
                    data.OSUsed
                   );
                   

    OSTaskStkChk(MenuPro, &data);/*检测主界面任务的堆栈并显示*/
    GUIPrintf(0,28,1, "Menu");
    GUIPrintf(40,28,1, "%4d  %4d  %4d",
                    data.OSFree + data.OSUsed,
                    data.OSFree,
                    data.OSUsed
                   );
     OSTaskStkChk(KeyPro, &data);/*检测键盘任务的堆栈并显示*/
    GUIPrintf(0,36,1, "Key");
    GUIPrintf(40,36,1, "%4d  %4d  %4d",
                    data.OSFree + data.OSUsed,
                    data.OSFree,
                    data.OSUsed
                   );
      OSTaskStkChk(7, &data);/*检测shell任务的堆栈并显示*/
    GUIPrintf(0,44,1, "Shell");
    GUIPrintf(40,44,1, "%4d  %4d  %4d",
                    data.OSFree + data.OSUsed,
                    data.OSFree,
                    data.OSUsed
                   );
    GUIPrintf(64,56,1,"PRESS < BACK");          
    if(flag>18)flag=0;
    switch(flag)            /*动态图像显示*/
    {
        case 1:
        case 2:
        case 0:GUIDisText(5,55,'/',1);break;
        case 5:
        case 4:
        case 3:GUIDisText(05,55,'-',1);break;
        case 8:
        case 7:
        case 6:GUIDisText(5,55,'\\',1);break;
        case 11:
        case 10:
        case 9:GUIDisText(5,55,'|',1);break;
        default:break;  
    }

    flag++;

    LCDRefresh(GUIBuf);              
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?