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

📄 lpc236x.h

📁 又一个arm上跑的实时内核的源码,gcc 编译
💻 H
📖 第 1 页 / 共 5 页
字号:
//-- D/A Converter --

#define DAC_BASE_ADDR                0xE006C000
#define rDACR           (*(volatile unsigned long *)(DAC_BASE_ADDR + 0x00))

//-- Watchdog --

#define WDG_BASE_ADDR                0xE0000000

#define rWDMOD          (*(volatile unsigned long *)(WDG_BASE_ADDR + 0x00))
#define rWDTC           (*(volatile unsigned long *)(WDG_BASE_ADDR + 0x04))
#define rWDFEED         (*(volatile unsigned long *)(WDG_BASE_ADDR + 0x08))
#define rWDTV           (*(volatile unsigned long *)(WDG_BASE_ADDR + 0x0C))
#define rWDCLKSEL       (*(volatile unsigned long *)(WDG_BASE_ADDR + 0x10))

//-- CAN CONTROLLERS AND ACCEPTANCE FILTER --

#define CAN_ACCEPT_BASE_ADDR                0xE003C000

#define rCAN_AFMR        (*(volatile unsigned long *)(CAN_ACCEPT_BASE_ADDR + 0x00))
#define rCAN_SFF_SA      (*(volatile unsigned long *)(CAN_ACCEPT_BASE_ADDR + 0x04))
#define rCAN_SFF_GRP_SA  (*(volatile unsigned long *)(CAN_ACCEPT_BASE_ADDR + 0x08))
#define rCAN_EFF_SA      (*(volatile unsigned long *)(CAN_ACCEPT_BASE_ADDR + 0x0C))
#define rCAN_EFF_GRP_SA  (*(volatile unsigned long *)(CAN_ACCEPT_BASE_ADDR + 0x10))
#define rCAN_EOT         (*(volatile unsigned long *)(CAN_ACCEPT_BASE_ADDR + 0x14))
#define rCAN_LUT_ERR_ADR (*(volatile unsigned long *)(CAN_ACCEPT_BASE_ADDR + 0x18))
#define rCAN_LUT_ERR     (*(volatile unsigned long *)(CAN_ACCEPT_BASE_ADDR + 0x1C))

#define CAN_CENTRAL_BASE_ADDR                0xE0040000

#define rCAN_TX_SR       (*(volatile unsigned long *)(CAN_CENTRAL_BASE_ADDR + 0x00))
#define rCAN_RX_SR       (*(volatile unsigned long *)(CAN_CENTRAL_BASE_ADDR + 0x04))
#define rCAN_MSR         (*(volatile unsigned long *)(CAN_CENTRAL_BASE_ADDR + 0x08))

#define CAN1_BASE_ADDR                0xE0044000

#define rCAN1MOD         (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x00))
#define rCAN1CMR         (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x04))
#define rCAN1GSR         (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x08))
#define rCAN1ICR         (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x0C))
#define rCAN1IER         (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x10))
#define rCAN1BTR         (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x14))
#define rCAN1EWL         (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x18))
#define rCAN1SR          (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x1C))
#define rCAN1RFS         (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x20))
#define rCAN1RID         (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x24))
#define rCAN1RDA         (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x28))
#define rCAN1RDB         (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x2C))

#define rCAN1TFI1        (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x30))
#define rCAN1TID1        (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x34))
#define rCAN1TDA1        (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x38))
#define rCAN1TDB1        (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x3C))
#define rCAN1TFI2        (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x40))
#define rCAN1TID2        (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x44))
#define rCAN1TDA2        (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x48))
#define rCAN1TDB2        (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x4C))
#define rCAN1TFI3        (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x50))
#define rCAN1TID3        (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x54))
#define rCAN1TDA3        (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x58))
#define rCAN1TDB3        (*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x5C))

#define CAN2_BASE_ADDR                0xE0048000

#define rCAN2MOD         (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x00))
#define rCAN2CMR         (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x04))
#define rCAN2GSR         (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x08))
#define rCAN2ICR         (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x0C))
#define rCAN2IER         (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x10))
#define rCAN2BTR         (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x14))
#define rCAN2EWL         (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x18))
#define rCAN2SR          (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x1C))
#define rCAN2RFS         (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x20))
#define rCAN2RID         (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x24))
#define rCAN2RDA         (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x28))
#define rCAN2RDB         (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x2C))

#define rCAN2TFI1        (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x30))
#define rCAN2TID1        (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x34))
#define rCAN2TDA1        (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x38))
#define rCAN2TDB1        (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x3C))
#define rCAN2TFI2        (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x40))
#define rCAN2TID2        (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x44))
#define rCAN2TDA2        (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x48))
#define rCAN2TDB2        (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x4C))
#define rCAN2TFI3        (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x50))
#define rCAN2TID3        (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x54))
#define rCAN2TDA3        (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x58))
#define rCAN2TDB3        (*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x5C))

//-- MultiMedia Card Interface(MCI) Controller ---

#define MCI_BASE_ADDR                0xE008C000

#define rMCI_POWER       (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x00))
#define rMCI_CLOCK       (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x04))
#define rMCI_ARGUMENT    (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x08))
#define rMCI_COMMAND     (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x0C))
#define rMCI_RESP_CMD    (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x10))
#define rMCI_RESP0       (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x14))
#define rMCI_RESP1       (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x18))
#define rMCI_RESP2       (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x1C))
#define rMCI_RESP3       (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x20))
#define rMCI_DATA_TMR    (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x24))
#define rMCI_DATA_LEN    (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x28))
#define rMCI_DATA_CTRL   (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x2C))
#define rMCI_DATA_CNT    (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x30))
#define rMCI_STATUS      (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x34))
#define rMCI_CLEAR       (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x38))
#define rMCI_MASK0       (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x3C))
#define rMCI_MASK1       (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x40))
#define rMCI_FIFO_CNT    (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x48))
#define rMCI_FIFO        (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x80))

//-- I2S Interface Controller (I2S)

#define I2S_BASE_ADDR                0xE0088000

#define rI2S_DAO        (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x00))
#define rI2S_DAI        (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x04))
#define rI2S_TX_FIFO    (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x08))
#define rI2S_RX_FIFO    (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x0C))
#define rI2S_STATE      (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x10))
#define rI2S_DMA1       (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x14))
#define rI2S_DMA2       (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x18))
#define rI2S_IRQ        (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x1C))
#define rI2S_TXRATE     (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x20))
#define rI2S_RXRATE     (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x24))

//-- General-purpose DMA Controller --

#define DMA_BASE_ADDR                0xFFE04000

#define rGPDMA_INT_STAT         (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x000))
#define rGPDMA_INT_TCSTAT       (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x004))
#define rGPDMA_INT_TCCLR        (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x008))
#define rGPDMA_INT_ERR_STAT     (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x00C))
#define rGPDMA_INT_ERR_CLR      (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x010))
#define rGPDMA_RAW_INT_TCSTAT   (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x014))
#define rGPDMA_RAW_INT_ERR_STAT (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x018))
#define rGPDMA_ENABLED_CHNS     (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x01C))
#define rGPDMA_SOFT_BREQ        (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x020))
#define rGPDMA_SOFT_SREQ        (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x024))
#define rGPDMA_SOFT_LBREQ       (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x028))
#define rGPDMA_SOFT_LSREQ       (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x02C))
#define rGPDMA_CONFIG           (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x030))
#define rGPDMA_SYNC             (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x034))

//-- DMA channel 0 registers --

#define rGPDMA_CH0_SRC      (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x100))
#define rGPDMA_CH0_DEST     (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x104))
#define rGPDMA_CH0_LLI      (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x108))
#define rGPDMA_CH0_CTRL     (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x10C))
#define rGPDMA_CH0_CFG      (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x110))

//-- DMA channel 1 registers --

#define rGPDMA_CH1_SRC      (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x120))
#define rGPDMA_CH1_DEST     (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x124))
#define rGPDMA_CH1_LLI      (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x128))
#define rGPDMA_CH1_CTRL     (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x12C))
#define rGPDMA_CH1_CFG      (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x130))


//-- USB Controller --

#define USB_INT_BASE_ADDR  0xE01FC1C0

#define USB_BASE_ADDR      0xFFE0C200                //-- USB Base Address

#define rUSB_INT_STAT    (*(volatile unsigned long *)(USB_INT_BASE_ADDR + 0x00))

//-- USB Device Interrupt Registers --

#define rDEV_INT_STAT    (*(volatile unsigned long *)(USB_BASE_ADDR + 0x00))
#define rDEV_INT_EN      (*(volatile unsigned long *)(USB_BASE_ADDR + 0x04))
#define rDEV_INT_CLR     (*(volatile unsigned long *)(USB_BASE_ADDR + 0x08))
#define rDEV_INT_SET     (*(volatile unsigned long *)(USB_BASE_ADDR + 0x0C))
#define rDEV_INT_PRIO    (*(volatile unsigned long *)(USB_BASE_ADDR + 0x2C))

//-- USB Device Endpoint Interrupt Registers --

#define rEP_INT_STAT     (*(volatile unsigned long *)(USB_BASE_ADDR + 0x30))
#define rEP_INT_EN       (*(volatile unsigned long *)(USB_BASE_ADDR + 0x34))
#define rEP_INT_CLR      (*(volatile unsigned long *)(USB_BASE_ADDR + 0x38))
#define rEP_INT_SET      (*(volatile unsigned long *)(USB_BASE_ADDR + 0x3C))
#define rEP_INT_PRIO     (*(volatile unsigned long *)(USB_BASE_ADDR + 0x40))

//-- USB Device Endpoint Realization Registers --

#define rREALIZE_EP      (*(volatile unsigned long *)(USB_BASE_ADDR + 0x44))
#define rEP_INDEX        (*(volatile unsigned long *)(USB_BASE_ADDR + 0x48))
#define rMAXPACKET_SIZE  (*(volatile unsigned long *)(USB_BASE_ADDR + 0x4C))

//-- USB Device Command Reagisters --

#define rCMD_CODE        (*(volatile unsigned long *)(USB_BASE_ADDR + 0x10))
#define rCMD_DATA        (*(volatile unsigned long *)(USB_BASE_ADDR + 0x14))

//-- USB Device Data Transfer Registers --

#define rRX_DATA         (*(volatile unsigned long *)(USB_BASE_ADDR + 0x18))
#define rTX_DATA         (*(volatile unsigned long *)(USB_BASE_ADDR + 0x1C))
#define rRX_PLENGTH      (*(volatile unsigned long *)(USB_BASE_ADDR + 0x20))
#define rTX_PLENGTH      (*(volatile unsigned long *)(USB_BASE_ADDR + 0x24))
#define rUSB_CTRL        (*(volatile unsigned long *)(USB_BASE_ADDR + 0x28))

//-- USB Device DMA Registers --

#define rDMA_REQ_STAT      (*(volatile unsigned long *)(USB_BASE_ADDR + 0x50))
#define rDMA_REQ_CLR       (*(volatile unsigned long *)(USB_BASE_ADDR + 0x54))
#define rDMA_REQ_SET       (*(volatile unsigned long *)(USB_BASE_ADDR + 0x58))
#define rUDCA_HEAD         (*(volatile unsigned long *)(USB_BASE_ADDR

⌨️ 快捷键说明

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