var_arch.h

来自「eCos操作系统源码」· C头文件 代码 · 共 375 行 · 第 1/2 页

H
375
字号
// S_ISR     Interrupt Status Register    00000000H#define S_ISR_TM0IS  (1<<0) // TIMER CH0 interrupt.#define S_ISR_TM1IS  (1<<1) // TIMER CH1 interrupt.#define S_ISR_UARTIS (1<<2) // UART interrupt.#define S_ISR_EXTIS  (1<<3) // External Interrupt.#define S_ISR_WUIS   (1<<4) // Wakeup Interrupt.// S_IMR     Interrupt Mask Register    00000000H// see S_ISR; write a 1 to unmask, 0 to mask.// S_NSR     NMI Status Register    00000000H// S_NMR     NMI Mask Register    00000000H// S_VER     Version Register    00000301H// --------- GPIO ---------// S_GIOER   GPIO Output Enable Register    00000000H// S_GOPR    GPIO Output (Write) Register    00000000H// S_GIPR    GPIO Input (Read) Register    00000000H// 16-bit regsiters that do the utterly obvious thing.// --------- reset ---------// S_WRCR    Warm Reset Control Register    00000000H#define S_WRCR_USBWR    (1<<0) // Warm Reset request for USB Controller#define S_WRCR_MACWR    (1<<1) // Warm Reset request for Ethernet Controller#define S_WRCR_UARTWR   (1<<4) // Warm Reset request for UART// S_WRSR    Warm Reset Status Register    00000000H// See S_WRCR; 1 <=> Ready, 0 <=> performing warm reset.// --------- power control of USB/ETH peripherals ---------// S_PWCR    Power Control Register    00000000H// S_PWSR    Power Control Status Register    00000000H// --------- bus timouts ---------// ITCNTR    IBUS Timeout Timer Control Register    00000000H// ITSETR    IBUS Timeout Timer Set Register    80000000H// --------- UART ---------// UARTRBR   UART, Receiver Buffer Register [DLAB=0,READ]// UARTTHR   UART, Transmitter Holding Register [DLAB=0,WRITE]// UARTDLL   UART, Divisor Latch LSB Register [DLAB=1]// The external (18.432MHz) clock is not present. See S_GMR_UCSEL.// See also UARTDLM below.  So we use the internal 50MHz clock.//#define UARTCLOCK (18432000)#define UARTCLOCK (50 * 1000 * 1000)#define UARTDLL_VAL( _baud_ ) ((UARTCLOCK / 16) / (_baud_) )// UARTIER   UART, Interrupt Enable Register [DLAB=0]#define UARTIER_ERBFI    (1<<0) // UART Receive data Buffer Full Interrupt#define UARTIER_ERBEI    (1<<1) // UART Transmitter Buffer empty Interrupt#define UARTIER_ERBLI    (1<<2) // UART Line status Interrupts#define UARTIER_ERBMI    (1<<3) // UART Modem status Interrupts// UARTDLM   UART, Divisor Latch MSB Register [DLAB=1]#define UARTDLM_ANY_BAUD (0)#define UARTDLM_VAL( _baud_ )  (UARTDLL_VAL( _baud_ ) >> 8)// UARTIIR   UART, Interrupt ID Register [READ]#define UARTIIR_INTPENDL   (1<<0) // No Pending interrupts// mask to give one of:#define UARTIIR_UIID_MASK  (7<<1) // Indicates the priority level of pending interrupt.#define UARTIIR_RXERROR    (3<<1) // Receiver Line Error#define UARTIIR_RXD_AVAIL  (2<<1) // Received data available#define UARTIIR_CHAR_TO    (6<<1) // Character timeout#define UARTIIR_TX_EMPTY   (1<<1) // Transmitter Register Empty#define UARTIIR_MODEM      (0<<1) // Modem Status: CTS_L, DSR_L or DCD_L// UARTFCR   UART, FIFO control Register [WRITE]// ...is not supported.  But nontheless it appears necessary to write it.#define UARTFCR_16550_MODE (6)    // and clear the FIFOs.// UARTLCR   UART, Line control Register// Word length#define UARTLCR_8 (0x03)#define UARTLCR_7 (0x02)// Stop bits#define UARTLCR_STB1 (0x00)#define UARTLCR_STB2 (0x04)// Parity#define UARTLCR_NOP (0x00)#define UARTLCR_EP  (0x18)#define UARTLCR_OP  (0x08)// Just predefine the pattern for 8-N-1...#define UARTLCR_8N1 (0x03)// Divisor latch access bit; or this with one of the above.#define UARTLCR_DLAB (0x80)// UARTMCR   UART, Modem Control Register#define UARTMCR_DTR (1<<0) // Data Terminal Ready.#define UARTMCR_RTS (1<<1) // Request To Send.// UARTLSR   UART, Line status Register#define UARTLSR_DR    (1<<0) // Receive-Data Ready.#define UARTLSR_OE    (1<<1) // Receive-Data Overrun Error.#define UARTLSR_PE    (1<<2) // Receive-Data Parity Error.#define UARTLSR_FE    (1<<3) // Receive-Data Framing Error.#define UARTLSR_BI    (1<<4) // Break Interrupt.#define UARTLSR_THRE  (1<<5) // Transmitter Holding Register Empty.#define UARTLSR_TEMT  (1<<6) // Transmitter Empty.#define UARTLSR_RFERR (1<<7) //  Receiver FIFO Error.// UARTMSR   UART, Modem Status Register#define UARTMSR_DCTS (1<<0) // Delta Clear To Send.#define UARTMSR_DDSR (1<<1) // Delta Data Set Ready.#define UARTMSR_TERI (1<<2) // Trailing Edge Ring Indicato#define UARTMSR_DDCD (1<<3) // Delta Data Carrier Detect.#define UARTMSR_CTS  (1<<4) // Clear To Send.#define UARTMSR_DSR  (1<<5) // Data Set Ready.#define UARTMSR_RI   (1<<6) // Ring Indicator.#define UARTMSR_DCD  (1<<7) // Data Carrier Detect.// UARTSCR   UART, Scratch Register    unknown// --------- watchdog aka dead man's switch ---------// DSUCNTR   DSU Control Register    00000000H// DSUSETR   DSU Dead Time Set Register    80000000H// DSUCLRR   DSU Clear Register    00000000H// DSUTIMR   DSU Elapsed Time Register    00000000H// --------- additional timers ---------// TMMR      Timer Mode Register    00000000H// TM0CSR    Timer CH0 Count Set Register    00000000H// TM1CSR    Timer CH1 Count Set Register    00000000H// TM0CCR    Timer CH0 Current Count Register    FFFFFFFFH// TM1CCR    Timer CH1 Current Count Register    FFFFFFFFH// --------- serial eeprom ---------// ECCR      EEPROM Command Control Register    00000000H// ERDR      EEPROM Read Data Register    80000000H// MACAR1    MAC Address Register 1    00000000H// MACAR2    MAC Address Register 2    00000000H// MACAR3    MAC Address Register 3    00000000H// --------- memory control ---------// RMMDR     Boot ROM Mode Register    00000000H// RMATR     Boot ROM Access Timing Register    00000000H#define RMMDR_FLASH_WRITE_ENABLE (0x100)#define RMMDR_28F640      (0)#define RMMDR_28F320      (0)#define RMMDR_29LV160_120 (3) // sic. from customer doc#define RMMDR_29LV160_90  (3) // even though "3" is a reserved value#define RMMDR_29LV160_70  (3) // maybe it means "1".#define RMATR_28F640      (5)#define RMATR_28F320      (4)#define RMATR_29LV160_120 (5)#define RMATR_29LV160_90  (4)#define RMATR_29LV160_70  (3)// SDMDR     SDRAM Mode Register    00000330H// SDTSR     SDRAM Type Selection Register    00000000H// SDPTR     SDRAM Precharge Timing Register    00000142H// SDRMR     SDRAM Refresh Mode Register    00000200H// SDRCR     SDRAM Refresh Timer Count Register    00000200H#if 1// initial settings from customer doc.#define SDMDR_INIT (0x230)  // 230 from the hardware, 330 from doc#define SDTSR_INIT (0x180 | 0x20 | 0x1) #define SDPTR_INIT (0x111) #define SDRMR_INIT (0x600) #else// optimized setting "don't be used before qualification"#define SDMDR_INIT (0x120) #define SDTSR_INIT (0x180 | 0x20 | 0x1) #define SDPTR_INIT (0x100) #define SDRMR_INIT (0x600) #endif// These are used for decoding SEGV types.// MBCR      Memory Bus Control Register    00000000H// MESR      Memory Error Status Register    00000000H// MEAR      Memory Error Address Register    00000000H// --------------------------------------------------------------------------#endif // CYGONCE_HAL_VAR_ARCH_H// End of var_arch.h

⌨️ 快捷键说明

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