背景
littlefs是arm面向嵌入式设备推出的一款掉电安全的小型文件系统,具有抗掉电,动态磨损均衡,RAM/ROM需求少等特点,具体介绍可见 https://github.com/ARMmbed/littlefs
作为一款在嵌入式设备上使用的文件系统,出问题时,一般是需要将数据dump出来进行分析的。此时就需要PC端的调试工具了。
littlefs-fuse简介
这个项目提供了一个littlefs的FUSE封装,也就是你可以借助此项目,在PC上直接将littlefs镜像挂载起来,并正常进行一些文件系统的操作。
源码位于:https://github.com/ARMmbed/littlefs-fuse
结构
我们直接下载下来
$ git clone https://github.com/ARMmbed/littlefs-fuse.git
$ cd littlefs-fuse
先看下结构
$ tree -L 2
.
├── lfs_fuse_bd.c
├── lfs_fuse_bd.h
├── lfs_fuse.c
├── LICENSE.md
├── littlefs
│ ├── DESIGN.md
│ ├── emubd
│ ├── lfs.c
│ ├── lfs.h
│ ├── lfs_util.c
│ ├── lfs_util.h
│ ├── LICENSE.md
│ ├── Makefile
│ ├── README.md
│ ├── scripts
│ ├── SPEC.md
│ └── tests
├── Makefile
└── README.md
外层是封装,里面则直接包含了littlefs文件夹。当我们需要特定版本的littlefs,例如使用跟设备上同一版本的littlefs时,只需要替换掉里层的这个littlefs即可,非常方便。
编译
根据README,项目依赖 FUSE version 2.6及以上的版本,可以使用如下命令查看版本
fusermount -V
另外还需要安装下 libfuse-dev:
sudo apt-get install libfuse-dev
依赖项满足之后,直接make即可生成lfs应用程序
make
生成设备并挂载使用
首先需要造一个块设备出来
sudo chmod a+rw /dev/loop0 # make loop device user accessible
dd if=/dev/zero of=image bs=512 count=2048 # create a 1MB image
losetup /dev/loop0 image # attach the lo