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:在收集器和传感器示例中写入和读取闪存

Guru**** 2392745 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/1306980/cc1352p-writing-and-reading-flash-memory-in-collector-and-sensor-example

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

我已经使用收集器和传感器应用开发了我自己的应用、但是我想向闪存写入数据以及从闪存读取数据。当我下载 nvsinternal 示例时、我会看到 NVS_WRITE 和 NVS_READ 命令。 我知道可以使用这些命令将数据写入和读取到特定地址。但是、在收集器部分中、可以以 Main_user1Cfg.nvFps.writeItem 为例写入数据。 但我无法完全掌握该界面结构。 我无法理解的部分是:

NVINTF_ItemID_t id;
/*设置 NV ID */
id.systemID = memory_location_panid;
id.itemID = 0;
id.subId = 0;
/*写入 DynamicWeightThreshold */
MAIN_USER1Cfg.nvFps.writeItem (id、sizeof collectorPanId、&collectorPanId);

我使用此命令将数据写入存储器、但我不知道要写入哪个地址。 在这里、借助 id.systemID、id.itemID、id.subId 等变量、我想了解如何确定写入数据的位置。 如您所知、在此示例中、有许多值写入和读取到存储器中。 我不希望意外地删除这些变量。 因此、我希望通过说明我在哪里写入以及写入什么来执行写入和读取操作。 如何实现?

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

    尊敬的 Mucahit:

    对响应延迟表示歉意。 如果选中 SysConfig 并转至左侧的 NVS 模块、则会看到区基础和区大小。 这足以防止覆盖要保留的数据。 知道数据存储在哪两个存储器地址之间。

    此致、

    马尔文

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

    实际上、我熟悉 SysConfig 中的区基地址和区大小、但我当前的问题与之不同。 我参与了闪存的写入和读取、但我不确定闪存的确切地址。 在csf.h收集器示例中使用的文件中提供的示例中、有一个函数如下:

    bool Csf_getNetworkInformation (LLC_NETINFO_t *pInfo)
    {
    if ((PNV != NULL)&&(PNV->readItem != NULL)&&(pInfo != NULL))
    {
    NVINTF_ItemID_t id;

    /*设置 NV ID */
    id.systemID = NVINTF_SYSID_APP;
    id.itemID = Csf_NV_NETWORK_INFO_ID;
    id.subId = 0;

    /*从 NV 读取网络信息*/
    if (PNV->readItem (id、0、sizeof (LLC_NETINFO_t)、pInfo)== NVINTF_SUCCESS)
    {
    返回(真);


    返回(假);

    我认为这些线路负责从特定地址写入和读取数据。 但是、我不确定闪存的确切写入和读取地址。

    我想了解如何使用 id.systemId、id.itemId 和 id.subId 来计算此库的位置?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如您所知、在此示例中、有许多写入和读取的值存储器。 我不希望意外地删除这些变量。 因此、我希望通过说明我在哪里写入以及写入什么来执行写入和读取操作。 如何实现?

    如果进入 software_stack/15_4stack/nvocmp.c、您会找到用于读取和写入 NV 项目的 API。 它将帮助您了解该接口的工作原理。  NVOCMP_readItemApi()函数用于查找特定项在闪存中的位置。  

    我建议您在 SysConfig 中添加自己的 NVS 模块、这样就不会冒险覆盖堆栈使用的闪存数据。

    此致、

    马尔文