OS_CPU.H文件

OS_CPU.H 文件中包含与处理器相关的常量,宏和结构体的定义。程序清单L9.2是为80x86编写的OS_CPU.H文件的内容。

程序清单L 9.2	OS_CPU.H.
#ifdef  OS_CPU_GLOBALS
#define OS_CPU_EXT
#else
#define OS_CPU_EXT  extern
#endif
/*
*******************************************************************************
*                                 数据类型
*                            (与编译器相关的内容)
*******************************************************************************
*/

typedef unsigned char BOOLEAN;
typedef unsigned char INT8U;            /* 无符号8位数	(1)*/
typedef signed   char INT8S;            /* 带符号8位数	*/
typedef unsigned int  INT16U;           /* 无符号16位数	*/
typedef signed   int  INT16S;           /* 带符号16位数	*/
typedef unsigned long INT32U;           /* 无符号32位数	*/
typedef signed   long INT32S;           /* 带符号32位数	*/
typedef float         FP32;      /* 单精度浮点数	      */
typedef double        FP64;      /* 双精度浮点数	*/

typedef unsigned int  OS_STK;   /* 堆栈入口宽度为16位	*/

#define BYTE   INT8S     /* 以下定义的数据类型是为了与uC/OS V1.xx 兼容	*/
#define UBYTE  INT8U     /*在uC/OS-II中并没有实际的用处	  */
#define WORD   INT16S    
#define UWORD  INT16U
#define LONG   INT32S
#define ULONG  INT32U
/*
*******************************************************************************
*                 Intel 80x86 (实模式, 大模式编译)
*
*方法 #1:   用简单指令开关中断。
*            注意,用方法1关闭中断,从调用函数返回后中断会重新打开!
*            注意将文件OS_CPU_A.ASM中与OSIntCtxSw()相关的常量从10改到8。

*

* 方法 #2:  关中断前保存中断被关闭的状态.
*           注意将文件OS_CPU_A.ASM中与OSIntCtxSw()相关的常量从8改到10。
*  
* 
*
*******************************************************************************
*/
#define  OS_CRITICAL_METHOD    2

#if      OS_CRITICAL_METHOD == 1
#define  OS_ENTER_CRITICAL()  asm  CLI          /* 关闭中断*/
#define  OS_EXIT_CRITICAL()   asm  STI          /* 打开中断*/
#endif

#if      OS_CRITICAL_METHOD == 2
#define  OS_ENTER_CRITICAL()  asm {PUSHF; CLI}  /* 关闭中断	*/
#define  OS_EXIT_CRITICAL()   asm  POPF         /* 打开中断	*/
#endif

/*
*******************************************************************************
*              Intel 80x86 (实模式, 大模式编译)
*******************************************************************************
*/

#define  OS_STK_GROWTH   1 /* 堆栈由高地址向低地址增长 	(3)*/

#define  uCOS         0x80 /* 中断向量0x80用于任务切换	(4)*/

#define  OS_TASK_SW() asm  INT   uCOS                                      (5)

/*
*******************************************************************************
*                               全局变量
*******************************************************************************
*/

OS_CPU_EXT  INT8U  OSTickDOSCtr;   /* 为调用DOS时钟中断而定义的计数器*/
                                   	(6)*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值