TI中文支持网
TI专业的中文技术问题搜集分享网站

CC2530: 初始化时由于Scene_Init需要几秒钟之后才能执行完初始化

Part Number:CC2530Other Parts Discussed in Thread:Z-STACK

debug后发现问题出在zclGeneral_ScenesInit函数中,最后单步调试是在ScenesInit中执行ScenesRestoreFromNV时花费大量时间,

在zclGeneral_ScenesRestoreFromNV中读ZCD_NV_SCENE_TABLE时,读出来的值是30,底下执行了30次 for循环。问题是设备在网

期间没有给设备发送过Add Scene 的Cmd,这样应该是不会往这个地址的NV写数据的,并且我自己也没有NV的地址与这个一样;

请教一下会是什么原因造成的? (协议栈版本Home 1.2.2a)

Cherry Zhou:

您好我们已收到您的问题并升级到英文论坛,如有答复将尽快回复您。谢谢!

,

YiKai Chen:

我用SampleSwitch在CC2530DK上面測試,並沒有遇到一樣的問題,你有試過沒修改的Z-Stack例程有沒有遇到同樣的問題嗎?

,

Cherry Zhou:

您好,您请参考上一条回复和以下答复:

 您可以看下Known Issues and Proposed Fixes E2E thread (Large number of Address Manager Entries Results in Long ZC Startup Times)中的第 20 项。

即使不使用scene table,也会初始化 (与 address tables非常相似)。 也许您可以考虑减少scene table中的最大条目数,ZCL_GEN_MAX_ENEVENes。 否则的话您可能需要进一步优化初始化和 osal_NV 代码。

,

user5031356:

感谢YK的帮助,

我差分了一下没修改的Z-Stack,关于scene 的部分都是一样的,其他地方也不会调用相关的NV地址或者是函数,这个也是生产了1k+才出现了30个,几率比较低。

,

user5031356:

感谢Cherry的分享帖,但是还有疑问,虽然不使用scene也会初始化scene table,但是为什么在zclGeneral_ScenesRestoreFromNV中会从NV中读取到的值是30,正常的话,没使用读出来的值也应该是0吧

,

Cherry Zhou:

好的再帮您问下哈,预计下周工作日给您答复。

,

YiKai Chen:

試試在設備作factory reset時清除一下scene table

,

Cherry Zhou:

您好,只要 ZCD_nV_scen_table 的 zcl_nv_item_init 成功, zclGeneral_ScenesInitNV 应通过 zclGeneral_ScenesSetDefaultNV 将 HDR.numRecs 设置为零。 更改的唯一方法是看下 zclGeneral_ScenesWriteNV 是否被 zclGeneral_AddScene/RemoveScene/RemoveAllScenes/ScenesSave 调用。 您请密切监视 nvGenScenesHdr_t numRecs 属性在何处和何时发生更改。 

也可以参考以上工程师的答复。

赞(0)
未经允许不得转载:TI中文支持网 » CC2530: 初始化时由于Scene_Init需要几秒钟之后才能执行完初始化
分享到: 更多 (0)

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1