RTOS + EthernetInterface + SDFileSystem error

22 Jul 2012

Hi,

I've been experimenting with different ways to get both networking and the SD card to work in different threads on mbed-rtos.

  • Test with rtos + network: no problem, works fine
  • Test with rtos + SDFileSystem: no problem, works fine
  • Test with both: strange compile errors that point to internal (invisible) code in the mbed library.

Maybe there is a workaround, maybe I should call different versions of the EthernetInterface and/or SDFileSystem and/or FAT libraries.

Errors i got are like this: identifier "IRQn_Type" is undefined, resource core_cm3.h, fat/mbed.bld/LPC1768...

Seems to me that the different libraries are calling different and incompatible builds of the mbed library. How to avoid that?

Anybody here who has some experience with simular problems, who can take a look at my test program?

It's published at: http://mbed.org/users/tuxic/code/Net-SD-RTOS-test/

29 Jul 2012

Jaap, You need to delete the "mbed" library that is in the "fat" folder

Edit: -

So I compiled it successfully, before I posted this, and now it won't compile again successfully.

It does solve the problems that you complained of, but, it now has the same problems in the "fat" folder, that I've been fighting for the past 6 hours... :(

For the life of me, I can't get the fat filesystem library to compile under rev 41 of the mbed library, but it will compile under version 16.

I was just getting ready to post about this problem, when I saw your post.

So, it appears that we are in the same boat.

29 Jul 2012

Hi Neal,

Neal Horman wrote:

problems in the "fat" folder, that I've been fighting for the past 6 hours... :(

For the life of me, I can't get the fat filesystem library to compile under rev 41 of the mbed library, but it will compile under version 16.

I am afraid that the "FAT" library is including "C++ syntax" in a ".c" file. This forum post explains why the build system behaviour did change and how to fix your problem: http://mbed.org/forum/news-announcements/topic/3686/

HTH, Emilio

29 Jul 2012

Thanks Emilio, I did see that article, and had made the necessary extern C changes, but missed the C++ syntax in diskio.c, and as such, didn't rename it to .cpp.

That solves the problem, thanks for the clue bat!

Ok, Jaap, so the compile time fix that I implemented was;

Thats it, easy peasy. (Once you've had 8 hours of sleep, and a clue bat ;)

Good luck