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

📄 mac_indirect_polling.lst

📁 zigbee location examples
💻 LST
📖 第 1 页 / 共 4 页
字号:
    104                  return RESOURCE_SHORTAGE;
   \   000034   80E6         SJMP    ??mipTransmitDataRequest_2
    105              }
    106          
    107              // Set TX options
    108              txOptions = TX_OPT_ACK_REQ;
    109          #if MAC_OPT_SECURITY
    110              if (securityEnable) {
    111                  txOptions |= TX_OPT_SECURITY_ENABLE;
    112              }
    113          #endif
    114          
    115              // TX mode
    116              pPacket->txMode = MTX_MODE_USE_CSMACA_BM;
   \                     ??mipTransmitDataRequest_4:
   \   000036   E5..         MOV     A,?V0 + 0
   \   000038   2486         ADD     A,#-0x7a
   \   00003A   F582         MOV     DPL,A
   \   00003C   E5..         MOV     A,?V0 + 1
   \   00003E   3400         ADDC    A,#0x0
   \   000040   F583         MOV     DPH,A
   \   000042   7401         MOV     A,#0x1
   \   000044   F0           MOVX    @DPTR,A
    117              pPacket->retriesLeft = aMaxFrameRetries;
   \   000045   E5..         MOV     A,?V0 + 0
   \   000047   2491         ADD     A,#-0x6f
   \   000049   F582         MOV     DPL,A
   \   00004B   E5..         MOV     A,?V0 + 1
   \   00004D   3400         ADDC    A,#0x0
   \   00004F   F583         MOV     DPH,A
   \   000051   7403         MOV     A,#0x3
   \   000053   F0           MOVX    @DPTR,A
    118          
    119              // Generate the packet header (and find security material, if enabled)
    120              if (mpib.macShortAddress >= 0xFFFE) {
   \   000054   E5..         MOV     A,?V0 + 3
   \   000056   33           RLC     A
   \   000057   33           RLC     A
   \   000058   54FC         ANL     A,#0xfc
   \   00005A   FA           MOV     R2,A
   \   00005B   90....       MOV     DPTR,#(mpib + 32)
   \   00005E   C3           CLR     C
   \   00005F   E0           MOVX    A,@DPTR
   \   000060   94FE         SUBB    A,#-0x2
   \   000062   A3           INC     DPTR
   \   000063   E0           MOVX    A,@DPTR
   \   000064   94FF         SUBB    A,#-0x1
   \   000066   78..         MOV     R0,#?V0 + 6
   \   000068   4023         JC      ??mipTransmitDataRequest_5
    121                  msupPrepareHeader(pPacket, FT_MAC_COMMAND, (coordAddrMode << 2) | SRC_ADDR_EXT, mpib.macPANId, (ADDRESS  *) &aExtendedAddress, coordPANId, pCoordAddress, (BYTE)txOptions);
   \   00006A                ; Setup parameters for call to function msupPrepareHeader
   \   00006A   12....       LCALL   ?PUSH_XSTACK_I_TWO
   \   00006D   8E..         MOV     ?V0 + 4,R6
   \   00006F   8F..         MOV     ?V0 + 5,R7
   \   000071   78..         MOV     R0,#?V0 + 4
   \   000073   12....       LCALL   ?PUSH_XSTACK_I_TWO
   \   000076   75....       MOV     ?V0 + 4,#(aExtendedAddress & 0xff)
   \   000079   75....       MOV     ?V0 + 5,#((aExtendedAddress >> 8) & 0xff)
   \   00007C   78..         MOV     R0,#?V0 + 4
   \   00007E   12....       LCALL   ?PUSH_XSTACK_I_TWO
   \   000081   90....       MOV     DPTR,#(mpib + 28)
   \   000084   12....       LCALL   ?PUSH_XSTACK8_X_TWO
   \   000087   7D01         MOV     R5,#0x1
   \   000089   74C0         MOV     A,#-0x40
   \   00008B   8021         SJMP    ??mipTransmitDataRequest_6
    122              } else {
    123                  msupPrepareHeader(pPacket, FT_MAC_COMMAND, (coordAddrMode << 2) | SRC_ADDR_SHORT, mpib.macPANId, (ADDRESS  *) &mpib.macShortAddress, coordPANId, pCoordAddress, txOptions);
   \                     ??mipTransmitDataRequest_5:
   \   00008D                ; Setup parameters for call to function msupPrepareHeader
   \   00008D   12....       LCALL   ?PUSH_XSTACK_I_TWO
   \   000090   8E..         MOV     ?V0 + 4,R6
   \   000092   8F..         MOV     ?V0 + 5,R7
   \   000094   78..         MOV     R0,#?V0 + 4
   \   000096   12....       LCALL   ?PUSH_XSTACK_I_TWO
   \   000099   75....       MOV     ?V0 + 4,#((mpib + 32) & 0xff)
   \   00009C   75....       MOV     ?V0 + 5,#(((mpib + 32) >> 8) & 0xff)
   \   00009F   78..         MOV     R0,#?V0 + 4
   \   0000A1   12....       LCALL   ?PUSH_XSTACK_I_TWO
   \   0000A4   90....       MOV     DPTR,#(mpib + 28)
   \   0000A7   12....       LCALL   ?PUSH_XSTACK8_X_TWO
   \   0000AA   7D01         MOV     R5,#0x1
   \   0000AC   7480         MOV     A,#-0x80
   \                     ??mipTransmitDataRequest_6:
   \   0000AE   4A           ORL     A,R2
   \   0000AF   FC           MOV     R4,A
   \   0000B0   7903         MOV     R1,#0x3
   \   0000B2   AA..         MOV     R2,?V0 + 0
   \   0000B4   AB..         MOV     R3,?V0 + 1
   \   0000B6   12....       LCALL   msupPrepareHeader
   \   0000B9   7408         MOV     A,#0x8
   \   0000BB   12....       LCALL   ?DEALLOC_XSTACK8
    124              }
    125          
    126              // Store the command type
    127              pPacket->commandType = CMD_DATA_REQUEST;
   \   0000BE   E5..         MOV     A,?V0 + 0
   \   0000C0   2483         ADD     A,#-0x7d
   \   0000C2   F582         MOV     DPL,A
   \   0000C4   E5..         MOV     A,?V0 + 1
   \   0000C6   3400         ADDC    A,#0x0
   \   0000C8   F583         MOV     DPH,A
   \   0000CA   7404         MOV     A,#0x4
   \   0000CC   F0           MOVX    @DPTR,A
    128          
    129              // Command frame identifier
    130              pPayload = pPacket->pPayload;
    131              *(pPayload++) = CMD_DATA_REQUEST;
   \   0000CD   E5..         MOV     A,?V0 + 0
   \   0000CF   241A         ADD     A,#0x1a
   \   0000D1   F582         MOV     DPL,A
   \   0000D3   E5..         MOV     A,?V0 + 1
   \   0000D5   3400         ADDC    A,#0x0
   \   0000D7   F583         MOV     DPH,A
   \   0000D9   7404         MOV     A,#0x4
   \   0000DB   F0           MOVX    @DPTR,A
    132          
    133          #if MAC_OPT_SECURITY
    134              // #bytes in frame counter + key sequence counter (0 or 5)
    135              temp = msecProcessSecurityCounters(pPacket, pPayload);
    136          
    137              // In case of frame counter overflow or missing key
    138              // Generate error with FAILED_SECURITY_CHECK or UNAVAILABLE_KEY
    139              if (pPacket->securitySuite >= 8) {
    140                  mtxpReleasePacket(pPacket);
    141                  mschReleaseTask(taskNumber);
    142                  return pPacket->securitySuite;
    143              }
    144          
    145              // Increment payload pointer when counters inserted
    146              pPayload += temp;
    147          
    148              // Include command payload length and optional MIC (integrity code) length
    149              temp += CMD_DATA_REQUEST_PAYLOAD_LENGTH + pPacket->securitySetup.micLength;
    150          
    151          #else
    152              // No security material included, set MAC payload length
    153              temp = CMD_DATA_REQUEST_PAYLOAD_LENGTH;
    154          #endif
    155          
    156              // Set the packet length
    157              pPacket->length = pPacket->headerLength + temp + MAC_FCS_LENGTH;
   \   0000DC   85..82       MOV     DPL,?V0 + 0
   \   0000DF   85..83       MOV     DPH,?V0 + 1
   \   0000E2   A3           INC     DPTR
   \   0000E3   E0           MOVX    A,@DPTR
   \   0000E4   2403         ADD     A,#0x3
   \   0000E6   F9           MOV     R1,A
   \   0000E7   85..82       MOV     DPL,?V0 + 0
   \   0000EA   85..83       MOV     DPH,?V0 + 1
   \   0000ED   A3           INC     DPTR
   \   0000EE   A3           INC     DPTR
   \   0000EF   F0           MOVX    @DPTR,A
    158          
    159              // No further packet payload
    160          
    161              // Calculate the packet duration (including ack. and FCS)
    162              pPacket->duration = msupCalcPacketDuration(pPacket->length, pPacket->txOptions & TX_OPT_ACK_REQ);
   \   0000F0                ; Setup parameters for call to function msupCalcPacketDuration
   \   0000F0   E5..         MOV     A,?V0 + 0
   \   0000F2   2481         ADD     A,#-0x7f
   \   0000F4   F582         MOV     DPL,A
   \   0000F6   E5..         MOV     A,?V0 + 1
   \   0000F8   3400         ADDC    A,#0x0
   \   0000FA   F583         MOV     DPH,A
   \   0000FC   E0           MOVX    A,@DPTR
   \   0000FD   A2E0         MOV     C,0xE0 /* A   */.0
   \   0000FF   E4           CLR     A
   \   000100   92E0         MOV     0xE0 /* A   */.0,C
   \   000102   FA           MOV     R2,A
   \   000103   12....       LCALL   msupCalcPacketDuration
   \   000106   E5..         MOV     A,?V0 + 0
   \   000108   2485         ADD     A,#-0x7b
   \   00010A   F582         MOV     DPL,A
   \   00010C   E5..         MOV     A,?V0 + 1
   \   00010E   3400         ADDC    A,#0x0
   \   000110   F583         MOV     DPH,A
   \   000112   E9           MOV     A,R1
   \   000113   F0           MOVX    @DPTR,A
    163          
    164              // Initiate the transmission
    165              mschAddTask(taskNumber, MAC_TASK_PRI_LOW, mtxScheduleTransmission, (WORD) pPacket);
   \   000114                ; Setup parameters for call to function mschAddTask
   \   000114   75....       MOV     ?V0 + 4,#(mtxScheduleTransmission & 0xff)
   \   000117   75....       MOV     ?V0 + 5,#((mtxScheduleTransmission >> 8) & 0xff)
   \   00011A   75....       MOV     ?V0 + 6,#((mtxScheduleTransmission >> 16) & 0xff)
   \   00011D   78..         MOV     R0,#?V0 + 4
   \   00011F   12....       LCALL   ?PUSH_XSTACK_I_THREE
   \   000122   AC..         MOV     R4,?V0 + 0
   \   000124   AD..         MOV     R5,?V0 + 1
   \   000126   7A00         MOV     R2,#0x0
   \   000128   A9..         MOV     R1,?V0 + 2
   \   00012A   12....       LCALL   mschAddTask
   \   00012D   7403         MOV     A,#0x3
   \   00012F   12....       LCALL   ?DEALLOC_XSTACK8
    166          
    167              return SUCCESS;
   \   000132   7900         MOV     R1,#0x0
   \                     ??mipTransmitDataRequest_3:
   \   000134   7F08         MOV     R7,#0x8
   \   000136   02....       LJMP    ?FUNC_LEAVE_XDATA
    168          
    169          } // mipTransmitDataRequest
    170          
    171          
    172          
    173          
    174          /*******************************************************************************************************
    175           *******************************************************************************************************
    176           **************************               DATA REQUEST TIMEOUT                **************************
    177           *******************************************************************************************************
    178           *******************************************************************************************************/
    179          
    180          
    181          
    182          
    183          //-------------------------------------------------------------------------------------------------------
    184          //  void mipDataRequestTimeoutTask(MAC_TASK_INFO *pTask)
    185          //
    186          //  DESCRIPTION:
    187          //      This task is run when no valid response has been received after a data request. The task makes
    188          //      the callback to the higher layer.
    189          //
    190          //  TASK DATA:
    191          //      0
    192          //-------------------------------------------------------------------------------------------------------

   \                                 In segment NEAR_CODE, align 1, keep-with-next
    193          void mipDataRequestTimeoutTask(MAC_TASK_INFO *pTask) NEAR {
   \                     mipDataRequestTimeoutTask:
   \   000000   74F7         MOV     A,#-0x9
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 9
   \   000005                ; Auto size: 0
   \   000005   EA           MOV     A,R2
   \   000006   FE           MOV     R6,A
   \   000007   EB           MOV     A,R3
   \   000008   FF           MOV     R7,A
    194              MAC_STATE_TYPE oldState;
    195          
    196              // The data request has failed, so stop listening
    197              mrxDecrOnCounter();
   \   000009                ; Setup parameters for call to function mrxDecrOnCounter
   \   000009   90....       MOV     DPTR,#(mrxDecrOnCounter & 0xffff)
   \   00000C   74..         MOV     A,#((mrxDecrOnCounter >> 16) & 0xff)
   \   00000E   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    198              oldState = macInfo.state;
   \   000011   90....       MOV     DPTR,#macInfo
   \   000014   E0           MOVX    A,@DPTR
   \   000015   F5..         MOV     ?V0 + 0,A
    199              macSetState(MAC_STATE_DEFAULT);

⌨️ 快捷键说明

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