外挂 flash 上使用 lfs
参考的 这里
配置
准备
先按照外挂 flash 的配置配置好
1 2 3 4 5 6 7 8 9 10 11
| RT-Thread Components ---> Device virtual file system [*] Using device virtual file system
RT-Thread online packages > system packages > Littlefs: A high-integrity embedded file system [*] Littlefs: A high-integrity embedded file system (256) disk read size (256) disk write size (4096) disk block size (256) lfs r/w cache size (100) lfs enables wear leveling. 0 is disable. (512) lfs lookahead size
|
代码
w25q128_lfs_demo.c
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| #include <fal.h> #include <dfs_fs.h> #include <rtdbg.h>
#define FS_PARTITION_NAME "filesystem" #define FS_DEVICE_NAME FS_PARTITION_NAME
int w25q128_lfs_demo(void) { fal_init();
struct rt_device* mtd_dev = RT_NULL; mtd_dev = fal_mtd_nor_device_create(FS_PARTITION_NAME); if ( !mtd_dev ){ LOG_E("Can't create a mtd device on '%s' partition.", FS_PARTITION_NAME); } else{ dfs_unmount("/");
if (dfs_mount(FS_DEVICE_NAME, "/", "lfs", 0, 0) == 0){ LOG_I("Filesystem initialized!"); } else{ dfs_mkfs("lfs", FS_DEVICE_NAME);
if (dfs_mount(FS_DEVICE_NAME, "/", "lfs", 0, 0) == 0){ LOG_I("Filesystem initialized!"); } else{ LOG_E("Failed to initialize filesystem!"); } } }
return RT_EOK; }
MSH_CMD_EXPORT(w25q128_lfs_demo, w25q128_lfs_demo);
|
注意
demo 代码里面的dfs_mount和dfs_mkfs的参数,DEVICE_NAME, lfs 和 elm 是不一样的