btlejack中channel MAP截取

原理

前面获取到access_address和crcinit,这样的话就可以使用nrf52832的硬件crc啦,
然后去截取channel map的话就会块很多了,毕竟硬件crc比咱在欺上面实现软件crc
快很多。这里获取channal map使用最原始的方法,就是枚举:在一定事件内监听每
一个信道是否有数据。。。。
对于枚举来说,在每个信道停留多长时间也是个值得考虑的事情,btlejack将这个权
力给了使用者,其以1.25ms位单位。
btlejack原始的,其中断中的相关代码
      case RECOVER_CHM:
            {
              if ((NRF_RADIO->CRCSTATUS == 1)) {
                /* If by any chance we got a channel map update. */
                if (((rx_buffer[0]&0x03) == 0x03) && (rx_buffer[2] == 0x01))
                    pLink->verbose(B("U"));

                if (!is_channel_mapped(g_sniffer.channel))
                {
                    map_channel(g_sniffer.channel);
                    pLink->verbose(B("I"));
                    recover_chm_next();
                }
              }

              /* Continue to receive. */
              NRF_RADIO->TASKS_START = 1;
            }
            break;
 //这不,这就是那个定时的
 void recover_chm_next(){
    if (g_sniffer.channel < 36)
    {
        g_sniffer.ticker.timer_stop(0);
        g_sniffer.ticker.timer_start(0,/*(unsigned int)g_sniffer.max_interval * 1250*/g_sniffer.cchm_timeout * 1000,&chm_tick);
       
    }
    chm_tick();
}
#if 1			//RECOVER_CHM		
				
					case RECOVER_CHM:{		
							if ((NRF_RADIO->CRCSTATUS == 1)) {
								if (((rx_buffer[0]&0x03) == 0x03) && (rx_buffer[2] == 0x01)){
										printf("captured LL_MAP\r\n");
										Link_verbose(B("U"));
								}
                    

                if (!is_channel_mapped(g_sniffer.channel))
                {
                    map_channel(g_sniffer.channel);
                    Link_verbose(B("I"));
                    recover_chm_next();
                }
              }
              NRF_RADIO->TASKS_START = 1;
						}
						break;
#endif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值