MDMA和DMA1/2,配置为存储器到存储器,分别测试了两种情况: 1、源地址:0x24000000(AXI SRAM),目的地址:0x24010000(AXI SRAM),源地址后4kb全部初始化为0xFF,目的地址后64kb全部初始化为0,传输64kb数据,发现目的地址传输到数据有部分丢失,隔10几个地址就全是0(猜测未传输成功) 2、源地址:0x30000000(D2域 SRAM1),目的地址:0x30004000(AXI SRAM2),源地址后4kb全部初始化为0xFF,目的地址后4kb全部初始化为0,使能SRAM1和SRAM2时钟,传输4kb数据,发现目的地址到所有值都未变化,但查看相应DMA寄存器状态位发现传输已经完成。 请问大家有没有遇到这种情况,这究竟是什么原因? |
如需获得 STM32H723ZG 等器件的更多信息,请点击链接或 点击此处 联系在线客服!
这些问题往往会涉及到很细节的原因。很难一下说定原因。 你说测试了2种情况,两种情况你具体是用的哪个DMA? 你现在是M to M,你的源数据是否真正写到内存了,建议你先关闭D-CACHE或针对源区开启透写功能; 还有,请注意下 有无访问对齐方面的问题。
这些问题往往会涉及到很细节的原因。很难一下说定原因。 你说测试了2种情况,两种情况你具体是用的哪个DMA? 你现在是M to M,你的源数据是否真正写到内存了,建议你先关闭D-CACHE或针对源区开启透写功能; 还有,注意 各DMA有各自的访问区域限制,尤其通用DMA不是无所不达,再就是注意有无访问对齐方面的问题。
这些问题往往会涉及到很细节的原因。很难一下说定原因。
感谢大佬,原来是我没有关闭Dcache的原因,小弟想问一下Dcache怎么会影响DMA传输的呢?
感谢大佬,原来是我没有关闭Dcache的原因,小弟想问一下Dcache怎么会影响DMA传输的呢? ...
开启D-CACHE导致DMA传输产生异常 很常见。 其中 原因 这里没法一句两句说清楚。 核心就是注意数据一致性问题。
这些问题往往会涉及到很细节的原因。很难一下说定原因。
十分感谢