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
src
middleware
chips
ws63
nv
include
nv_config.h
由
William Goodspeed
维护 | E-mail: gongzl@stu.hebust.edu.cn | Wechat: a23333344 | ALSO CHECKOUT
WS63FLASH
!
生成于 2025年 一月 4日 星期六 17:47:12 , 为 WS63 SDK 文档使用
1.9.8