This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TM4C1294KCPDT:UARTRX 的 UDMA 操作

Guru**** 2555630 points
Other Parts Discussed in Thread: EK-TM4C1294XL

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/822474/tm4c1294kcpdt-udma-operation-from-uartrx

器件型号:TM4C1294KCPDT
Thread 中讨论的其他器件:EK-TM4C1294XL

您好!  

 我能否知道、在数据从 UART RX 复制到存储器后、如何配置要生成的 UDMA 接收中断的 API。  

此致、

Bharath

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Bharath、

    用于 EK-TM4C1294XL LaunchPad 的 TivaWare 中的 UDMA_DEMO 显示了如何设置用于 UART 操作的 UDMA、请参考该示例、如果您有任何后续问题、请告知我们。 该项目位于:[INSTALL Path]\TivaWare_C_Series-2.1.4.178\examples\boards\ek-tm4c1294xl\UDMA_demo

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

     给出的示例是针对 Ping Pong。 更多信息: 我正在使用散聚模式和 UART5Rx 模式。 数据从 UART 复制到存储器后、我需要生成 UART5中断。 因此、如果有人告诉我要配置哪个配置 API 或硬件寄存器来获取中断器、这将很有帮助。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    继续进行上述工作  

    在 uDMAChannelScatterGatherSet API 中、UART5RX 的第一个参数是什么? (ui32ChannelNum uDMA 通道编号)

    此致、

    Bharath

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Bharath、

    要使用 UART5RX 等通道、您需要使用 uDMAChannelAssign API。

    然后、您需要为您在 C 文件中使用的 DMA 通道定义自己的定义、例如

    //
    //
    // SSI2 uDMA 通道号必须配置为调用:
    // uDMAChannelAssign ()。
    ////
    *****************
    #define UDMA_CHANGE_SSI2RX 12
    #define UDMA_CHANGE_SSI2TX 13. 

    然后、当使用 uDMAChannelScatterGatherSet 等 API 时、您将使用定义的 UDMA 通道编号作为第一个参数传递。

    您可以通过以下项目查看有关如何对 SSI 示例执行此操作 的完整示例:e2e.ti.com/.../7848.udma_2D00_ssi2_5F00_demo.zip

    不幸的是、我没有一个 Scatter 收集项目可供分享、尽管我们计划在不久的将来开发一个。 如果您需要更多指导、您能否分享您在配置方面已经完成的工作?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

     我已经尝试了以下方法  

    #define UDMA_CHANGE_UART5RX  6.

    (注意:UDMA_CHANGE_ETH0RX 已定义为6、但 UART5RX 也位于通道6)

    uDMAChannelAssign (UDMA_CH6_UART5RX);

    uDMAChannelScatterGatherSet (UDMA_CHANGE_UART5RX ,3,表,1);

    ROM_IntEnable (INT_UART5);

    ROM_IntEnable (INT_UDMA);

    我启用 DMA、每1ms 读取一次 UART 中的数据、甚至我定期从其他器件传输一些 UART 数据。  但我无法获取 UART 中断。 如何将其配置为读取数据。 就我所知、DMA 将告知 UART 数据从外设复制到存储器、稍后将生成 UART 中断。 我将从该中断处理程序中将数据从存储器复制到本地变量。  

    请帮我解决这个问题。

    此致、

    Bharath  

      

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

     我还需要知道 DMA 是否会触发或使 UART5外设产生中断?  因为我在 LM3板上使用 了 UDMA_CHANGE_UART0RX、 后者生成了 UART0中断。 但我无法在 TM4C1294中获取 UART5中断。   

    此致、

    Bharath

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Bharath、

    今天我和我的同事讨论了这个问题,我们质疑在这个应用中使用散聚模式,而不是乒乓模式。 您能进一步阐述一下您在这里想要实现的目标吗? 因为您目前的描述表明您应该使用 Ping Pong 模式。

    在任何情况下、我需要看到比您发布的代码更多的代码、以了解缺失的部分代码、这类代码会使图片变得过于不完整、无法正常工作。 需要对 UART、UDMA 和中断进行所有配置、包括相关 GPIO。