littlefs
uf2
Our great sponsors
littlefs | uf2 | |
---|---|---|
29 | 12 | |
4,764 | 773 | |
3.4% | 3.2% | |
8.2 | 4.4 | |
8 days ago | 8 days ago | |
C | JavaScript | |
BSD 3-clause "New" or "Revised" License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
littlefs
- LittleFS Design (CObW) – Combining advantages of COW and log-structures
- LittleFS Design
-
Littlefs – a little fail-safe filesystem designed for microcontrollers
Pointers correctly round-trip through unrelated pointer types, provided the alignment for both types is compatible.
At least one bit does look a bit questionable: lfs_mlist is treated as the common initial sequence of lfs_dir and lfs_file, even though it isn't, and common initial sequences only apply to union fields anyway. Example cast of struct dir * to struct lfs_mlist * (probably valid of itself, assuming the alignment is compatible): https://github.com/littlefs-project/littlefs/blob/c733d9ec57... then use struct dir as if it were actually a struct lfs_mlist: https://github.com/littlefs-project/littlefs/blob/c733d9ec57...
(There's other occurrences of the same kind of thing.)
Strictly speaking, I think this might be unfixable without a bunch of work, but so much stuff does this kind of operation that any compiler that doesn't do what you expect will have been fixed by now. (Assuming you're not one of those people who is going to pop up and tell us with a straight face that what we should expect is for the compiler to do absolutely anything - except, perhaps, for having it generate correct code, which would be defective behaviour that should be eliminated.) Maybe improve the odds by using lfs_mlist as the common initial sequence of both structs, and fingers crossed that the compiler considers the union rules to apply to this case too. Or compile with -fno-strict-aliasing.
-
I made a tachometer/hour meter for my outboard engine using the PIO
Also, it looks like you're writing to the flash every second the engine is running. Do you have an idea of what the endurance of that might be? I'm not too familiar with this but supposedly the flash on the Pico is good for at least 100K program/erase cycles and Micropython uses LittleFS on RP2040 which does wear leveling. I looked for more official info and the rp2 port code backs that up with a note: "the flash requires the programming size to be aligned to 256 bytes". And the littlefs readme does say it does wear leveling and other good stuff.
- GitHub - littlefs-project/littlefs: A little fail-safe filesystem designed for microcontrollers
-
nRF Connect SDK file writes gives -22 error after many files
Maybe first go and localize which assumption has been voided, i.e. what of the many places in littlefs that raise this error actually raise it? And... erm... what littlefs are you talking about? https://github.com/littlefs-project/littlefs doesn't seem to have a fs_close() function...
- SPI Flash file system vs writing my own fifo?
-
Small MicroSD module for project
Rather easy to add LittleFS for file storage onto the NOR flash. https://github.com/littlefs-project/littlefs
- CircuitPython – The easiest way to program microcontrollers
uf2
-
Running C Code on Feather RP2040
And the UF2 reference from Microsoft: https://github.com/microsoft/uf2/blob/master/README.md
-
Problems flashing custom firmware to the nice!nano
I'm compiling a very stripped down example from https://github.com/embassy-rs/nrf-softdevice that should just loop forever and turn an LED on and off. I convert from a binary to the uf2 using this script linked in the adafruit bootloader repository. The command I run is uf2conv.py -c -b 0x26000 -f 0xADA52840. When running file on my binary the output is UF2 firmware image, family Nordic NRF52840, address 0x026000, 42 total blocks, exactly the same as on the ZMK image that works without a problem.
-
RP2040. Willing to compensate for a solution.
How can I (someone with no electronics or programming experience) configure my own layout using QMK Config and then compile it into a .uf2 file that works on the Sea-Picro with my Ferris Sweep?
-
Tell HN: macOS Ventura broke the entire Raspberry Pi Pico ecosystem
In case you haven't seen the UF2 file format, it's specifically designed to be robust w.r.t ensuring that the content makes it to the target intact despite common OS quirks.
https://github.com/microsoft/uf2
- Data is divided into 512 byte blocks, which lines up with the mass storage transfer size.
- UF2 Max File Size
-
RP2040 USB Bootloader?
The bootloader uses the UF2 protocol, which is cleverly designed to allow "drag and drop" flashing over USB mass storage.
-
STM32F4 Remote Firmware Update Executable Script Suggestions/Help/Guidance
I'd strongly recommend using an application-specific USB bootloader if possible. The UF2 firmware update protocol is particularly slick, as it allows users to upload new firmware over USB mass storage and requires no staging space; if using this is an option, I'd go for it.
-
Designing end products with option to update firmware via USB cable
The mentioned UF2 standard (UF2 - mdf5 checksum) actually offers the option to specifiy an MD5 checksum. Which is heavier on resources.
- Uf2: USB Flashing Format
What are some alternatives?
spiffs - Wear-leveled SPI flash file system for embedded devices
webdfu - WebUSB Device Firmware Upgrade example
lvgl - Embedded graphics library to create beautiful UIs for any MCU, MPU and display type.
pico-bootrom
zephyr - Primary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.
uf2-samdx1 - USB Mass Storage bootloader (based on UF2) for SAMD21 and SAMD51
lwext4 - ext2/ext3/ext4 filesystem library for microcontrollers
McAirpos - MakeCode Arcade games in RetroPie, Recalbox 7/8 and Batocera, running natively as ELF executables on Raspberry Pi OS/Linux ARM with 1-2 gamepads
STORfs - Open source file system for small embedded systems
vial-qmk - QMK fork with Vial-specific features.
btrfs - Haskell bindings to the btrfs API
Adafruit_nRF52_Bootloader - USB-enabled bootloaders for the nRF52 BLE SoC chips