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:使用 NVS 写入数据后、无法在重新启动器件后读取数据。

Guru**** 2796425 points

Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1620356/cc2340r5-after-writing-data-using-nvs-the-data-cannot-be-read-after-restarting-the-device

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

我想利用 Zigbee 中的 NVS 函数。 我尝试在示例“nvsinternal"中“中执行操作(代码如上所述)。 我将使用以下代码:nvs_write (nvsHandle、0、(void *) 签名、sizeof (signature)、nvs_write_erase | nvs_write_post_verify); 执行此函数后、可以在存储器中看到数据。 当我调用 NVS_write (nvsHandle、0、(void *) 签名、sizeof (signature)、NVS_write_erase | NVS_write_post_verify) 时; 删除注释并将其重新写入存储器后、存储器中没有内容。 为什么会这样? NVS 不是断电非易失性器件吗? 还是因为我在某处错过了某项操作而导致的? 512KB 可编程闪存中也包含此地址。

5493fd4ba39b48a5fff4affeb79ea922.png

7518dfd9873596de5d7077a68da298fc.png

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

    尊敬的 Bin:

    请首先注意、 Zigbee 示例中的 CONFIG_NVSINTERNAL_ZB 空间是由 ZBOSS 直接访问的、因此只能通过 NVRAM API进行交互。 您还可以考虑在 SysConfig 中创建第二个内部 NVS 存储空间、但需要确保并相应地修改命令链接器文件 (.cmd)。

    每次对器件进行编程时、CCFG 不保护的闪存存储器都会被擦除。  默认情况下会擦除整个闪存、包括当前分配的 NVS 闪存存储器。  就您所描述的情况而言、当您描述如何“删除注释并将其重新写入存储器“时、意味着已对器件进行重新编程、从而在加载前擦除闪存。  SysConfig 的器件配置模块中有一些设置可以解决这个问题、请参阅我的 相关 E2E 响应

    此致、
    Ryan