FreeRTOS Labs: FreeRTOS+FAT Status

westmorelandeng wrote on Thursday, May 28, 2015:

Hello All,

What is the current status of the FAT file system in FreeRTOS labs?

Is there a SD driver available?

Thanks,
John W.

heinbali01 wrote on Thursday, May 28, 2015:

Hi John,

FreeRTOS does not develop SD-card drivers as such. Most MCU’s come with a ready-made driver for their memory card slots.

What FreeRTOS will provide is a module like :

FreeRTOS-Plus-FAT/portable/<platform>/ff_sddisk.c

where ‘<platform>’ can be Zynq, STM32F4xx, LPC18xx, etc.

This source file connects the hardware driver with the +FAT library, by defining 2 block drivers:

int32_t sdFFRead( uint8_t *pucBuffer, uint32_t ulSectorNumber,
    uint32_t ulSectorCount, FF_Disk_t *pxDisk );
int32_t sdFFWrite( uint8_t *pucBuffer, uint32_t ulSectorNumber,
    uint32_t ulSectorCount, FF_Disk_t *pxDisk );

and some other helping functions.

It always takes a lot of care (time, effort) to prepare a public software release. But if you contact FreeRTOS directly (see website), you can ask for a kind of pre-release. What hardware platform were you thinking of?

If you have enough RAM, you can already try-out the RAM disk driver.

Regards,
Hein

westmorelandeng wrote on Thursday, May 28, 2015:

Hello Hein,

OK - I have run the CLI + FAT demo that runs on windows. That is interesting how it communicates via UDP using a ramdisk as storage.

There is plenty on this subject regarding MMC/SD/etc. file systems - probably one of the most popular is the code posted here: http://elm-chan.org/fsw/ff/00index_e.html and here:
http://elm-chan.org/fsw/ff/00index_p.html - the latter being geared more for light-weight embedded systems.

And the guys here have made theirs available:
https://github.com/ibexuk/C_Memory_SD_Card_FAT_Driver

And this site is worth mentioning:
http://siwawi.bauing.uni-kl.de/avr_projects/arm_projects/arm_memcards/

And so is this one:
http://www.roland-riegel.de/sd-reader/index.html

I thought by posting my OP that was asking status and for a possible pre-release if one is available; since this is the official forum for that.

Does anyone know when the FreeRTOS+FAT code is going to pop out of the lab?

I have some hardware I’d like to test drive it on.

Thanks,
John W.

heinbali01 wrote on Thursday, May 28, 2015:

I have run the CLI + FAT demo that runs on windows.
That is interesting how it communicates via UDP using
a ramdisk as storage

It doesn’t use UDP but it is a complete FTP server.

There is plenty on this subject regarding MMC/SD/etc. file systems
probably one of the most popular is the code posted here…

As usual, there are many roads leading to Rome. I tried several factory-provided SD/MMC card drivers and I liked them, their quality seemed OK.

FreeRTOS+FAT is a driver for the FAT (32/16/12) file system, just like ChaN’s FS is.

Once again: if you want to try-out a pre-release of the +FAT drivers, please write an email to FreeRTOS, so we can send it to you directly.

when the FreeRTOS+FAT code is going to pop out of the lab?

I have been using +TCP/+FAT in projects for a long time already: an embedded jquery webserver and an FTP server.
But more testing never hurts and also we’d like to know your experience with the source code: is everything clear? Is it easy enough to configure? Are there any pitfalls?

Thanks.

westmorelandeng wrote on Thursday, May 28, 2015:

Hello Again Hein,

OK - please reference this page:
http://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_FAT_SL/Demos/File_System_Win32_Simulator_demo.shtml

Clearly, UDP ports 5001 and 5002 are used. I am not using the FTP server demo.

So, you work for Wittenstein, Real-Time Engineers, or FreeRTOS then?
I just tried the online contact form - the captcha phrase came back as incorrect even though I tried it several times and typed in the correct phrase - so that seems to be broke.

I have Richard’s e-mail - I guess I will try that.

Regards,
John

heinbali01 wrote on Friday, May 29, 2015:

Morning John,

Clearly, UDP ports 5001 and 5002 are used.
I am not using the FTP server demo.

Ah sorry, we were writing about different things. “FreeRTOS+FAT SL” (Super Lean) already exists for quite some time, and it is not in the Labs section.

Recently FreeRTOS came up with the fairly new “FreeRTOS+FAT”, in which all functions start with a double ff :

ff_fopen()    ff_fread()     ff_fwrite()
ff_fgetc()    ff_fputc()     ff_truncate()
ff_fclose()   ff_rename()    ff_remove()
ff_fseek()    ff_rewind()    ff_ftell()
ff_stat()     ff_feof()      ff_seteof()
ff_mkdir()    ff_chdir()     ff_getcwd
ff_rmdir()    ff_fprintf()   ff_findfirst()
ff_findnext() ff_filelength()

“FreeRTOS+FAT” can have multiple volumes / drives, mapped into a single directory structure. For example :

/       ( Root directory on SD-card )
/ram    ( RAM disk driver )
/flash  ( FLASH memory driver )

“FreeRTOS+FAT” can be found in the Labs: FreeRTOS+FAT DOS Compatible Embedded FAT File System

FreeRTOS+TCP has been extended with new protocols : a web server and an FTP server. These servers use “FreeRTOS+FAT” for their file access.

In case you want to try-out “FreeRTOS+FAT”, it is useful to write Richard and ask for a particular hardware driver that you need (if available).

Thanks, Hein