文件系统

FAQ1 文件系统挂载(mount)失败是什么原因?

可以根据错误打印确认失败原因,常见错误:

  1. 打印There is no space to mount this file system :挂载的文件系统数量超出限制(DFS_FILESYSTEMS_MAX)。
    DFS_FILESYSTEMS_MAX可在menuconfig中配置,用于定义系统支持的最大文件系统挂载数量,需要根据实际文件系统分区数量配置。
    当前配置的文件系统数量可在FLASH分区文件中查看,例如, 如下有6个文件系统分区, 则DFS_FILESYSTEMS_MAX 需要 >= (6 + 1) (+1是因为dev默认占一个enry):

  2. 打印There is no space to register this file system :挂载的文件系统类型超出限制(DFS_FILESYSTEM_TYPES_MAX)。 DFS_FILESYSTEM_TYPES_MAX可在menuconfig中配置,用于定义系统支持的最大文件系统类型(elmlfsram等)数量:


FAQ2 新增或调整文件系统分区后,需要同步检查哪些配置?

可以按下面顺序排查,避免只改了分区表但运行时挂载失败:

  1. 在 FLASH 分区表的 FLASH_MAP sheet 中增加/调整分区,确认 PARTITION_TYPE 选择为目标文件系统类型,例如 FS_FATFS_LFS

  2. 确认分区 SIZEOFFSET 没有重叠,并满足对齐要求;

  3. 如果该分区需要放资源,在 FS_RES_PATH sheet 中确认资源名、分区名和子路径是否对应;

  4. menuconfig 中打开对应文件系统能力,例如 FAT 需要 RT_USING_DFSRT_USING_ELMFAT,LittleFS 需要打开对应 LFS 配置;

  5. 如果挂载数量或文件系统类型变多,同步调大 DFS_FILESYSTEMS_MAXDFS_FILESYSTEM_TYPES_MAX

分区表字段说明请参考 FLASH_MAP说明FS_RES_PATH说明;FAT 配置请参考 FAT文件系统配置,LittleFS 适用场景请参考 LittleFS 适用场景与限制