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.

[参考译文] AM2634-Q1:多个 UART DMA LLD 实例重新定义错误 — gUartDmaChCfg

Guru**** 2539590 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1550191/am2634-q1-redefinition-error-with-multiple-uart-dma-lld-instances---guartdmachcfg

器件型号:AM2634-Q1
主题:SysConfig 中讨论的其他器件

工具/软件:

尊敬的 TI 团队:

我们对以下主题有任何更新吗? Shaunak Deshpande 提到他将研究并在 7 月中旬解决该问题。  

链接 —  https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1524470/am2634-q1-redefinition-error-with-multiple-uart-dma-lld-instances---guartdmachcfg/5863506#5863506

谢谢、
Rahul

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

    尊敬的 Rahul:

    我们的发布承诺发生了一些变化、因此日期在内部发生了变化、同时出现了错误修复的优先级。 我仍在与 SDK 团队合作来解决这个问题。

    Shaunak

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

    尊敬的 Rahul:

    请查找随附的 DMA LLD UART 问题修复程序。 请将这 3 个文件替换在 SDK 中上述原始位置

    file-1:uart_V0_lld.c

    e2e.ti.com/.../uart_5F00_v0_5F00_lld.c

    路径:  MCU_PLUS_SDK_am263x_10_02_00_13\source\drivers\uart\V0\LLD

    文件 2:  uart_open_close_config_v2_lld.c.xdt

    e2e.ti.com/.../2664.uart_5F00_open_5F00_close_5F00_config_5F00_v2_5F00_lld.c.xdt

    路径: MCU_PLUS_SDK_am263x_10_02_00_13\source\sysconfig\drivers\.meta\uart\templates

    文件 3:uart_config_v2_lld.c.xdt

    e2e.ti.com/.../uart_5F00_config_5F00_v2_5F00_lld.c.xdt

    路径:  MCU_PLUS_SDK_am263x_10_02_00_13\source\sysconfig\drivers\.meta\uart\templates

    此后、从 syscfg 中重新检查应用配置并进行测试。

    此致、
    Shaunak

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

    尊敬的 Shaunak:

    我相信它是有效的,但我会  彻底测试它,并更新你,如果我遇到任何问题。

    我对您的文件所做的唯一更改是更新读写回调函数中的参数:

    void `CONFIG.readCallbackFxn`(结构 UARTLLD_Object_s *args)

    最终目的  

    void `CONFIG.readCallbackFxn`(void *args)  

    void `CONFIG.writeCallbackFxn`(结构 UARTLLD_Object_s *args)  

    最终目的

    void `CONFIG.writeCallbackFxn`(void *args)  

     

    谢谢、
    Rahul

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

    尊敬的 Shaunak:

    我注意到在传输过程中会丢失一些字节、并且这种情况经常发生。 请检查以下输出:

    可用命令:
    帮助:显示可用命令
    echo:回显参数
    LED:更改 LED 状态
    UART:在 UART 上发送数据
    >帮助
    可用命令:
    帮助:显示可用命令
    echo:回显参数
    D:更改 LED 状态          ----- >“ LE' 未命中  
    UART:在 UART 上发送数据
    >帮助  

    正如您在上述日志中所看到的、在 led: 命令中、le缺少字符“"。“。

    谢谢、
    Rahul

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

    在 SysConfig 中、  发送缓冲区大小限制为 56 字节 我无法将其设置为更高的值。 何时使用  UART_lld_writeDma API 要发送超过 56 个字符(例如 100 个)、中断会触发两次、而不是仅触发一次。理想情况下、只有在传输所有 100 个字节后才会发生一次中断。

    这种行为阻止了我充分利用 DMA 在单个操作中高效传输大量数据。

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

    尊敬的 Rahul:

    在 SysConfig 中  发送缓冲区大小限制为 56 字节 我无法将其设置为更高的值。 [/报价]

    UART IP 不支持 100B 的中断触发。 不能选择将 UART IP 配置为在 Rx 和 Tx 路径上都达到 100B 的 FIFO 级别时触发中断。

    但该触发级别不是缓冲区大小、这表示 UART FIFO 中触发中断所需的字节数。 您可以在应用中自定义缓冲区大小、因为它不是在 syscfg 中创建/配置的。

    另请注意、

    由于上述提供的补丁是临时的、并且官方 v11.0 SDK 版本中将有更多错误修复、因此将根据 UART IP 勘误表 i2310 添加另一处更改。 在 DMA 模式下、允许您设置的触发电平仅为 2 的幂。 即、触发电平 1、2、4、8、16 32.这是由于勘误表 i2310,您可以在这里找到更多的细节:  

    我建议您相应地设计应用程序、以便在将来迁移到 v11.0 时不会出现问题

    此致、
    Shaunak