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文件
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.