协议栈:Z-Stack3.0.2
处理器:CC2530
IAR版本:IAR for 8051 10.10.1
问题描述:如题,Z-Stack 3.0.2协议栈“SampleSwitch”的CC2530例程有BUG。Z-Stack3.0.2协议栈安装包安装后,用IAR打开“SampleSwitch”例程,然后直接编译,烧录程序进CC2530,运行程序,发现程序卡在了main()函数的“HAL_BOARD_INIT();”中出不来。试了“Coordinator”、“router”和“enddevice”类型的程序都不行。然后打开“GenericApp”例程编译烧录后正常运行。
1、请问“SampleSwitch”例程为什么会卡在确认晶振稳定那里?详情可见附图1.
2、我最近的项目使用Z-Stack3.0.2协议栈,CC2538作为协调器,开启PA CC2592。抓包发现很经常收不到终端发过来的消息,具体表现为终端有消息发送至协调器,协调器却没有ack回去,协调器与终端的距离很近,用的也是“SampleSwitch”例程为基础的,以前用Z-Stack3.0.1的时候是没有出现过这种情况的,这个也可能是BUG?详情可见抓包2
附图1
抓包2
协调器收到消息后无ACK返回.rar
Alvin Chen:
针对你第一个问题如下:
请看我在使用CC2530DK可以正常debug ,怀疑你硬件问题。
Jesse Huang:
回复 Alvin Chen:
虽然我的不是官方的开发板,但是我换了多个板子尝试的结果都是这样,然后换成“GenericApp”例程就可以了,我是想不到这两个例程之间的差别…
Alvin Chen:
回复 Jesse Huang:
我试了没有问题的,是不是你的晶振起振有问题啊,是随机的还是固定出现的?两个程序仅是应用层有区别。
Jesse Huang:
回复 Alvin Chen:
只要用“SampleSwitch”例程是一定会出现,我也知道这两个例程的底层代码是共享的,可是就是不知道为什么会出现这种情况…
Alvin Chen:
回复 Jesse Huang:
我试了好几次,没有出现,如果你方便可以换个晶振试试或者借别人的板子试试吧,我这边用了我们自己的DK和第三方的小板子都没出现。
Jesse Huang:
回复 Alvin Chen:
我发现我也有跟你一样的同款小板子!可是还是会卡在第二行!请问你用的IAR版本是哪个版本?
Alvin Chen:
回复 Jesse Huang:
10.30 最新版
www.iar.com/…/
Jesse Huang:
回复 Alvin Chen:
好的,我现在下10.30试试,按道理来说10.10也不应该会这样的吧,要不你下个10.10来试试会不会出现这种情况?
Alvin Chen:
回复 Jesse Huang:
你直接go,把断点打在zclSampleSw_TaskID = task_id; 走不到吗?
void zclSampleSw_Init( byte task_id )
{
Jesse Huang:
回复 Alvin Chen:
走不到