Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
12 years, 8 months ago.
FATFileSystem problem "FR_NO_FILESYSTEM"
Hello to everybody,
I have an application where I want to read a file from the SD Card (using SDFileSystem) and write it to a USB Device (using MSCFIleSystem).
I have done a little test setting up the two interfaces and I found an error (enabling FATFIleSytem Debug). My code is like this
code example
MSCFileSystem usbFS("msc");
SDFileSystem sdFS(p5,p6,p7,p8,"sd");
FILE* current_fp;
int main () {
if (isFlashDriveConnected() == true) {
current_fp = fopen("/msc/testUSB.txt","w");
}
else {
current_fp = fopen("/sd/testSD.txt","w");
}
if (current_fp == NULL) {
error("Cannot write to file");
}
}
// determine if USB Flash Drive is able to open a file -> so, the FS exists and can be used
bool isFlashDriveConnected() {
FILE *fp = NULL;
fp = fopen("/msc/.exist","w");
if (fp == NULL) {
return false;
}
fclose(fp);
fp = NULL;
return true;
}
The result I get in the console, where I found the error, is (USB Device not connected, SD Card connected)
FATFileSystem(msc) Mounting [msc] on ffs drive [0] FATFileSystem(sd) Mounting [sd] on ffs drive [1]
open(.exist) on filesystem [msc], drv [0] disk_initialize on drv [0] In Host_Init Initializing Host Stack Host Initialized Connect a Mass Storage device ERROR: In Host_EnumDev at Line 385 - rc = -1 Could not enumerate device: -1 f_open('w') failed (3, FR_NO_PATH)
open(testSD.txt) on filesystem [sd], drv [1] f_open('w') failed (11, FR_NO_FILESYSTEM)
Cannot write to file
-------------------
If I test MSCFileSystem and SDFileSystem separately, both works ok.
How can I fix the "FR_NO_FILESYSTEM" error?
Thanks!
Ezequiel Aceto
1 Answer
12 years, 8 months ago.
Found my own answer. And the problem is fixed!
ffconf.h has _VOLUMES = 1 as max number of volumes, and FATFIleSystem (The file I was looking at) allows a number of up to 4 logical units.
I fixed it by settings _VOLUMES to the same maxnumber of logical drives that FATFIleSystem can handle.