AnsweredAssumed Answered

求助关于RT1052的AT_NONCACHEABLE_SECTION_INIT问题

Question asked by 卢 鲲 on Mar 21, 2019
Latest reply on Mar 25, 2019 by Kerry Zhou

基于FreeRTOS系统下使用串口DMA的时候,定义如下缓冲区:

AT_NONCACHEABLE_SECTION_INIT(uint8_t gu1TxBuf[UART_BUF_SIZE]);
AT_NONCACHEABLE_SECTION_INIT(uint8_t gu1RxBuf[UART_BUF_SIZE]);

然后发现缓冲区数组不能正常接收数据,考虑到是定义在SDRAM里的noncacheable区域的问题,改为如下方式后:

volatile uint8_t gu1TxBuf[UART_BUF_SIZE];
volatile uint8_t gu1RxBuf[UART_BUF_SIZE];

程序可以正常运行,但并不知道数据是不是100%没有问题,以前用DMA也没有用过noncacheable区域。

请问是否会有问题?

或者说noncacheable和volatile是不是等效的?

Outcomes