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.
工具与软件:
尊敬的专家:
我正在使用 motor_control_sdk_am243x_09_02_00_09、CCS 12.6、SysConfig 1.21.1。
我正在尝试 uart_echo_dma_lld 示例、并添加了一些更多的变量来测量解决时间。 我注意到、这些变量有时会重置为零、没有明显的原因。 进一步研究了这些变量在 SysConfig 代码中实例化的两个缓冲区附近的链接:
/* UART UDMA 通道 HPD 存储器*/
静态 uint8_t gUart0UdmaTxHpdMem[UART_UDMA_TEST_DESC_SIZE]__ATTRIBUTY__(ALIGNED (UDMA_CACHELINE_ALIGN));
静态 uint8_t gUart0UdmaRxHpdMem[UART_UDMA_TEST_DESC_SIZE]__ATTRIBUTY__(ALIGNED (UDMA_CACHELINE_ALIGN));UART_UdmaChConfig gUartDmaChCfg[CONFIG_UART_NUM_DMA_LLD_EVENTS]=
{{
[...]
.txHpdMem =&G gUart0UdmaTxHpdMem、
.rxHpdMem =&G gUart0UdmaRxHpdMem、
[...]
};
使用以下解决方法后、问题就消失了:
uint8_t myUdmaTxHpdMem[UDMA_CACHELINE_alignment](对齐(UDMA_CACHELINE_ALIGN));
uint8_t myUdmaRxHpdMem[UDMA_CACHELINE_alignment](对齐(UDMA_CACHELINE_ALIGN));void uart_echo_dma_lld (void * args)
{
gUartDmaChCfg[0].txHpdMem = myUdmaTxHpdMem;
gUartDmaChCfg[0].rxHpdMem = myUdmaRxHpdMem;
drivers_open();
Board_driversOpen();
[...]
这些缓冲区与 CacheP_inv ()和 CacheP_WB ()命令一起使用。 它们最初的缓冲区与一个缓存行对齐、但比一个缓存行短。 我想高速缓存命令总是会影响整个高速缓存行。 这是不是真的? 如果是、您是否会在将来的 SysConfig/SDK 中修复?
BR
Alexander
您好、Alexander、
我正在查看您的问题、您可能希望在一两天内得到回复。
此致、
Anil。