WS63 LittleFS 挂载失败与分区 ID 排查

一、问题背景

WS63 Combo Demo 会将 iot_connect 的配置与认证初始化数据保存到 LittleFS。若底层文件系统未正确挂载,Demo 即使 BLE 已广播,也可能在安全服务启动或创建配置目录时失败,典型日志为:

lfs_mount failed, ret = ...

img

这个现象不能直接等同于“/iotc 路径写错”。应先确认 LittleFS 使用的 Flash 分区是否有效,再确认配置路径是否满足平台目录约束。

二、关键代码与配置入口

LittleFS 从配置项 CONFIG_LFS_PARTITION_ID 取分区编号,再调用 uapi_partition_get_info() 查询分区信息。相关代码:

device/soc/hisilicon/ws63v100/sdk/middleware/chips/ws63/littlefs/littlefs_adapt.c

关键逻辑为:

img

若查询失败、分区大小为 0、地址或大小不是 4 KiB 对齐,LittleFS 无法继续工作;随后在 fs_adapt_mount() 中调用 lfs_mount() 时会打印 lfs_mount failed

当前 WS63 LiteOS 应用配置入口:

device/soc/hisilicon/ws63v100/sdk/build/config/target_config/ws63/menuconfig/acrore/ws63_liteos_app.config

有效配置应为:

img

CONFIG_LFS_PARTITION_ID=48

编译后也可在以下生成文件中确认最终生效值:

device/soc/hisilicon/ws63v100/sdk/output/ws63/acore/ws63-liteos-app/mconfig.h

img

三、排查步骤

3.1 先确认现象在底层挂载阶段

串口中搜索:

rg -n 'lfs_mount failed|config provision error|/iotc' <串口日志文件>

若存在 lfs_mount failed,应先排查分区与烧录镜像,而不是先修改 iot_connect 业务代码。

3.2 确认“源码配置”和“编译结果”一致

rg -n 'CONFIG_LFS_PARTITION_ID' \
  device/soc/hisilicon/ws63v100/sdk/build/config/target_config/ws63/menuconfig/acrore/ws63_liteos_app.config \
  device/soc/hisilicon/ws63v100/sdk/output/ws63/acore/ws63-liteos-app/mconfig.h

两处都应显示 48。只改源码配置却没有重新生成 SDK 产物,或选择了另一份 menuconfig 文件,都可能造成“编辑器里看似正确、实际镜像仍错误”。

3.3 确认当前产品和镜像

在根目录执行:

hb env
hb build --ccache

应确认产品为 nearlink_dk_3863,并重新烧录本次归档的镜像。烧录旧镜像会使排查结论失效。

3.4 再检查配置目录

Demo 中通过以下选项设置配置数据目录:

IOTC_OH_OPTION_SDK_CONFIG_PATH

当前 WS63 使用 /iotc。该平台的 LittleFS 目录能力有限,因此应避免直接沿用标准系统多层路径(如 /data/app/iotc)。但是路径层级问题与分区不可用是两类问题:前者通常发生在建目录或建文件,后者发生在文件系统挂载阶段。

四、如何判断问题已经解决

满足下面三项才认为存储前置条件恢复:

  1. 串口不再出现 lfs_mount failed
  2. Demo 后续不会因配置目录或认证初始化存储失败直接退出;
  3. 重新烧录同一镜像后现象仍稳定,不是一次偶然的 Flash 状态变化。

img

五、经验总结

  • 分区 ID 的正确性要以最终生成的 mconfig.h 为准,而不只看 menuconfig 源文件。
  • lfs_mount failed 的打印位置在 littlefs_adapt.cfs_adapt_mount(),可从这里向前追分区查询与对齐检查。
  • 本文确认的是 WS63 当前 LiteOS 应用使用分区 ID 48 的配置事实;不同 SDK 目标或 XTS 配置可能拥有不同分区编号,不能机械复制。
相关文件下载
ws63_20260806_143350_littlefs_mount_failed_config_provision_error.txt
51.21 KB
下载
ws63_20260806_203448_preset_provision_startup_ok_ble_adv_ok.txt
25.18 KB
下载
Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐