key-value store on flash with FreeRTOS
Hey,
I’d like to store settings for an embedded product running FreeRTOS. I’ve spent the last 2 hours searching, but all solutions seemed to be a bit too large.
LevelDB seemed to be the most compact so far: https://github.com/google/leveldb however there was no FreeRTOS port available I could find.
Also seen https://github.com/iondbproject/iondb which looked ok (failing on the string key requirement), but still no FreeRTOS port
Is there anything else I missed? All I need is:
– key-value storage
– a few tens of entries
– memory and code size is critical
– persistence on either FreeRTOS FAT32, or raw flash, or some other filesystem (feel free to suggest others)
– easy cross compilation
– the key is preferably a string (as one solution for a generic storage, which can survive updates with code changes, some values might become obsolete and new created)
It will basically be used to store a few settings.
Any help is greatly appreciated.
Thanks,
Peter
key-value store on flash with FreeRTOS
My first thought was, “That sounds like you want a C++ map”
My second thought was, “Can you just wrap a C++ map with a C api and use that?” but you probably have reason that you’re not already doing that (maybe no C++ compiler, dynamic memory allocation issues, etc.)
Found this link that might be useful: https://stackoverflow.com/questions/647054/porting-stdmap-to-c
Not that if you need re-entrancy / mutual exclusion (use from multiple threads), etc. you’re probably going to have to add that in yourself.
Good luck!