协议栈:Z-Stack 3.0.2
协调器:CC2538
问题描述:
添加宏定义 “OSALMEM_PROFILER=TRUE” 和 “OSALMEM_METRICS” 开启 CC2538 协议栈运行时内存检测的功能后设备偶尔会卡死,其中在有子节点入网时会卡死的很频繁,请问可能是什么原因造成的呢?
Alvin Chen:
这个应该与你开启内存检测关系不大,你是否有大量使用RAM类似于字符串。你先参考下面打上第一个补丁试试。
processors.wiki.ti.com/…/Zigbee_Known_Issues_and_Proposed_FixesOSALMEM_METRICS=TRUE 是可以提示你的heap的大小
OSALMEM_PROFILER=TRUE 可以知道伟分配的memory的的大小。
Jesse Huang:
回复 Alvin Chen:
“你是否有大量使用RAM类似于字符串。”这个是什么意思?会造成什么影响吗?
Alvin Chen:
回复 Jesse Huang:
你是否打了补丁?
Jesse Huang:
回复 Alvin Chen:
是的,这个是 3.0.1 的补丁,我升到 3.0.2 的时候特意去看了下,已经自动补好了的。
Alvin Chen:
回复 Jesse Huang:
看起来应该是内存泄漏的之类的问题,建议你自己检查一下吧,这个只能去捋一下程序了。
user5798117:
回复 Alvin Chen:
>> 其中在有子节点入网时会卡死的很频繁,请问可能是什么原因造成的呢?
我也发现过类似问题,平时网络正常。当打开组网后,设备入网后,协调器就很容易卡死。 对3.0.2程序,不做任何改动,也是这样。
注意到这一点:我觉得有子节点入网时,内部处理机制可能有些复杂,说不定有些问题。
不知道是否有入网文档, 看bdb吗?
Jesse Huang:
回复 user5798117:
我平时不会卡死啊,只有开启 “OSALMEM_PROFILER=TRUE” 和 “OSALMEM_METRICS”才会。
YiKai Chen:
回复 user5798117:
參考文档 www.ti.com/…/swra615.pdf
Jesse Huang:
回复 Alvin Chen:
我查过的,我申请的内存都在当个函数中释放的。应该不是内存泄漏的问题。