📄 arch.h
字号:
#if !defined(_ARCH_H)
#define _ARCH_H
/*
*********************************************************************************************************
* DATA TYPES
* (Compiler Specific)
*********************************************************************************************************
*/
#define CPU8 0
#define CPU16 1
#define CPU32 2
#define DEVICE_TYPE CPU16
#if DEVICE_TYPE==CPU8
typedef signed char SIGNED; /* Define data types for backward compatibility ... */
typedef unsigned char UNSIGNED; /* ... to uC/OS V1.xx. Not actually needed for ... */
#define SYS_MAX_VALUE 255
#define LOWEST_PRIORITY 63
#define TIME_SCALE 10
#endif
#if DEVICE_TYPE==CPU16
typedef signed short SIGNED; /* Define data types for backward compatibility ... */
typedef unsigned short UNSIGNED;
#define SYS_MAX_VALUE 65535
#define LOWEST_PRIORITY 127
#define TIME_SCALE 1
#endif
#if DEVICE_TYPE==CPU32
typedef signed long SIGNED; /* Define data types for backward compatibility ... */
typedef unsigned long UNSIGNED;
#define SYSMAXVALUE 16777215
#define LOWEST_PRIORITY 255
#define TIME_SCALE 1
#endif
typedef signed char STATUS;
typedef int INT;
typedef unsigned char BOOLEAN;
typedef unsigned char INT8U; /* Unsigned 8 bit quantity */
typedef signed char INT8; /* Signed 8 bit quantity */
typedef unsigned short INT16U; /* Unsigned 16 bit quantity */
typedef signed short INT16; /* Signed 16 bit quantity */
typedef unsigned long INT32U; /* Unsigned 32 bit quantity */
typedef signed long INT32; /* Signed 32 bit quantity */
typedef float FP32; /* Single precision floating point */
typedef double FP64; /* Double precision floating point */
typedef unsigned char UCHAR; /* Unsigned 8 bit quantity */
typedef signed char CHAR; /* Signed 8 bit quantity */
typedef unsigned short USHORT; /* Unsigned 16 bit quantity */
typedef signed short SHORT; /* Signed 16 bit quantity */
typedef unsigned long ULONG; /* Unsigned 32 bit quantity */
typedef signed long LONG; /* Signed 32 bit quantity */
#ifndef FALSE
#define FALSE 0
#endif
#ifndef TRUE
#define TRUE 1
#endif
#define OS_CRITICAL_METHOD 2
#if OS_CRITICAL_METHOD == 1
#define EnLock() asm CLI /* Disable interrupts */
#define UnLock() asm STI /* Enable interrupts */
#endif
#if OS_CRITICAL_METHOD == 2
#define EnLock() asm {PUSHF; CLI} /* Disable interrupts */
#define UnLock() asm POPF /* Enable interrupts */
#endif
/*
*********************************************************************************************************
* Intel 80x86 (Real-Mode, Large Model) Miscellaneous
*********************************************************************************************************
*/
#define STK_DEFAULT 512
#define SYS_MIN_STACK 42
#define SYS_STK_GROWTH 0
#define MESSAGE_SIZE 32
#define MAX_INT_VECT 32
#define HISR_LOWEST_PRIO 2
#define SYS_TIME_SLICE 20
/* Stack grows from HIGH to LOW memory on 80x86 */
#define INTSWITCH 0x80 /* Interrupt vector # used for context switch */
#define Ctrl_Task_Save() asm INT INTSWITCH
/*
*********************************************************************************************************
* ERROR CODES
*********************************************************************************************************
*/
#define INTTICK 0x08
#define TICKS_PER_SEC 100
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -