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?
Proper FAT32 library
-
- Respected Member
- Posts: 363
- Joined: Thu Dec 10, 2009 10:17 pm
-
- XCore Addict
- Posts: 207
- Joined: Thu Dec 10, 2009 11:00 pm
- Location: Mexico
I am definitely interested in FAT32 and SD card support!
-
- Active Member
- Posts: 50
- Joined: Wed Dec 16, 2009 6:04 pm
- Location: London
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!
like one of linux flash-specific filesystems?
i understand that fat is supported everywhere but it's ancient!
-
- Respected Member
- Posts: 363
- Joined: Thu Dec 10, 2009 10:17 pm
Well thats why we are using it cause it means compatibility with everything and its simple.
-
- XCore Addict
- Posts: 207
- Joined: Thu Dec 10, 2009 11:00 pm
- Location: Mexico
have you seen this post <http://hackaday.com/2010/02/07/fat-supp ... ontroller/> about universal (?) FAT library?
-
- XCore Addict
- Posts: 238
- Joined: Thu Dec 17, 2009 5:15 am
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 ; )
-
- Respected Member
- Posts: 363
- Joined: Thu Dec 10, 2009 10:17 pm
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)
-
- Experienced Member
- Posts: 93
- Joined: Fri Dec 11, 2009 1:39 pm
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.
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.
-
- Respected Member
- Posts: 363
- Joined: Thu Dec 10, 2009 10:17 pm
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
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
-
- XCore Addict
- Posts: 228
- Joined: Thu Jan 27, 2011 3:30 pm
- Location: Argenteuil - France
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
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