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

📄 mac_tx_engine.lst

📁 zigbee location examples
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   00003A   89..         MOV     ?V0 + 1,R1
     93              pSrcAddr = (ADDRESS   *) ((BYTE   *) pDstAddr + ((dstAddrMode == DEST_ADDR_SHORT) ?
     94                                            2 : 8) + ((*(pPacket->pHeader) & INTRA_PAN_BM) ? 0 : 2));
   \   00003C   7408         MOV     A,#0x8
   \   00003E   6F           XRL     A,R7
   \   00003F   7004         JNZ     ??mtxCommStatusIndication_0
   \   000041   7802         MOV     R0,#0x2
   \   000043   8002         SJMP    ??mtxCommStatusIndication_1
   \                     ??mtxCommStatusIndication_0:
   \   000045   7808         MOV     R0,#0x8
   \                     ??mtxCommStatusIndication_1:
   \   000047   8C82         MOV     DPL,R4
   \   000049   8D83         MOV     DPH,R5
   \   00004B   A3           INC     DPTR
   \   00004C   A3           INC     DPTR
   \   00004D   A3           INC     DPTR
   \   00004E   E0           MOVX    A,@DPTR
   \   00004F   A2E6         MOV     C,0xE0 /* A   */.6
   \   000051   5004         JNC     ??mtxCommStatusIndication_2
   \   000053   7C00         MOV     R4,#0x0
   \   000055   8002         SJMP    ??mtxCommStatusIndication_3
   \                     ??mtxCommStatusIndication_2:
   \   000057   7C02         MOV     R4,#0x2
   \                     ??mtxCommStatusIndication_3:
   \   000059   E5..         MOV     A,?V0 + 0
   \   00005B   28           ADD     A,R0
   \   00005C   F8           MOV     R0,A
   \   00005D   E9           MOV     A,R1
   \   00005E   3400         ADDC    A,#0x0
   \   000060   F9           MOV     R1,A
   \   000061   EC           MOV     A,R4
   \   000062   28           ADD     A,R0
   \   000063   FC           MOV     R4,A
   \   000064   E4           CLR     A
   \   000065   39           ADDC    A,R1
   \   000066   FD           MOV     R5,A
     95          
     96              // Make the call to the higher layer
     97              mlmeCommStatusIndication(*((WORD   *) pTemp), srcAddrMode, pSrcAddr, dstAddrMode, pDstAddr, status);
   \   000067                ; Setup parameters for call to function mlmeCommStatusIndication
   \   000067   78..         MOV     R0,#?V0 + 2
   \   000069   12....       LCALL   ?PUSH_XSTACK_I_ONE
   \   00006C   78..         MOV     R0,#?V0 + 0
   \   00006E   12....       LCALL   ?PUSH_XSTACK_I_TWO
   \   000071   EF           MOV     A,R7
   \   000072   F5..         MOV     ?V0 + 0,A
   \   000074   78..         MOV     R0,#?V0 + 0
   \   000076   12....       LCALL   ?PUSH_XSTACK_I_ONE
   \   000079   EE           MOV     A,R6
   \   00007A   F9           MOV     R1,A
   \   00007B   8A82         MOV     DPL,R2
   \   00007D   8B83         MOV     DPH,R3
   \   00007F   E0           MOVX    A,@DPTR
   \   000080   FA           MOV     R2,A
   \   000081   A3           INC     DPTR
   \   000082   E0           MOVX    A,@DPTR
   \   000083   FB           MOV     R3,A
   \   000084   12....       LCALL   mlmeCommStatusIndication
   \   000087   7404         MOV     A,#0x4
   \   000089   12....       LCALL   ?DEALLOC_XSTACK8
     98          
     99          } // mtxCommStatusIndication
   \   00008C   7F04         MOV     R7,#0x4
   \   00008E   02....       LJMP    ?FUNC_LEAVE_XDATA
    100          
    101          //-------------------------------------------------------------------------------------------------------
    102          //  void mtxFinishTransmission(MAC_ENUM status, MAC_TX_PACKET *pPacket, MAC_TASK_INFO *pTask)
    103          //
    104          //  DESCRIPTION:
    105          //      This function is used to avoid code duplication when finishing a packet transmission (using the
    106          //      TX engine. This function is called by mtxScheduleTransmission(...) as the last step of the
    107          //      transmission procedure.
    108          //
    109          //      This function handles failures for all transmission types, and success for all data, and some
    110          //      MAC commands. The other MAC commands are handled by the RX engine.
    111          //
    112          //  PARAMETERS:
    113          //      MAC_ENUM status
    114          //          The result of the transmission (SUCCESS, CHANNEL_ACCESS_FAILURE, etc.)
    115          //      MAC_TX_PACKET *pPacket
    116          //          A pointer to the packet that was transmitted
    117          //      MAC_TASK_INFO *pTask
    118          //          A pointer to the task running mtxScheduleTransmission(...)
    119          //-------------------------------------------------------------------------------------------------------

   \                                 In segment NEAR_CODE, align 1, keep-with-next
    120          ROOT void mtxFinishTransmission(MAC_ENUM status, MAC_TX_PACKET   *pPacket, MAC_TASK_INFO   *pTask) {
   \                     mtxFinishTransmission:
   \   000000   74F1         MOV     A,#-0xf
   \   000002   12....       LCALL   ?FUNC_ENTER_XDATA
   \   000005                ; Saved register size: 15
   \   000005                ; Auto size: 2
   \   000005   74FE         MOV     A,#-0x2
   \   000007   12....       LCALL   ?ALLOC_XSTACK8
   \   00000A   85..82       MOV     DPL,?XSP + 0
   \   00000D   85..83       MOV     DPH,?XSP + 1
   \   000010   EC           MOV     A,R4
   \   000011   F0           MOVX    @DPTR,A
   \   000012   A3           INC     DPTR
   \   000013   ED           MOV     A,R5
   \   000014   F0           MOVX    @DPTR,A
   \   000015   89..         MOV     ?V0 + 0,R1
   \   000017   EA           MOV     A,R2
   \   000018   FE           MOV     R6,A
   \   000019   EB           MOV     A,R3
   \   00001A   FF           MOV     R7,A
    121              BOOL isMacInternal;
    122              BOOL handleCmdSuccess;
    123              MAC_STATE_TYPE macState;
    124          
    125              // Copy some variables from the packet structure, since we'll release the packet before we make the call to
    126              // the higher layer
    127              isMacInternal = pPacket->txMode & MTX_MODE_MAC_INTERNAL_BM;
   \   00001B   EE           MOV     A,R6
   \   00001C   2486         ADD     A,#-0x7a
   \   00001E   F582         MOV     DPL,A
   \   000020   EF           MOV     A,R7
   \   000021   3400         ADDC    A,#0x0
   \   000023   F583         MOV     DPH,A
   \   000025   E0           MOVX    A,@DPTR
   \   000026   5404         ANL     A,#0x4
   \   000028   FA           MOV     R2,A
    128              handleCmdSuccess = (pPacket->txMode & MTX_MODE_SCAN_RELATED_BM) ||
    129                                 (pPacket->commandType == CMD_ASSOCIATION_RESPONSE) ||
    130                                 (pPacket->commandType == CMD_DISASSOCIATION_NOTIFICATION) ||
    131                                 (pPacket->commandType == CMD_COORDINATOR_REALIGNMENT);
   \   000029   EE           MOV     A,R6
   \   00002A   2483         ADD     A,#-0x7d
   \   00002C   F8           MOV     R0,A
   \   00002D   EF           MOV     A,R7
   \   00002E   3400         ADDC    A,#0x0
   \   000030   F9           MOV     R1,A
   \   000031   E0           MOVX    A,@DPTR
   \   000032   A2E3         MOV     C,0xE0 /* A   */.3
   \   000034   4015         JC      ??mtxFinishTransmission_0
   \   000036   8882         MOV     DPL,R0
   \   000038   8983         MOV     DPH,R1
   \   00003A   E0           MOVX    A,@DPTR
   \   00003B   FB           MOV     R3,A
   \   00003C   7402         MOV     A,#0x2
   \   00003E   6B           XRL     A,R3
   \   00003F   600A         JZ      ??mtxFinishTransmission_0
   \   000041   7403         MOV     A,#0x3
   \   000043   6B           XRL     A,R3
   \   000044   6005         JZ      ??mtxFinishTransmission_0
   \   000046   7408         MOV     A,#0x8
   \   000048   6B           XRL     A,R3
   \   000049   7004         JNZ     ??mtxFinishTransmission_1
   \                     ??mtxFinishTransmission_0:
   \   00004B   7B01         MOV     R3,#0x1
   \   00004D   8002         SJMP    ??mtxFinishTransmission_2
   \                     ??mtxFinishTransmission_1:
   \   00004F   7B00         MOV     R3,#0x0
    132          
    133              mtxInfo.status = MTX_STATUS_FINISHED;
   \                     ??mtxFinishTransmission_2:
   \   000051   7407         MOV     A,#0x7
   \   000053   90....       MOV     DPTR,#(mtxInfo + 4)
   \   000056   F0           MOVX    @DPTR,A
    134          
    135              // Make the call to the higher layer
    136              switch (pPacket->type) {
   \   000057   EE           MOV     A,R6
   \   000058   2480         ADD     A,#-0x80
   \   00005A   F582         MOV     DPL,A
   \   00005C   EF           MOV     A,R7
   \   00005D   3400         ADDC    A,#0x0
   \   00005F   F583         MOV     DPH,A
   \   000061   E0           MOVX    A,@DPTR
   \   000062   12....       LCALL   ?UC_SWITCH_DENSE
   \                     `?<Jumptable for mtxFinishTransmission>_0`:
   \   000065   01           DB        1
   \   000066   02           DB        2
   \   000067   ....         DW        ??mtxFinishTransmission_3
   \   000069   ....         DW        ??mtxFinishTransmission_4
   \   00006B   ....         DW        ??mtxFinishTransmission_3
   \   00006D   ....         DW        ??mtxFinishTransmission_5
    137              case FT_DATA:
    138                  if (!isMacInternal) mcpsDataConfirm(status, pPacket->msduHandle);
   \                     ??mtxFinishTransmission_4:
   \   00006F   EA           MOV     A,R2
   \   000070   6003         JZ      $+5
   \   000072   02....       LJMP    ??mtxFinishTransmission_3
   \   000075                ; Setup parameters for call to function mcpsDataConfirm
   \   000075   EE           MOV     A,R6
   \   000076   2482         ADD     A,#-0x7e
   \   000078   F582         MOV     DPL,A
   \   00007A   EF           MOV     A,R7
   \   00007B   3400         ADDC    A,#0x0
   \   00007D   F583         MOV     DPH,A
   \   00007F   E0           MOVX    A,@DPTR
   \   000080   FA           MOV     R2,A
   \   000081   A9..         MOV     R1,?V0 + 0
   \   000083   12....       LCALL   mcpsDataConfirm
   \   000086   02....       LJMP    ??mtxFinishTransmission_3
    139                  break;
    140              case FT_MAC_COMMAND:
    141          
    142                  // SUCCESS is usually handled by the RX engine or not at all
    143                  if ((status == SUCCESS) && !handleCmdSuccess) break;
   \                     ??mtxFinishTransmission_5:
   \   000089   E5..         MOV     A,?V0 + 0
   \   00008B   7006         JNZ     ??mtxFinishTransmission_6
   \   00008D   EB           MOV     A,R3
   \   00008E   7003         JNZ     $+5
   \   000090   02....       LJMP    ??mtxFinishTransmission_3
    144          
    145                  switch (pPacket->commandType) {
   \                     ??mtxFinishTransmission_6:
   \   000093   8882         MOV     DPL,R0
   \   000095   8983         MOV     DPH,R1
   \   000097   E0           MOVX    A,@DPTR
   \   000098   12....       LCALL   ?UC_SWITCH_DENSE
   \                     `?<Jumptable for mtxFinishTransmission>_1`:
   \   00009B   01           DB        1
   \   00009C   07           DB        7
   \   00009D   ....         DW        ??mtxFinishTransmission_3
   \   00009F   ....         DW        ??mtxFinishTransmission_7
   \   0000A1   ....         DW        ??mtxFinishTransmission_8
   \   0000A3   ....         DW        ??mtxFinishTransmission_9
   \   0000A5   ....         DW        ??mtxFinishTransmission_10
   \   0000A7   ....         DW        ??mtxFinishTransmission_3
   \   0000A9   ....         DW        ??mtxFinishTransmission_11
   \   0000AB   ....         DW        ??mtxFinishTransmission_12
   \   0000AD   ....         DW        ??mtxFinishTransmission_8
    146                  case CMD_ASSOCIATION_REQUEST:
    147                      macSetState(MAC_STATE_DEFAULT);
   \                     ??mtxFinishTransmission_7:
   \   0000AF                ; Setup parameters for call to function macSetState
   \   0000AF   7900         MOV     R1,#0x0
   \   0000B1   12....       LCALL   macSetState
    148                      mlmeAssociateConfirm(0xFFFF, status);
   \   0000B4                ; Setup parameters for call to function mlmeAssociateConfirm
   \                     ??mtxFinishTransmission_13:
   \   0000B4   A9..         MOV     R1,?V0 + 0

⌨️ 快捷键说明

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