I have been working on a FAT filesystem for quite some time now. The API is still a bit unstable (some parts may change in the future), but it supports both RO and R/W filesystems/device mediums and the API is quite simple to use. It is called simple-fatfs, and you might want to take a look at it.