当我在寻找 H7 DMA 数据时,
的
我看到下面的文章说 DMA 在 H7 设备上不工作。
https://community.st.com/s/article/FAQ-DMA-is-not-working-on-STM32H7-devices
的
该文章中的解决方案 1 如下所示。
的
---------------------------------------------- ---------------------------------------------- --------------------------
解决方案示例1:所有内存简单放置到D1域
“必须全局禁用 D-Cache 才能使此解决方案起作用。”
GCC(用于
STM32/Eclipse 的 Atollic TrueStudio/System Workbench)
“用 RAM_D1 替换 DTCMRAM”用于链接描述文件(.ld 文件扩展名)中的部分放置。例如像这样:
的
。数据 :
{
... /* 保持不变 */
} >RAM_D1 AT> 闪存
---------------------------------------------- ---------------------------------------------- --------------------------
的
但是,“STM32Cube_FW_H7_V1.9.0/NUCLEO-H743ZI/Examples/ADC/ADC_DMA_Transfer”
的
例子中DTC MRAM改为RAM_D1(STM32H743ZITx_FLASH.ld),
但是 Main.c 文件是:(第 58 行)
的
/* 启用 CPU 缓存 */
CPU_CACHE_Enable();
的
解决方案应该是把DTC MRAM换成RAM_D1,全局禁用D-Cache,但是例子好像不是这样。
的
哪一个是正确的?