Flash translation layer (FTL) for LPC2xxx?

I recently looked around a bit to see if it would be possible to put a file system (like FAT16) or USB mass storage support on the LPC2xxx internal flash. The problem is that FAT16 and USB mass storage expect to use 512-byte sectors, while the LPC2xxx uses flash segments of up to 32 kB.

It turns out that there is a solution to this problem and it’s called a Flash Translation Layer (FTL). This layer takes care of partitioning the big flash segments into smaller 512-byte sectors and also implements wear leveling (such that every flash segment sees about the same number of erases). An FTL may even provide handling of bad flash blocks (marking and avoiding them).

So far I have not seen any open-source implementations of an FTL. Is there anybody who has? If not, I plan to work out my own implementation (as time permits).

I had a link to some guy’s project of exactly that. I can’t find it now. The site had information on doing Surface Mount reflow work in home toaster ovens, it was dark & light blue, and had some other ARM projects.

I’ll keep an eye out and if I see it again, I’ll post it.

You mean this page by Tom Walsh:

http://openhardware.net/

?

It is blue and it does feature a toaster oven, it even has some ARM stuff, but I found no flash translation layer. He does have a port of a FAT file system, but I think that’s running on a SD flash card, not on the LPC2xxx internal flash.

Yeah. That is what I was thinking of. I’m not sure if it’s useful for the on-board flash (looking at it now), but it’s in the general neighborhood. It might not be useful for the on-board FLASH use, but I’ll leave a link in case someone later find it useful.

http://openhardware.net/Embedded_ARM/RDCF2/