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

zstack协议栈中

如果我用串口助手快速发送数据给CC2530,接收到后,回显。

经调试发现,如果快速发送,会导致协议栈卡死,osal_run_system不再运行。请问这是怎么回事?

Alvin Chen:

建议发送间隔超过100ms以上

Viki Shi:

降低发送频次是否有改善?

user4711142:

回复 Viki Shi:

是这样,可以理解为有两个线程:
线程1:协调器和终端每隔1s进行串口透传数据。
线程2:当协调器串口接收到配置消息后,无线发送处去。
问题:线程1 运行时,没有任何问题,但是如果随机运行一次线程2,会有可能造成卡死。

Alvin Chen:

回复 user4711142:

添加下面的宏开启内存检测看看是不是内存问题。
OSALMEM_PROFILER=TRUE
OSALMEM_METRICS

user4711142:

回复 Alvin Chen:

我开启了宏,还是会卡死,但是没有什么显示。怎么查看是不是内存问题,我没有显示屏,用串口显示呢

user4711142:

回复 user4711142:

是不是需要串口做一个缓冲区,请问有没有相关例程:带缓冲区的串口透传例程

Alvin Chen:

回复 user4711142:

你私信我,我可以给你一个测试程序,如果测试程序不行就没什么好的建议了。

user4711142:

回复 user4711142:

我测试了一下,zstack 3.0也会有这个问题。
就单个串口。
1、协调器上电每隔1秒串口自动输出AA BB CC DD
2、串口助手每隔1秒发送数据给协调器,协调器只将其保存,不做其他操作。
3、用串口助手,人工随机发送几个字节的数据给协调器。就会导致协议栈卡死,请问这是怎么回事?有没有好的处理办法

Alvin Chen:

回复 user4711142:

Z-stack3.0 如果你容CC2530就尽量不要用UART 使用SPI接口,资源紧张。

user4711142:

回复 Alvin Chen:

是串口通信程序有问题,更改代码已经解决了这个问题。
主要是因为对协议栈的机制还不够了解,请有没有讲解协议栈的相关资料

赞(0)
未经允许不得转载:TI中文支持网 » zstack协议栈中
分享到: 更多 (0)