Select one of the symbols to view example projects that use it.
 
Outline
#define NVS_CONSTANTS_H
#include "spi_flash_mmap.h"
#define NVS_CONST_PSB_INIT
#define NVS_CONST_PSB_FULL
#define NVS_CONST_PSB_FREEING
#define NVS_CONST_PSB_CORRUPT
#define NVS_CONST_ESB_WRITTEN
#define NVS_CONST_ESB_ERASED
#define NVS_CONST_PAGE_SIZE
#define NVS_CONST_ENTRY_SIZE
#define NVS_CONST_ENTRY_COUNT
#define NVS_CONST_INVALID_ENTRY
#define NVS_CONST_CHUNK_MAX_SIZE
#define NVS_CONST_STR_LEN_MAX_SIZE
#define NVS_CONST_NS_INDEX
#define NVS_CONST_NS_ANY
#define NVS_CONST_NVS_VERSION
#define NVS_CONST_PAGE_STATE_UNINITIALIZED
#define NVS_CONST_PAGE_STATE_ACTIVE
#define NVS_CONST_PAGE_STATE_FULL
#define NVS_CONST_PAGE_STATE_FREEING
#define NVS_CONST_PAGE_STATE_CORRUPT
#define NVS_CONST_PAGE_STATE_INVALID
#define NVS_CONST_ENTRY_STATE_EMPTY
#define NVS_CONST_ENTRY_STATE_WRITTEN
#define NVS_CONST_ENTRY_STATE_ERASED
#define NVS_CONST_ENTRY_STATE_ILLEGAL
#define NVS_CONST_ENTRY_STATE_INVALID
#define NVS_CONST_PAGE_HEADER_OFFSET
#define NVS_CONST_PAGE_ENTRY_TABLE_OFFSET
#define NVS_CONST_PAGE_ENTRY_DATA_OFFSET
Files
loading...
SourceVuESP-IDF Framework and ExamplesESP-IDFcomponents/nvs_flash/private_include/nvs_constants.h
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/* * SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 *//* ... */ #ifndef NVS_CONSTANTS_H #define NVS_CONSTANTS_H #include "spi_flash_mmap.h" // for SPI_FLASH_SEC_SIZE // constants for the NVS to be used in the regular as well as bootloader implementations #define NVS_CONST_PSB_INIT 0x1 #define NVS_CONST_PSB_FULL 0x2 #define NVS_CONST_PSB_FREEING 0x4 #define NVS_CONST_PSB_CORRUPT 0x8 #define NVS_CONST_ESB_WRITTEN 0x1 #define NVS_CONST_ESB_ERASED 0x2 #define NVS_CONST_PAGE_SIZE SPI_FLASH_SEC_SIZE #define NVS_CONST_ENTRY_SIZE 32 #define NVS_CONST_ENTRY_COUNT 126 #define NVS_CONST_INVALID_ENTRY 0xffffffff #define NVS_CONST_CHUNK_MAX_SIZE (NVS_CONST_ENTRY_SIZE * (NVS_CONST_ENTRY_COUNT - 1)) #define NVS_CONST_STR_LEN_MAX_SIZE (NVS_CONST_ENTRY_SIZE * (NVS_CONST_ENTRY_COUNT - 1)) #define NVS_CONST_NS_INDEX 0 #define NVS_CONST_NS_ANY 255 #define NVS_CONST_NVS_VERSION 0xfe // Decrement to upgrade // Page States // All bits set, default state after flash erase. Page has not been initialized yet. #define NVS_CONST_PAGE_STATE_UNINITIALIZED 0xffffffff // Page is initialized, and will accept writes. #define NVS_CONST_PAGE_STATE_ACTIVE (NVS_CONST_PAGE_STATE_UNINITIALIZED & ~NVS_CONST_PSB_INIT) // Page is marked as full and will not accept new writes. #define NVS_CONST_PAGE_STATE_FULL (NVS_CONST_PAGE_STATE_ACTIVE & ~NVS_CONST_PSB_FULL) // Data is being moved from this page to a new one. #define NVS_CONST_PAGE_STATE_FREEING (NVS_CONST_PAGE_STATE_FULL & ~NVS_CONST_PSB_FREEING) // Page was found to be in a corrupt and unrecoverable state. // Instead of being erased immediately, it will be kept for diagnostics and data recovery. // It will be erased once we run out out free pages. #define NVS_CONST_PAGE_STATE_CORRUPT (NVS_CONST_PAGE_STATE_FREEING & ~PSB_CORRUPT) // Page object wasn't loaded from flash memory #define NVS_CONST_PAGE_STATE_INVALID 0 // Entry States #define NVS_CONST_ENTRY_STATE_EMPTY 0x3 // 0b11, default state after flash erase #define NVS_CONST_ENTRY_STATE_WRITTEN (NVS_CONST_ENTRY_STATE_EMPTY & ~NVS_CONST_ESB_WRITTEN) // entry was written #define NVS_CONST_ENTRY_STATE_ERASED (NVS_CONST_ENTRY_STATE_WRITTEN & ~NVS_CONST_ESB_ERASED) // entry was written and then erased #define NVS_CONST_ENTRY_STATE_ILLEGAL 0x1 // only possible if flash is inconsistent #define NVS_CONST_ENTRY_STATE_INVALID 0x4 // entry is in inconsistent state (write started but ESB_WRITTEN has not been set yet) // Offsets within a NVS page #define NVS_CONST_PAGE_HEADER_OFFSET 0 #define NVS_CONST_PAGE_ENTRY_TABLE_OFFSET (NVS_CONST_PAGE_HEADER_OFFSET + 32) #define NVS_CONST_PAGE_ENTRY_DATA_OFFSET (NVS_CONST_PAGE_ENTRY_TABLE_OFFSET + 32)29 defines /* ... */ #endif
Details