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

📄 os_cfg.h

📁 Point RTOS 主要是一个针对小系统开发而设计的实时操作系统。 目前
💻 H
字号:
/*************************************************************************
*                           Point RTOS(51)                               *
*                 The Real-Time Kernel(For Keil c51)                     *
*                                                                        *
*                     (c) Copyright 2005, PenGH                          *
*                         All Rights Reserved                            *
*                                                                        *
*                              Ver 01.0.2                                *
*                                                                        *
*        File :  OS_CORE.C                                               *
*      Author :  彭光红                                                  *
*     History :                                                          *
*                2005/08  By PenGH   文件建立                            *
*                2006/04  By PenGH   更新了系统的目录结构,加入了定时器  *
*                                    处理宏。                            *
*                2006/11  By PenGH    使CPU在空间任务时进入省电模式      *

*                                     加入信号量操作                     *
*                                     调整了一些函数的编译选项           *
*************************************************************************/


/*----------------------------------------------------------------------*/


#ifndef  __HEAD_OS_CFG__
#define  __HEAD_OS_CFG__

/***************************************************************
*   CPU内部RAM大小
****************************************************************/
#define  DATA_RAM_SIZE          0x80


/***************************************************************
*   最大任务数1~8,用户实际可定义最多7个任务,空闲任务占用一个。
****************************************************************/
#define OS_MAX_TASKS            5


/***************************************************************
*   最大内存地址,仅指XDATA   保留未用
****************************************************************/
#define OS_MAX_XRAMADDR         0


/***************************************************************
*   OSTaskResume是否使用。注:本系统针对小容量,因而很有必要
*   进行这样的设置。
****************************************************************/
#define OS_TaskResume_EN        1


/***************************************************************
*   延时等待函数是否有效
****************************************************************/
#define OS_TimeDly_EN           0


/***************************************************************
*   任务唤醒函数使能
****************************************************************/
#define OS_WakeUp_EN            0


/***************************************************************
*   是否使用函数来进行滴哒,一般来说要对此功能进行扩展才这么做
****************************************************************/
#define OS_TimeTick_EN          0


/**************************************************************
*
*                 信号号量操作配置定义。
*
***************************************************************/


/***************************************************************
*   信号量有效
****************************************************************/
#define OS_SEM_EN               1


/***************************************************************
*   允许最大信号量个数
****************************************************************/
#define OS_MAX_SEMS             2


/***************************************************************
*   最大允许的信号量计数值
****************************************************************/
#define OS_MAX_SEMS_COUNT       100


/***************************************************************
*   使能信号量边界检查
****************************************************************/
#define OS_SEM_CHK_EN           1


/***************************************************************
*   信号量能使用的内存空间类型
****************************************************************/
#define OS_SEM_BUF_TYPE         xdata



/****************************************************************
*   信号量建立函数是否有效。之所以有此选项,是由于本系统使用静
*   态全局空间作为信号量的缓冲区,如果信号量初始值为零且数据分
*   配在内部空间(即idata空间),则在系统加电或复位时,已经进行
*   了初始化,可以不必再进行这样的操作。
****************************************************************/
#define OS_SEM_CREATE_EN		1


/***************************************************************
*   初始化信号量表
****************************************************************/
#define OS_SEM_INIT_EN          0


/***************************************************************
*   等待请求信号量函数使能
****************************************************************/
#define OS_SEM_PEND_EN          1


/***************************************************************
*   发送信号量函数使能
****************************************************************/
#define OS_SEM_POST_EN          1


/***************************************************************
*   无等待请求信号量函数使能
****************************************************************/
#define OS_SEM_ACCEPT_EN        0


/***************************************************************
*   信号量查询函数使能
****************************************************************/
#define OS_SEM_QUERY_EN         0




/**************************************************************
*
*                 系统钩子函数配置定义。
*
***************************************************************/


/***************************************************************
*   用户开始调度前处理过程有效,如果有效,则用户必须定义此函数。
****************************************************************/
#define OS_USER_BEFORE_SCHED_HOOK_EN 0


/***************************************************************
*   用户空闲任务:使用用户自定义的系统空闲任务
****************************************************************/
#define OS_USER_IDLE_HOOK_EN         0


/***************************************************************
*   用户定时器处理过程是否有效,如果有效,则用户必须定义此函数
****************************************************************/
#define OS_USER_TIMER_HOOK_EN    0


/****************************************************************
*  如果用户使能了 OS_USER_BEFORE_SCHED或OS_USER_IDLE_EN 或
*  OS_USER_TIMERPROC_EN,则对应的函数的定义(并不一定要全部
*  加入,可以只加入一个或几个)用户必须在自己的项目内实 现
*  与此定义对应的函数。
****************************************************************/

  #ifdef  __IN_OS_CPU_C__
    #if OS_USER_BEFORE_SCHED_HOOK_EN>0
      extern void UserBeforeSched(void);
    #endif
	#if OS_USER_IDLE_HOOK_EN>0
	  extern void UserIdle(void);
	#endif
	#if OS_USER_TIMER_HOOK_EN>0
	  extern void UserTimerHook(void);
	#endif
  #endif

#endif

/* The end of file */

⌨️ 快捷键说明

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