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

📄 other_event.asm

📁 基于ADI 公司的blackfin芯片的通用中断框架程序
💻 ASM
字号:
.section program;


#include "..\intrmgr\intr.def"


#define EVT_BEGIN(init_pos, num)	\
	BEGIN_HANDLER				\
	LDREG(p5, SIC_ISR);			\
	LDREG(p4, _sys_callback);	\
	p3 = num;					\
	loop DISPATCH_EVENTS_##init_pos lc0 = p3;	\
	p3 = (init_pos << 2);		\
	p4 = p4 + p3;				\
	LDREG(r7, (1 << init_pos));	\
	loop_begin DISPATCH_EVENTS_##init_pos;	\
	r0 = [p5];					\
	r0 = r0 & r7;				\
	cc = r0 == 0;				\
	if cc jump SKIP_EVENT_##init_pos;	\
	p0 = [p4];					\
	call (p0);					\
SKIP_EVENT_##init_pos:			\
	p4 += 4;					\
	r7 = r7 << 1;				\
	loop_end DISPATCH_EVENTS_##init_pos;



#define EVT_END()	\
	END_HANDLER		\
	rti;
	
	
.extern _sys_callback;


#define EVT7_INT_FLAG	( PLL_INT | DMAERR_INT | IPORTERR_INT )


_evt7_isr:

	.global _evt7_isr;
			
	EVT_BEGIN(0, 3)
	

	EVT_END()
	
_evt7_isr.end:



#define EVT8_INT_FLAG	(RTC_INT | DMA0_INT)


_evt8_isr:

	.global _evt8_isr;
	
	EVT_BEGIN(3, 2)
	
	
	EVT_END()
	
_evt8_isr.end:



#define EVT9_INT_FLAG	(DMA3_INT | DMA4_INT | DMA5_INT | DMA6_INT)



_evt9_isr:

	.global _evt9_isr;


	EVT_BEGIN(5, 4)
	
	
	EVT_END()
	
	
_evt9_isr.end:



#define EVT10_INT_FLAG	(TWI_INT | DMA7_INT | DMA8_INT | DMA9_INT | DMA10_INT | DMA11_INT)


_evt10_isr:

	.global _evt10_isr;
	
	EVT_BEGIN(9, 6)
	
	
	EVT_END()
	
_evt10_isr.end:



#define EVT11_INT_FLAG	(CANRx_INT | CANTx_INT | DMA1_INT | DMA2_INT)


_evt11_isr:

	.global _evt11_isr;
	
	EVT_BEGIN(15, 4)
	
	
	EVT_END()
	
_evt11_isr.end:



#define EVT12_INT_FLAG	(TMR0_INT | TMR1_INT | TMR2_INT | TMR3_INT | TMR4_INT | TMR5_INT | TMR6_INT | TMR7_INT | PORTFG_A_INT | PORTG_B_INT)


_evt12_isr:

	.global _evt12_isr;
	
	EVT_BEGIN(19, 10)
	
	
	EVT_END()
	
_evt12_isr.end:



#define EVT13_INT_FLAG	(MDMA0_INT | MDMA1_INT | WTDTMR_INT)


_evt13_isr:

	.global _evt13_isr;
	
	EVT_BEGIN(29, 3)
	
	
	EVT_END()
	
_evt13_isr.end:


⌨️ 快捷键说明

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