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

📄 os_cpu.h

📁 一个ucos-ii2.51移植到gcc下的port.大概是一个韩国人做的。从UCOS网站上那个VC的port改进而来。使用和介绍请见RAR文件中的注释。
💻 H
字号:
// oc_cpu.h

///////////////////////////////////////////////////////////////////////////////
// uCOS-II standard definitions and declarations.

#ifdef  OS_CPU_GLOBALS
#define OS_CPU_EXT
#else
#define OS_CPU_EXT				extern
#endif

typedef unsigned char			BOOLEAN;
typedef unsigned char			INT8U;
typedef char					INT8S;
typedef unsigned short			INT16U;
typedef short					INT16S;
typedef unsigned long			INT32U;
typedef long					INT32S;
typedef float					FP32;
typedef double					FP64;

typedef INT32U					OS_STK;

#define  OS_ENTER_CRITICAL()	__asm__ __volatile__("pushfl	\n\tcli")
#define  OS_EXIT_CRITICAL()	__asm__ __volatile__("popfl	\n")

#define  OS_STK_GROWTH			1
#define  OS_TASK_SW()		__asm__ __volatile__("int $0x30\n")

///////////////////////////////////////////////////////////////////////////////
// Port-specific definitions and declarations

// Processor-dependent add-ons

typedef void *					PTR;

#pragma pack(push, 1)					// No padding please

typedef struct _idt_gate
{
	INT16U	Offset;
	INT16U	Selector;
	INT16U	Type;
	INT16U	Offset2;
} IDT_GATE;

#pragma pack(pop)

#define IDTGATE_TRAP			0x8f00	// Trap gate type
#define IDTDATE_INT				0x8e00	// Interrupt gate type
#define IDTGATE_TASK			0x8500	// Task gate type

#define	CS_SELECTOR				0x08	// CS selector in GDT
#define uCOS					0x30    // uC/OS-II Interrupt

// Prototypes to function declared in ix86p\os_cpu_c.c

extern void				OSCpuInit();

// Prototypes to function declared in ix86p\os_cpu_a.asm

extern INT8U			inportb(INT16U PortNo);
extern void				outportb(INT16U PortNo, INT8U Value);
extern void				DefIntHandler();
extern void				DumpStackHandler();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -