Subsys: Non-Volatile Storage¶
1 功能概述¶
Zephyr 提供了一个名为 Non-Volatile Storage (NVS) 的数据存储机制,本例程演示将 Flash 的 Storage 分区初始化为 NVS 功能,并向其中写入和读取不同类型的数据后触发软件复位,重复 400 次后停止。
2 环境要求¶
Board: pan108xxa1_evb / pan108xxa3_evb / pan108xxb1_evb / pan108xxb5_evb
UART: 将 P00 与 TX0 引脚接在一起,P01 与 RX0 引脚接在一起,在 PC 上打开终端工具(如 SecureCRT),波特率设置为 921600
3 编译和烧录¶
例程位置:zephyr\samples_panchip\subsys\nvs
使用 ZAL 工具可以对其进行编译、烧录、打开 VS Code 调试等操作。关于 ZAL 工具的详细介绍请参考:Zephyr APP Launcher 工具介绍。
4 演示说明¶
程序下载后,在终端工具(SecureCRT)中可以看到如下的 Log 打印信息:
可以看到,程序反复读写 nvs 存储区域,如此重复 400 次后停止。
5 开发说明¶
使能 NVS 功能需要开启如下的 Kconfig 选项:
CONFIG_FLASH=y CONFIG_FLASH_PAGE_LAYOUT=y CONFIG_NVS=y
使能软件复位接口
sys_reboot()
需要配置CONFIG_REBOOT=y
nvs 相关接口定义及介绍请参考:
zephyr\include\fs\nvs.h
6 RAM/Flash资源使用情况¶
Memory region Used Size Region Size %age Used
FLASH: 29664 B 384 KB 7.54%
SRAM: 7512 B 64 KB 11.46%