8000 Fix wrong size reported for cards above 16GB · stoph/arduino-esp32@1b994d5 · GitHub
[go: up one dir, main page]

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 1b994d5

Browse files
committed
Fix wrong size reported for cards above 16GB
Fixes: espressif#803
1 parent 45d5d9b commit 1b994d5

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

libraries/SD/src/SD.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ uint64_t SDFS::totalBytes()
8080
FATFS* fsinfo;
8181
DWORD fre_clust;
8282
if(f_getfree("0:",&fre_clust,&fsinfo)!= 0) return 0;
83-
uint64_t size = (fsinfo->csize)*(fsinfo->n_fatent - 2)
83+
uint64_t size = ((uint64_t)(fsinfo->csize))*(fsinfo->n_fatent - 2)
8484
#if _MAX_SS != 512
8585
*(fsinfo->ssize);
8686
#else
@@ -94,7 +94,7 @@ uint64_t SDFS::usedBytes()
9494
FATFS* fsinfo;
9595
DWORD fre_clust;
9696
if(f_getfree("0:",&fre_clust,&fsinfo)!= 0) return 0;
97-
uint64_t size = (fsinfo->csize)*((fsinfo->n_fatent - 2) - (fsinfo->free_clst))
97+
uint64_t size = ((uint64_t)(fsinfo->csize))*((fsinfo->n_fatent - 2) - (fsinfo->free_clst))
9898
#if _MAX_SS != 512
9999
*(fsinfo->ssize);
100100
#else

libraries/SD_MMC/src/SD_MMC.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ uint64_t SDMMCFS::totalBytes()
104104
FATFS* fsinfo;
105105
DWORD fre_clust;
106106
if(f_getfree("0:",&fre_clust,&fsinfo)!= 0) return 0;
107-
uint64_t size = (fsinfo->csize)*(fsinfo->n_fatent - 2)
107+
uint64_t size = ((uint64_t)(fsinfo->csize))*(fsinfo->n_fatent - 2)
108108
#if _MAX_SS != 512
109109
*(fsinfo->ssize);
110110
#else
@@ -118,7 +118,7 @@ uint64_t SDMMCFS::usedBytes()
118118
FATFS* fsinfo;
119119
DWORD fre_clust;
120120
if(f_getfree("0:",&fre_clust,&fsinfo)!= 0) return 0;
121-
uint64_t size = (fsinfo->csize)*((fsinfo->n_fatent - 2) - (fsinfo->free_clst))
121+
uint64_t size = ((uint64_t)(fsinfo->csize))*((fsinfo->n_fatent - 2) - (fsinfo->free_clst))
122122
#if _MAX_SS != 512
123123
*(fsinfo->ssize);
124124
#else

0 commit comments

Comments
 (0)
0