1.. zephyr:code-sample:: settings 2 :name: Settings API 3 :relevant-api: settings settings_rt settings_name_proc 4 5 Load and save configuration values using the settings API. 6 7Overview 8******** 9 10This is a simple application demonstrating use of the settings runtime 11configuration module. In this application some configuration values are loaded 12from persistent storage and exported to persistent storage using different 13settings method. The example shows how to implement module handlers, how to 14register them. 15 16Requirements 17************ 18 19* A board with settings support, for instance: nrf52840dk/nrf52840 20* Or qemu_x86 target 21* A nvs_sector_size <= 0xFFFF 22 23Building and Running 24******************** 25 26This sample can be found under :zephyr_file:`samples/subsys/settings` in 27the Zephyr tree. 28 29The sample can be built for several platforms, the following commands build the 30application for the qemu_x86. 31 32.. zephyr-app-commands:: 33 :zephyr-app: samples/subsys/settings 34 :host-os: unix 35 :board: qemu_x86 36 :goals: run 37 :compact: 38 39After running the image to the board the output on the console shows the 40settings manipulation messages. 41 42Sample Output 43============= 44 45.. code-block:: console 46 47 ***** Booting Zephyr OS build v2.1.0-rc1-123-g41091eb1d5e0 ***** 48 49 *** Settings usage example *** 50 51 settings subsys initialization: OK. 52 subtree <alpha> handler registered: OK 53 subtree <alpha/beta> has static handler 54 55 ############## 56 # iteration 0 57 ############## 58 59 ================================================= 60 basic load and save using registered handlers 61 62 load all key-value pairs using registered handlers 63 loading all settings under <beta> handler is done 64 loading all settings under <alpha> handler is done 65 66 save <alpha/beta/voltage> key directly: OK. 67 68 load <alpha/beta> key-value pairs using registered handlers 69 <alpha/beta/voltage> = -3025 70 loading all settings under <beta> handler is done 71 72 save all key-value pairs using registered handlers 73 export keys under <beta> handler 74 export keys under <alpha> handler 75 76 load all key-value pairs using registered handlers 77 export keys under <beta> handler 78 export keys under <alpha> handler 79 80 ================================================= 81 loading subtree to destination provided by the caller 82 83 direct load: <alpha/length/2> 84 direct load: <alpha/length/1> 85 direct load: <alpha/length> 86 direct.length = 100 87 direct.length_1 = 41 88 direct.length_2 = 59 89 90 ================================================= 91 Delete a key-value pair 92 93 immediate load: OK. 94 <alpha/length> value exist in the storage 95 delete <alpha/length>: OK. 96 Can't to load the <alpha/length> value as expected 97 98 ================================================= 99 Service a key-value pair without dedicated handlers 100 101 <gamma> = 0 (default) 102 save <gamma> key directly: OK. 103 ... 104