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

📄 os_cpu_c.c

📁 一个自己写的RTOS
💻 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 + -