This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] SIMPLELINK-CC13XX-CC26XX-SDK:拆分片外闪存,使用NVS手动管理一些闪存,使用SPIFFS手动管理一些闪存

Guru**** 655270 points
Other Parts Discussed in Thread: SYSCONFIG
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1097315/simplelink-cc13xx-cc26xx-sdk-splitting-offchip-flash-memory-managing-some-manually-with-nvs-and-some-with-spiffs

部件号:SIMPLELINK-CC13XX-CC26XX-SDK
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一起使用,而其中一些仍是手动管理的?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    感谢您与我们联系。

    老实说,您打算使用的配置没有像更"常见"的配置那样经过彻底的测试。

    一般来说,区域重叠不应成为问题。 sysconfig将发出警告(可以禁用),但应正确生成代码。 当然,区域重叠会迫使您格外小心以避免冲突-但您似乎很清楚这一点:)

    总之,任何一种选择都应该是好的。 强烈建议您自己进行彻底的测试。

    此致,

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的,这不是正常的。 这是我继承的一个早于sysconfig的较旧项目,因此这就是我不会再创建另一个NVS区域的原因(可能需要我永远去寻找去哪里做)