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

📄 mac_beacon_handler.lst

📁 zigbee location examples
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \                     mbcnTxPeriodicalBeaconTask:
   \   000000   74F0         MOV     A,#-0x10
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 16
   \   000005                ; Auto size: 6
   \   000005   74FA         MOV     A,#-0x6
   \   000007   12....       LCALL   ?ALLOC_XSTACK8
   \   00000A   85..82       MOV     DPL,?XSP + 0
   \   00000D   85..83       MOV     DPH,?XSP + 1
   \   000010   EA           MOV     A,R2
   \   000011   F0           MOVX    @DPTR,A
   \   000012   A3           INC     DPTR
   \   000013   EB           MOV     A,R3
   \   000014   F0           MOVX    @DPTR,A
    169              static UINT32 oldBeaconInterval;
    170              MAC_TX_PACKET   *pPacket = mbcnInfo.pTxPacket;
   \   000015   90....       MOV     DPTR,#(mbcnInfo + 2)
   \   000018   E0           MOVX    A,@DPTR
   \   000019   F8           MOV     R0,A
   \   00001A   A3           INC     DPTR
   \   00001B   E0           MOVX    A,@DPTR
   \   00001C   F9           MOV     R1,A
   \   00001D   7402         MOV     A,#0x2
   \   00001F   12....       LCALL   ?XSTACK_DISP0_8
   \   000022   E8           MOV     A,R0
   \   000023   F0           MOVX    @DPTR,A
   \   000024   A3           INC     DPTR
   \   000025   E9           MOV     A,R1
   \   000026   F0           MOVX    @DPTR,A
    171          
    172              switch (pTask->state) {
   \   000027   85..82       MOV     DPL,?XSP + 0
   \   00002A   85..83       MOV     DPH,?XSP + 1
   \   00002D   E0           MOVX    A,@DPTR
   \   00002E   2408         ADD     A,#0x8
   \   000030   FE           MOV     R6,A
   \   000031   A3           INC     DPTR
   \   000032   E0           MOVX    A,@DPTR
   \   000033   3400         ADDC    A,#0x0
   \   000035   FF           MOV     R7,A
   \   000036   85..82       MOV     DPL,?XSP + 0
   \   000039   85..83       MOV     DPH,?XSP + 1
   \   00003C   E0           MOVX    A,@DPTR
   \   00003D   2405         ADD     A,#0x5
   \   00003F   F8           MOV     R0,A
   \   000040   A3           INC     DPTR
   \   000041   E0           MOVX    A,@DPTR
   \   000042   3400         ADDC    A,#0x0
   \   000044   F9           MOV     R1,A
   \   000045   7404         MOV     A,#0x4
   \   000047   12....       LCALL   ?XSTACK_DISP0_8
   \   00004A   E8           MOV     A,R0
   \   00004B   F0           MOVX    @DPTR,A
   \   00004C   A3           INC     DPTR
   \   00004D   E9           MOV     A,R1
   \   00004E   F0           MOVX    @DPTR,A
   \   00004F   7404         MOV     A,#0x4
   \   000051   12....       LCALL   ?XSTACK_DISP0_8
   \   000054   E0           MOVX    A,@DPTR
   \   000055   F8           MOV     R0,A
   \   000056   A3           INC     DPTR
   \   000057   E0           MOVX    A,@DPTR
   \   000058   F583         MOV     DPH,A
   \   00005A   8882         MOV     DPL,R0
   \   00005C   E0           MOVX    A,@DPTR
   \   00005D   12....       LCALL   ?UC_SWITCH_DENSE
   \                     `?<Jumptable for mbcnTxPeriodicalBeaconTask>_0`:
   \   000060   00           DB        0
   \   000061   01           DB        1
   \   000062   ....         DW        ??mbcnTxPeriodicalBeaconTask_0
   \   000064   ....         DW        ??mbcnTxPeriodicalBeaconTask_1
   \   000066   ....         DW        ??mbcnTxPeriodicalBeaconTask_2
    173              case MBCN_SET_NEXT_CALLBACK_PREPTX:
    174          
    175                  // Set the RF channel
    176                  msupSetChannel(ppib.phyCurrentChannel, FALSE);
   \                     ??mbcnTxPeriodicalBeaconTask_1:
   \   000068                ; Setup parameters for call to function msupSetChannel
   \   000068   7A00         MOV     R2,#0x0
   \   00006A   90....       MOV     DPTR,#ppib
   \   00006D   E0           MOVX    A,@DPTR
   \   00006E   F9           MOV     R1,A
   \   00006F   12....       LCALL   msupSetChannel & 0xFFFF
    177          
    178                  // Update buffered PIB attributes
    179                  oldBeaconInterval = msupCalcBeaconInterval();
   \   000072                ; Setup parameters for call to function msupCalcBeaconInterval
   \   000072   12....       LCALL   msupCalcBeaconInterval & 0xFFFF
   \   000075   8A..         MOV     ?V0 + 0,R2
   \   000077   8B..         MOV     ?V0 + 1,R3
   \   000079   8C..         MOV     ?V0 + 2,R4
   \   00007B   8D..         MOV     ?V0 + 3,R5
   \   00007D   90....       MOV     DPTR,#??oldBeaconInterval
   \   000080   78..         MOV     R0,#?V0 + 0
   \   000082   12....       LCALL   ?L_MOV_TO_X
    180                  mbcnUpdateBufferedPibAttributes();
   \   000085                ; Setup parameters for call to function mbcnUpdateBufferedPibAttributes
   \   000085   90....       MOV     DPTR,#(mbcnUpdateBufferedPibAttributes & 0xffff)
   \   000088   74..         MOV     A,#((mbcnUpdateBufferedPibAttributes >> 16) & 0xff)
   \   00008A   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    181          
    182                  // Transmit the beacon, unless we're in scan mode (just increment the sequence number)
    183                  if (macInfo.state & MAC_STATE_SCAN_BM) {
   \   00008D   90....       MOV     DPTR,#macInfo
   \   000090   E0           MOVX    A,@DPTR
   \   000091   A2E6         MOV     C,0xE0 /* A   */.6
   \   000093   5009         JNC     ??mbcnTxPeriodicalBeaconTask_3
    184                      mpib.macBSN++;
   \   000095   90....       MOV     DPTR,#(mpib + 13)
   \   000098   E0           MOVX    A,@DPTR
   \   000099   04           INC     A
   \   00009A   F0           MOVX    @DPTR,A
    185                      mschRemoveTask(pTask->priority, MSCH_KEEP_TASK_RESERVED_BM | MSCH_KEEP_TASK_IN_PROGRESS_BM);
   \   00009B                ; Setup parameters for call to function mschRemoveTask
   \   00009B   02....       LJMP    ??mbcnTxPeriodicalBeaconTask_4
    186          
    187                  } else {
    188          
    189                      // TBD: Set mpib.macBeaconTxTime (here?)
    190          
    191                      // Unrequest all indirect packets, and decrement timeToLive
    192                      miqUnrequestAll();
   \                     ??mbcnTxPeriodicalBeaconTask_3:
   \   00009E                ; Setup parameters for call to function miqUnrequestAll
   \   00009E   12....       LCALL   miqUnrequestAll & 0xFFFF
    193                      miqDecrTimeToLive();
   \   0000A1                ; Setup parameters for call to function miqDecrTimeToLive
   \   0000A1   12....       LCALL   miqDecrTimeToLive & 0xFFFF
    194          
    195                      // Create the task that later on will remove expired packets
    196                      mschAddTask(mschReserveTask(), MAC_TASK_PRI_MEDIUM, miqExpireIndirectPacketsTask, NULL);
   \   0000A4                ; Setup parameters for call to function mschAddTask
   \   0000A4   75....       MOV     ?V0 + 0,#(miqExpireIndirectPacketsTask & 0xff)
   \   0000A7   75....       MOV     ?V0 + 1,#((miqExpireIndirectPacketsTask >> 8) & 0xff)
   \   0000AA   75....       MOV     ?V0 + 2,#((miqExpireIndirectPacketsTask >> 16) & 0xff)
   \   0000AD   78..         MOV     R0,#?V0 + 0
   \   0000AF   12....       LCALL   ?PUSH_XSTACK_I_THREE
   \   0000B2   7A01         MOV     R2,#0x1
   \   0000B4   EA           MOV     A,R2
   \   0000B5   C0E0         PUSH    A
   \   0000B7                ; Setup parameters for call to function mschReserveTask
   \   0000B7   12....       LCALL   mschReserveTask & 0xFFFF
   \   0000BA   E4           CLR     A
   \   0000BB   FC           MOV     R4,A
   \   0000BC   FD           MOV     R5,A
   \   0000BD   D0E0         POP     A
   \   0000BF   FA           MOV     R2,A
   \   0000C0   12....       LCALL   mschAddTask & 0xFFFF
   \   0000C3   7403         MOV     A,#0x3
   \   0000C5   12....       LCALL   ?DEALLOC_XSTACK8
    197          
    198                      // Generate the beacon frame
    199                      mbcnPrepareBeacon(pPacket);
   \   0000C8                ; Setup parameters for call to function mbcnPrepareBeacon
   \   0000C8   7402         MOV     A,#0x2
   \   0000CA   12....       LCALL   ?XSTACK_DISP0_8
   \   0000CD   E0           MOVX    A,@DPTR
   \   0000CE   FA           MOV     R2,A
   \   0000CF   A3           INC     DPTR
   \   0000D0   E0           MOVX    A,@DPTR
   \   0000D1   FB           MOV     R3,A
   \   0000D2   90....       MOV     DPTR,#(mbcnPrepareBeacon & 0xffff)
   \   0000D5   74..         MOV     A,#((mbcnPrepareBeacon >> 16) & 0xff)
   \   0000D7   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    200                      pPacket->slotted = TRUE;
   \   0000DA   7402         MOV     A,#0x2
   \   0000DC   12....       LCALL   ?XSTACK_DISP0_8
   \   0000DF   E0           MOVX    A,@DPTR
   \   0000E0   2487         ADD     A,#-0x79
   \   0000E2   F8           MOV     R0,A
   \   0000E3   A3           INC     DPTR
   \   0000E4   E0           MOVX    A,@DPTR
   \   0000E5   3400         ADDC    A,#0x0
   \   0000E7   F9           MOV     R1,A
   \   0000E8   8882         MOV     DPL,R0
   \   0000EA   8983         MOV     DPH,R1
   \   0000EC   7401         MOV     A,#0x1
   \   0000EE   F0           MOVX    @DPTR,A
    201                      pTask->state = MBCN_START_TRANSMISSION;
   \   0000EF   7404         MOV     A,#0x4
   \   0000F1   12....       LCALL   ?XSTACK_DISP0_8
   \   0000F4   E0           MOVX    A,@DPTR
   \   0000F5   F8           MOV     R0,A
   \   0000F6   A3           INC     DPTR
   \   0000F7   E0           MOVX    A,@DPTR
   \   0000F8   F583         MOV     DPH,A
   \   0000FA   8882         MOV     DPL,R0
   \   0000FC   7401         MOV     A,#0x1
   \                     ??mbcnTxPeriodicalBeaconTask_5:
   \   0000FE   F0           MOVX    @DPTR,A
   \   0000FF   02....       LJMP    ??mbcnTxPeriodicalBeaconTask_0 & 0xFFFF
    202                  }
    203                  break;
    204          
    205              case MBCN_START_TRANSMISSION:
    206          
    207                  // Remain in this state until the beacon transmission can begin
    208                  if (T2_GET_OVERFLOW_COUNTER() == (oldBeaconInterval - MBCN_TX_STARTUP_OVERHEAD)) {
   \                     ??mbcnTxPeriodicalBeaconTask_2:
   \   000102                ; Setup parameters for call to function T2_GET_OVERFLOW_COUNTER
   \   000102   90....       MOV     DPTR,#(T2_GET_OVERFLOW_COUNTER & 0xffff)
   \   000105   74..         MOV     A,#((T2_GET_OVERFLOW_COUNTER >> 16) & 0xff)
   \   000107   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   00010A   8A..         MOV     ?V0 + 4,R2
   \   00010C   8B..         MOV     ?V0 + 5,R3
   \   00010E   8C..         MOV     ?V0 + 6,R4
   \   000110   8D..         MOV     ?V0 + 7,R5
   \   000112   90....       MOV     DPTR,#__Constant_fffffffc
   \   000115   78..         MOV     R0,#?V0 + 0
   \   000117   12....       LCALL   ?L_MOV_X
   \   00011A   7583..       MOV     DPH,#((??oldBeaconInterval >> 8) & 0xff)
   \   00011D   7582..       MOV     DPL,#(??oldBeaconInterval & 0xff)
   \   000120   78..         MOV     R0,#?V0 + 0
   \   000122   12....       LCALL   ?L_ADD_X
   \   000125   78..         MOV     R0,#?V0 + 4
   \   000127   79..         MOV     R1,#?V0 + 0
   \   000129   12....       LCALL   ?L_EQ
   \   00012C   6003         JZ      $+5
   \   00012E   02....       LJMP    ??mbcnTxPeriodicalBeaconTask_6 & 0xFFFF
    209          
    210                      // Schedule backoff slot counter reset (which in turn schedules the next mbcnTxPeriodicalBeacon)
    211                      mtimSetCallback(mtxResetBosCounter, MBCN_TX_STARTUP_OVERHEAD);
   \   000131                ; Setup parameters for call to function mtimSetCallback
   \   000131   90....       MOV     DPTR,#__Constant_4
   \   000134   12....       LCALL   ?PUSH_XSTACK8_X_FOUR
   \   000137   79..         MOV     R1,#(mtxResetBosCounter & 0xff)

⌨️ 快捷键说明

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