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.

[参考译文] AM2434:SysConfig 错误:DMA 模式下的多个 UART 共享相同的 dmaChCfg (AM2434 + MCU+ SDK)

Guru**** 2774995 points

Other Parts Discussed in Thread: AM2434, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1618487/am2434-sysconfig-bug-multiple-uarts-in-dma-mode-share-same-dmachcfg-am2434-mcu-sdk

器件型号: AM2434
主题中讨论的其他器件: SysConfig

我想报告  使用两个配置为 DMA 模式的 UART 实例时 AM2434 上似乎存在 SysConfig 代码生成问题。

问题摘要

当 SysConfig 配置为 DMA 模式下的两个 UART 实例时、生成的初始化代码将相同的  dmaChCfg 分配给 两个 UART 实例。 因此、两个 UART 最终都会引用相同的 DMA 通道配置结构。

预期行为

每个 UART 实例都应使用其自己的  dmaChCfg  分配(例如,gUartDmaChCfg[CONFIG_UARTx])生成 、以便每个实例的 DMA 资源都是唯一的。

观察到的行为

两个 UART 实例均使用  生成的代码中的相同 dmaChCfg 指针进行初始化。

权变措施

为了避免错误生成的初始化,我不调用  Drivers_open()(因此避免   Drivers_uartOpenLld ()),而是:

  • 手动调用所需的 Drivers_*打开功能
  •   在调用 UART_LLD_initDma() 之前、手动初始化每个 UART 并更正 dmaChCfg 赋值 

下面是我  在  System_init ()/ Board_init  () 之后的 main.c 摘录

/*=========================================== 打开驱动程序=============================================
*警告! 无法使用 Drivers_open ();由于 sysconfig 生成错误、由 TI 生成的函数
*当您将多个 UART 与 DMA 搭配使用时(如本例中)、TI 会为所有 UART 分配相同的 dmaChCfg
*请参阅以下带有“fix TI“注释的行。
*如果您编辑 sysconfig 请记住相应地更新此部分
*/

Drivers_firewallOpen ();
Drivers_udmaOpen ();

gUartHandleLld[CONFIG_UART0]       =&gUartObject[CONFIG_UART0];
gUartHandleLld[CONFIG_UART0]->state   = UART_State_reset
 


;gUartHandleLld[CONFIG_UART0]->assert = CSL_BASE;gUartHandleLld[CONFIG_UART0_STATION];


      =&gUartObject[CONFIG_UART_simple_log];
gUartHandleLld[CONFIG_UART_simple_log]->state =   UART_State_reset
 


;gUartHandleLld[CONFIG_UART_simple_log]->initAddr

  

最好是在将来的 SysConfig/SDK 版本中修复此问题。

开发环境

  • MCU+ SDK:11.00.00.15
  • 编译器:TI ARM CLANG 4.0.4 LTS
  • SysConfig:1.26.0
  • CCS:20.40
  • 器件:AM2434 (Cortex-R5F 0-0)