FatFs NAND 示例

使用指南

本示例演示FatFs的文件系统功能,文件系统采用FAT格式,在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 --board=<board_name> -j8, 其中board_name为板子名称,例如编译eh-lb561板子,完整命令为scons --board=eh-lb561 -j8编译生成的image文件存放在HCPU的build_<board_name>目录下,common工程的用法参考通<<用工程构建方法>>

  • 下载方法: 进入project目录执行命令build_<board_name>_hcpu\download.bat(uart_download.bat) ,其中board_name为板子名称,后面download前面带了uart是通过串口进行程序烧入,不带是进行jlink烧入(这个得根本板子型号是否支持jlink烧入),例如编译eh-lb561板子,完整命令为build_en-lb561_hcpu\download.bat

例程输出结果展示

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

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

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

2、在输入mkdir test1,创建test1文件夹(目录)。

3、再次输入cd+目录名,到XXX目录下,输入pwd进行查看当前工作路径是否在cd到的目录下 。

4、可在该工作目录下再次进行创建mkdir test2,ls查看该目录下是否进行创建成功。 alt text

故障排查

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

  • 硬件连接是否正常

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

  • 上面的menu是否配置对了(特别板子flash型号)