⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mac_scan.lst

📁 zigbee location examples
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 16
   \   000005                ; Auto size: 0
   \   000005   8A..         MOV     ?V0 + 0,R2
   \   000007   8B..         MOV     ?V0 + 1,R3
    306              INT8 maxRssi;
    307              MAC_STATE_TYPE macState = MAC_STATE_DEFAULT;
   \   000009   7900         MOV     R1,#0x0
    308          
    309              switch (pTask->state) {
   \   00000B   EA           MOV     A,R2
   \   00000C   2405         ADD     A,#0x5
   \   00000E   FE           MOV     R6,A
   \   00000F   EB           MOV     A,R3
   \   000010   3400         ADDC    A,#0x0
   \   000012   FF           MOV     R7,A
   \   000013   8E82         MOV     DPL,R6
   \   000015   8F83         MOV     DPH,R7
   \   000017   E0           MOVX    A,@DPTR
   \   000018   12....       LCALL   ?UC_SWITCH_DENSE
   \                     `?<Jumptable for mscScanProcedure>_0`:
   \   00001B   00           DB        0
   \   00001C   08           DB        8
   \   00001D   ....         DW        ??mscScanProcedure_0
   \   00001F   ....         DW        ??mscScanProcedure_1
   \   000021   ....         DW        ??mscScanProcedure_2
   \   000023   ....         DW        ??mscScanProcedure_3
   \   000025   ....         DW        ??mscScanProcedure_4
   \   000027   ....         DW        ??mscScanProcedure_5
   \   000029   ....         DW        ??mscScanProcedure_6
   \   00002B   ....         DW        ??mscScanProcedure_7
   \   00002D   ....         DW        ??mscScanProcedure_8
   \   00002F   ....         DW        ??mscScanProcedure_9
    310              case MSC_STATE_INITIALIZE_SCAN:
    311          
    312                  // If the state cannot be switched now, then reschedule this task (move it to the back of the
    313                  // queue) to avoid potential deadlock...
    314                  switch (mscInfo.scanType) {
   \                     ??mscScanProcedure_1:
   \   000031   90....       MOV     DPTR,#mscInfo
   \   000034   E0           MOVX    A,@DPTR
   \   000035   12....       LCALL   ?UC_SWITCH_DENSE
   \                     `?<Jumptable for mscScanProcedure>_1`:
   \   000038   00           DB        0
   \   000039   03           DB        3
   \   00003A   ....         DW        ??mscScanProcedure_10
   \   00003C   ....         DW        ??mscScanProcedure_11
   \   00003E   ....         DW        ??mscScanProcedure_12
   \   000040   ....         DW        ??mscScanProcedure_12
   \   000042   ....         DW        ??mscScanProcedure_13
    315                  case ENERGY_SCAN:  macState = MAC_STATE_ENERGY_SCAN; break;
   \                     ??mscScanProcedure_11:
   \   000044   7940         MOV     R1,#0x40
   \   000046   8006         SJMP    ??mscScanProcedure_10
    316                  case PASSIVE_SCAN:
    317                  case ACTIVE_SCAN:  macState = MAC_STATE_ACTIVE_OR_PASSIVE_SCAN; break;
   \                     ??mscScanProcedure_12:
   \   000048   7941         MOV     R1,#0x41
   \   00004A   8002         SJMP    ??mscScanProcedure_10
    318                  case ORPHAN_SCAN:  macState = MAC_STATE_ORPHAN_SCAN; break;
   \                     ??mscScanProcedure_13:
   \   00004C   7943         MOV     R1,#0x43
    319                  }
    320                  if (!macSetState(macState)) {
   \                     ??mscScanProcedure_10:
   \   00004E                ; Setup parameters for call to function macSetState
   \   00004E   12....       LCALL   macSetState & 0xFFFF
   \   000051   E9           MOV     A,R1
   \   000052   700C         JNZ     ??mscScanProcedure_14
    321                      mschRescheduleTask(pTask, MSC_STATE_INITIALIZE_SCAN);
   \   000054                ; Setup parameters for call to function mschRescheduleTask
   \   000054   7900         MOV     R1,#0x0
   \                     ??mscScanProcedure_15:
   \   000056   AA..         MOV     R2,?V0 + 0
   \   000058   AB..         MOV     R3,?V0 + 1
   \   00005A   12....       LCALL   mschRescheduleTask & 0xFFFF
    322                      break;
   \   00005D   02....       LJMP    ??mscScanProcedure_0 & 0xFFFF
    323                  }
    324          
    325                  // Configure CC2430 for scanning
    326                  if (mscInfo.scanType != ORPHAN_SCAN) {
   \                     ??mscScanProcedure_14:
   \   000060   90....       MOV     DPTR,#mscInfo
   \   000063   E0           MOVX    A,@DPTR
   \   000064   6403         XRL     A,#0x3
   \   000066   600C         JZ      ??mscScanProcedure_16
    327                      DISABLE_GLOBAL_INT(); // TBD: Can this line be removed?
   \   000068   C2AF         CLR     0xa8.7
    328                      WRITE_RFR16(PANID, 0xFFFF);
   \   00006A   74FF         MOV     A,#-0x1
   \   00006C   90DF4B       MOV     DPTR,#-0x20b5
   \   00006F   F0           MOVX    @DPTR,A
   \   000070   90DF4C       MOV     DPTR,#-0x20b4
   \   000073   F0           MOVX    @DPTR,A
    329                  }
    330          
    331                  // Increment the RX on counter, so that other events don't turn it off
    332                  mrxIncrOnCounter();
   \                     ??mscScanProcedure_16:
   \   000074                ; Setup parameters for call to function mrxIncrOnCounter
   \   000074   90....       MOV     DPTR,#(mrxIncrOnCounter & 0xffff)
   \   000077   74..         MOV     A,#((mrxIncrOnCounter >> 16) & 0xff)
   \   000079   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    333          
    334                  pTask->state = MSC_STATE_UNREQUEST_INDIRECT;
   \   00007C   7401         MOV     A,#0x1
   \                     ??mscScanProcedure_17:
   \   00007E   8E82         MOV     DPL,R6
   \   000080   8F83         MOV     DPH,R7
   \   000082   F0           MOVX    @DPTR,A
   \   000083   02....       LJMP    ??mscScanProcedure_0 & 0xFFFF
    335                  break;
    336          
    337              case MSC_STATE_UNREQUEST_INDIRECT:
    338          
    339                  // At this point we can be sure that RX has been shut down, that the RX engine is not running, including
    340                  // the high-priority processing tasks. There are no direct packet transmissions in progress, because
    341                  // that would have blocked this task. The beacon transmission and reception tasks, and the force RX off
    342                  // function are blocked by the MAC state.
    343          
    344          #if MAC_OPT_FFD
    345                  // Unrequest all indirect packets to avoid that the miqTransmitRequestedPackets() function eats up the
    346                  // whole task pool (requested packets are usually transmitted in between).
    347                  miqUnrequestAll();
   \                     ??mscScanProcedure_2:
   \   000086                ; Setup parameters for call to function miqUnrequestAll
   \   000086   12....       LCALL   miqUnrequestAll & 0xFFFF
    348          #endif
    349          
    350                  // Remove invalid channels from the mask, and go to the first channel to be scanned
    351                  mscInfo.pScanResult->unscannedChannels = mscInfo.scanChannels;
   \   000089   90....       MOV     DPTR,#(mscInfo + 6)
   \   00008C   E0           MOVX    A,@DPTR
   \   00008D   F5..         MOV     ?V0 + 4,A
   \   00008F   A3           INC     DPTR
   \   000090   E0           MOVX    A,@DPTR
   \   000091   F5..         MOV     ?V0 + 5,A
   \   000093   90....       MOV     DPTR,#(mscInfo + 1)
   \   000096   78..         MOV     R0,#?V0 + 0
   \   000098   12....       LCALL   ?L_MOV_X
   \   00009B   85..82       MOV     DPL,?V0 + 4
   \   00009E   85..83       MOV     DPH,?V0 + 5
   \   0000A1   A3           INC     DPTR
   \   0000A2   E5..         MOV     A,?V0 + 0
   \   0000A4   F0           MOVX    @DPTR,A
   \   0000A5   A3           INC     DPTR
   \   0000A6   E5..         MOV     A,?V0 + 1
   \   0000A8   F0           MOVX    @DPTR,A
   \   0000A9   A3           INC     DPTR
   \   0000AA   E5..         MOV     A,?V0 + 2
   \   0000AC   F0           MOVX    @DPTR,A
   \   0000AD   A3           INC     DPTR
   \   0000AE   E5..         MOV     A,?V0 + 3
   \   0000B0   F0           MOVX    @DPTR,A
    352                  mscInfo.scanChannels &= MSC_VALID_CHANNELS;
   \   0000B1   90....       MOV     DPTR,#__Constant_7fff800
   \   0000B4   78..         MOV     R0,#?V0 + 0
   \   0000B6   12....       LCALL   ?L_MOV_X
   \   0000B9   90....       MOV     DPTR,#(mscInfo + 1)
   \   0000BC   78..         MOV     R0,#?V0 + 0
   \   0000BE   12....       LCALL   ?L_AND_TO_X
    353                  mscInfo.pScanResult->resultListSize = 0;
   \   0000C1   E4           CLR     A
   \   0000C2   85..82       MOV     DPL,?V0 + 4
   \   0000C5   85..83       MOV     DPH,?V0 + 5
   \   0000C8   A3           INC     DPTR
   \   0000C9   A3           INC     DPTR
   \   0000CA   A3           INC     DPTR
   \   0000CB   A3           INC     DPTR
   \   0000CC   A3           INC     DPTR
   \   0000CD   F0           MOVX    @DPTR,A
    354                  mscInfo.currentChannel = 0;
   \   0000CE   90....       MOV     DPTR,#(mscInfo + 8)
   \   0000D1   F0           MOVX    @DPTR,A
    355                  mscInfo.oldPhyCurrentChannel = ppib.phyCurrentChannel;
   \   0000D2   90....       MOV     DPTR,#ppib
   \   0000D5   E0           MOVX    A,@DPTR
   \   0000D6   90....       MOV     DPTR,#(mscInfo + 11)
   \   0000D9   F0           MOVX    @DPTR,A
    356                  if (mscSetNextChannel()) {
   \   0000DA                ; Setup parameters for call to function mscSetNextChannel
   \   0000DA   12....       LCALL   mscSetNextChannel & 0xFFFF
   \   0000DD   E9           MOV     A,R1
   \   0000DE   7003         JNZ     $+5
   \   0000E0   02....       LJMP    ??mscScanProcedure_18 & 0xFFFF
    357                      pTask->state = MSC_STATE_SET_CHANNEL;
   \                     ??mscScanProcedure_19:
   \   0000E3   7402         MOV     A,#0x2
   \   0000E5   8097         SJMP    ??mscScanProcedure_17
    358                  } else {
    359                      pTask->state = MSC_STATE_FINISH;
    360                  }
    361                  break;
    362          
    363              case MSC_STATE_SET_CHANNEL:
    364          
    365                  // Set the timer which will tell us when to move on to the next channel
    366                  mscInfo.channelComplete = FALSE;
   \                     ??mscScanProcedure_3:
   \   0000E7   E4           CLR     A
   \   0000E8   90....       MOV     DPTR,#(mscInfo + 9)
   \   0000EB   F0           MOVX    @DPTR,A
    367          
    368                  // Set the new channel and turn on RX
    369                  msupSetChannel(mscInfo.currentChannel, TRUE);
   \   0000EC                ; Setup parameters for call to function msupSetChannel
   \   0000EC   7A01         MOV     R2,#0x1
   \   0000EE   90....       MOV     DPTR,#(mscInfo + 8)
   \   0000F1   E0           MOVX    A,@DPTR
   \   0000F2   F9           MOV     R1,A
   \   0000F3   12....       LCALL   msupSetChannel & 0xFFFF
    370          
    371                  // Set the channel timeout
    372                  switch (mscInfo.scanType) {
   \   0000F6   90....       MOV     DPTR,#mscInfo
   \   0000F9   E0           MOVX    A,@DPTR
   \   0000FA   12....       LCALL   ?UC_SWITCH_DENSE
   \                     `?<Jumptable for mscScanProcedure>_2`:
   \   0000FD   00           DB        0
   \   0000FE   02           DB        2
   \   0000FF   ....         DW        ??mscScanProcedure_20
   \   000101   ....         DW        ??mscScanProcedure_21
   \   000103   ....         DW        ??mscScanProcedure_20
   \   000105   ....         DW        ??mscScanProcedure_21
    373                  case ENERGY_SCAN:
    374                  case PASSIVE_SCAN:
    375                      mtimSetCallback(mscChannelTimeout, ((UINT32) aBaseSuperframeDuration / (UINT32) aUnitBackoffPeriod) * (((UINT32) 1 << mscInfo.scanDuration) + 1));
   \                     ??mscScanProcedure_21:
   \   000107                ; Setup parameters for call to function mtimSetCallback
   \   000107   75..01       MOV     ?V0 + 4,#0x1
   \   00010A   75..00       MOV     ?V0 + 5,#0x0
   \   00010D   75..00       MOV     ?V0 + 6,#0x0
   \   000110   75..00       MOV     ?V0 + 7,#0x0
   \   000113   90....       MOV     DPTR,#(mscInfo + 5)
   \   000116   E0           MOVX    A,@DPTR
   \   000117   78..         MOV     R0,#?V0 + 4
   \   000119   12....       LCALL   ?L_SHL
   \   00011C   90....       MOV     DPTR,#__Constant_1
   \   00011F   78..         MOV     R0,#?V0 + 4
   \   000121   12....       LCALL   ?L_ADD_X
   \   000124   90....       MOV     DPTR,#__Constant_3

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -