-deleted-
9 years, 1 month ago.

Compile Error number 322

Thank you for the library.

If I import and compile without selecting the checkbox "update all libraries.." then the compile is a success.

If I import and then select to "update all libraries" then the compile fails with error message "Object of abstract class type "SDFileSystem" is not allowed", error number 322 (Object of abstract class type is not allowed).

If I delete the mbed and SDFileSystem libraries and then re-import them then there are even more compile error message.

How do I correct this error and still use the latest mbed library?

Question relating to:

SD card example with the file system (complete). Created for FTF2014 FTF2014, hands-on, lab

1 Answer

9 years, 1 month ago.

You can import it without updating, and then only update the mbed library (right click on it, update).

The problem is that SDFileSystem does not work properly with the latest FATFileSystem. No idea why, since as far as I know SDFileSystem should have been updated to deal with those changes. When you click update all, it apparantly also updates sub-libraries, such as FATFileSystem. If you just right click update, it will update only that library to the latest version, including the at that time version of the sub-libraries.

Why it goes wrong when you re-import them, is very likely because you import the wrong SDFileSystem (or you also have the update all sub-libaries enabled). And you most likely import the wrong library since someone decided to put SDFileSystem as non-public, so it will not show up in the search.

Accepted Answer

I concur, Updating breaks it :( I

I have lost a lot of time, trying to get SD File System to work on two of my latest projects ..

Pleas .. can this get fixed !!!

posted by ceri clatworthy 16 Mar 2015

Updating SDFileSystem should NOT break it. At least not in my tests. Updating FATFileSystem breaks it. While this should obviously be fixed, there is little reason to update FATFileSystem tbh.

posted by Erik - 16 Mar 2015