GPMC外界tl16c554扩展串口,发送正常,但是在接收时,驱动参考的是8250.c在startup中使能中断
up->ier = IER_RLSI | IER_RDI; //这里并没有使能调制解调器中断
serial_out(up, IER, up->ier);
中断使能寄存器(IER)
位 0:在 IER0 被置位时,它会在 FIFO模式中使能接收数据有效中断和超时中断。
位 1:在 IER1 被置位时,发送器保持寄存器为空中断被使能。
位 2:在 IER2 被置位时,接收器线路状态中断被使能。
位 3:在 IER3 被置位时,调制解调器状态中断被使能。
但是在向tl16c554发送数据时,会一直中断,然后读IIR(中断标识寄存器)时,读到的尽然是0(调制解调器状态中断)
中断辨识寄存器(IIR)
0x60——接收器线路状态(最高优先级)
0xc0或0x40——接收器数据就绪或接收器字符超时
0x02——发送器保持寄存器为空
0x00——调制解调器状态
而且我在中断中又一次确认过,IER确实设置的是0x05,为什么我没有使能这个中断,他尽然会产生这个中断,我是不是应该怀疑芯片是假的啊。还是有其他原因。