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.

[参考译文] TCM-AM243X:uart_echo_DMA_LLD:使用 MCU-PLUS-SDK 存储器

Guru**** 2463330 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/1476468/mcu-plus-sdk-am243x-uart_echo_dma_lld-use-tcm-memory

器件型号:MCU-PLUS-SDK AM243X
主题中讨论的其他器件:SysConfig

工具与软件:

尊敬的专家:

我正在使用 motor_control_sdk_am243x_09_02_00_09、CCS 12.6、SysConfig 1.21.1。

从 uart_echo_dma_lld 示例开始、我尝试将传输缓冲区移至 TCM 存储器、这是 TI 专家的建议。

#define APP_UART_BUFSIZE        (0x100U)

__attribute__((aligned (256)、section (".data.tcma"))
uint8_t gUartBuffer[APP_UART_BUFSIZE];

__attribute__((aligned (256)、section (".data.tcma"))
uint8_t gUartReceiveBuffer[APP_UART_BUFSIZE];

映射文件:

00000100gUartBuffer
00000200 gUartReceiveBuffer

执行此操作后、UART 中只能显示\0个字符。 字符数\0符合应该存在的字符串的长度。 如果我将 TCMA 设置为在 SysConfig 中缓存或非缓存、或者从代码中删除 CacheP_WB ()和 CacheP_inv ()操作、则该设置不会改变。

我想、从 DMA 控制器的角度来看、TCMA 的地址范围可能是0x0000000。 应该在 udma_defaultVirtToPhyFxn ()函数中更正它。 但我无法从 spruim2h 手册的内存映射部分获得正确的地址范围。

这是真的吗? 如果是、您能向我提供 DMA 控制器将访问每个内核的 TCMA/TCMB 存储器的地址范围吗?

BR
Alexander

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

    您好、 Alexander、

    我正在查看您的问题、您可能希望在一两天内得到回复。

    此致、

    Anil。