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)*/
OS_CPU.H文件
最新推荐文章于 2022-09-16 00:05:42 发布