2025-10-12 10:31 PM - last edited on 2025-10-13 1:15 AM by mƎALLEm
Hi everyone,
I’m currently working with an STM32H747 and trying to perform SD card write operations using core M4. The SMMC1 peripheral is connected to the D1 domain, which (as far as I understand) means that the M4 core (D2 domain) doesn’t have direct access to it.
When I try to write to the SD card from M4 (using MDMA), it always fails — f_mkfs returns an error. However, when I run exactly the same code on core M7, everything works perfectly fine.
So my questions are:
Does it make sense that the M4 cannot access SMMC1 because of the D1 domain connection?
Is there any way to make SD write operations work from the M4 core (for example, through shared memory, DMA Settings, or another workaround)?
Thanks in advance.
2025-10-13 2:39 AM
Hello @Patryk_Kucia
You are right, the SDMMC1 peripheral is located within the D1 domain of the STM32H747, which means it is not directly accessible by the D2 domain (Cortex-M4 core). As a result, the Cortex-M4 core cannot perform SD card operations using SDMMC1. To enable SD card access from the Cortex-M4 core, we recommend utilizing the SDMMC2 peripheral, which is mapped to the D2 domain and can be directly controlled by the Cortex-M4.