如果我用串口助手快速发送数据给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:
是串口通信程序有问题,更改代码已经解决了这个问题。
主要是因为对协议栈的机制还不够了解,请有没有讲解协议栈的相关资料
TI中文支持网