HoloCubic_AIO配置持久化:SPIFFS到LittleFS参数存储方案完整演进指南
HoloCubic_AIO配置持久化SPIFFS到LittleFS参数存储方案完整演进指南【免费下载链接】HoloCubic_AIOHoloCubic超多功能AIO固件 基于esp32-arduino的天气时钟、相册、视频播放、桌面投屏、web服务、bilibili粉丝等项目地址: https://gitcode.com/GitHub_Trending/ho/HoloCubic_AIOHoloCubic_AIO 是一款超多功能的 ESP32 一机多用AIO固件集天气时钟、相册、视频播放、桌面投屏、Web 服务、bilibili 粉丝动态于一身。本文将带你完整梳理它的配置持久化演进从早期 Preferences/NVS 键值存储到 SPIFFS 分区文件存储再到 LittleFS 的平滑升级路线新手也能看懂WiFi 密码、屏幕亮度这些设置为什么重启后不会丢。为什么需要配置持久化HoloCubic 小电视有 3 组 WiFi 账密、屏幕亮度、旋转方向、开机自启 APP、MPU6050 陀螺仪校准值等参数见 common.h 中的SysUtilConfig结构体。这些参数如果只放在内存里一断电就全丢了。固件把参数落到 ESP32 的 Flash 存储区开机时读回这就是配置持久化。整个演进分三步阶段一Preferences / NVS 键值存储最早的方案使用 ESP32 内置的Preferences库底层是 NVS 分区按命名空间存取参数旧实现保留在 config.cpp 与 config.h 中命名空间存放内容sys亮度、旋转、WiFi 账密zhixin天气城市、语言、API Keytianqi天启 API 凭证otherbilibili UIDMPU_Config陀螺仪 6 轴校准值这套方案简单直接但参数以零散键值形式分散在 NVS 里无法整体导出、无法用文件管理器直接查看每个 APP 也难以复用统一接口。因此在 config.h 中定义了NEW_FLASH_FS宏将旧代码标记为仅留作参考。阶段二SPIFFS 分区 统一文件存储当前方案新方案的核心是一个统一的FlashFS封装类定义在 flash_fs.h实现在 flash_fs.cpp。全局对象g_flashCfg在 common.cpp 中创建注释写着flash 中的文件系统替代原先的 Preferences。分区层面partitions-no-ota.csv 划出了一块 128KB0x20000的spiffs数据分区并通过 platformio.ini 的board_build.partitions生效。开机时在主程序中挂载挂载失败会打印SPIFFS Mount Failed// HoloCubic_AIO.cpp if (!SPIFFS.begin(true)) { Serial.println(SPIFFS Mount Failed); return; }见 HoloCubic_AIO.cpp。文件格式每个模块一个.cfg文本文件参数按行存储第 N 行就是第 N 个参数例如系统级参数存在/sys.cfgWiFi1名称 WiFi1密码 WiFi2名称 ... 80 ← 屏幕亮度 4 ← 旋转方向系统核心参数的读写逻辑在 app_controller_config.cpp首次读取为空时写入默认值之后用 flash_fs.cpp 中的analyseParam函数按换行符切分还原。这套设计的妙处是各 APP 各管各的天气 APP 写/weather.cfg、bilibili APP 写自己的配置文件如 weather.cpp、bilibili.cpp文件命名以 APP 名开头、.cfg结尾的约定见 app_controller_config.cpp 注释。官方还留了个示范 APP可以照着写自己的配置存取代码在 example.cpp。阶段三向 LittleFS 平滑演进仓库中已内置 LittleFS 库LittleFS.h 提供begin(formatOnFail, basePath, ...)接口flash_fs.cpp 中也已预置FORMAT_LITTLEFS_IF_FAILED宏——只要把SPIFFS.begin换成LittleFS.begin上层readFile/writeFile接口完全不用改。为什么值得升级两者对比维度SPIFFSLittleFS掉电安全较弱频繁擦写可能损坏日志结构写入原子化磨损均衡一般内置自动均衡目录支持模拟目录原生多级目录迁移成本—低封装接口不变对天天存天气图标、壁纸、mjpeg 图帧的小电视来说LittleFS 的稳定性是明显的加分项。如何快速上手刷固件与改配置用 PC 端工具刷入固件工具界面支持文件管理与图片转换见 CubicAIO_Tool.py天气图标等素材放入 SD 卡的weather/、image/等目录对照 放置到内存卡/README.md所有设备参数都在设置 APP 里改改完自动写入/sys.cfg重启不丢。小结演进主线Preferences/NVS零散键值→ SPIFFS统一.cfg文件→ LittleFS更稳的底层上层接口始终未变关键文件config.h新旧方案开关、flash_fs.cpp统一存储封装、app_controller_config.cpp系统参数读写、partitions-no-ota.csv分区布局新手心得做 ESP32 参数持久化时一个 APP 一个.cfg、按行存参是兼顾简单与可扩展的实用套路。【免费下载链接】HoloCubic_AIOHoloCubic超多功能AIO固件 基于esp32-arduino的天气时钟、相册、视频播放、桌面投屏、web服务、bilibili粉丝等项目地址: https://gitcode.com/GitHub_Trending/ho/HoloCubic_AIO创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联
返回资讯列表 →