stm32f7 uart DMA cache不一致问题解决

stm32f7 uart DMA cache不一致问题解决

我的代码,再DMA串口发送时没有问题,只有在DMA 串口接收时会发生cache与内存不一致情况。对我对代码有效对解决办法找到以下两种:
1)将cache设置成透传模式,同时在读取数据前调用SCB_CleanInvalidateDCache_by_Addr()函数。
网上写的资料里有四种方法,我的代码不知道为什么,必须用这个函数,用SCB_CleanDcache都不行。
2)将存放数据的数组,定义在IRAM2中,即u8 TEXT_FOR_RECE[10] attribute((at(0x20000000)));
但是keil的设置中不能勾选IRAM2,原因未知。
项目比较紧,等有空了再详细分析原因。

你可能感兴趣的:(stm32实践总结,stm32,DMA,cache与内存不一致)