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

📄 2440addr.h

📁 hreadx实时嵌入式操作系统源代码,ARM移植. threadx是一个很好的多任务实时嵌入式操作系统
💻 H
📖 第 1 页 / 共 5 页
字号:
  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 + -