Hacker News new | past | comments | ask | show | jobs | submit login

i am very impressed that, although it's designed for the mbed ecosystem, this code is obviously written so that it can be used in any embedded project (especially those that use a single, statically-compiled binary for the entire firmware) with virtually no changes. i could have this working on my project's bespoke hardware in a couple hours.

* zero dependencies, no assumptions about libc, doesn't use timers or heap, fully synchronous, and it's passive when you're not interacting with it.

* variables, constants, and functions are well-prefixed (without being too verbose) to avoid collisions.

* BSD license is friendly for single-binary firmwares.

* the Makefile doesn't assume anything, it just outputs a .a file which you can link however you want.

* the Makefile is simple and doesn't require cmake or autotools. it's easy to point it at your cross-compile toolchain.

it has other hallmarks of a well-planned and well-maintained project too:

* the readme shows exactly why i might want this (or might not), and how to use it. the separate design doc shows exactly how it works.

* functionality is cleanly separated by file.

* consistent style (could specify which style guide they're using, though).

* the tests serve their usual purpose but also serve as examples. they're well encapsulated and the code was obviously written to be tested.

these authors have absolutely nailed everything i strive for at my embedded firmware development job.




I had the same reaction. Really impressive and well documented. I will surely do some tests.

> variables, constants, and functions are well-prefixed (without being too verbose) to avoid collisions.

Unfortunately it has the same name (Little File System, LFS) and the same function prototypes (lfs_*) of a filesystem for NOR/NAND based systems I did like 10 years ago and still in use, so it will be at least confusing.

As a matter of fact, I guess every embedded technology company using NAND/NOR/whatever memories have their own version of a LFS.


You're referring to LFS as in LogFS?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: