interrupt.h

来自「一个基于MMU的操作系统」· C头文件 代码 · 共 61 行

H
61
字号
#define	INT_ADC_OFT		31
#define	INT_RTC_OFT		30 
#define	INT_SPI1_OFT	29 
#define	INT_UART0_OFT	28 
#define	INT_IIC_OFT 	27 
#define	INT_USBH_OFT 	26 
#define	INT_USBD_OFT 	25 
//#define	Reserved_OFT 	24 
#define	INT_UART1_OFT 	23 
#define	INT_SPI0_OFT 	22 
#define	INT_SDI_OFT 	21 
#define	INT_DMA3_OFT 	20 
#define	INT_DMA2_OFT 	19 
#define	INT_DMA1_OFT 	18 
#define	INT_DMA0_OFT 	17 
#define	INT_LCD_OFT 	16 
#define	INT_UART2_OFT 	15
#define	INT_TIMER4_OFT 	14
#define	INT_TIMER3_OFT 	13
#define	INT_TIMER2_OFT 	12
#define	INT_TIMER1_OFT 	11
#define	INT_TIMER0_OFT 	10
#define	INT_WDT_OFT 	9
#define	INT_TICK_OFT 	8
#define	nBATT_FLT_OFT 	7
//#define	Reserved_OFT 	6
#define	EINT8_23_OFT	5
#define	EINT4_7_OFT 	4
#define	EINT3_OFT 		3
#define	EINT2_OFT 		2
#define	EINT1_OFT 		1
#define	EINT0_OFT 		0

void IRQ_Handle(void);
//inline void OS_ENTER_CRITICAL(void);
//inline void OS_EXIT_CRITICAL(void);

#define OS_ENTER_CRITICAL()	\
__asm__(			\
	"mrs	r0,	cpsr\n"\
	"stmdb	sp!,	{r0}\n"\
	"orr	r0, r0, 	#0x80\n"\
	"msr	cpsr_c,	r0\n"\
	:::"r0"\
	)
	

/********************************************************************
* 2006.6.20:添加恢复原中断状态代码,并修改为inline
********************************************************************/
#define OS_EXIT_CRITICAL()	\
__asm__(			\
	"ldmia	sp!,	{r0}\n"\
	"tst	r0,	#0x80\n"\
	"mrs	r0,	cpsr\n"\				
	"biceq	r0, r0, 	#0x80\n"\
	"msr	cpsr_c,	r0\n"\
	:::"r0"\
	)

⌨️ 快捷键说明

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