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.

[参考译文] 内存中的读取位置

Guru**** 2540720 points
Other Parts Discussed in Thread: Z-STACK

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/580035/location-for-reading-in-memory

主题中讨论的其他部件:Z-stack

你好。

我有cc2538的genericApp示例。
我想知道我在非易失性存储器中的何处记录内容以及如何操作?

谢谢! 


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

    您好,Samuel:

    OSAL API.pdf中有相关文档(第10节),SDK随附了该文档。 在代码中,您可以参考OSAL_Nv.h

    基本上,您必须使用要存储的数据和数据的长度(osal_NV_item_init)初始化NV ID, 您必须知道该NV ID,因为您在读取/写入数据时必须参考该ID。 初始化后,您可以使用API的其余部分(osal_NV_read,osal_NV_write)进行读/写操作

    希望这能有所帮助!

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

    要添加到Luis Reply,如果您使用Z-Stack,0x0401后的NV ID将保留用于应用程序。

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


    谢谢你Luis。

    那么在osal_nv.h中,我会指明ID和数据吗?

    我最大的疑问是,我修改了哪个.c或.h?

    提前非常感谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Z-Stack使用的NV ID在ZCommDef.h,
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢!


    我怀疑数据(如.c或.h)的位置
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我无法理解您的问题。 您能详细说明吗? 您的意思是什么,如.c或.h?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢。

    输入osal_NV_item_ init,osal_NV_write和osal_NV_read的位置。

    在哪个.c或.h中?
    例如:我在GenerecApp.c中使用osal_nv_item_init?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以在要在GenericApp中存储数据的位置调用这些API。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常感谢!

    答案很好。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    不用客气。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我实施了您在另一篇文章中给出的一个示例
    UINT8 NV_test=0;
    UINT16 NV_test_id=0x0401;
    OSAL_NV_item_init(NV_test_id,1, NULL);

    OSAL_NV_WRITE (NV_TEST_id,0,1,&NV_TEST);
    OSAL_NV_READ(NV_test_id,0,1,&NV_test);

    但也出现了如下错误:

    需要标识符
    缺少显式类型(假定为"int")
    标识符列表参数只能在函数中使用


    可以帮帮我吗?

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

    我将示例代码放在 GenericApp_Init中并成功构建。 您可以参考以下红色代码。

    void GenericApp_Init( uint8 task_id )

    GenericApp_TaskID =任务ID;
    GenericApp_NwkState = dev_init;
    GenericApp_TransID = 0;

    //设备硬件初始化可以在此处添加,也可以在main()(Zmain.c)中添加。
    //如果硬件是特定于应用程序的-请在此处添加。
    //如果硬件是设备的其他部分,请将其添加到main()中。

    GenericApp_DstAddr.addrMode =(afAddrMode_t)AddrNotPresent;
    GenericApp_DstAddr.EndPoint =0;
    GenericApp_DstAddr.addr.shortAddr =0;

    //填写端点描述。
    GenericApp_epDESC.EndPoint = GENERICAPP_ENPOINT;
    GenericApp_epDESC.TASK_id =一般App_TaskID;
    GenericApp_epDesc.simpleDesc.
    =(SimpleDescriptionFormat_t *)&GenericApp_SimpleDesc;
    GenericApp_epDesc.latencyReq = noLatencyReqs;

    //向AF注册端点描述
    afRegister(&GenericApp_epDesc );

    //注册所有关键事件-此应用程序将处理所有关键事件
    RegisterForKeys( GenericApp_TaskID );

    //更新显示
    #if定义(lcd_supported)
    HalLcdWriteString("GenericApp", HAL_LCD_LINE_1);
    #endif

    ZDO_RegisterForZDOMsg( GenericApp_TaskID, End_Device_Bind_rsp );
    ZDO_RegisterForZDOMsg( GenericApp_TaskID, match_DESC_rsp );

    #IF Defined( IAR_ARMCM3_LM )
    //向RTOS任务启动器注册此任务
    RTOS_RegisterApp( task_id,GENERICAPP_RTOS_MSG_EVT );
    #endif

    UINT8 NV_test=0;
    UINT16 NV_test_id=0x0401;
    OSAL_NV_item_init(NV_test_id,1, NULL);

    OSAL_NV_WRITE (NV_TEST_id,0,1,&NV_TEST);
    OSAL_NV_READ(NV_test_id,0,1,&NV_test);
    }
    }

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

    因此该函数已经在ID 0x0401中写入了0?

    如果我要将某事物写为结构,则逻辑是相同的?

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

    要在内存中写入或读取的任何数据是否放入GenericApp_Init函数?
    如果网络层也是这样,或者它是否在另一个功能中?

    很抱歉有问题,但我是该地区的初学者。

    谢谢你。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    不仅在GenericApp_Init中,您还可以将这些代码放在要写入或读取NV的任何位置。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    还不错!

    在任何GenericApp函数中,我是否可以读取或录制?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的,我至少回复了您三次。 您可以在任何想要的地方执行此操作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢。

    对此造成的不便,我们深表歉意
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    不用客气。