Thread:sysconfig中讨论的其它部件
我有一个主板 ,其中包含一些预先存在的区域,我希望 继续在NVS中手动管理这些区域(它们不经常更改,并且易于管理),并且希望将一部分片外存储专用于SPIFFS -
在spiffexternal中的示例看起来像是 设置为使用的
SPIFFSNVS_CONFIG
它采用NVS区域的参数-看起来它采用 预定义NVS区域的索引(在示例中,它采用 板中定义的整个片外存储器) -深入到该代码,我发现它在 配置spiffs配置时采用整个NVS区域,并从该区域的零偏移开始:
/*使用以下命令初始化SPIFFS配置结构:*/
fsConfig->phys_size = nvsAttrs.regionSize;
fsConfig->phys_addr =0;/* NVS区域的开始*/
我当前的NVS 区域被定义为整个片外闪存(完全不修改), 在代码中,我们会谨慎处理 用于避免覆盖不应该覆盖的区域中的内容(例如应用程序代码覆盖OAD图像等)的偏移-
我似乎有两个选择-
1.创建第二个NVS配置 ,该配置 具有 我关心的偏移和区域大小, 然后将其传递给(未修改的) SPIFFSNVS_config方法
2.我修改了SPIFFSNVS_CONFIG以 使用我现有的NVS区域,但采用了一个偏移和大小参数,以便我可以使用SPIFFS
多个重叠的NVS配置是否存在问题? 我可以将现有的一个区域分为三个区域(因为我要用于SPIFFS的部分位于现有部分的中间),或者我可以 继续使用较大的一个区域, 然后将另一个区域配置为它的子集。
我倾向于选项2,但如果 有多个重叠的NVS区域不是问题,那么选项1 似乎也不会太糟糕
我是否在正确的轨道上? 有没有更好的方法让部分片外闪存与SPIFFS一起使用,而其中一些仍是手动管理的?