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

📄 intr.def

📁 基于ADI 公司的blackfin芯片的通用中断框架程序
💻 DEF
字号:
// core interrupt event vector

#define IVG2	0xffe02008

#define IVG3	0xffe0200c

#define IVG4	0xffe02010

#define IVG5	0xffe02014

#define IVG6	0xffe02018

#define IVG7	0xffe0201c

#define IVG8	0xffe02020

#define IVG9	0xffe02024

#define IVG10	0xffe02028

#define IVG11	0xffe0202c

#define IVG12	0xffe02030

#define IVG13	0xffe02034

#define IVG14	0xffe02038

#define IVG15	0xffe0203c


#define imask	0xffe02104


// system interrupt enable flag and request flag

#define SIC_IMASK	0xffc0010c

#define SIC_ISR		0xffc00120


#define PLL_INT			0x1

#define DMAERR_INT		0x2

#define IPORTERR_INT	0x4

#define RTC_INT			0x8

#define DMA0_INT		0x10

#define DMA3_INT		0x20

#define DMA4_INT		0x40

#define DMA5_INT		0x80

#define DMA6_INT		0x100

#define TWI_INT			0x200

#define DMA7_INT		0x400

#define DMA8_INT		0x800

#define DMA9_INT		0x1000

#define DMA10_INT		0x2000

#define DMA11_INT		0x4000

#define CANRx_INT		0x8000

#define CANTx_INT		0x10000

#define DMA1_INT		0x20000
#define PORTH_A_INT		0x20000

#define DMA2_INT		0x40000
#define PORTH_B_INT		0x40000

#define TMR0_INT		0x80000

#define TMR1_INT		0x100000

#define TMR2_INT		0x200000

#define TMR3_INT		0x400000

#define TMR4_INT		0x800000

#define TMR5_INT		0x1000000

#define TMR6_INT		0x2000000

#define TMR7_INT		0x4000000

#define PORTFG_A_INT	0x8000000

#define PORTG_B_INT		0x10000000

#define MDMA0_INT		0x20000000

#define MDMA1_INT		0x40000000

#define WTDTMR_INT		0x80000000
#define PORTF_B_INT		0x80000000



#define POS_PLL_INT			0

#define POS_DMAERR_INT		1

#define POS_IPORTERR_INT	2

#define POS_RTC_INT			3

#define POS_DMA0_INT		4

#define POS_DMA3_INT		5

#define POS_DMA4_INT		6

#define POS_DMA5_INT		7

#define POS_DMA6_INT		8

#define POS_TWI_INT			9

#define POS_DMA7_INT		10

#define POS_DMA8_INT		11

#define POS_DMA9_INT		12

#define POS_DMA10_INT		13

#define POS_DMA11_INT		14

#define POS_CANRx_INT		15

#define POS_CANTx_INT		16

#define POS_DMA1_INT		17
#define POS_PORTH_A_INT		17

#define POS_DMA2_INT		18
#define POS_PORTH_B_INT		18

#define POS_TMR0_INT		19

#define POS_TMR1_INT		20

#define POS_TMR2_INT		21

#define POS_TMR3_INT		22

#define POS_TMR4_INT		23

#define POS_TMR5_INT		24

#define POS_TMR6_INT		25

#define POS_TMR7_INT		26

#define POS_PORTFG_A_INT	27

#define POS_PORTG_B_INT		28

#define POS_MDMA0_INT		29

#define POS_MDMA1_INT		30

#define POS_WTDTMR_INT		31
#define POS_PORTF_B_INT		31


// GPIO MMRs

#define PORTF_FER			0xffc03200

#define PORTF_DIR			0xffc00730

#define PORTF_INEN			0xffc00740

#define PORTF_EDGE			0xffc00738

#define PORTF_BOTH			0xffc0073c

#define PORTF_MASKA_SET		0xffc00718

#define PORTF_DATA			0xffc00700



#define LDREG(reg, data)	reg##.h = hi(data);	\
							reg##.l = lo(data)
							
							
#define SAVE_LC0()		[--sp] = lc0;	\
						[--sp] = lt0;	\
						[--sp] = lb0
						
#define SAVE_LC1()		[--sp] = lc1;	\
						[--sp] = lt1;	\
						[--sp] = lb1
						
						
#define SAVE_ALL_LC()	SAVE_LC0();		\
						SAVE_LC1()

						
#define SAVE_DAG0()		[--sp] = i0;	\
						[--sp] = m0;	\
						[--sp] = b0;	\
						[--sp] = l0
						
#define SAVE_DAG1()		[--sp] = i1;	\
						[--sp] = m1;	\
						[--sp] = b1;	\
						[--sp] = l1
						
#define SAVE_DAG2()		[--sp] = i2;	\
						[--sp] = m2;	\
						[--sp] = b2;	\
						[--sp] = l2
						

#define SAVE_DAG3()		[--sp] = i3;	\
						[--sp] = m3;	\
						[--sp] = b3;	\
						[--sp] = l3
						
						
#define SAVE_ALL_DAG()	SAVE_DAG0();	\
						SAVE_DAG1();	\
						SAVE_DAG2();	\
						SAVE_DAG3()
						
						
#define SAVE_ACC()		[--sp] = a0.x;	\
						[--sp] = a0.w;	\
						[--sp] = a1.x;	\
						[--sp] = a1.w
						
						
#define POP_LC0()		lb0 = [sp++];	\
						lt0 = [sp++];	\
						lc0 = [sp++]
						
						
#define POP_LC1()		lb1 = [sp++];	\
						lt1 = [sp++];	\
						lc1 = [sp++]
						
				
#define POP_ALL_LC()	POP_LC1();		\
						POP_LC0()
						
						
#define POP_DAG0()		l0 = [sp++];	\
						b0 = [sp++];	\
						m0 = [sp++];	\
						i0 = [sp++]
						
						
#define POP_DAG0()		l0 = [sp++];	\
						b0 = [sp++];	\
						m0 = [sp++];	\
						i0 = [sp++]
						
#define POP_DAG1()		l1 = [sp++];	\
						b1 = [sp++];	\
						m1 = [sp++];	\
						i1 = [sp++]
						
						
#define POP_DAG2()		l2 = [sp++];	\
						b2 = [sp++];	\
						m2 = [sp++];	\
						i2 = [sp++]
						
						
#define POP_DAG3()		l3 = [sp++];	\
						b3 = [sp++];	\
						m3 = [sp++];	\
						i3 = [sp++]
						
#define POP_ALL_DAG()	POP_DAG3();		\
						POP_DAG2();		\
						POP_DAG1();		\
						POP_DAG0()
						

#define POP_ACC()		a1.w = [sp++];	\
						a1.x = [sp++];	\
						a0.w = [sp++];	\
						a0.x = [sp++]
						
				
						
#define BEGIN_HANDLER	\
	[--sp] = astat;		\
	[--sp] = fp;		\
	[--sp] = rets;		\
	[--sp] = (r7:0, p5:0);	\
	SAVE_ALL_LC();		\
	SAVE_ALL_DAG();		\
	SAVE_ACC();

	
	
	
#define END_HANDLER		\
	POP_ACC();		\
	POP_ALL_DAG();	\
	POP_ALL_LC();	\
	(r7:0, p5:0) = [sp++];	\
	rets = [sp++];	\
	fp = [sp++];	\
	astat = [sp++];
	

⌨️ 快捷键说明

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