CC2530+Zstack 3.0
1、我有三个设备,分别是1个协调器A,两个终端B1和B2。做串口透传。
现象:
1、终端B1和B2串口透传数据给协调器A,1s一次。三个设备一直都没有问题。
2、协调器A透传数据给终端B1或者B2,1秒一次,协调器很快就卡死了,20秒左右。串口回调函数和串口发送函数都是一样的。开了看门狗,协调器才会重启。
问题:
1、请问为什么会这样?
2、是不是内存溢出?如果是,该怎么办?
3、我用的IAR10.10,想调试找到代码卡死在哪里,该怎么做?
Viki Shi:
就描述来讲,有可能是内存溢出。你在串口运行处打断点,运行几次看看
user4711142:
回复 Viki Shi:
程序运行几次就卡死了,无法继续运行到串口回调函数的断点处。但是继续运行和暂停仿真,右侧的汇编语言仍XDATA和堆栈段运行。
user4711142:
回复 Viki Shi:
内存占用情况如下:
227 323 bytes of CODEmemory40 bytes of DATAmemory (+ 67 absolute )7 564 bytes of XDATA memory192 bytes of IDATA memory8 bitsof BITmemory1 074 bytes of CONST memory
user5030520:
CC2530已经不适合做Z-stack 3.0的协调器了
user4711142:
回复 user5030520:
Sstack mesh 1.0的.map文件中hal_uart占用情况如下
Module CODE DATA XDATA IDATA BIT CONST
—— —- —- —– —– — —–
(Rel) (Rel) (Abs) (Rel) (Rel) (Rel) (Rel)
hal_uart 857 5 265
zstack 3.0.2中的.map文件中hal_uart占用情况如下:
hal_uart 950 7 1 037
请问3.0协议栈中hal_uart占用了XDATA中1037个字节?
Viki Shi:
回复 user4711142:
同意楼上观点,CC2530处理能力不行,做zstack3.0的协议栈勉强了点,因此出现卡顿
至于你贴的图,说实话判断不出问题。猜测是处理能力的原因PS:zstack3.0使用内存比原先的协议栈高,因此也不推荐用CC2530做