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.

[参考译文] CC2340R5:basic_ble 中的 NVS 问题。

Guru**** 2539500 points
Other Parts Discussed in Thread: LP-EM-CC2340R5, SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1410633/cc2340r5-nvs-question-for-basic_ble

器件型号:CC2340R5
主题中讨论的其他器件: SysConfig

工具与软件:

尊敬的团队:

我正在 LP-EM-CC2340R5中运行 basic_ble 工程。 我想使用 NVS 进行一些测试。  

在 syscfg 中、 我导入工程时会自动添加 CONFIG_NVSINTERNAL。 在不搜索 项目中调用的 NVS_OPEN()的情况下、我只想使用这个 NVS 区域进行测试。  

但是、我无法正确打开此区域。 请在下面找到输出。

下面显示了我的 NVS_init 函数代码片段。

void mine_nvs_init()
{
    NVS_init();
    NVS_Params nvsParams;
    NVS_Attrs regionAttrs;

    NVS_Params_init(&nvsParams);

    nvsHandle = NVS_open(CONFIG_NVSINTERNAL, &nvsParams);

    NVS_getAttrs(nvsHandle, &regionAttrs);

    /* Display the NVS region attributes */
    MenuModule_printf(0, 0, "Region Base Address: 0x%x",
                   regionAttrs.regionBase);
    MenuModule_printf(0, 0, "Sector Size: 0x%x",
                   regionAttrs.sectorSize);
    MenuModule_printf(0, 0, "Region Size: 0x%x\n",
                   regionAttrs.regionSize);
}

我 想知道此 CONFIG_NVSINTERNAL 的 用途是什么? 并确认应用程序是否能够使用 CONFIG_NVSINTERNAL。

SDK 版本:simplelink_lowpower_f3_sdk_8_10_01_02

谢谢!

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

    尊敬的 Connor:

    现有的内部 NVS 分配保留给 GAP Bond Manager、尽管有一些 NV ID 可供自定义使用。  因此、非易失性存储器将已经初始化并被 BLE 源代码使用。  请参阅  BLE5-Stack 用户指南的"闪存"部分。  如果这不适合您的需求、那么您应该在 SysConfig 中创建第二个内部 NVS 实例、以便随意配置和使用。

    此致、
    Ryan

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

    感谢您的解释。 因此、我要确认 内部 NVS 的初始化对开发人员不可见。 我是对吗? 您能否分享 GAP Bond Manager 将执行与现有内部 NVS 相关的初始化的源代码和代码行?

    我还有一个关于在我提供的案例中重新初始化的问题。 所示的基地址是什么? 检测 NVS 重新打开的正确方法是什么?

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

     BLE 源代码所使用的 NVOCMP_initNvApi 的初始化可以通过 common/Drivers/nvocmp.c 看到、您可以 进一步查看如何通过 source\ti\ble5stack_flash\osal\usal\mcu\cc26xx\osal_SNV_wrapper.c 调用 NVS API、并且如果您想进一步调试项目 API、您可以进一步将 source\ti\nvs\nvs\nvs\nvs\c 版本复制到 src。  然后、您应创建第二个 NVS 实例、因为第一个实例由 BLE 堆栈处理、并进一步调试项目以 了解 regionAttrs 的内容。  如果 之前已打开 NVS_CONFIG[index].object、则 NVSLPF3_OPEN 应返回 NULL。

    此致、
    Ryan

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

    谢谢! 明白了。