Skip to content

Commit a4b08a4

Browse files
committed
chore(fatfs): support FatFs library 4.0.0
based on R0.15. Signed-off-by: Frederic Pillon <[email protected]>
1 parent 6bdc8fd commit a4b08a4

File tree

3 files changed

+318
-12
lines changed

3 files changed

+318
-12
lines changed

Diff for: src/SD.cpp

+11-11
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ File SDClass::open(const char *filepath, uint8_t mode /* = FA_READ */)
138138
Error_Handler();
139139
}
140140

141-
#if _FATFS == 68300
141+
#if (_FATFS == 68300) || (_FATFS == 80286)
142142
file._fil->obj.fs = 0;
143143
file._dir.obj.fs = 0;
144144
#else
@@ -209,7 +209,7 @@ void File::ls(uint8_t flags, uint8_t indent)
209209
char *fn;
210210

211211
#if _USE_LFN
212-
#if _FATFS == 68300
212+
#if (_FATFS == 68300) || (_FATFS == 80286)
213213
/* altname */
214214
#else
215215
static char lfn[_MAX_LFN];
@@ -226,7 +226,7 @@ void File::ls(uint8_t flags, uint8_t indent)
226226
if (fno.fname[0] == '.') {
227227
continue;
228228
}
229-
#if _USE_LFN && _FATFS != 68300
229+
#if _USE_LFN && (_FATFS != 68300 && _FATFS != 80286)
230230
fn = *fno.lfname ? fno.lfname : fno.fname;
231231
#else
232232
fn = fno.fname;
@@ -360,7 +360,7 @@ int File::read(void *buf, size_t len)
360360
void File::close()
361361
{
362362
if (_name) {
363-
#if _FATFS == 68300
363+
#if (_FATFS == 68300) || (_FATFS == 80286)
364364
if (_fil) {
365365
if (_fil->obj.fs != 0) {
366366
#else
@@ -377,7 +377,7 @@ void File::close()
377377
_fil = NULL;
378378
}
379379

380-
#if _FATFS == 68300
380+
#if (_FATFS == 68300) || (_FATFS == 80286)
381381
if (_dir.obj.fs != 0) {
382382
#else
383383
if (_dir.fs != 0) {
@@ -459,7 +459,7 @@ uint32_t File::size()
459459

460460
File::operator bool()
461461
{
462-
#if _FATFS == 68300
462+
#if (_FATFS == 68300) || (_FATFS == 80286)
463463
return !((_name == NULL) || ((_fil == NULL) && (_dir.obj.fs == 0)) || ((_fil != NULL) && (_fil->obj.fs == 0) && (_dir.obj.fs == 0)));
464464
#else
465465
return !((_name == NULL) || ((_fil == NULL) && (_dir.fs == 0)) || ((_fil != NULL) && (_fil->fs == 0) && (_dir.fs == 0)));
@@ -523,13 +523,13 @@ bool File::isDirectory()
523523
if (_name == NULL) {
524524
Error_Handler();
525525
}
526-
#if _FATFS == 68300
526+
#if (_FATFS == 68300) || (_FATFS == 80286)
527527
if (_dir.obj.fs != 0)
528528
#else
529529
if (_dir.fs != 0)
530530
#endif
531531
return true;
532-
#if _FATFS == 68300
532+
#if (_FATFS == 68300) || (_FATFS == 80286)
533533
else if (_fil->obj.fs != 0)
534534
#else
535535
else if (_fil->fs != 0)
@@ -550,7 +550,7 @@ File File::openNextFile(uint8_t mode)
550550
FRESULT res = FR_OK;
551551
FILINFO fno;
552552
char *fn;
553-
#if _USE_LFN && _FATFS != 68300
553+
#if _USE_LFN && (_FATFS != 68300 && _FATFS != 80286)
554554
static char lfn[_MAX_LFN];
555555
fno.lfname = lfn;
556556
fno.lfsize = sizeof(lfn);
@@ -563,7 +563,7 @@ File File::openNextFile(uint8_t mode)
563563
if (fno.fname[0] == '.') {
564564
continue;
565565
}
566-
#if _USE_LFN && _FATFS != 68300
566+
#if _USE_LFN && (_FATFS != 68300 && _FATFS != 80286)
567567
fn = *fno.lfname ? fno.lfname : fno.fname;
568568
#else
569569
fn = fno.fname;
@@ -589,7 +589,7 @@ File File::openNextFile(uint8_t mode)
589589
void File::rewindDirectory(void)
590590
{
591591
if (isDirectory()) {
592-
#if _FATFS == 68300
592+
#if (_FATFS == 68300) || (_FATFS == 80286)
593593
if (_dir.obj.fs != 0) {
594594
#else
595595
if (_dir.fs != 0) {

Diff for: src/ffconf.h

+11-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,17 @@
1212
#if __has_include("ffconf_custom.h")
1313
#include "ffconf_custom.h"
1414
#else
15-
#if _FATFS == 68300
15+
#if defined(FF_DEFINED) && !defined(_FATFS)
16+
#define _FATFS FF_DEFINED
17+
#endif
18+
19+
#if _FATFS == 80286
20+
/* Ensure backward compatibility with release prior to FatFs 0.14 */
21+
/* Those flags are */
22+
#define _USE_WRITE 1
23+
#define _USE_IOCTL 1
24+
#include "ffconf_default_80286.h"
25+
#elif _FATFS == 68300
1626
#include "ffconf_default_68300.h"
1727
#else
1828
#include "ffconf_default_32020.h"

0 commit comments

Comments
 (0)