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

📄 os_cpu.h

📁 s3c2410上用Keil开发的ucosII源代码
💻 H
字号:
/*OS_CPU.H 系统的数据类型定义部分,和CPU相关*/

#ifndef __OS_CPU_H
#define __OS_CPU_H

#ifdef  OS_CPU_GLOBALS
#define OS_CPU_EXT
#else
#define OS_CPU_EXT extern
#endif
/*
*********************************************************************************************************
*              数据类型
*    定义一系列(编译器相关)的数据类型
*
*********************************************************************************************************
*/

typedef unsigned char BOOLEAN;       //注意:不要使用bit定义,因为在结构体里无法使用
typedef unsigned char INT8U;         //无符号8位数
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 long OS_CPU_SR;     //定义CPU状态寄存器的大小,移植到C51上面的时候并没有用到 (PSW = 8 bits)
typedef unsigned long OS_STK;        //Each stack entry is 16-bit wide

#define BYTE         INT8S          //兼容以前版本的数据类型
#define UBYTE        INT8U          //uC/OS-II可以不用这些数据类型
#define WORD         INT16S
#define UWORD        INT16U
#define LONG         INT32S
#define ULONG        INT32U

/*
*********************************************************************************************************
*                                          Processor Specifics
*********************************************************************************************************
*/
// specifics for S3C44B0X
#define	OS_ENTER_CRITICAL()	ARMDisableInt()
#define	OS_EXIT_CRITICAL()	ARMEnableInt()

#define OS_STK_GROWTH		1		// stacks grow from high to low  
#define OS_TASK_SW			OSCtxSw

/* 
*********************************************************************************************************
*                              ARM, various architectures
*
*********************************************************************************************************
*/

// Definitions specific to ARM/uHAL
#define	SVC32MODE	0x13

// angel takes up stack 
#define SEMIHOSTED_STACK_NEEDS 1024

// idle task stack size (words) 
#ifdef SEMIHOSTED
#define OS_IDLE_STK_SIZE        (32+SEMIHOSTED_STACK_NEEDS)
#else
#define OS_IDLE_STK_SIZE        32
#endif

// defined in os_cpu_a.s 
extern void OSCtxSw(void);           // task switch routine
extern void OSIntCtxSw(void);           // interrupt context switch
extern void ARMDisableInt(void);        // disable global interrupts
extern void ARMEnableInt(void);         // enable global interrupts
extern void OSTickISR(void);		// timer interrupt routine


#endif //__OS_CPU_H

⌨️ 快捷键说明

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