久芯网

能否使用DMA搬运stm32g473的ccm sram的数据?

avatar yr 提问时间: 2023-07-20 15:18:34 / 已解决
鉴于用户手册描述ccm sram都跟DMA1和DMA2有连接,但实际上,尝试用DMA把SRAM1中数据与CCM SRAM互传,或者在CCM SRAM中互传,或者CCM SRAM与外设互传,皆不成功,是手册信息错误还是其他原因,请教了。

如需获得 stm32g473 等器件的更多信息,请点击链接或 点击此处 联系在线客服!

7个回答
  • avatar xmshao
    回答时间: 2023-07-20 15:35:57

    对于G4芯片,DMA是可以访问CCM RAM的,手册上也写得清楚,同时 从系统框架图上也可以看出来

  • avatar yr
    回答时间: 2023-07-20 16:07:16

    看起来貌似可以,但是实际上不行,测试程序很简单,2路DMA通道分别搬运同一个数组到0x20000070和0x10000000, 结果程序卡住107行,可以在SRAM中传输,但是无法传到CCM,一直等待搬运结束...附上keil工程,用的是nucleo-474开发板。

  • avatar yklstudent
    回答时间: 2023-07-20 16:31:48

    上代码吧

  • avatar xmshao
    回答时间: 2023-07-20 16:52:51

    ok, 这边再测试下,然后跟你讨论。

  • avatar yr
    回答时间: 2023-07-20 17:09:42

    有结论了吗?

  • avatar xmshao
    回答时间: 2023-07-20 17:40:28
    yr 发表于 2022-8-24 09:59
    有结论了吗?

    可以的。 做dma时, 那个CCM地址要选用另外一个编址,你设置在0x20005800开始的地方就可以了。 我这边测试通过了的。

  • avatar yr
    回答时间: 2023-07-20 17:57:51

    映射的CCM的地址应该是0x20018000,也就是说用DMA传数需要用0x20000000后的地址,在memory view看0x10000000数据跟0x200180000是一样的。

会员中心 微信客服
客服
回到顶部