103 lines
2.8 KiB
ReStructuredText
103 lines
2.8 KiB
ReStructuredText
.. zephyr:code-sample:: settings
|
|
:name: Settings API
|
|
:relevant-api: settings settings_rt settings_name_proc
|
|
|
|
Load and save configuration values using the settings API.
|
|
|
|
Overview
|
|
********
|
|
|
|
This is a simple application demonstrating use of the settings runtime
|
|
configuration module. In this application some configuration values are loaded
|
|
from persistent storage and exported to persistent storage using different
|
|
settings method. The example shows how to implement module handlers, how to
|
|
register them.
|
|
|
|
Requirements
|
|
************
|
|
|
|
* A board with settings support, for instance: nrf52840dk/nrf52840
|
|
* Or qemu_x86 target
|
|
|
|
Building and Running
|
|
********************
|
|
|
|
This sample can be found under :zephyr_file:`samples/subsys/settings` in
|
|
the Zephyr tree.
|
|
|
|
The sample can be built for several platforms, the following commands build the
|
|
application for the qemu_x86.
|
|
|
|
.. zephyr-app-commands::
|
|
:zephyr-app: samples/subsys/settings
|
|
:host-os: unix
|
|
:board: qemu_x86
|
|
:goals: run
|
|
:compact:
|
|
|
|
After running the image to the board the output on the console shows the
|
|
settings manipulation messages.
|
|
|
|
Sample Output
|
|
=============
|
|
|
|
.. code-block:: console
|
|
|
|
***** Booting Zephyr OS build v2.1.0-rc1-123-g41091eb1d5e0 *****
|
|
|
|
*** Settings usage example ***
|
|
|
|
settings subsys initialization: OK.
|
|
subtree <alpha> handler registered: OK
|
|
subtree <alpha/beta> has static handler
|
|
|
|
##############
|
|
# iteration 0
|
|
##############
|
|
|
|
=================================================
|
|
basic load and save using registered handlers
|
|
|
|
load all key-value pairs using registered handlers
|
|
loading all settings under <beta> handler is done
|
|
loading all settings under <alpha> handler is done
|
|
|
|
save <alpha/beta/voltage> key directly: OK.
|
|
|
|
load <alpha/beta> key-value pairs using registered handlers
|
|
<alpha/beta/voltage> = -3025
|
|
loading all settings under <beta> handler is done
|
|
|
|
save all key-value pairs using registered handlers
|
|
export keys under <beta> handler
|
|
export keys under <alpha> handler
|
|
|
|
load all key-value pairs using registered handlers
|
|
export keys under <beta> handler
|
|
export keys under <alpha> handler
|
|
|
|
=================================================
|
|
loading subtree to destination provided by the caller
|
|
|
|
direct load: <alpha/length/2>
|
|
direct load: <alpha/length/1>
|
|
direct load: <alpha/length>
|
|
direct.length = 100
|
|
direct.length_1 = 41
|
|
direct.length_2 = 59
|
|
|
|
=================================================
|
|
Delete a key-value pair
|
|
|
|
immediate load: OK.
|
|
<alpha/length> value exist in the storage
|
|
delete <alpha/length>: OK.
|
|
Can't to load the <alpha/length> value as expected
|
|
|
|
=================================================
|
|
Service a key-value pair without dedicated handlers
|
|
|
|
<gamma> = 0 (default)
|
|
save <gamma> key directly: OK.
|
|
...
|