📄 2440addr.h
字号:
Interrupt vector
*********************************************************************************************************/
#if 0
#define pISR_EINT0 (*(unsigned *)(__ISR_STARTADDRESS + 0x20))
#define pISR_EINT1 (*(unsigned *)(__ISR_STARTADDRESS + 0x24))
#define pISR_EINT2 (*(unsigned *)(__ISR_STARTADDRESS + 0x28))
#define pISR_EINT3 (*(unsigned *)(__ISR_STARTADDRESS + 0x2c))
#define pISR_EINT4_7 (*(unsigned *)(__ISR_STARTADDRESS + 0x30))
#define pISR_EINT8_23 (*(unsigned *)(__ISR_STARTADDRESS + 0x34))
#define pISR_CAM (*(unsigned *)(__ISR_STARTADDRESS + 0x38))
#define pISR_BAT_FLT (*(unsigned *)(__ISR_STARTADDRESS + 0x3c))
#define pISR_TICK (*(unsigned *)(__ISR_STARTADDRESS + 0x40))
#define pISR_WDT_AC97 (*(unsigned *)(__ISR_STARTADDRESS + 0x44))
#define pISR_TIMER0 (*(unsigned *)(__ISR_STARTADDRESS + 0x48))
#define pISR_TIMER1 (*(unsigned *)(__ISR_STARTADDRESS + 0x4c))
#define pISR_TIMER2 (*(unsigned *)(__ISR_STARTADDRESS + 0x50))
#define pISR_TIMER3 (*(unsigned *)(__ISR_STARTADDRESS + 0x54))
#define pISR_TIMER4 (*(unsigned *)(__ISR_STARTADDRESS + 0x58))
#define pISR_UART2 (*(unsigned *)(__ISR_STARTADDRESS + 0x5c))
#define pISR_LCD (*(unsigned *)(__ISR_STARTADDRESS + 0x60))
#define pISR_DMA0 (*(unsigned *)(__ISR_STARTADDRESS + 0x64))
#define pISR_DMA1 (*(unsigned *)(__ISR_STARTADDRESS + 0x68))
#define pISR_DMA2 (*(unsigned *)(__ISR_STARTADDRESS + 0x6c))
#define pISR_DMA3 (*(unsigned *)(__ISR_STARTADDRESS + 0x70))
#define pISR_SDI (*(unsigned *)(__ISR_STARTADDRESS + 0x74))
#define pISR_SPI0 (*(unsigned *)(__ISR_STARTADDRESS + 0x78))
#define pISR_UART1 (*(unsigned *)(__ISR_STARTADDRESS + 0x7c))
#define pISR_NFCON (*(unsigned *)(__ISR_STARTADDRESS + 0x80))
#define pISR_USBD (*(unsigned *)(__ISR_STARTADDRESS + 0x84))
#define pISR_USBH (*(unsigned *)(__ISR_STARTADDRESS + 0x88))
#define pISR_IIC (*(unsigned *)(__ISR_STARTADDRESS + 0x8c))
#define pISR_UART0 (*(unsigned *)(__ISR_STARTADDRESS + 0x90))
#define pISR_SPI1 (*(unsigned *)(__ISR_STARTADDRESS + 0x94))
#define pISR_RTC (*(unsigned *)(__ISR_STARTADDRESS + 0x98))
#define pISR_ADC (*(unsigned *)(__ISR_STARTADDRESS + 0x9c))
#endif /* 0 */
/*********************************************************************************************************
PENDING BIT
*********************************************************************************************************/
#define BIT_EINT0 (0x1u)
#define BIT_EINT1 (0x1u << 1)
#define BIT_EINT2 (0x1u << 2)
#define BIT_EINT3 (0x1u << 3)
#define BIT_EINT4_7 (0x1u << 4)
#define BIT_EINT8_23 (0x1u << 5)
#define BIT_CAM (0x1u << 6)
#define BIT_BAT_FLT (0x1u << 7)
#define BIT_TICK (0x1u << 8)
#define BIT_WDT_AC97 (0x1u << 9)
#define BIT_TIMER0 (0x1u << 10)
#define BIT_TIMER1 (0x1u << 11)
#define BIT_TIMER2 (0x1u << 12)
#define BIT_TIMER3 (0x1u << 13)
#define BIT_TIMER4 (0x1u << 14)
#define BIT_UART2 (0x1u << 15)
#define BIT_LCD (0x1u << 16)
#define BIT_DMA0 (0x1u << 17)
#define BIT_DMA1 (0x1u << 18)
#define BIT_DMA2 (0x1u << 19)
#define BIT_DMA3 (0x1u << 20)
#define BIT_SDI (0x1u << 21)
#define BIT_SPI0 (0x1u << 22)
#define BIT_UART1 (0x1u << 23)
#define BIT_NFCON (0x1u << 24)
#define BIT_USBD (0x1u << 25)
#define BIT_USBH (0x1u << 26)
#define BIT_IIC (0x1u << 27)
#define BIT_UART0 (0x1u << 28)
#define BIT_SPI1 (0x1u << 29)
#define BIT_RTC (0x1u << 30)
#define BIT_ADC (0x1u << 31)
#define BIT_ALLMSK (0xffffffff)
#define BIT_SUB_ALLMSK (0x7fff)
#define BIT_SUB_AC97 (0x1u << 14)
#define BIT_SUB_WDT (0x1u << 13)
#define BIT_SUB_CAM_S (0x1u << 12)
#define BIT_SUB_CAM_C (0x1u << 11)
#define BIT_SUB_ADC (0x1u << 10)
#define BIT_SUB_TC (0x1u << 9)
#define BIT_SUB_ERR2 (0x1u << 8)
#define BIT_SUB_TXD2 (0x1u << 7)
#define BIT_SUB_RXD2 (0x1u << 6)
#define BIT_SUB_ERR1 (0x1u << 5)
#define BIT_SUB_TXD1 (0x1u << 4)
#define BIT_SUB_RXD1 (0x1u << 3)
#define BIT_SUB_ERR0 (0x1u << 2)
#define BIT_SUB_TXD0 (0x1u << 1)
#define BIT_SUB_RXD0 (0x1u << 0)
/*********************************************************************************************************
通用位操作定义
*********************************************************************************************************/
#define BIT_CLR(uiReg, iBit) (uiReg &= ~(1u << iBit)) /* 将某一个指定的位清零 */
#define BIT_SET(uiReg, iBit) (uiReg |= (1u << iBit)) /* 将某一个指定的位置一 */
/*********************************************************************************************************
中断操作宏
*********************************************************************************************************/
/*********************************************************************************************************
中央宏操作
*********************************************************************************************************/
#define INTER_ALL_IRQ() (rINTMOD = 0x00000000) /* 所有中断都为 IRQ 模式 */
#define INTER_ALL_MSK() do { \
rINTMSK = BIT_ALLMSK; \
rINTSUBMSK = 0x7FFF; \
} while (0) /* 屏蔽所有中断 */
/*********************************************************************************************************
MASK 和 SUB MASK 位操作
*********************************************************************************************************/
#define INTER_CLR_MSK(iBit) (rINTMSK &= ~iBit) /* 指定位解除屏蔽 */
#define INTER_SET_MSK(iBit) (rINTMSK |= iBit) /* 屏蔽指定位中断 */
#define INTER_GET_MSK(iBit) (rINTMSK & iBit) /* 检测是否屏蔽中断 */
#define INTER_CLR_SUBMSK(iBit) (rINTSUBMSK &= ~iBit) /* 指定位解除 SUB 屏蔽 */
#define INTER_SET_SUBMSK(iBit) (rINTSUBMSK |= iBit) /* SUB 屏蔽指定位中断 */
/*********************************************************************************************************
INTPND, SRCPND 和 SUBSRCPND 位操作
*********************************************************************************************************/
#define INTER_CLR_INTPND(iBit) (rINTPND = iBit) /* 清除 INTPND 相关位 */
#define INTER_CLR_SRCPND(iBit) (rSRCPND = iBit) /* 清除 SRCPND 相关位 */
#define INTER_CLR_SUBSRCPND(iBit) (rSUBSRCPND = iBit) /* 清除 SUBSRCPND 相关位 */
/**************************************************************************/
/* ClearPending BIT Wait until rINTPND is changed for the case that */
/* the ISR is very short. */
/**************************************************************************/
#define INTER_CLR_PNDING(iBit) do { \
rSRCPND = iBit; \
rINTPND = iBit; \
(void)rINTPND; \
} while (0)
#define ClearPending(bit) INTER_CLR_PNDING(bit)
#ifdef __cplusplus
}
#endif
#endif /* __2440ADDR_H */
/**************************************************************************/
/* end of file */
/**************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -