FAT itself definitely is not suitable for your task. You need a journaling (log-structured) file system. Alternatively, FAT can be used as a container file system for the target journaling file system you like. E.g. you can format your Flash by FAT, then pre-write a dummy solid file to the FAT occupying the full space, and use this solid file for placing your journaling file system as the content of the solid file (open, lseek, read, write, close).
Best regards, Alexander Lunev. On Wed, 2022-01-19 at 18:40 +0000, TimH wrote: > FAT seems broken for NOR flash devices. Spent days getting nowhere. > > Since FAT and flash devices don't really play well together anyway > (already found s512 erases a flash sector at least 4 times when > writing > a cluster), so I'm wondering, in parallel, if NuttX has other tricks > up > its sleeve that might achieve the same end? I want t: > > - write to the flash, for logging, from the app running on the > board. > This can be done with any FS - or raw - as far as I'm concerned. Not > the > issue. > > - an external PC (ideally Linux, Windows and MAC) needs to be able > "see" > the data via USB (msd) and read/write to the memory (log data, > config > files, audio files, etc). Hence FAT. > > With a flash size of between 32 and 128Mbyte, I don't think a > ramdisk > formatted as FAT holding a copy of the flash data is really the way > to > go (board only has 64Mbyte RAM anyway). > > I'm guessing I'll have to keep up the battle - that NuttX is winning > - > of FAT vs. NOR flash until the bitter end, but if anyone does have > other > ideas I'm listening!