AnsweredAssumed Answered

SDIO DMA hang

Question asked by metzger.marco on Feb 29, 2016
Latest reply on Oct 27, 2016 by ForumSTM32.ForumSTM3
Hello,

I'm trying to modifiy my project to work with DMA on the SDIO interface. Without DMA the system works fine. Then I modified my Cube settings to DMA and set the access functions to Write_DMA and Read_DMA. Now the system starts up and after the 7th access to HAL_SD_CheckReadOperation() systems hangs on:

while((__HAL_SD_SDIO_GET_FLAG(hsd, SDIO_FLAG_RXACT)) && (timeout > 0))
{
    timeout--;  
}

Accesses are:
- f_mount, find_volume, check_fs, move_window, SD_read, BSP_SD_ReadBlocks_DMA -> ok
- f_mount, find_volume, check_fs, move_window, SD_read, BSP_SD_ReadBlocks_DMA -> ok
- f_mount, find_volume, check_fs, move_window, SD_read, BSP_SD_ReadBlocks_DMA -> ok
- f_open, folow_path, dir_find, move_window, SD_Read, BSP_SD_ReadBlocks_DMA -> ok
- f_read, SD_Read, BSP_SD_ReadBlocks_DMA -> ok
- f_read, get_fat, move_window, SD_Read, BSP_SD_ReadBlocks_DMA -> ok
- f_read, SD_Read, BSP_SD_ReadBlocks_DMA -> ok
- f_read, SD_Read, BSP_SD_ReadBlocks_DMA -> fail

Interrupt is fired in according to the accesses.

I searched all the forum around but has no clue.


Outcomes