当前文档版本为 v1.2.0,您可以访问当前页面的 开发中 版本以获取最近可能的更新。

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 演示说明

  1. 程序下载后,在终端工具(SecureCRT)中可以看到如下的 Log 打印信息:

    image

    NVS 演示

  2. 可以看到,程序反复读写 nvs 存储区域,如此重复 400 次后停止。

5 开发说明

  1. 使能 NVS 功能需要开启如下的 Kconfig 选项:

    CONFIG_FLASH=y
    CONFIG_FLASH_PAGE_LAYOUT=y
    CONFIG_NVS=y
    
  2. 使能软件复位接口 sys_reboot() 需要配置 CONFIG_REBOOT=y

  3. nvs 相关接口定义及介绍请参考:zephyr\include\fs\nvs.h

6 RAM/Flash资源使用情况

Memory region         Used Size  Region Size  %age Used
FLASH:       29708 B       384 KB      7.56%
SRAM:        7512 B        64 KB     11.46%