CC2530在IAR下单步调试

##IAR下无法调试解决方案## 本文针对的情况是CC-Debugger调试线已经接好,用SmartRF Flash programmer可以编程。

但是用IAR IDE环境在此输入图片描述

的单步调试无法运行,出现下面情况的解决方法。

在此输入图片描述

这明显是由于驱动文件匹配不正确导致的。

在win7下打开设备管理器,会看见Cebal Controlled devices里面有一个CC-Debugger。它对应的驱动在8051\drivers\Texas Instruments目录下面。有这些文件: 在此输入图片描述

ref04eb.inf对应的是旧版的驱动2.0.0.0,这个才能在IAR下进行调试。而新版本的驱动只能用SmartRF进行下载。

在此输入图片描述

##程序实例## 下面对Zigbee无线点对点的线透明传输程序进行调试。

参见http://my.oschina.net/lvyi/blog/201548,我想开机就自启Coordinator的端口绑定,因为我的PCB电路上没有按键去触发按键事件来实现绑定,先写下列程序进行测试。

<!-- lang: cpp -->
 /**************************************************************************************************
 * 函数名称:SerialApp_ProcessEvent
 *
 * 功能描述:用户应用层任务处理函数
 *
 * 参    数:task_id - 任务ID
 *           events - 当前需处理的事件
 *
 * 返 回 值:未处理的事件
 **************************************************************************************************/
UINT16 SerialApp_ProcessEvent( uint8 task_id, UINT16 events )
{
  (void)task_id;  

  if ( events & SYS_EVENT_MSG )    //用户层处理函数的系统事件
  {
    afIncomingMSGPacket_t *MSGpkt;

    while ( (MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SerialApp_TaskID )) )
    {
      switch ( MSGpkt->hdr.event )
      { 
      case ZDO_CB_MSG:             //ZDO层收到新的任务信息回调处理事件
    SerialApp_ProcessZDOMsgs( (zdoIncomingMsg_t *)MSGpkt );  
    break;
      
    case KEY_CHANGE:             //按键事件
    SerialApp_HandleKeys( ((keyChange_t *)MSGpkt)->state, ((keyChange_t *)MSGpkt)->keys );
    break;

    case AF_INCOMING_MSG_CMD:   

    SerialApp_ProcessMSGCmd( MSGpkt ); //执行进来消息命令的回调函数
    break;

     default:
      SerialApp_HandleKeys(0,11);//测试,默认就行发起绑定
    }

    osal_msg_deallocate( (uint8 *)MSGpkt );
  }

  return ( events ^ SYS_EVENT_MSG );
}

if ( events & SERIALAPP_SEND_EVT )  //串口发送请求,这里是指串口通过CC2530发送到另一个无线设备
{
SerialApp_Send();
return ( events ^ SERIALAPP_SEND_EVT );
}

if ( events & SERIALAPP_RESP_EVT )  //发送回复信息事件
{
SerialApp_Resp();
return ( events ^ SERIALAPP_RESP_EVT );
}

return ( 0 );  

}

我自己加了SerialApp_HandleKeys(0,11),默认发起绑定。因为还没弄清楚Zstack的函数程序执行顺序,在这个处理函数的default中加入这句话进行自动绑定测试。

实测发现可以进行通信。但是一个存在的问题是,每次进入循环判断switch ( MSGpkt->hdr.event )时,如果没有其他事件,会再次发生绑定请求。还有待于进一步研究,最好是去除断电绑定这种机制,让它们全自动组网。

转载于:https://my.oschina.net/lvyi/blog/232786

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值