微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 协调器死机问题

协调器死机问题

时间:10-02 整理:3721RD 点击:

协调器在什么情况下会死机?现在协调器会死机。(串口没有反应,Packet Sniffer抓没有广播。断电重启后恢复正常)。问题出现的没有规律性,多数情况出现在终端退组网时候,退网方式都是终端使用


      osal_memset( &leaveReq, 0, sizeof( NLME_LeaveReq_t ) );   
      leaveReq.rejoin = FALSE;
      leaveReq.extAddr = NULL;
    
      if ( NLME_LeaveReq( &leaveReq ) != ZSuccess )
      {
        ZDApp_LeaveReset( FALSE );
      }

退网。没有操作协调器。

抓到了再运行过程中死机的数据,看时间=7251694,协调器发出最后一帧广播后就没有发出了

抓到发送数据后死机。看时间=299606,协调器发出最后一帧广播就没有发出了

虽然协调器没有广播,但是终端的DataRequest协调器回复了的

如果收发数据读没有,硬件中断可以响应吗?可以检查你们的程序中是否有内存泄漏,可以打开OSALMEM_PROFILER测试下。

 AF_DataRequest( &SampleApp_Periodic_DstAddr, &SampleApp_epDesc,
                             SAMPLEAPP_PERIODIC_CLUSTERID,
                             len,
                             str+1,
                             &SampleApp_TransID,
                             AF_DISCV_ROUTE,
                             AF_DEFAULT_RADIUS ) == afStatus_SUCCESS )
                  {
                  }
                  else
                  {
                   // HalUARTWrite(0,"error\n",5);
                    // Error occurred in request to send.
                  }

这个函数运行错误会不会出现这个情况

如何打开OSALMEM_PROFILER,

真是奇葩了,终端在低功耗串口唤醒后使用

NLME_SetPollRate(100);//请求父节点数据

进入中断前使用

NLME_SetPollRate(3000);//请求父节点数据

这两个函数用的太频繁了就让协调器死机了。终端引起协调器死机,太奇葩了。

VV老师虽然现在没有死机了,但是我还是想弄明白为啥终端可以将协调器弄死机

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top