ns16550

来源:互联网 发布:sublimetext3运行java 编辑:程序博客网 时间:2024/06/06 04:49

1. 16550寄存器是驱动中最重要的部分。

2. 16550标准串口寄存器
 0x00  UART_RX_DATA  RO 串口接收数据寄存器
 0X00  UART_TX_DATA  WO 串口发送数据寄存器
 0X01  UART_INT_EN  RW 串口中断使能寄存器
 0X02  UART_INT_ID  RO 串口中断ID寄存器
 0X02  UART_FIFO_CTL  WO 串口FIFO控制寄存器
 0X03  UART_LINE_CTL  RW 串口LINE控制寄存器
 0X04  UART_MODEM_CTL WO 串口MODEM控制寄存器
 0X05  UART_LINE_STS  RO 串口LINE状态寄存器
 0X06  UART_MODEM_STS RO 串口MODEM状态寄存器
 0X00  UART_DIVISOR0  WO 串口时钟分频寄存器(LSB)
 0X00  UART_DIVISOR1  WO 串口时钟分频寄存器(MSB)
-- LSB和MSB根据接的晶振来设置,确定串口波特率


#define K1BASE 0xa0000000

#define PHYS_TO_K1(pa) ((pa)|K1BASE)

#define NS16550_CHANA PHYS_TO_K1(UART0_BASE)

#define BONITO(x) *(volatile unsigned long *)(0xbfe00000+(x))
#endif /* __ASSEMBLER__ */
#define RTC_INDEX_REG 0x70
#define RTC_DATA_REG 0x71
#define RTC_NVRAM_BASE 0x0e

#define COM1_BASE_ADDR 0xbfd003f8
#define COM2_BASE_ADDR 0xbfd002f8
#define COM3_BASE_ADDR 0xbff003f8
//#define NS16550HZ1843200
#define NS16550HZ3686400


波特率发生器UBPDIVn=(int)((MCLK)/(bps * 16))-1

原创粉丝点击