在arm9平台下扩展了一个SC16C550的芯片,驱动就用的现成的8250.c,只是添加了一些配置信息(定义了 STD_SERIAL_PORT_DEFNS这个宏,主要是配置基地址,中断等信息 ,并在8250.c的serial8250_init函数里初始化了这个扩展芯片,主要是配置它的基地址,中断等信息,这里的信息是和STD_SERIAL_PORT_DEFNS中的信息是匹配的),现在采用的是中断,fifo模式
现象: 接收数据的时候,如果对方发送一个字节,那这边是无法收到的(此时中断是产生了,产生的是超时中断,但是读取LSR的寄存器的时候,总是认为没有收到数据),如果对方发送4个字节,第一个字节也是收不到的,即收到了3个字节。
这种问题的原因是什么呢?如何解决呢?
后来换了一片ST16c550,还是同样的问题。
|