examples/basic/filesystem/README.md
This basic example shows how to use a file system with RIOT in your embedded application.
In particular, this example shows:
A constfs file system is demonstrated with two files for all targets
to demonstrate the file system functionality without an external mass
storage device.
For targets that feature an onboard external mass storage device with a
mount point configured, like the Nordic nRF52840 Development Kit
(see boards/nrf52840dk), the flash chip is automatically added by VFS.
All the RIOT file systems are used through the vfs interface, and on most
platforms files can be accessed transparently with open/close/read/write/...
functions.
With newlib, fopen/fclose/fread/fwrite/... can also be used transparently.
The following commands are available:
vfs format /nvm0: should be called the first time only, it will format the
/nvm0 mountpoint with the configured file systemvfs mount /nvm0: mount the file system on the configured mount point
The constfs file system is mounted automatically on /const when the
application startsvfs umount /nvm0: unmount /nvm0cat <file>: similarly to unix cat unix command, it prints the given
<file> on stdouttee <file> <str>: similarly to tee unix command, it writes <str> in
<file>Besides of these commands, the default vfs commands can be used, for
instance:
vfs df: shows all mountpoints and used/available file system spacevfs ls <path>: list filesnative with constfsfilesystem example application on the native target:make -C examples/filesystem all term
[...]
main(): This is RIOT! (Version: 2018.04-devel-/examples/filesystem)
constfs mounted successfully
constfs predefined partition:> ls /const
ls /const
/hello-world
/hello-riot
total 2 files
> cat /const/hello-world
cat /const/hello-world
Hello World!
> cat /const/hello-riot
cat /const/hello-riot
Hello RIOT!
nrf52840dk with littlefsfilesystem example application of the nrf52840dk targetmake BOARD=nrf52840dk -C examples/filesystem all flash
[...]
main(): This is RIOT! (Version: 2024.04-devel-254-gee0f6d)
constfs mounted successfully
>
vfs format /nvm0 command. After that it has to be mounted
with vfs mount /nvm0. Once the flash is formatted, it will be
automatically mounted during boot.> vfs format /nvm0
> vfs mount /nvm0
> vfs df
Mountpoint Total Used Available Use%
/const 27 B 27 B 0 B 100%
/nvm0 8 MiB 8 KiB 8184 KiB 0%
tee and printed with cat.> ls /nvm0
./
../
total 0 files
>
> tee /nvm0/testfile "This is written to the flash!"
> cat /nvm0/testfile
This is written to the flash!>
> vfs ls /nvm0
./
../
testfile 30 B
total 1 files