📄 os_cpu.hpp
字号:
//==========================================================================================
//--文件名:CPU.H
//--
//--功 能:CPU的驱动程序头文件
//--
//--作 者:陈 斌
//--
//--版本号:v1.00
//--
//--时 间:2006.12.31
//==========================================================================================
#ifndef OS_CPU_H
#define OS_CPU_H
//--定义系统数据--------------------------------------------------------
typedef unsigned char BOOL; //布尔变量
typedef unsigned char UINT8; //无符号8位整型变量
typedef signed char SINT8; //有符号8位整型变量
typedef unsigned short UINT16; //无符号16位整型变量
typedef signed short SINT16; //有符号16位整型变量
typedef unsigned int UINT32; //无符号32位整型变量
typedef signed int SINT32; //有符号32位整型变量
typedef float FP32; //单精度浮点数(32位长度)
typedef double FP64; //双精度浮点数(64位长度)
typedef unsigned int STACK; //堆栈是32位宽度
typedef unsigned short STASIZE; //堆栈的大小数据
typedef unsigned int CCBMD; //定义任务和线程的选项的数据类型
typedef unsigned int ADDT; //定义数据地址数据类型
typedef unsigned char ERRDATA; //定义错误数据的类型
typedef unsigned int ETYPE; //定义事件数据的类型
//----------------------------------------------------------------------
typedef UINT16 TIMETYPE; //定义时间类型
typedef SINT16 STIMETYPE; //定义有符号时间类型仅用于判断时间值是否溢出
typedef UINT8 OS_STATE; //任务控制块中任务状态数据 (Tstat & 0x0F) = Estat
typedef UINT8 EVENTTYPE; //事件的数据类型
#define volat volatile //定义易变变量
//---------------------------------------------------------------------
//--进入临界段不同等级要成对使用---------------------------------------
//--以下是对代码段操作的临界段代码-------------------------------------
#define OS_ENTER_CRITICAL() {(pOSTcbCur->CRITCOU)++;OSDisIrq();}// 在所有系统中一定关中断
#define OS_EXIT_CRITICAL() {if(--(pOSTcbCur->CRITCOU) == 0){OSEnIrq();}}// 在所有系统中一定开中断
//--以下是对数据操作的临界段代码---------------------------------------
/*
#define OS_ENTER_32()
#define OS_ENTER_16()
#define OS_ENTET_8()
#define OS_EXIT_32()
#define OS_EXIT_16()
#define OS_EXIT_8()
*/
//--------------------------------------------------------------------
#define OSStartHighCcb() StartHighASM()
#define OSTaskSw() TaskSwASM()
#define OSEnIrq() EnIRQASM()
#define OSDisIrq() DisIRQASM()
//--------------------------------------------------------------------
extern "C"
{
//以下是绝对要在汇编语言中定义的
void TaskSwASM();
void DisIRQASM();
void EnIRQASM();
void StartHighASM();
//以下程序在汇编语言中定义,但不是绝对的,也能在C中定义。
UINT32 CPUintTst();
UINT32 CPUstate();
UINT8 Swap8(UINT8 i,UINT8* pI);
UINT32 Swap32(UINT32 i,UINT32* pI);
//以下是在汇编程序中调用的C程序
void OSIndexReady();
void OSIntOverRing();
void OSCourseSwRing();
}
//--------------------------------------------------------------------
#define CPU_SNAP_GUNE 3
//--------------------------------------------------------------------
#define EN 1
#define DIS 0
#define NULL 0
//--------------------------------------------------------------------
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -