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

📄 os_cpu.h

📁 一个基于MEGA16的GUI
💻 H
字号:
/*********************************************************************************************************
*------------------------------------------------------------------------------------------------------
********************************************************************************************************/

#ifndef NULL
#define NULL 0
#endif

#if EN_OS_INT_ENTER >0 
#define  OS_INT_ENTER() OSIntNesting++;sei()
#endif

#define  OS_ENTER_CRITICAL()  cli();Os_Enter_Sum++              /* 禁止中断                                     */
#define  OS_EXIT_CRITICAL()   if(--Os_Enter_Sum==0) sei()       /* 允许中断                                     */

#define  HIGH_BYTE  0                                           /* uint16的高位字节                              */
#define  LOW_BYTE   1                                           /* uint16的低位字节                              */

#define  OS_TASK_SW()    OSCtxSw()                      


/* 任务切换函数                                  */

#ifndef _OS_CPU_A_C

extern void OSCtxSw(void);
extern void OSIntCtxSw(void);

#endif


#define ExtraPush()			\
{							\
__asm__ __volatile__(		\
"PUSH R2"   "\n\t"			\
"PUSH R3"	"\n\t"			\
"PUSH R4"	"\n\t"			\
"PUSH R5"   "\n\t"			\
"PUSH R6"	"\n\t"			\
"PUSH R7"	"\n\t"			\
"PUSH R8"   "\n\t"			\
"PUSH R9"	"\n\t"			\
"PUSH R10"	"\n\t"			\
"PUSH R11"  "\n\t"			\
"PUSH R12"	"\n\t"			\
"PUSH R13"	"\n\t"			\
"PUSH R14"  "\n\t"			\
"PUSH R15"	"\n\t"			\
"PUSH R16"	"\n\t"			\
"PUSH R17"	"\n\t"			\
"PUSH R28"  "\n\t"			\
"PUSH R29"	"\n\t"			\
);							\
}


#define POPALL()			\
{							\
__asm__ __volatile__(		\
"POP R29"		"\n\t"		\
"POP R28"		"\n\t"		\
"POP R17"   	"\n\t"		\
"POP R16"   	"\n\t"		\
"POP R15"   	"\n\t"		\
"POP R14"   	"\n\t"		\
"POP R13"   	"\n\t"		\
"POP R12"   	"\n\t"		\
"POP R11"   	"\n\t"		\
"POP R10"   	"\n\t"		\
"POP R9"    	"\n\t"		\
"POP R8"    	"\n\t"		\
"POP R7"    	"\n\t"		\
"POP R6"    	"\n\t"		\
"POP R5"    	"\n\t"		\
"POP R4"    	"\n\t"		\
"POP R3"    	"\n\t"		\
"POP R2"    	"\n\t"		\
"POP R31"  		"\n\t"  	\
"POP R30"  		"\n\t"  	\
"POP R27"  		"\n\t"  	\
"POP R26"  		"\n\t"  	\
"POP R25"  		"\n\t"  	\
"POP R24"  		"\n\t"  	\
"POP R23"  		"\n\t"  	\
"POP R22"  		"\n\t"  	\
"POP R21"  		"\n\t"  	\
"POP R20"  		"\n\t"  	\
"POP R19"  		"\n\t"  	\
"POP R18"  		"\n\t"  	\
"POP R0"   		"\n\t"  	\
"OUT 0x3F,R0"  	"\n\t"  	\
"POP R0"   		"\n\t"  	\
"POP R1"   		"\n\t"  	\
);							\
}

#define PUSHALL()           \
{							\
__asm__ __volatile__(		\
"PUSH R1"  		 "\n\t" 	\
"PUSH R0"  		 "\n\t"  	\
"IN R0,0x3F"  	 "\n\t"  	\
"PUSH R0"  		 "\n\t"  	\
"PUSH R18"  	 "\n\t"  	\
"PUSH R19"  	 "\n\t"  	\
"PUSH R20"  	 "\n\t"  	\
"PUSH R21"  	 "\n\t"  	\
"PUSH R22"  	 "\n\t"  	\
"PUSH R23"  	 "\n\t"  	\
"PUSH R24"  	 "\n\t"  	\
"PUSH R25"  	 "\n\t"  	\
"PUSH R26"  	 "\n\t"  	\
"PUSH R27"   	 "\n\t"  	\
"PUSH R30"		 "\n\t"		\
"PUSH R31"		 "\n\t"		\
"PUSH R2"   	 "\n\t"		\
"PUSH R3"		 "\n\t"		\
"PUSH R4"		 "\n\t"		\
"PUSH R5"   	 "\n\t"		\
"PUSH R6"		 "\n\t"		\
"PUSH R7"		 "\n\t"		\
"PUSH R8"   	 "\n\t"		\
"PUSH R9"		 "\n\t"		\
"PUSH R10"		 "\n\t"		\
"PUSH R11"  	 "\n\t"		\
"PUSH R12"		 "\n\t"		\
"PUSH R13"		 "\n\t"		\
"PUSH R14"  	 "\n\t"		\
"PUSH R15"		 "\n\t"		\
"PUSH R16"		 "\n\t"		\
"PUSH R17"		 "\n\t"		\
"PUSH R28"	 	 "\n\t"		\
"PUSH R29"		 "\n\t"		\
);							\
}


#define _nop_()				\
{							\
__asm__ __volatile__(		\
"NOP"			 "\n\t"		\
"NOP"			 "\n\t"		\
"NOP"			 "\n\t"		\
"NOP"			 "\n\t"		\
);							\
}



⌨️ 快捷键说明

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