LittleFS Flash File System

From Embedded Workshop
Jump to navigation Jump to search

LittleFS Flash File System

I recently learned about a compact embedded Flash File System known as SpiFFS.
While researching SpiFFS, I soon learned of another compact embedded Flash File System, LittleFS.
LittleFS appears to be even more compact and has additional security in that it creates and maintains a CRC for each file, and verifies the CRC each time the file is read.

  • Compact
  • Power-loss resilience
  • Dynamic wear leveling
  • Bounded RAM/ROM
  • Maintains revision count and CRC (security features)

Let's put this file system onto a STM32 board (I'm using a NUCLEO-F103RB), and check it out.

Cloned littleFS to my local machine.
Using Winbond W25Q128FVSG SPI Flash module from Ebay: https://www.ebay.com/itm/264290947181
If the link doesn't work, just search Ebay for "W25Q128 Module".  I bought two for $8.26 (free shipping).
Downloaded the PDF for the W25Q128FVSG:
https://www.winbond.com/resource-files/w25q128fv%20rev.m%2005132016%20kms.pdf
The W25Q128FVSG uses 2.7V to 3.6V for operation.  Here's a diagram for the the chip's pins and signals:


The NUCLEO-F103RB powers the STM32F103RB with 3.3V.  (The chip is capable of running with 2.0V to 3.6V.)

Let's look at this "W25Q128 Module", and the SPI interface needed for connection:




Reference Information:

https://uimeter.com/2018-04-12-Try-LittleFS-on-STM32-and-SPI-Flash/
https://github.com/ARMmbed/littlefs
https://github.com/ARMmbed/littlefs/blob/master/README.md