鉴于用户手册描述ccm sram都跟DMA1和DMA2有连接,但实际上,尝试用DMA把SRAM1中数据与CCM SRAM互传,或者在CCM SRAM中互传,或者CCM SRAM与外设互传,皆不成功,是手册信息错误还是其他原因,请教了。 |
对于G4芯片,DMA是可以访问CCM RAM的,手册上也写得清楚,同时 从系统框架图上也可以看出来
看起来貌似可以,但是实际上不行,测试程序很简单,2路DMA通道分别搬运同一个数组到0x20000070和0x10000000, 结果程序卡住107行,可以在SRAM中传输,但是无法传到CCM,一直等待搬运结束...附上keil工程,用的是nucleo-474开发板。
上代码吧
ok, 这边再测试下,然后跟你讨论。
有结论了吗?
有结论了吗?
可以的。 做dma时, 那个CCM地址要选用另外一个编址,你设置在0x20005800开始的地方就可以了。 我这边测试通过了的。
映射的CCM的地址应该是0x20018000,也就是说用DMA传数需要用0x20000000后的地址,在memory view看0x10000000数据跟0x200180000是一样的。