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.

[参考译文] CC1352P:NVS 驱动程序运行未知行为

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1316649/cc1352p-nvs-driver-functions-unknown-behavior

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

你好。

我将有两个 CC1352P1器件建立通信(收集器-传感器)、以便通过 SubGHz 射频通道传输一些数据。

我正在使用 nv function writeItem()将收集器端接收到的一些字节存储为

void memoryWrite(memory_operations_e operation) {
    if(operation == memory_operations_storeui16) {
        NVINTF_itemID_t id;
        /* Setup NV ID */
        id.systemID = memory_location_storeui16;
        id.itemID = 0;
        id.subID = 0;
        /* perform write to store a variable */
        Main_user1Cfg.nvFps.writeItem(id,sizeof store_ui16, &store_ui16);
    }
}

在整个运行期间会多次调用该函数。

在使用该函数进行100次数据传输后、收集器停止通过射频处理通信请求。

发生这种情况时、我已确认传感器在监听器代理的帮助下成功发送连接请求。 收集器无法再响应通信请求。

然后、我使用 Flash Programmer 2将.hex 闪存映像存储在器件上。 我在记事本++上寻找了不同之处:

其中、左侧是.hex 文件、 之前 编写自己的代码。 在右侧、内存被修改、 传输多个数据后 因为 writeItem()被调用

此函数是否会在每次调用时修改相同的 NV 区域? 我怀疑这会随着时间的推移改变 NV 上的不良区。

是否有我可以使用的更安全的方法/替代功能? 正在使用 更新项目() 而不是 一种更安全的方法来解决我的问题? 我想 避免修改 NV 存储器上的存储区。

提前感谢

-优素福

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

    尊敬的 Yusuf:

    根据名称的建议、更新项目将更新同一项目。 WriteItem 似乎每次都添加一个新项目。

    您可以检查收集器项目中 nvocmp.c 文件中的函数定义。  

    或者、您可以简单地在 SysConfig 中添加另一个 NVS 区域实例并直接使用 NVS 驱动程序 API。 查看 SDK 中的 NVS 内部示例、以检查如何执行该操作。

    此致、

    SID