📄 os_cpu_c.c
字号:
/*************************************************************************
* Point RTOS(51) *
* The Real-Time Kernel(For Keil c51) *
* *
* (c) Copyright 2005, PenGH *
* All Rights Reserved *
* *
* V0.9.1 *
* *
* File : OS_CPU_C.C *
* Author : 彭光红 *
* History : *
* 2005/08 By PenGH *
*************************************************************************/
/*----------------------------------------------------------------------*/
#define __IN_OS_CPU_C__
#include ".\include\CONFIG.h"
extern idata UINT8 STACK[];
UINT8 idata * data OSTaskStackBotton[OS_MAX_TASKS+2]; /* 堆栈底部位置 */
/*************************************************************************
*
* MODEL NAME : TaskIdle
* DESCRIPTION : 空闲任务
*
*************************************************************************/
void TaskIdle(void) small
{ do{
OSSched(); //空闲任务只是直接进行一次调度
}while(1);
}
/*************************************************************************
*
* MODEL NAME : OSCPUInit
* DESCRIPTION : 堆栈栈底指针表初始化
*
*************************************************************************/
void OSCPUInit(void) small
{
UINT8 i;
for (i = 0; i < OS_MAX_TASKS + 1; i++)
{
OSTaskStackBotton[i] = STACK+i*2;
}
OSTaskStackBotton[OS_MAX_TASKS + 1] = 0x0;
}
/*************************************************************************
*
* MODEL NAME : OSTickISR
* DESCRIPTION : 系统时钟中断服务函数
* 此函数有一个汇编版本,用户可自由选择用哪个
*
*************************************************************************/
/*#pragma disable*/
//void OSTickISR(void) interrupt OS_TIME_ISR
//{
//UINT8 i;
//
// TL0 = 0xbf;
// TH0 = 0xfc;
// UserTimerProc();
// for (i = 0; i < OS_MAX_TASKS+1; i++)
// {
// if (OSWaitTick[i] != 0 )
// {
// OSWaitTick[i]--;
// if (OSWaitTick[i] == 0)
// {
// OSTaskRuning |= OSMapTbl[i];
// }
// }
// }
//}
/* The end of file */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -