amba-pl011 Linux内核模块中pl011_tx_chars()背后的逻辑不明确

时间:2014-03-16 16:06:24

标签: linux linux-kernel kernel-module uart interrupt-handling

1 个答案:

答案 0 :(得分:0)

ARM文档说PL011是" 16550-ish" UART。这种方法可以让他们摆脱困境,完全指定其行为,然后将您发送到16550文档,这些文档在" FIFO中断模式操作"节...

  

当XMIT FIFO和发送器中断使能时(FCR0e1,   IER1e1),XMIT中断将发生如下:A。发送器   当XMIT FIFO为空时,发生保持寄存器中断(02);它   发送器保持寄存器写入后立即清零   (维修时,可将1到16个字符写入XMIT FIFO   这个中断)或IIR被读取。

因此,似乎如果FIFO和TX保持寄存器为空并且您启用TX中断,则应立即看到TX中断启动发送过程并填充保持寄存器然后填充FIFO。一旦这些流回到FIFO触发器下方,则只要有更多缓冲数据要发送,就会产生另一个中断以保持进程继续运行。