Skip to main content
Grann
Associate II
Nov 19, 2021 9:02 AM UTC
Question

BUG - Race condition in the FATFS SD DMA template (BSPv1)

Hello,

there is a race condition in the function SD_read() in the template file used by CubeMX when using FATFS with DMA template (sd_diskio_dma_template_bspv1.c).

if(BSP_SD_ReadBlocks_DMA((uint32_t*)buff,
 (uint32_t) (sector),
 count) == MSD_OK)
 {
 ReadStatus = 0;

The variable ReadStatus should be set to zero BEFORE the call to BSP_SD_ReadBlocks_DMA(), as it is already the case in the BSP V2 template (sd_diskio_dma_template_bspv2.c) and in the examples using FATFS and SD DMA (e.g. Projects\STM32F412G-Discovery\Applications\USB_Host\AUDIO_Standalone\Src\sd_diskio_dma.c).

This topic has been closed for replies.

2 replies

Amel NASRI
ST Technical Moderator
Nov 29, 2021 3:10 PM UTC

Good catch @Grann​ !

I'll report this limitation to our development team who will take care to provide a fix.

Internal ticket number: 118428 (PS: This is an internal tracking number and is not accessible or usable by customers).

-Amel

To give better visibility on the answered topics, please click on "Best Answer" on the reply which solved your issue or answered your question.
Graduate
Feb 21, 2025 6:29 PM UTC

Any updates on when this will be fixed?