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

📄 mac_indirect_polling.lst

📁 zigbee location examples
💻 LST
📖 第 1 页 / 共 4 页
字号:
   \   000017                ; Setup parameters for call to function macSetState
   \   000017   7900         MOV     R1,#0x0
   \   000019   12....       LCALL   macSetState & 0xFFFF
    200          
    201              // Remove the task
    202              mschRemoveTask(pTask->priority, 0);
   \   00001C                ; Setup parameters for call to function mschRemoveTask
   \   00001C   7A00         MOV     R2,#0x0
   \   00001E   8E82         MOV     DPL,R6
   \   000020   8F83         MOV     DPH,R7
   \   000022   A3           INC     DPTR
   \   000023   A3           INC     DPTR
   \   000024   A3           INC     DPTR
   \   000025   A3           INC     DPTR
   \   000026   A3           INC     DPTR
   \   000027   A3           INC     DPTR
   \   000028   A3           INC     DPTR
   \   000029   A3           INC     DPTR
   \   00002A   E0           MOVX    A,@DPTR
   \   00002B   F9           MOV     R1,A
   \   00002C   12....       LCALL   mschRemoveTask & 0xFFFF
    203          
    204              // Notify the higher layer...
    205              switch (oldState) {
   \   00002F   E5..         MOV     A,?V0 + 0
   \   000031   12....       LCALL   ?UC_SWITCH_DENSE
   \                     `?<Jumptable for mipDataRequestTimeoutTask>_0`:
   \   000034   21           DB        33
   \   000035   01           DB        1
   \   000036   ....         DW        ??mipDataRequestTimeoutTask_0
   \   000038   ....         DW        ??mipDataRequestTimeoutTask_1
   \   00003A   ....         DW        ??mipDataRequestTimeoutTask_2
    206              case MAC_STATE_MANUAL_DATA_REQUEST_SENT: mlmePollConfirm(NO_DATA); break;
   \                     ??mipDataRequestTimeoutTask_1:
   \   00003C                ; Setup parameters for call to function mlmePollConfirm
   \   00003C   79EB         MOV     R1,#-0x15
   \   00003E   12....       LCALL   mlmePollConfirm & 0xFFFF
   \   000041   8009         SJMP    ??mipDataRequestTimeoutTask_0
    207              case MAC_STATE_ASSOC_DATA_REQUEST_SENT:  mlmeAssociateConfirm(0xFFFF, NO_DATA); break;
   \                     ??mipDataRequestTimeoutTask_2:
   \   000043                ; Setup parameters for call to function mlmeAssociateConfirm
   \   000043   79EB         MOV     R1,#-0x15
   \   000045   7AFF         MOV     R2,#-0x1
   \   000047   7BFF         MOV     R3,#-0x1
   \   000049   12....       LCALL   mlmeAssociateConfirm & 0xFFFF
    208              default: break;
    209              }
    210          
    211          } // mipDataRequestTimeoutTask
   \                     ??mipDataRequestTimeoutTask_0:
   \   00004C                REQUIRE ?Subroutine1
   \   00004C                ; // Fall through to label ?Subroutine1

   \                                 In segment NEAR_CODE, align 1, keep-with-next
   \                     ?Subroutine1:
   \   000000   7F01         MOV     R7,#0x1
   \   000002   02....       LJMP    ?BANKED_LEAVE_XDATA
    212          
    213          
    214          
    215          
    216          //-------------------------------------------------------------------------------------------------------
    217          //  void mipDataRequestTimeout(void)
    218          //
    219          //  DESCRIPTION:
    220          //      This timeout will occur when no response has been received after a data request.
    221          //-------------------------------------------------------------------------------------------------------

   \                                 In segment NEAR_CODE, align 1, keep-with-next
    222          void mipDataRequestTimeout(void) NEAR {
   \                     mipDataRequestTimeout:
   \   000000   74F5         MOV     A,#-0xb
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 11
   \   000005                ; Auto size: 0
    223              if (!mschAddTask(mschReserveTask(), MAC_TASK_PRI_HIGH, mipDataRequestTimeoutTask, 0)) {
   \   000005                ; Setup parameters for call to function mschAddTask
   \   000005   75....       MOV     ?V0 + 0,#(mipDataRequestTimeoutTask & 0xff)
   \   000008   75....       MOV     ?V0 + 1,#((mipDataRequestTimeoutTask >> 8) & 0xff)
   \   00000B   75....       MOV     ?V0 + 2,#((mipDataRequestTimeoutTask >> 16) & 0xff)
   \   00000E   78..         MOV     R0,#?V0 + 0
   \   000010   12....       LCALL   ?PUSH_XSTACK_I_THREE
   \   000013   7A02         MOV     R2,#0x2
   \   000015   EA           MOV     A,R2
   \   000016   C0E0         PUSH    A
   \   000018                ; Setup parameters for call to function mschReserveTask
   \   000018   12....       LCALL   mschReserveTask & 0xFFFF
   \   00001B   E4           CLR     A
   \   00001C   FC           MOV     R4,A
   \   00001D   FD           MOV     R5,A
   \   00001E   D0E0         POP     A
   \   000020   FA           MOV     R2,A
   \   000021   12....       LCALL   mschAddTask & 0xFFFF
   \   000024   7403         MOV     A,#0x3
   \   000026   12....       LCALL   ?DEALLOC_XSTACK8
   \   000029   E9           MOV     A,R1
   \   00002A   7014         JNZ     ??mipDataRequestTimeout_0
    224                  mtimSetCallback(mipDataRequestTimeout, 10);
   \   00002C                ; Setup parameters for call to function mtimSetCallback
   \   00002C   90....       MOV     DPTR,#__Constant_a
   \   00002F   12....       LCALL   ?PUSH_XSTACK8_X_FOUR
   \   000032   79..         MOV     R1,#(mipDataRequestTimeout & 0xff)
   \   000034   7A..         MOV     R2,#((mipDataRequestTimeout >> 8) & 0xff)
   \   000036   7B..         MOV     R3,#((mipDataRequestTimeout >> 16) & 0xff)
   \   000038   12....       LCALL   mtimSetCallback & 0xFFFF
   \   00003B   7404         MOV     A,#0x4
   \   00003D   12....       LCALL   ?DEALLOC_XSTACK8
    225              }
    226          } // mipDataRequestTimeout
   \                     ??mipDataRequestTimeout_0:
   \   000040                REQUIRE ?Subroutine2
   \   000040                ; // Fall through to label ?Subroutine2

   \                                 In segment NEAR_CODE, align 1, keep-with-next
   \                     ?Subroutine2:
   \   000000   7F03         MOV     R7,#0x3
   \   000002   02....       LJMP    ?BANKED_LEAVE_XDATA
    227          
    228          
    229          
    230          
    231          //-------------------------------------------------------------------------------------------------------
    232          //  MAC_STATE_TYPE mipCancelDataRequestTimeout(void)
    233          //
    234          //  DESCRIPTION:
    235          //      Cancels the data request timeout. This function should be used when a valid or invalid "indirect
    236          //      packet" has been received. The MAC state is set back to the default state.
    237          //
    238          //  RETURN VALUE:
    239          //      MAC_STATE_TYPE
    240          //          The MAC state before resetting it to MAC_STATE_DEFAULT
    241          //-------------------------------------------------------------------------------------------------------

   \                                 In segment NEAR_CODE, align 1, keep-with-next
    242          MAC_STATE_TYPE mipCancelDataRequestTimeout(void) NEAR {
   \                     mipCancelDataRequestTimeout:
   \   000000   74F7         MOV     A,#-0x9
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 9
   \   000005                ; Auto size: 0
    243              MAC_STATE_TYPE macState = MAC_STATE_DEFAULT;
   \   000005   7E00         MOV     R6,#0x0
    244          
    245              if (mtimCancelCallback(mipDataRequestTimeout)) {
   \   000007                ; Setup parameters for call to function mtimCancelCallback
   \   000007   79..         MOV     R1,#(mipDataRequestTimeout & 0xff)
   \   000009   7A..         MOV     R2,#((mipDataRequestTimeout >> 8) & 0xff)
   \   00000B   7B..         MOV     R3,#((mipDataRequestTimeout >> 16) & 0xff)
   \   00000D   12....       LCALL   mtimCancelCallback & 0xFFFF
   \   000010   E9           MOV     A,R1
   \   000011   6016         JZ      ??mipCancelDataRequestTimeout_0
    246                  mrxDecrOnCounter();
   \   000013                ; Setup parameters for call to function mrxDecrOnCounter
   \   000013   90....       MOV     DPTR,#(mrxDecrOnCounter & 0xffff)
   \   000016   74..         MOV     A,#((mrxDecrOnCounter >> 16) & 0xff)
   \   000018   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    247                  DISABLE_GLOBAL_INT();
   \   00001B   C2AF         CLR     0xa8.7
    248                  macState = macInfo.state;
   \   00001D   90....       MOV     DPTR,#macInfo
   \   000020   E0           MOVX    A,@DPTR
   \   000021   FE           MOV     R6,A
    249                  macSetState(MAC_STATE_DEFAULT);
   \   000022                ; Setup parameters for call to function macSetState
   \   000022   7900         MOV     R1,#0x0
   \   000024   12....       LCALL   macSetState & 0xFFFF
    250                  ENABLE_GLOBAL_INT();
   \   000027   D2AF         SETB    0xa8.7
    251              }
    252              return macState;
   \                     ??mipCancelDataRequestTimeout_0:
   \   000029   EE           MOV     A,R6
   \   00002A   F9           MOV     R1,A
   \   00002B   80..         SJMP    ?Subroutine1
    253          } // mipCancelDataRequestTimeout
    254          
    255          
    256          
    257          
    258          /*******************************************************************************************************
    259           *******************************************************************************************************
    260           **************************           ASSOCIATION RESPONSE POLLING            **************************
    261           *******************************************************************************************************
    262           *******************************************************************************************************/
    263          
    264          
    265          
    266          
    267          //-------------------------------------------------------------------------------------------------------
    268          //  MAC_ENUM mipTransmitAssocDataRequest(void)
    269          //
    270          //  DESCRIPTION:
    271          //      Tranmits an the data request packet that follows a successful association request packet. This
    272          //      packet is transmitted when the data is indicated in the beacon pending list, or the response
    273          //      time has passed.
    274          //
    275          //  RETURN VALUE:
    276          //      BOOL
    277          //          The association request was transmitted
    278          //-------------------------------------------------------------------------------------------------------

   \                                 In segment NEAR_CODE, align 1, keep-with-next
    279          ROOT MAC_ENUM mipTransmitAssocDataRequest(void) {
   \                     mipTransmitAssocDataRequest:
   \   000000   74F8         MOV     A,#-0x8
   \   000002   12....       LCALL   ?FUNC_ENTER_XDATA
   \   000005                ; Saved register size: 8
   \   000005                ; Auto size: 0
    280              BOOL securityEnable;
    281          
    282          #if MAC_OPT_SECURITY
    283              securityEnable = GET_MF(MF_SECURE_ASSOC);
    284          #else
    285              securityEnable = FALSE;
    286          #endif
    287          
    288              // Set automatic polling mode
    289              if (!macSetState(MAC_STATE_TX_ASSOC_DATA_REQUEST)) return SUCCESS;
   \   000005                ; Setup parameters for call to function macSetState
   \   000005   7912         MOV     R1,#0x12
   \   000007   12....       LCALL   macSetState
   \   00000A   E9           MOV     A,R1
   \   00000B   7004         JNZ     ??mipTransmitAssocDataRequest_0
   \   00000D   7900         MOV     R1,#0x0
   \   00000F   8036         SJMP    ??mipTransmitAssocDataRequest_1
    290          
    291              // Transmit the data request
    292              if (mpib.macCoordShortAddress < 0xFFFE) {
   \                     ??mipTransmitAssocDataRequest_0:
   \   000011   90....       MOV     DPTR,#(mpib + 28)
   \   000014   E0           MOVX    A,@DPTR
   \   000015   FA           MOV     R2,A
   \   000016   A3           INC     DPTR
   \   000017   E0           MOVX    A,@DPTR
   \   000018   FB           MOV     R3,A
   \   000019   90....       MOV     DPTR,#(mpib + 22)
   \   00001C   C3           CLR     C
   \   00001D   E0           MOVX    A,@DPTR
   \   00001E   94FE         SUBB    A,#-0x2
   \   000020   A3           INC     DPTR
   \   000021   E0           MOVX    A,@DPTR
   \   000022   94FF         SUBB    A,#-0x1
   \   000024   75..00       MOV     ?V0 + 0,#0x0
   \   000027   78..         MOV     R0,#?V0 + 0
   \   000029   500B         JNC     ??mipTransmitAssocDataRequest_2
    293                  return mipTransmitDataRequest(AM_SHORT_16, mpib.macPANId, (ADDRESS   *) &mpib.macCoordShortAddress, securityEnable);
   \   00002B                ; Setup parameters for call to function mipTransmitDataRequest
   \   00002B   12....       LCALL   ?PUSH_XSTACK_I_ONE
   \   00002E   7C..         MOV     R4,#((mpib + 22) & 0xff)
   \   000030   7D..         MOV     R5,#(((mpib + 22) >> 8) & 0xff)

⌨️ 快捷键说明

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