VR|rtthread利用片上flash挂载littlefs文件系统并操作

VR|rtthread利用片上flash挂载littlefs文件系统并操作

文章图片

VR|rtthread利用片上flash挂载littlefs文件系统并操作

文章图片

VR|rtthread利用片上flash挂载littlefs文件系统并操作

文章图片

VR|rtthread利用片上flash挂载littlefs文件系统并操作

文章图片

VR|rtthread利用片上flash挂载littlefs文件系统并操作


littlefs是用于嵌入式的文件系统 。 特点是对资源消耗小 , 可用于小容量的flash , 小沃最新产品利用片上flash挖出了一部分空间实现片上flash的littlefs挂在并编辑 。
现在就讲讲如何实现的 。
1、启动片上flash的使用
方法为通过menuconfig启动on-chip FLASH 。
【VR|rtthread利用片上flash挂载littlefs文件系统并操作】Hardware Drivers Config -> On-chip Peripheral Drivers -> Enable on-chip FLASH

2、下载线上的fal库与littlefs库
方法为通过menuconfig下载并启动fal库 。
RT-Thread online packages -> system packages -> fal -> version -> v0.5.0
RT-Thread online packages -> system packages -> Littlefs -> Version -> v2.3.0

3、关闭fal库不必要的log
方法为通过menuconfig关闭fal库的log 。
RT-Thread online packages -> system packages -> fal -> Enable debug log output

4、修改littlefs库的enable wear leveling , 默认为-1
方法为通过menuconfig修改littlefs库的enable wear leveling值 , 该值必须修改 , 因为flash有复写数量限制 。
RT-Thread online packages -> system packages -> Littlefs -> lfs enable wear leveling

5、启动nor flash的mtd驱动
方法为通过menuconfig添加Nor flash的mtd驱动
RT-Thread Components -> Device Drivers -> Using MTD Nor Flash device drivers

6、启动文件系统管理
方法为通过menuconfig启动 , 同时启动romfs , 用于根文件系统 。 根文件系统中创建一个storage的文件夹 , 方便用于mount littlefs 。
RT-Thread Components -> Device Device virtual file system -> Enable ReadOnly file system on flash

7、修改分区大小
完成修改后 , 保存配置 , 运行pkgs --update , 这样在bsp目录的board/ports下会创建一个fal_cfg.h文件 , 分区表大小在这里 。

8、最后main文件需要先mount romfs , 然后再mount littlefs
注意 , 这里几个storage要统一 , 第6步分区叫storage , 那么fal_mtd_nor_device_create、dfs_mount、dfs_mkfs的参数都必须是storage 。
dfs_mount的第二个参数必须是romfs中存在的文件夹 。

    相关经验推荐