⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 os_cpu.hpp

📁 易能嵌入式操作系统E_LAND1.0.0_LPC2106_DS12.rar
💻 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 + -