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

📄 iolpc3100.h

📁 uCOSII 在LPC3180上的移植代码
💻 H
📖 第 1 页 / 共 5 页
字号:
  __REG32                   : 6;
  __REG32 CSC               : 1;
  __REG32 PESC              : 1;
  __REG32 PSSC              : 1;
  __REG32 OCIC              : 1;
  __REG32 PRSC              : 1;
  __REG32                   :11;
} __HcRhPortStatus_bits;

/* OTG_int_status Register */
typedef struct {
  __REG32 timer_interrupt_status  : 1;
  __REG32 remove_pullup           : 1;
  __REG32 hnp_failure             : 1;
  __REG32 hnp_success             : 1;
  __REG32                         :28;
} __OTG_int_status_bits;

/* OTG_int_enable Register */
typedef struct {
  __REG32 timer_interrupt_en      : 1;
  __REG32 remove_pullup_en        : 1;
  __REG32 hnp_failure_en          : 1;
  __REG32 hnp_success_en          : 1;
  __REG32                         :28;
} __OTG_int_enable_bits;

/* OTG_int_set Register */
typedef struct {
  __REG32 timer_interrupt_set     : 1;
  __REG32 remove_pullup_set       : 1;
  __REG32 hnp_failure_set         : 1;
  __REG32 hnp_success_set         : 1;
  __REG32                         :28;
} __OTG_int_set_bits;

/* OTG_int_clr Register */
typedef struct {
  __REG32 timer_interrupt_clear   : 1;
  __REG32 remove_pullup_clear     : 1;
  __REG32 hnp_failure_clear       : 1;
  __REG32 hnp_success_clear       : 1;
  __REG32                         :28;
} __OTG_int_clr_bits;

/* OTG_status and control Register */
typedef struct {
  __REG32 Host_En                 : 1;
  __REG32                         : 1;
  __REG32 Timer_scale             : 2;
  __REG32 Timer_mode              : 1;
  __REG32 Timer_enable            : 1;
  __REG32 Timer_reset             : 1;
  __REG32 Transparent_I2C_en      : 1;
  __REG32 b_to_a_hnp_track        : 1;
  __REG32 a_to_b_hnp_track        : 1;
  __REG32 Pullup_removed          : 1;
  __REG32                         : 5;
  __REG32 Timer_count             :16;
} __OTG_stat_ctrl_bits;

/* OTG_clock Registers */
typedef struct {
  __REG32 HOST_CLK_ON       : 1;
  __REG32 DEV_CLK_ON        : 1;
  __REG32 I2C_CLK_ON        : 1;
  __REG32 OTG_CLK_ON        : 1;
  __REG32 AHB_CLK_ON        : 1;
  __REG32                   :27;
} __OTG_clock_bits;

/* OTG_module_id Register */
typedef struct {
  __REG32 REV               : 8;
  __REG32 VER               : 8;
  __REG32 IP_Number         :16;
} __OTG_module_id_bits;

/* OTG I2C_TX/I2C_RX Register */
typedef union {
  //I2C_RX
  struct {
    __REG32 RX_Data         : 8;
    __REG32                 :24;
  };
  //I2C_TX
  struct {
    __REG32 TX_Data         : 8;
    __REG32 START           : 1;
    __REG32 STOP            : 1;
    __REG32                 :22;
  };
} __otg_i2c_rx_tx_bits;

/* OTG I2C_STS Register */
typedef struct {
  __REG32 TDI               : 1;
  __REG32 AFI               : 1;
  __REG32 NAI               : 1;
  __REG32 DRMI              : 1;
  __REG32 DRSI              : 1;
  __REG32 Active            : 1;
  __REG32 SCL               : 1;
  __REG32 SDA               : 1;
  __REG32 RFF               : 1;
  __REG32 RFE               : 1;
  __REG32 TFF               : 1;
  __REG32 TFE               : 1;
  __REG32                   :20;
} __otg_i2c_sts_bits;

/* OTG I2C_CTL Register */
typedef struct {
  __REG32 TDIE              : 1;
  __REG32 AFIE              : 1;
  __REG32 NAIE              : 1;
  __REG32 DRMIE             : 1;
  __REG32 DRSIE             : 1;
  __REG32 RFFIE             : 1;
  __REG32 RFDAIE            : 1;
  __REG32 TFFIE             : 1;
  __REG32 SRST              : 1;
  __REG32                   :23;
} __otg_i2c_ctl_bits;

/* UART interupt enable register */
typedef struct{
  __REG8  RDAIE             : 1;
  __REG8  THREIE            : 1;
  __REG8  RXLSIE            : 1;
  __REG8                    : 5;
} __uartier_bits;

/* UART interupt identification register and fifo control register */
typedef union {
  //UxIIR
  struct {
    __REG8  IP              : 1;
    __REG8  IID             : 3;
    __REG8                  : 2;
    __REG8  IIRFE           : 2;
  };
  //UxFCR
  struct {
    __REG8  FCRFE           : 1;
    __REG8  RFR             : 1;
    __REG8  TFR             : 1;
    __REG8  FCTRL           : 1;
    __REG8  TTLS            : 2;
    __REG8  RTLS            : 2;
  };
} __uartfcriir_bits;

/* UART line control register */
typedef struct{
  __REG8  WLS               : 2;
  __REG8  SBS               : 1;
  __REG8  PE                : 1;
  __REG8  PS                : 2;
  __REG8  BC                : 1;
  __REG8  DLAB              : 1;
} __uartlcr_bits;

/* UART line status register */
typedef struct{
  __REG8  DR                : 1;
  __REG8  OE                : 1;
  __REG8  PE                : 1;
  __REG8  FE                : 1;
  __REG8  BI                : 1;
  __REG8  THRE              : 1;
  __REG8  TEMT              : 1;
  __REG8  RXFE              : 1;
} __uartlsr_bits;

/* UART Rx FIFO Level Register */
typedef struct{
  __REG8  RXLEV             : 7;
  __REG8                    : 1;
} __uartrexlev_bits;

/* UART Clock Select Register */
typedef struct{
  __REG32 Y                 : 8;
  __REG32 X                 : 8;
  __REG32 CLK_SEL           : 1;
  __REG32                   :15;
} __uartclk_bits;

/* IrDA Clock Control Register */
typedef struct{
  __REG32 Y                 : 8;
  __REG32 X                 : 8;
  __REG32                   :16;
} __irdaclk_bits;

/* UART Control Register */
typedef struct{
  __REG32 UART5_MODE        : 1;
  __REG32 IR_TxLength       : 1;
  __REG32 IR_RxLength       : 1;
  __REG32 IRRX6_INV         : 1;
  __REG32 IRTX6_INV         : 1;
  __REG32 UART6_IRDA        : 1;
  __REG32                   : 3;
  __REG32 HDPX_EN           : 1;
  __REG32 HDPX_INV          : 1;
  __REG32                   :21;
} __uart_ctrl_bits;

/* UART Clock Mode Register */
typedef struct{
  __REG32                   : 4;
  __REG32 UART3_CLK         : 2;
  __REG32 UART4_CLK         : 2;
  __REG32 UART5_CLK         : 2;
  __REG32 UART6_CLK         : 2;
  __REG32                   : 2;
  __REG32 CLK_STAT          : 1;
  __REG32                   : 1;
  __REG32 CLK_STATX         : 7;
  __REG32                   : 9;
} __uart_clkmode_bits;

/* UART Loopback Control Register */
typedef struct{
  __REG32 LOOPBACK1         : 1;
  __REG32 LOOPBACK2         : 1;
  __REG32 LOOPBACK3         : 1;
  __REG32 LOOPBACK4         : 1;
  __REG32 LOOPBACK5         : 1;
  __REG32 LOOPBACK6         : 1;
  __REG32 LOOPBACK7         : 1;
  __REG32                   :25;
} __uart_loop_bits;

/* High Speed UARTn Receiver/Transmitter FIFO Register */
typedef union {
  //HSUx_RX
  struct {
    __REG32 HSU_RX_DATA     : 8;
    __REG32 HSU_RX_EMPTY    : 1;
    __REG32 HSU_ERROR       : 1;
    __REG32 HSU_BREAK       : 1;
    __REG32                 :21;
  };
  //HSUx_TX
  struct {
    __REG32 HSU_TX_DATA     : 8;
    __REG32                 :24;
  };
} __hsu_rx_tx_bits;

/* High Speed UARTn Level Register */
typedef struct{
  __REG32 HSU_RX_LEV        : 8;
  __REG32 HSU_TX_LEV        : 8;
  __REG32                   :16;
} __hsu_level_bits;

/* High Speed UARTn Level Register */
typedef struct{
  __REG8  HSU_TX            : 1;
  __REG8  HSU_RX_TRIG       : 1;
  __REG8  HSU_RX_TIMEOUT    : 1;
  __REG8  HSU_FE            : 1;
  __REG8  HSU_BRK           : 1;
  __REG8  HSU_RX_OE         : 1;
  __REG8  HSU_TX_INT_SET    : 1;
  __REG8                    : 1;
} __hsu_iir_bits;

/* High Speed UARTn Control Register */
typedef struct{
  __REG32 HSU_TX_TRIG       : 2;
  __REG32 HSU_RX_TRIG       : 3;
  __REG32 HSU_TX_INT_EN     : 1;
  __REG32 HSU_RX_INT_EN     : 1;
  __REG32 HSU_ERR_INT_EN    : 1;
  __REG32 HSU_BREAK         : 1;
  __REG32 HSU_OFFSET        : 5;
  __REG32 HCTS_EN           : 1;
  __REG32 HCTS_INV          : 1;
  __REG32 TMO_CONFIG        : 2;
  __REG32 HRTS_EN           : 1;
  __REG32 HRTS_TRIG         : 2;
  __REG32 HRTS_INV          : 1;
  __REG32                   :10;
} __hsu_ctrl_bits;

/* SPIn Global Control Register */
typedef struct{
  __REG32 enable            : 1;
  __REG32 rst               : 1;
  __REG32                   :30;
} __spi_global_bits;

/* SPIn Control Register */
typedef struct{
  __REG32 rate              : 7;
  __REG32 ms                : 1;
  __REG32                   : 1;
  __REG32 bitnum            : 4;
  __REG32 shift_off         : 1;
  __REG32 thr               : 1;
  __REG32 rxtx              : 1;
  __REG32 mode              : 2;
  __REG32                   : 1;
  __REG32 msb               : 1;
  __REG32                   : 1;
  __REG32 bpol              : 1;
  __REG32 bhalt             : 1;
  __REG32 unidir            : 1;
  __REG32                   : 8;
} __spi_con_bits;

/* SPIn Interrupt Enable Register */
typedef struct{
  __REG32 intthr            : 1;
  __REG32 inteot            : 1;
  __REG32                   :30;
} __spi_ier_bits;

/* SPIn Status Register */
typedef struct{
  __REG32 be                : 1;
  __REG32 thr               : 1;
  __REG32 bf                : 1;
  __REG32 shiftact          : 1;
  __REG32                   : 2;
  __REG32 busylev           : 1;
  __REG32 eot               : 1;
  __REG32 intclr            : 1;
  __REG32                   :23;
} __spi_stat_bits;

/* SPIn Timer Control Register */
typedef struct{
  __REG32 mode              : 1;
  __REG32 pirqe             : 1;
  __REG32 tirqe             : 1;
  __REG32                   :29;
} __spi_tim_ctrl_bits;

/* SPIn Timer Status Register */
typedef struct{
  __REG32                   :15;
  __REG32 tirqstat          : 1;
  __REG32                   :16;
} __spi_tim_stat_bits;

/* Power control register */
typedef struct{
  __REG32 Ctrl              : 2;
  __REG32                   : 4;
  __REG32 OpenDrain         : 1;
  __REG32                   :25;
} __SD_Power_bits;

/* Clock control register */
typedef struct{
  __REG32 ClkDiv            : 8;
  __REG32 Enable            : 1;
  __REG32 PwrSave           : 1;
  __REG32 Bypass            : 1;
  __REG32 WideBus           : 1;
  __REG32                   :20;
} __SD_Clock_bits;

/* Command register */
typedef struct{
  __REG32 CmdIndex          : 6;
  __REG32 Response          : 1;
  __REG32 LongRsp           : 1;
  __REG32 Interrupt         : 1;
  __REG32 Pending           : 1;
  __REG32 Enable            : 1;
  __REG32                   :21;
} __SD_Command_bits;

/* Command response register */
typedef struct{
  __REG32 RespCmd           : 6;
  __REG32                   :26;
} __SD_Respcmd_bits;

/* Data control register */
typedef struct{
  __REG32 Enable            : 1;
  __REG32 Direction         : 1;
  __REG32 Mode              : 1;
  __REG32 DMAEnable         : 1;
  __REG32 BlockSize         : 3;
  __REG32                   :25;
} __SD_DataCtrl_bits;

/* Status register */
typedef struct{
  __REG32 CmdCrcFail        : 1;
  __REG32 DataCrcFail       : 1;
  __REG32 CmdTimeOut        : 1;
  __REG32 DataTimeOut       : 1;
  __REG32 TxUnderrun        : 1;
  __REG32 RxOverrun         : 1;
  __REG32 CmdRespEnd        : 1;
  __REG32 CmdSent           : 1;
  __REG32 DataEnd           : 1;
  __REG32 StartBitErr       : 1;
  __REG32 DataBlockEnd      : 1;
  __REG32 CmdActive         : 1;
  __REG32 TxActive          : 1;
  __REG32 RxActive          : 1;
  __REG32 TxFifoHalfEmpty   : 1;
  __REG32 RxFifoHalfFull    : 1;
  __REG32 TxFifoFull        : 1;
  __REG32 RxFifoFull        : 1;
  __REG32 TxFifoEmpty       : 1;
  __REG32 RxFifoEmpty       : 1;
  __REG32 TxDataAvlbl       : 1;
  __REG32 RxDataAvlbl       : 1;
  __REG32                   :10;
} __SD_Status_bits;

/* Clear register */
typedef struct{
  __REG32 CmdCrcFailClr     : 1;
  __REG32 DataCrcFailClr    : 1;
  __REG32 CmdTimeOutClr     : 1;
  __REG32 DataTimeOutClr    : 1;
  __REG32 TxUnderrunClr     : 1;
  __REG32 RxOverrunClr      : 1;
  __REG32 CmdRespEndClr     : 1;
  __REG32 CmdSentClr        : 1;
  __REG32 DataEndClr        : 1;
  __REG32 StartBitErrClr    : 1;
  __REG32 DataBlockEndClr   : 1;
  __REG32                   :21;
} __SD_Clear_bits;

⌨️ 快捷键说明

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