请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:AM623 工具/软件:
UART DMA 功能对于行业应用非常重要、一些应用使用了所有 UART 端口、即使在高波特率下也是如此。
只要应用程序加载增加、就需要 DMA 进行卸载、否则会任意/偶尔丢弃数据。
由于有多个 UART DMA 问题、一些线程与其他问题混为一谈、为了更好地跟踪、请专门针对 UART DMA 问题启动一个新线程。
#1。 该线程报告了使用 DMA 的 UART 传输异常长、通过破解代码不将 DMA 用于 UART TX 来避免。 它可用于测试目的、而不是用于 SDK10.x 的 UART DMA 解决方案
diff --git a/drivers/tty/serial/8250/8250_omap.c b/drivers/tty/serial/8250/8250_omap.c index 0b9c47172bc8..0952f08622c9 100644 --- a/drivers/tty/serial/8250/8250_omap.c +++ b/drivers/tty/serial/8250/8250_omap.c @@ -1042,6 +1042,10 @@ static int omap_8250_tx_dma(struct uart_8250_port *p) unsigned int skip_byte = 0; int ret; + /* HACK: do not use DMA for TX */ + ret = -EINVAL; + goto err; + if (dma->tx_running) return 0; if (uart_tx_stopped(&p->port) || uart_circ_empty(xmit)) {
#2. 另一个用例需要 SDK9.2支持 UART DMA。