I am looking at flash devices that are available for rewriteable data storage, and it's clear that they need either some sort of translation layer for an overlying file system (such as FAT) or a specific type of filesystem designed for them (such as JFFS2).
This seems like such a common thing, but I'm not seeing a lot of resources (specifically on the stm32 platform) for dealing with the flash issues of write-only by page, wear leveling, and bad block monitoring.
It seems like a system like JFFS2 would take care of a lot of that, but it doesn't really seem to be used much outside the Linux ecosystem. What are some of the more common ways to deal with this in a leaner OS environment?
One highly-desirable feature is fault tolerance. For example, if the power is removed during certain operations, FAT can be corrupted. A good solution should be journaled or something similar.
(Note: "Write your own" is a highly obvious and undesirable answer)