Need Beta Testing for new SD3.0_FATEngine release!
Kye
Posts: 2,200
Hey guys, I've been working on some updates to the SD2.0 FATEngine and I need some beta testers to make sure that I didn't break anything.
So, mainly in the version I'm posting below I've done alot of work on the block driver and I believe I have it now finished.
Here's what I changed in the block driver:
10MHz read speed now.
20Mhz write speed now - up from 10 Mhz.
Support for SDXC cards now in theory. I have not tested this as I do not have an SDXC card. But SDXC cards work just like SDHC cards expect that they have a built in ultra high speed mode which can get up to ~110Mbs using 1.8V signaling.
Support for MMC cards and high capacity MMC cards now should have no problems. But again, I do not have an MMC card so I don't know if everything works.
Additionally, the driver now tristates the I/O lines after each bus transaction so that the bus can be shared.
Also, card detect and card write protect are now supported. This means that the block driver can waste less time trying to mount a non existant card if the card is not inserted.
Write protect is also now supported too. The block driver will bounce all writes when its enabled. I have not incorporated the write protect nor card detect into the file system yet however... so they don't really work very good right now. As in the file system will try to do a write and crash when the block driver bounces it back with a "disk I/O error".
Finally, I changed the way a bunch of things work so I follow the spec more closely and took out a bunch of unneeded code pieces.
---
In the file system I made writes happen faster. If you're using a decent SD card you should get double the write speed now. On a 256MB SD card I have I can get 170KBs file creation write speed and 150KBs post file creation write speed.
I also made the boot feature MUCH faster. You should now be able to boot eeprom files in 2secs and bin files in under 1sec.
---
That's it for right now. I have to go through the file system now and change ALOT of the code to make write protect and card detect fully supported. Also, I will get locking working properly so that you can have multiple copies of the file system with multiple files open at once.
As for paths... and caching... maybe I'll work on that next year.
So, mainly in the version I'm posting below I've done alot of work on the block driver and I believe I have it now finished.
Here's what I changed in the block driver:
10MHz read speed now.
20Mhz write speed now - up from 10 Mhz.
Support for SDXC cards now in theory. I have not tested this as I do not have an SDXC card. But SDXC cards work just like SDHC cards expect that they have a built in ultra high speed mode which can get up to ~110Mbs using 1.8V signaling.
Support for MMC cards and high capacity MMC cards now should have no problems. But again, I do not have an MMC card so I don't know if everything works.
Additionally, the driver now tristates the I/O lines after each bus transaction so that the bus can be shared.
Also, card detect and card write protect are now supported. This means that the block driver can waste less time trying to mount a non existant card if the card is not inserted.
Write protect is also now supported too. The block driver will bounce all writes when its enabled. I have not incorporated the write protect nor card detect into the file system yet however... so they don't really work very good right now. As in the file system will try to do a write and crash when the block driver bounces it back with a "disk I/O error".
Finally, I changed the way a bunch of things work so I follow the spec more closely and took out a bunch of unneeded code pieces.
---
In the file system I made writes happen faster. If you're using a decent SD card you should get double the write speed now. On a 256MB SD card I have I can get 170KBs file creation write speed and 150KBs post file creation write speed.
I also made the boot feature MUCH faster. You should now be able to boot eeprom files in 2secs and bin files in under 1sec.
---
That's it for right now. I have to go through the file system now and change ALOT of the code to make write protect and card detect fully supported. Also, I will get locking working properly so that you can have multiple copies of the file system with multiple files open at once.
As for paths... and caching... maybe I'll work on that next year.
Comments
Okay, so what I need testers to do is mount the card. Run the test program and post your results.
Thanks,
What are the bytes per second read speeds now, with files in the root directory, unfragmented?
As it is now only large data transfers actually see speed boosts. The reason for this is that the bottle neck comes from how the readData and writeData functions work. Since I use those functions to read a byte and write a byte at a time they are SLOW.
So, to get booting to go faster I just made a direct byte read only version that goes way faster.