- 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)*/
0512
最新推荐文章于 2024-05-30 16:30:58 发布