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

📄 irq.h

📁 用ARM7 LPC2292芯片驱动240128图形点阵液晶的源代码
💻 H
字号:
//========================================================================//
// 文件名:  irq.h
// 作  者: xinqiang Zhang(小丑)  (email: xinqiang@Mzdesign.com.cn)
// 日  期: 2008/01/03
// 描  述: VIC irq的一些初始文件所对应的头文件
//
// 参  考: Copyright(C) 2006, Philips Semiconductor  irq
// 版  本:
//      2008/01/03      First version    Mz Design
//========================================================================//
#ifndef __IRQ_H 
#define __IRQ_H
#include "type.h"

#define VIC_BASE_ADDR	0xFFFFF000
// if nested interrupt is used, NEST_INTERRUPT needs to be set to 1, otherwise 0 
#define NESTED_INTERRUPT	1

#define I_Bit				0x80
#define F_Bit				0x40

#define SYS32Mode			0x1F
#define IRQ32Mode			0x12
#define FIQ32Mode			0x11

#define	WDT_INT				0
#define SWI_INT				1
#define ARM_CORE0_INT		2
#define	ARM_CORE1_INT		3
#define	TIMER0_INT			4
#define TIMER1_INT			5
#define UART0_INT			6
#define	UART1_INT			7
#define	PWM0_INT			8
#define I2C0_INT			9
#define SPI0_INT			10
#define	SPI1_INT			11
#define	PLL_INT				12
#define RTC_INT				13
#define EINT0_INT			14
#define EINT1_INT			15
#define EINT2_INT			16
#define EINT3_INT			17
#define	ADC0_INT			18
#define I2C1_INT			19
#define BOD_INT				20
#define ADC1_INT			21
#define USB_INT				22

#define IRQ_SLOT_EN			0x20	// bit 5 in Vector control register 
#define VIC_SIZE			16

#define VECT_ADDR_INDEX		0x100
#define VECT_CNTL_INDEX 	0x200

/* Be aware that, from compiler to compiler, nested interrupt will have to
be handled differently. More details can be found in Philips LPC2000
family app-note AN10381 */
 
/* unlike Keil Compiler, don't save and restore registers into the stack
in RVD as the compiler does that for you. See RVD ARM compiler Inline and
embedded assemblers, "Rules for using __asm and asm keywords. */
// static DWORD sysreg;		/* used as LR register */

#if NESTED_INTERRUPT 
#define IENABLE __enable_irq()
#else
#define IENABLE ;	/* do nothing */
#endif

#if NESTED_INTERRUPT
#define IDISABLE	__disable_irq()
#else
#define IDISABLE ;	/* do nothing */
#endif

void init_VIC( void );
DWORD install_irq( DWORD IntNumber, void *HandlerAddr );
DWORD uninstall_irq( DWORD IntNumber );

#endif 

/******************************************************************************
**                            End Of File
******************************************************************************/

⌨️ 快捷键说明

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