Are “system calls” to access the littlefs on the mesh devices forthcoming soonish or is that a ways out. I’m evaluating whether I need to go in and add some appropriate calls myself vs. wait a couple of weeks. (Yes, I know I can use a monolithic build, but no, it’s not a pleasant dev experience, or at least, I would rather go in and add the calls myself vs waiting that long every time.)
Looks like there’s an amazing amount of interest
I started the ball rolling: https://github.com/particle-iot/device-os/pull/1706. That PR starts to export littlefs functions to user-level. I will be continuing on this to export all of them and start to make use of them.
There’s an additional piece of work, which I’m not sure I will tackle, which is to add a nice Arduino-style wrapper around this. For example, a clone of https://github.com/espressif/arduino-esp32/blob/master/libraries/FS/src/FSImpl.h
I am not in the thick of things (I work remotely) but from what I’ve heard/seen in internal discussions, LittleFS is a medium-term thing – i.e. things like the BLE API are higher priorities. But it’s well known (e.g. with the product management team) that more than a couple folks would like access to (part of) the SPI flash memory.
Thanks for the reply! Is there anything written up about how exposing LittleFS might look like? 'cause maybe I could get started in that direction from the get-go… Or someone to trade some messages about that topic with…
I don’t know how different our implementation will look, but you might have a gander at ARM’s Mbed LittleFS repo: https://github.com/ARMmbed/littlefs
That code is already all in device-os. I’m just exposing it at user-level.
I didn’t know that. I’m not a system firmware expert.
Any update on that?
- I created a PR 3 months ago: https://github.com/particle-iot/device-os/pull/1706
- there have been exactly zero comments on the PR
- I have updated my fork to the latest develop branch and the changes continue to work fine
- I’m using my code heavily and it’s working great for me
- I don’t see a point updating my PR given that there is no interest and no feedback
- looks like this will be my one and only PR given that no-one at Particle cares to even say “thanks, but sorry, we’re not interested”
Sorry, that slipped through the cracks. There’s now a more lengthy reply in the PR, but there are two issues that prevent merging it:
We don’t want to expose LittleFS specifically, because we might want to switch to a different file system in the future. An abstract file system would be better.
There are data structures allocated from the user firmware wrapper, which causes an incompatibility when user firmware is run on a newer version of device OS. The ABI is intended to allow user firmware compiled for an older version of Device OS to run on a newer version without modification.
Thanks, makes sense. But doesn’t really help in the short-term…