⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 substkchk.c

📁 一个arm7实例
💻 C
字号:
/*******************************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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -