Blame
|
1 | # Duart |
||||||
| 2 | ||||||||
| 3 | ## Definitions |
|||||||
|
4 | ### Duart |
||||||
|
5 | #### vasm |
||||||
|
6 | ```asm |
||||||
| 7 | ||||||||
| 8 | ``` |
|||||||
|
9 | #### gcc |
||||||
|
10 | ```c |
||||||
|
11 | /* Duart Register Base Addresses */ |
||||||
| 12 | #define duart_base ((volatile uint8_t*) 0xad0001) |
|||||||
| 13 | ||||||||
| 14 | #define duart_mr1a ((volatile uint8_t*) duart_base) |
|||||||
| 15 | #define duart_mr2a ((volatile uint8_t*) duart_base) |
|||||||
| 16 | #define duart_sra ((volatile uint8_t*) duart_base+2) |
|||||||
| 17 | #define duart_csra ((volatile uint8_t*) duart_base+2) |
|||||||
| 18 | #define duart_cra ((volatile uint8_t*) duart_base+4) |
|||||||
| 19 | #define duart_rba ((volatile uint8_t*) duart_base+6) |
|||||||
| 20 | #define duart_tba ((volatile uint8_t*) duart_base+6) |
|||||||
| 21 | #define duart_ipcr ((volatile uint8_t*) duart_base+8) |
|||||||
| 22 | #define duart_acr ((volatile uint8_t*) duart_base+8) |
|||||||
| 23 | #define duart_isr ((volatile uint8_t*) duart_base+10) |
|||||||
| 24 | #define duart_imr ((volatile uint8_t*) duart_base+10) |
|||||||
| 25 | #define duart_cur ((volatile uint8_t*) duart_base+12) |
|||||||
| 26 | #define duart_ctur ((volatile uint8_t*) duart_base+12) |
|||||||
| 27 | #define duart_clr ((volatile uint8_t*) duart_base+14) |
|||||||
| 28 | #define duart_ctlr ((volatile uint8_t*) duart_base+14) |
|||||||
| 29 | #define duart_mr1b ((volatile uint8_t*) duart_base+16) |
|||||||
| 30 | #define duart_mr2b ((volatile uint8_t*) duart_base+16) |
|||||||
| 31 | #define duart_srb ((volatile uint8_t*) duart_base+18) |
|||||||
| 32 | #define duart_csrb ((volatile uint8_t*) duart_base+18) |
|||||||
| 33 | #define duart_crb ((volatile uint8_t*) duart_base+20) |
|||||||
| 34 | #define duart_rbb ((volatile uint8_t*) duart_base+22) |
|||||||
| 35 | #define duart_tbb ((volatile uint8_t*) duart_base+22) |
|||||||
| 36 | #define duart_ivr ((volatile uint8_t*) duart_base+24) |
|||||||
| 37 | #define duart_opcr ((volatile uint8_t*) duart_base+26) |
|||||||
| 38 | #define duart_start_counter ((volatile uint8_t*) duart_base+28) |
|||||||
| 39 | #define duart_opr_set ((volatile uint8_t*) duart_base+28) |
|||||||
| 40 | #define duart_stop_counter ((volatile uint8_t*) duart_base+30) |
|||||||
| 41 | #define duart_opr_reset ((volatile uint8_t*) duart_base+30) |
|||||||
| 42 | ||||||||
| 43 | /* Status Register A and B */ |
|||||||
| 44 | #define SR_RXRDY 0x01 |
|||||||
| 45 | #define SR_RX_READY 0x01 |
|||||||
| 46 | #define SR_TXRDY 0x04 |
|||||||
| 47 | #define SR_TX_READY 0x04 |
|||||||
| 48 | #define SR_TX_EMPTY 0x08 |
|||||||
| 49 | ||||||||
| 50 | /* Command Register A and B */ |
|||||||
| 51 | #define CR_NOP 0x00 |
|||||||
| 52 | #define CR_RESET_MR_PTR 0x10 |
|||||||
| 53 | #define CR_RESET_RX 0x20 |
|||||||
| 54 | #define CR_RESET_TX 0x30 |
|||||||
| 55 | #define CR_RESET_ERROR 0x40 |
|||||||
| 56 | #define CR_RESET_BREAK 0x50 |
|||||||
| 57 | #define CR_START_BREAK 0x60 |
|||||||
| 58 | #define CR_STOP_BREAK 0x70 |
|||||||
| 59 | #define CR_SET_EXT_RX 0x80 |
|||||||
| 60 | #define CR_CLEAR_EXT_RX 0x90 |
|||||||
| 61 | #define CR_SET_EXT_TX 0xa0 |
|||||||
| 62 | #define CR_CLEAR_EXT_TX 0xb0 |
|||||||
| 63 | #define CR_STANDBY_MODE 0xc0 |
|||||||
| 64 | #define CR_ACTIVE_MODE 0xd0 |
|||||||
| 65 | ||||||||
| 66 | #define CR_ENABLE_TX 0x04 |
|||||||
| 67 | #define CR_DISABLE_TX 0x08 |
|||||||
| 68 | #define CR_ENABLE_RX 0x01 |
|||||||
| 69 | #define CR_DISABLE_RX 0x02 |
|||||||
| 70 | ||||||||
| 71 | /* Interrupt Status Register */ |
|||||||
| 72 | #define GLOBAL_ISR_TXRDY_A 0x01 |
|||||||
| 73 | #define GLOBAL_ISR_RXRDY_A 0x02 |
|||||||
| 74 | #define GLOBAL_ISR_TXRDY_B 0x10 |
|||||||
| 75 | #define GLOBAL_ISR_RXRDY_B 0x20 |
|||||||
| 76 | ||||||||
| 77 | #define ISR_TX_READY 0x01 |
|||||||
| 78 | #define ISR_RX_READY 0x02 |
|||||||
|
79 | ``` |
||||||