WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
nv_config.h
浏览该文件的文档.
1/*
2 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2021-2023. All rights reserved.
3 * Description: KV Storage Library definitions
4 */
5
6#ifndef NV_CONFIG_H
7#define NV_CONFIG_H
8
9#define NV_TASKS_MAX_NUM 64 /* 可支持的NV保存任务的最大数(多核系统使用) */
10#define NV_NORMAL_KVALUE_MAX_LEN 4060 /* 普通NV的最大数据长度 */
11#define NV_ENCRYPTED_KVALUE_MAX_LEN 4048 /* 加密NV的最大数据长度 */
12
13/* Flash 物理地址起始和结束 */
14#define FLASH_PHYSICAL_ADDR_START 0x200000
15#define FLASH_PHYSICAL_ADDR_END 0xA00000
16
17#define FLASH_MAPPED_ADDR_START 0x000000
18#define FLASH_MAPPED_END 0x800000
19
20#define FLASH_PAGE_SIZE 4096
21#define KV_PAGE_SIZE FLASH_PAGE_SIZE
22
23/* NV运行区默认起始地址(物理地址) */
24#define KV_STORE_START_ADDR 0x22C000
25/* NV运行区page数 */
26#define KV_STORE_DATA_PAGE_NUM 4
27/* NV运行区默认长度(不包含备份区) */
28#define KV_STORE_DATA_SIZE (KV_STORE_DATA_PAGE_NUM * KV_PAGE_SIZE)
29
30/* NV备份区默认起始地址(物理地址) */
31#define KV_BACKUP_START_ADDR (KV_STORE_START_ADDR + KV_STORE_DATA_SIZE)
32/* NV备份区page数 */
33#define KV_BACKUP_PAGE_NUM 4
34/* NV备份区默认长度 */
35#define KV_BACKUP_DATA_SIZE (KV_BACKUP_PAGE_NUM * KV_PAGE_SIZE)
36
40/* Consider using NV region contents to determine actual number of pages and stores */
41#define KV_STORE_PAGES_SCPU 0
42#define KV_STORE_PAGES_ACPU 3
43
44#define MCORE_REGISTER_NV_NOTIFY_MAX_NUM 10
45
46/*
47 * NV处理数据的块大小(取值范围[128 ~ 4096],必须为16字节倍数)
48 * 此长度影响NV内部处理数据所需的内存大小,如内存紧张,则不宜太大。
49 * 在需要加密NV但又不支持分段加解密的情况下,最好设置为最大值4096,以避免数据被分段处理。
50 */
51#define NV_KEY_DATA_CHUNK_LEN 128
52
53/*
54 * NV支持异步存储时(CONFIG_NV_SUPPORT_ASYNCHRONOUS_STORE特性宏设置为NV_YES)相关配置项
55 * NV_QUEUE_MAX_SIZE:消息队列大小
56 * NV_THREAD_PRIORITY_NUM:NV异步存储线程优先级
57 * NV_BACKET_SIZE: 哈希桶大小
58 * 哈希桶大小建议配置为总NV数量/0.75
59 * 哈希桶过大占用内存较高,过小则影响查询效率
60*/
61#define NV_QUEUE_MAX_SIZE 64
62#define NV_THREAD_PRIORITY_NUM 26
63#define NV_BACKET_SIZE 22
64
65/* ------------------------------------- 特性宏定义 ------------------------------------- */
66
67#define NV_YES 1
68#define NV_NO 0
69
70/* 特性: 支持NV升级 */
71#ifndef CONFIG_NV_SUPPORT_OTA_UPDATE
72#define CONFIG_NV_SUPPORT_OTA_UPDATE NV_YES
73#endif
74
75/* 特性: 支持NV备份恢复 */
76#ifndef CONFIG_NV_SUPPORT_BACKUP_RESTORE
77#define CONFIG_NV_SUPPORT_BACKUP_RESTORE NV_YES
78#endif
79
80/* 特性: 支持NV加密 */
81#ifndef CONFIG_NV_SUPPORT_ENCRYPT
82#define CONFIG_NV_SUPPORT_ENCRYPT NV_NO
83#endif
84
85/* 特性: 支持NV跳过被破坏的NV项 */
86#ifndef CONFIG_NV_SUPPORT_SKIP_CORRUPT_KEY
87#define CONFIG_NV_SUPPORT_SKIP_CORRUPT_KEY NV_YES
88#endif
89
90/* 特性: 加密NV使用HASH校验 */
91#ifndef CONFIG_NV_SUPPORT_HASH_FOR_CRYPT
92#define CONFIG_NV_SUPPORT_HASH_FOR_CRYPT NV_NO
93#endif
94
95/* NV debug */
96#ifndef CONFIG_NV_SUPPORT_DEBUG
97#define CONFIG_NV_SUPPORT_DEBUG NV_NO
98#endif
99
100/* 特性:NV异步存储 */
101#ifndef CONFIG_NV_SUPPORT_ASYNCHRONOUS_STORE
102#define CONFIG_NV_SUPPORT_ASYNCHRONOUS_STORE NV_NO
103#endif
104
105/* 特性:NV使用CRC16替换CRC32 */
106#ifndef CONFIG_NV_SUPPORT_CRC16_VERIFY
107#define CONFIG_NV_SUPPORT_CRC16_VERIFY NV_NO
108#endif
109
110/* 特性:NV备份单独存放 */
111#ifndef CONFIG_NV_SUPPORT_BACKUP_REGION
112#define CONFIG_NV_SUPPORT_BACKUP_REGION NV_YES
113#endif
114
115/* 特性:NV备份区支持升级 */
116#ifndef CONFIG_NV_SUPPORT_BACKUP_UPGRADE
117#define CONFIG_NV_SUPPORT_BACKUP_UPGRADE NV_NO
118#endif
119
120#endif /* NV_CONFIG_H */
121