以 simple_peripheral_onchip_oad 为例,我在其 syscfg 文件中发现其分别定义了两个 NVS,设置分别如下图:

通过搜索可以知道,OAD 功能只用了 CONFIG_NVSINTERNAL1,即地址从 0x0--0x33FFF;而定义的 CONFIG_NVSINTERNAL 并没有使用,其地址从 0x34000 开始。
我想请教一下:
1. 是否我们的一些用户数据可以直接存储在 CONFIG_NVSINTERNAL 的空间内?
2. 我在加了 NVS.h 头文件,并做了如下代码初始化后,为什么 NVS_open() 总是执行失败呢?
( 我还在不支持 OAD 的 simple_peripheral 例程里也试了这个代码,也是 NVS_open() 返回 NULL。但这个初始化过程我是从 nvsinternal 例程里抄过来的呀)
NVS_Params nvsParams_pkg;
NVS_Handle nvsHandle_pkg;
NVS_Attrs nvsAttrs_pkg;
NVS_init();
NVS_Params_init(&nvsParams_pkg);
nvsHandle_pkg = NVS_open(CONFIG_NVSINTERNAL, &nvsParams_pkg);
if(nvsHandle_pkg == NULL)
{
Display_printf(dispHandle, 0, 0, "NVS_pkg open failed");
while(1);
}
else
{
Display_printf(dispHandle, 0, 0, "NVS_pkg open OK");
}
谢谢大家!



