0512
来源:互联网 发布:淘宝联盟单品推广 编辑:程序博客网 时间:2024/06/14 04:21
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
- 0512
- 0512
- 第一天0512
- 0512 SalesForce 上课整理
- perl 语言学习 0512
- 专业补基础之0512
- XML:2008 NET的XML[0512]
- 【小阅读^大脑袋】0512 NO.362
- java0501-0512 面向对象概述
- 文达图书管理小帮手 2005 build 0512 下载
- 2017·0512_ Linux 线程同步的三种方法
- Python Django进阶教程(四)(通用视图)
- 网络摄像机—图像压缩方式—JPEG、MJPEG
- 006-查看容器中当前运行的进程
- Bandicam FPS 帧率模式 VFR(可变帧率) 和 CFR (恒定帧率) 到底是什么鬼?
- win764+VS2013+fftw3+Armadillo+QT5
- 0512
- 一些git操作
- live555中TEARDOWN命令的流程
- android应用开发-从设计到实现 4-2 开发环境搭建
- VS2015 使用 Web Deploy 发布网站到 WindowsServer2008 R2服务器详解
- C++ 指针
- 用localStorage来存储数据
- 007-dockerbook中的命令总结(1)
- Android如何获取手机的屏幕宽高