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

📄 isr.h

📁 自己写的ARM移植代码
💻 H
字号:
/********************************************************************/
/*                                                                  */
/*      Board Specific Routines for KS32C5000                       */
/*                                                                  */
/*------------------------------------------------------------------*/
/*      Copyright (C) 1997 Integrated System Inc.                   */
/*      Copyright (C) 1997 Samsung Electronics.                     */
/*------------------------------------------------------------------*/
/*                                                                  */
/*      Modified, programmed by qorrha                              */
/*                                                                  */
/*      Description : 1998-05-01 first edited  for KS32C5000        */ 
/********************************************************************/


/*Bit position of IRQ_SET_REG,RST_REG,MASK_REG */
#include "stdtype.h"
#define	EXT0_INT		0x000001
#define	EXT1_INT		0x000002
#define	EXT2_INT		0x000004
#define	EXT3_INT		0x000008

#ifdef KS32C50100 /* KS32C50100 */

#define	UART0_TX_INT		0x000010
#define	UART0_RX_ERR_INT	0x000020
#define	UART1_TX_INT		0x000040
#define	UART1_RX_ERR_INT	0x000080
#define	GDMA0_INT		0x000100
#define	GDMA1_INT		0x000200
#define	TIMER0_INT		0x000400
#define	TIMER1_INT		0x000800
#define	HDLCTxA_INT		0x001000
#define	HDLCRxA_INT		0x002000
#define	HDLCTxB_INT		0x004000
#define	HDLCRxB_INT		0x008000

#else /* KS32C5000 */

#define	UART0_TX_INT		0x000010
#define	UART0_RX_INT		0x000020
#define	UART0_ERROR_INT		0x000040
#define	UART1_TX_INT		0x000080
#define	UART1_RX_INT		0x000100
#define	UART1_ERROR_INT		0x000200
#define	GDMA0_INT		0x000400
#define	GDMA1_INT		0x000800
#define	TIMER0_INT		0x001000
#define	TIMER1_INT		0x002000
#define	HDLCA_INT		0x004000
#endif

#define	BDMA_TX_INT		0x010000
#define	BDMA_RX_INT		0x020000
#define	MAC_TX_INT		0x040000
#define	MAC_RX_INT		0x080000
#define	IIC_INT			0x100000
#define	GLOBAL_INT		0x200000


#define	nEXT0_INT		0
#define	nEXT1_INT		1
#define	nEXT2_INT		2
#define	nEXT3_INT		3

#ifdef KS32C50100 /* KS32C50100 */
	
#define	nUART0_TX_INT		4
#define	nUART0_RX_ERR_INT	5
#define	nUART1_TX_INT		6
#define	nUART1_RX_ERR_INT	7
#define	nGDMA0_INT		8
#define	nGDMA1_INT		9
#define	nTIMER0_INT		10
#define	nTIMER1_INT		11
#define	nHDLCTxA_INT		12
#define	nHDLCRxA_INT		13
#define	nHDLCTxB_INT		14
#define	nHDLCRxB_INT		15

#else 	/* KS32C5000 */
	
#define	nUART0_TX_INT		4
#define	nUART0_RX_INT		5
#define	nUART0_ERROR_INT	6
#define	nUART1_TX_INT		7
#define	nUART1_RX_INT		8
#define	nUART1_ERROR_INT	9
#define	nGDMA0_INT		10
#define	nGDMA1_INT		11
#define	nTIMER0_INT		12
#define	nTIMER1_INT		13
#define	nHDLCA_INT		14
#define	nHDLCB_INT		15

#endif

#define	nBDMA_TX_INT		16
#define	nBDMA_RX_INT		17
#define	nMAC_TX_INT		18
#define	nMAC_RX_INT		19
#define	nIIC_INT		20
#define	nGLOBAL_INT		21


/* Macro fucntions */

#define	Enable_Int(n)           *ARM_INTMASK &= ~(1<<(n))
#define	Disable_Int(n)		    *ARM_INTMASK |= (1<<(n))
#define Clear_PendingBit(n)     *ARM_INTPEND = (1<<(n))
#define SetPendingBit(n)        *ARM_INTPENDTST = (1<<(n))


/* 
 *     Prototype for interrupt functions 
 */

#define	MAXHNDLRS	21	/* Maximum # of interrupt  handlers */

/* Function Prototype for Interrupt */
extern void InitInterrupt(void) ;
extern void ClrIntStatus(void);  // Clear all interrupt related register


/* Function Prototype for Exception Vector */
extern void ISR_UndefHandler(REG32 *adr)	;
extern void ISR_PrefetchHandler(REG32 *adr)	;
extern void ISR_AbortHandler(REG32 *adr)	;
extern void ISR_SwiHandler(void)	;
extern void ISR_IrqHandler(void)	;
extern void ISR_FiqHandler(void)	;



/* Function Prototype for Interrupt Setup */
extern void SysSetInterrupt(REG32 vector, void (*)()) ;
extern void SetPriority(void);
extern void SetIntMode(void);

/*  =================================================
 *  Monitoring the interrupt related system register
 *  =================================================
 */
extern void IntConfig(void);

⌨️ 快捷键说明

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