TI中文支持网
TI专业的中文技术问题搜集分享网站

DRA821U: Uart/DMA使用问题

Part Number:DRA821U

        最近我们(UAES)在尝试利用sdk的实现基于DMA的UART通信功能,一直没有调通,大致遇到几个问题:

测试Case

现象

问题

使用UART向外发送任意报文

如果使用uart_write接口,则UART口上可以检测到电平变化,但是并不是想发的数据;如果使用UARTCharPut接口,则数据可以正常发送

这两个接口用起来的区别是什么?事实上我们更想使用uart_write接口,想知道怎么用。

利用UART_socGetInitCfg/UART_socSetInitCfg打开DMA功能

以下是代码:

    UART_socGetInitCfg(TEST_UART_CHANNEL, &TSW_Uart_Cfg);

    

    /* here is the changed value: */

    TSW_Uart_Cfg.baseAddr = CSL_UART5_BASE;

    TSW_Uart_Cfg.intNum = CSLR_R5FSS0_CORE0_INTR_UART5_USART_IRQ_0;

    TSW_Uart_Cfg.enableInterrupt = FALSE;

    TSW_Uart_Cfg.dmaMode = TRUE;

 

    /* Write back config */

    UART_socSetInitCfg(TEST_UART_CHANNEL, &TSW_Uart_Cfg);

 

DMA功能似乎没有被正常使能,甚至在lauterbach调试时也没有找到这个函数:UART_configDMA

我们发现驱动中有一个这个宏:UART_DMA_ENABLE,是不是库里面这个宏没有使能?

 

edma/udma/pdma有什么区别?

edma/udma/pdma有什么区别?

edma/udma/pdma有什么区别?

是否有此芯片的基于UART+DMA的Demo软件?(sdk中的代码比较乱,drv/uart文件夹中也没有像一些组件一样的example文件夹,文档也比较简单,参考起来很困难)

p.s. 我们使用的调试器是LauterBach

Cherry Zhou:

您好,我们已经收到您的问题并反馈,预计将于24小时内给您答复。谢谢。

,

Cherry Zhou:

zeng junran 说:edma/udma/pdma有什么区别?

它们是不同的 DMA 模块,在 DRA821 上通常使用 UDMA。 您可以参考该文档。

zeng junran 说:我们发现驱动中有一个这个宏:UART_DMA_ENABLE,是不是库里面这个宏没有使能?

默认情况下,它是未使能状态,因为我们有 DMA 和非 DMA 的示例。 如果您构建 DMA 示例,将包括宏。

zeng junran 说:事实上我们更想使用uart_write接口,想知道怎么用。

在 ti/drv/UART 中有很多地方使用此该API。 请参阅 UART 文档以及 UART 驱动程序示例。 我们也有 UART DMA 示例,请参阅该 UART 文档。

希望以上回答对您有所帮助,如有其他问题请随时联系我们。

赞(0)
未经允许不得转载:TI中文支持网 » DRA821U: Uart/DMA使用问题
分享到: 更多 (0)