📄 os_hook.cpp
字号:
//==========================================================================================
//--文件名:OS_HOOK.cpp
//--
//--功 能:系统的钩子函数
//--
//--作 者:陈 斌
//--
//--版本号:v1.00
//--
//--时 间:2006.12.31
//==========================================================================================
#ifndef OS_HOOK_CPP
#define OS_HOOK_CPP
#include <E_LAND.H>
#include <Board/BOARD.hPP>
//-------------------------------------------------------------
//--功 能:定义错误处理函数
//--
//--参 数:Err:错误代码
//--
//--返 回:无
//--
//--注 意:可以在处理函数内部添加自己的代码
//-- 可在调试时在此函数内设置断点,根据出错代码能在(OS_ERR.HPP)
//-- 文件中找出相应的出错信息
//-- 并不是所有出错都能进入出错处理函数
//-------------------------------------------------------------
void OSError(ERRDATA Err)
{
do
{
}while(Err != ERR_NONE);
}
//-------------------------------------------------------------
//--功 能:任务调度钩子函数
//--
//--参 数:
//--
//--返 回:
//--
//--注 意:其使用的堆栈是调度前优先级的堆栈空间
//-------------------------------------------------------------
#if DOS_SWHOOK == EN
void OSTaskSwHook()
{
}
#endif
//-------------------------------------------------------------
//--功 能:空闲任务的钩子函数
//--
//--参 数:
//--
//--返 回:
//--
//--注 意:在这里可以加入休眠语句,
//-- 加入休眠语句会使CPU使用率统计不准确
//-------------------------------------------------------------
#if DOS_IDLEHOOK == EN
void OSIdleHook()
{
}
#endif
//-------------------------------------------------------------
//--功 能:统计任务的钩子函数
//--
//--参 数:i当前的CPU使用率的百分比
//--
//--返 回:
//--
//--注 意:
//-------------------------------------------------------------
#if DOS_STAT == EN
void OSStatHook(UINT8 i)
{
#if DOS_VIEW == EN
UINT32 couflag = 0x0F;
UINT32 temp;
UINT32 cou[2];
UINT8 j;
UINT8 RateChar[]={"CPU使用率为000%"};
UINT8* pRate;
OS_UINT8_QD Cpu_rate;
RateChar[11]=i/100+0x30;
RateChar[12]=(i%100)/10+0x30;
RateChar[13]=i%10+0x30;
pRate = &RateChar[11];//RateChar;
i=0;
while(*pRate != NULL)
{
i++;
Cpu_rate.Data = 0xFF;
Cpu_rate.PUSH_FIFO(ViewID);
Cpu_rate.Data = 70+i;
Cpu_rate.PUSH_FIFO(ViewID);
Cpu_rate.Data = 24;
Cpu_rate.PUSH_FIFO(ViewID);
Cpu_rate.Data = *pRate;
Cpu_rate.PUSH_FIFO(ViewID);
Cpu_rate.Data = 0x03;
Cpu_rate.PUSH_FIFO(ViewID);
pRate++;
}
cou[0] = 0;
cou[1] = OSTickCou;
for(j=0;j<2;j++)
{
for(i=0;i<8;i++)
{
Cpu_rate.Data = 0xFF;
Cpu_rate.PUSH_FIFO(ViewID);
Cpu_rate.Data = j*35+9-i;
Cpu_rate.PUSH_FIFO(ViewID);
Cpu_rate.Data = 24;
Cpu_rate.PUSH_FIFO(ViewID);
temp = (couflag & cou[j]>>(i*4));
if(temp > 9)
{
Cpu_rate.Data = temp+'A'-10;//大于等于10
}
else
{
Cpu_rate.Data = temp+'0';
}
Cpu_rate.PUSH_FIFO(ViewID);
Cpu_rate.Data = 0x04;
Cpu_rate.PUSH_FIFO(ViewID);
pRate++;
}
}
#endif
}
#endif
//-------------------------------------------------------------
//--功 能:系统的初始化钩子函数
//--
//--参 数:无
//--
//--返 回:无
//--
//--注 意:与硬件有关的初始化操作
//-------------------------------------------------------------
void OSBSPInitHook()
{
PINSEL0 = 0x00000000|0x00000005;
PINSEL1 = 0x00000000;
IODIR = 0x00003C00; //LED输出
}
//-------------------------------------------------------------
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -