Access to littlefs?

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 :stuck_out_tongue_winking_eye:

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?

Update:

  • 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.

1 Like

Thanks, makes sense. But doesn’t really help in the short-term…