LittleFs NOR 示例

源码路径:example/storage/littlefs

支持的平台

  • sf32lb52-lcd_n16r8

概述

LittleFS 是一个专为嵌入式系统设计的轻量级、掉电安全的文件系统,特别适用于 NOR Flash等非易失性存储设备。

使用指南

本示例演示LittleFs的文件系统功能,在UART console可以调用常用的文件命令,如:

df               - Disk free
mountfs          - Mount device to file system
mkfs             - Format disk with file system
mkdir            - Create the DIRECTORY.
pwd              - Print the name of the current working directory.
cd               - Change the shell working directory.
rm               - Remove(unlink) the FILE(s).
cat              - Concatenate FILE(s)
mv               - Rename SOURCE to DEST.
cp               - Copy SOURCE to DEST.
ls               - List information about the FILEs.

文件系统打包

默认的编译脚本没有下载文件系统分区镜像文件,因此第一次运行程序如果mount失败会自动格式化分区,具体实现见main.c的函数mnt_init。SDK还提供了打包指定目录下的文件并生成文件系统镜像文件的功能,可以放开SConstruct里的如下代码,这段代码的作用是在编译时打包disk目录下的文件,在build目录下生成fs_root.bin文件,如果ptab.json的分区表中定义了img属性为fs_root的分区,下载脚本就会同时下载该bin文件。

# fs_bin=FileSystemBuild( "../disk", env)
# AddCustomImg("fs_root",bin=[fs_bin])

例程的使用说明

硬件需求

1、运行例程的前提,需要拥有一块支持该例程的开发板 2、一根具备数据传输能力的USB数据线

编译和烧录

切换到例程project目录,运行scons命令执行编译:

> scons --board=sf32lb52-lcd_n16r8 -j32

切换到例程project/build_xx目录,运行uart_download.bat,按提示选择端口即可进行下载:

$ ./uart_download.bat

     Uart Download

please input the serial port num:5

关于编译、下载的详细步骤,请参考快速上手的相关介绍。

例程的预期结果

下面结果展示了例程在开发板运行起来后的log。如果看不到这些log,就说明例程没能按预期运行成功,需要进行原因排查。

mount fs on flash root success//说明文件系统挂载成功

1、串口发送ls查看根目录下的文件

2、输入mkdir test2,创建test2文件夹(目录)

3、再次输入ls,看test2文件夹(目录)是否创建成功

4、输入pwd查看当前工作路径 alt text

异常诊断

如果log未能出现预期的log和现象,可以从已下几个方面进行故障排查:

  • 硬件连接是否正常

  • 检查USB线是否具备数据传输功能

  • 上面的menuconfig是否配置对了