Proper FAT32 library

XCore Project reviews, ideas, videos and proposals.
User avatar
Berni
Respected Member
Posts: 363
Joined: Thu Dec 10, 2009 10:17 pm

Proper FAT32 library

Post by Berni »

Okey so i was fed up with the pathetic 900Kbit transfer rate from the original FAT16 lib.Its time to get serous and make something that milks some more performance out of those MIPS.

What i was thinking is porting the free FAT32 code from here http://www.robs-projects.com/filelib.html and making a SD card interface on top of it.The SD card interface should run at the spec max 25MHz.It would be also very easy to add code to allow CF cards and IDE hard drives.

I also had a idea how to make the most out of it using threads.There could be a separate thread for the SD card driver that can cache the next needed sector so its already waiting in ram when the FAT code wants it.We can simply cache the next sector number if files are not fragmented, but we could also implement a cache subroutine for the SD driver so the FAT code could tell where the next sector for this file is so it can be sure it has the right one. With this much optimization i'm sure its possible to push the card over 10Mbit/s without any problems.

Anybody also interested in having a high performance filesystem on xmos? Oh and dose anyone have any suggestions on how the thing could be made to run even faster?


User avatar
otitov
XCore Addict
Posts: 207
Joined: Thu Dec 10, 2009 11:00 pm
Location: Mexico

Post by otitov »

I am definitely interested in FAT32 and SD card support!
User avatar
errordeveloper
Active Member
Posts: 50
Joined: Wed Dec 16, 2009 6:04 pm
Location: London

Post by errordeveloper »

hm ..may be a better FS driver could be a good idea?

like one of linux flash-specific filesystems?

i understand that fat is supported everywhere but it's ancient!
User avatar
Berni
Respected Member
Posts: 363
Joined: Thu Dec 10, 2009 10:17 pm

Post by Berni »

Well thats why we are using it cause it means compatibility with everything and its simple.
User avatar
otitov
XCore Addict
Posts: 207
Joined: Thu Dec 10, 2009 11:00 pm
Location: Mexico

Post by otitov »

have you seen this post <http://hackaday.com/2010/02/07/fat-supp ... ontroller/> about universal (?) FAT library?
User avatar
shawn
XCore Addict
Posts: 238
Joined: Thu Dec 17, 2009 5:15 am

Post by shawn »

This is great, we need as much sd-card development as possible, small, simple, smart, LP. FAT a very big stardard, for removable media appropreate. FAT tables aren't the most optimal but i'm sure we can make our own like allien file sys ; ) any day of the week ; )
User avatar
Berni
Respected Member
Posts: 363
Joined: Thu Dec 10, 2009 10:17 pm

Post by Berni »

I actually got on porting a other FAT that seams very solid, its the one at http://elm-chan.org/fsw/ff/00index_e.html It has lots of useful stuff like multiple drives and such. Altho it didn't really want to work all that easily so didn't do much with it.(Not enough time on my hands)
JohnR
Experienced Member
Posts: 93
Joined: Fri Dec 11, 2009 1:39 pm

Post by JohnR »

Hi,

Does anyone know if there are any licensing issues with FAT32 (particularly with long file name support) - one would not want to be stomped on by Microsoft?

John.
User avatar
Berni
Respected Member
Posts: 363
Joined: Thu Dec 10, 2009 10:17 pm

Post by Berni »

Not that i would know. Everything uses FAT with long filenames. From mobile phones to cameras and even the all popular linux.

I did hit a licensing problem when i wanted to port microchips FAT code as the license agreement states that it can only be used on microchip products and the XS1 doesn't really fall in to that category
User avatar
octal
XCore Addict
Posts: 228
Joined: Thu Jan 27, 2011 3:30 pm
Location: Argenteuil - France

Post by octal »

Hi Berni,
any advance on the Fat32 lib?
I personally was working on an IDE Hard drive intefrace to a PIC32 and while it's almost working it still need some tweaks (electronic part). For the FAT layer, I just tought to Microchip FS implementation, but their license is too restrictive. I discovered sometimes ago FatFS and tried it with a dsPIC for a webserver, and I must say it's really a nice library. You only need to implement low level driver functions to got it working on your particular device. I'm working on writing the low level functions for HDD (but of PIC32). Once I got something working, I'll port all that to XC as I intend to make a huge-storage board that can connect to a CF or IDE-HDD using an XMOS chip (costs less than PIC32 ;) ).

Regards