Skip to content

Commit f044cdc

Browse files
Add missing volatile to status flags in sd_diskio.c (#678)
To prevent the while loops from being optimized into very long loops that always wait for the timeout.
1 parent ea7f924 commit f044cdc

2 files changed

Lines changed: 6 additions & 2 deletions

File tree

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
## Unreleased
44

5+
### Bug Fixes
6+
7+
- SDMMC: fix an issue where status flags were optimized out, resulting in very long while loops
8+
59
## v8.0.0
610

711
### Features

src/util/sd_diskio.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@
5757
/* Disk status */
5858
static volatile DSTATUS Stat = STA_NOINIT;
5959
//static volatile UINT WriteStatus = 0, ReadStatus = 0;
60-
static uint32_t WriteStatus = 0;
61-
static uint32_t ReadStatus = 0;
60+
static volatile uint32_t WriteStatus = 0;
61+
static volatile uint32_t ReadStatus = 0;
6262
/* Private function prototypes -----------------------------------------------*/
6363
static DSTATUS SD_CheckStatus(BYTE lun);
6464
DSTATUS SD_initialize(BYTE);

0 commit comments

Comments
 (0)