I’ve designed a custom PCB based on the STM32H753 and am attempting to port the Ardupilot firmware onto it. However, I’m experiencing persistent SD card communication timeouts, which prevent the initialization of the SD card and the activation of the logging function. The specific issue arises after adjusting the output clock to 25MHz using the sdc_lld_set_data_clk(sdcp, clk)
function, leading to communication timeouts between the host and the SD card.
From my research, it appears that the SDMMC1 on STM32H7 only supports AXI SRAM within the address range of 0x24000000 to 0x24000400, whereas the SDMMC2 used by Pixhawk 6X supports all SRAM addressing. I am using SDMMC1 and suspect that the memory allocated by the program’s malloc
call does not fall within the AXI SRAM.
In the bouncebuffer_init
function, (*bouncebuffer)->dma_buf = malloc_axi_sram(prealloc_bytes);
is executed to allocate memory for sdcd.bouncebuffer->dma_buf
, but the allocated memory starts at 0x38000040, which is outside the AXI SRAM region.
Has anyone encountered a similar issue?