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

📄 mac_indirect_queue.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 + 4,R2
   \   000007   8B..         MOV     ?V0 + 5,R3
    147              MAC_TX_PACKET   *pPacket = (MAC_TX_PACKET *) pTask->taskData;
   \   000009   8A82         MOV     DPL,R2
   \   00000B   8B83         MOV     DPH,R3
   \   00000D   A3           INC     DPTR
   \   00000E   A3           INC     DPTR
   \   00000F   A3           INC     DPTR
   \   000010   E0           MOVX    A,@DPTR
   \   000011   FE           MOV     R6,A
   \   000012   A3           INC     DPTR
   \   000013   E0           MOVX    A,@DPTR
   \   000014   FF           MOV     R7,A
    148              MAC_TX_PACKET   *pIndirectPacket;
    149              BYTE            temp;
    150              BYTE            destAddrMode;
    151              ADDRESS         *pDestAddr;
    152          
    153              switch (pTask->state) {
   \   000015   EA           MOV     A,R2
   \   000016   2405         ADD     A,#0x5
   \   000018   F8           MOV     R0,A
   \   000019   EB           MOV     A,R3
   \   00001A   3400         ADDC    A,#0x0
   \   00001C   F9           MOV     R1,A
   \   00001D   8882         MOV     DPL,R0
   \   00001F   8983         MOV     DPH,R1
   \   000021   E0           MOVX    A,@DPTR
   \   000022   12....       LCALL   ?UC_SWITCH_DENSE
   \                     `?<Jumptable for miqRemoveIndirectPacket>_0`:
   \   000025   00           DB        0
   \   000026   01           DB        1
   \   000027   ....         DW        ??miqRemoveIndirectPacket_0
   \   000029   ....         DW        ??miqRemoveIndirectPacket_1
   \   00002B   ....         DW        ??miqRemoveIndirectPacket_2
    154              case MIQ_STATE_REMOVE_PACKET:
    155          
    156                  // Update the link on the previous packet
    157                  if (pPacket->prevPacket != NO_PACKET) {
   \                     ??miqRemoveIndirectPacket_1:
   \   00002D   EE           MOV     A,R6
   \   00002E   248E         ADD     A,#-0x72
   \   000030   FA           MOV     R2,A
   \   000031   EF           MOV     A,R7
   \   000032   3400         ADDC    A,#0x0
   \   000034   FB           MOV     R3,A
   \   000035   8A82         MOV     DPL,R2
   \   000037   8B83         MOV     DPH,R3
   \   000039   E0           MOVX    A,@DPTR
   \   00003A   F5..         MOV     ?V0 + 0,A
   \   00003C   EE           MOV     A,R6
   \   00003D   248D         ADD     A,#-0x73
   \   00003F   FC           MOV     R4,A
   \   000040   EF           MOV     A,R7
   \   000041   3400         ADDC    A,#0x0
   \   000043   FD           MOV     R5,A
   \   000044   74FF         MOV     A,#-0x1
   \   000046   65..         XRL     A,?V0 + 0
   \   000048   6025         JZ      ??miqRemoveIndirectPacket_3
    158                      pMtxPacketPool[pPacket->prevPacket].nextPacket = pPacket->nextPacket;
   \   00004A   8C82         MOV     DPL,R4
   \   00004C   8D83         MOV     DPH,R5
   \   00004E   E0           MOVX    A,@DPTR
   \   00004F   C0E0         PUSH    A
   \   000051   E5..         MOV     A,?V0 + 0
   \   000053   75F093       MOV     B,#-0x6d
   \   000056   A4           MUL     AB
   \   000057   F5..         MOV     ?V0 + 0,A
   \   000059   85F0..       MOV     ?V0 + 2,B
   \   00005C   E5..         MOV     A,?V0 + 2
   \   00005E   F5..         MOV     ?V0 + 1,A
   \   000060   E5..         MOV     A,?V0 + 0
   \   000062   24..         ADD     A,#((pMtxPacketPool + 141) & 0xff)
   \   000064   F582         MOV     DPL,A
   \   000066   E5..         MOV     A,?V0 + 1
   \   000068   34..         ADDC    A,#(((pMtxPacketPool + 141) >> 8) & 0xff)
   \   00006A   F583         MOV     DPH,A
   \   00006C   D0E0         POP     A
   \   00006E   F0           MOVX    @DPTR,A
    159                  }
    160          
    161                  // Update the link on the next packet
    162                  if (pPacket->nextPacket != NO_PACKET) {
   \                     ??miqRemoveIndirectPacket_3:
   \   00006F   8C82         MOV     DPL,R4
   \   000071   8D83         MOV     DPH,R5
   \   000073   E0           MOVX    A,@DPTR
   \   000074   F5..         MOV     ?V0 + 0,A
   \   000076   74FF         MOV     A,#-0x1
   \   000078   65..         XRL     A,?V0 + 0
   \   00007A   6025         JZ      ??miqRemoveIndirectPacket_4
    163                      pMtxPacketPool[pPacket->nextPacket].prevPacket = pPacket->prevPacket;
   \   00007C   8A82         MOV     DPL,R2
   \   00007E   8B83         MOV     DPH,R3
   \   000080   E0           MOVX    A,@DPTR
   \   000081   C0E0         PUSH    A
   \   000083   E5..         MOV     A,?V0 + 0
   \   000085   75F093       MOV     B,#-0x6d
   \   000088   A4           MUL     AB
   \   000089   F5..         MOV     ?V0 + 0,A
   \   00008B   85F0..       MOV     ?V0 + 2,B
   \   00008E   E5..         MOV     A,?V0 + 2
   \   000090   F5..         MOV     ?V0 + 1,A
   \   000092   E5..         MOV     A,?V0 + 0
   \   000094   24..         ADD     A,#((pMtxPacketPool + 142) & 0xff)
   \   000096   F582         MOV     DPL,A
   \   000098   E5..         MOV     A,?V0 + 1
   \   00009A   34..         ADDC    A,#(((pMtxPacketPool + 142) >> 8) & 0xff)
   \   00009C   F583         MOV     DPH,A
   \   00009E   D0E0         POP     A
   \   0000A0   F0           MOVX    @DPTR,A
    164                  }
    165          
    166                  // Update the "head" and "tail" indexes of the queue
    167                  temp = pPacket->poolIndex;
   \                     ??miqRemoveIndirectPacket_4:
   \   0000A1   EE           MOV     A,R6
   \   0000A2   2490         ADD     A,#-0x70
   \   0000A4   F582         MOV     DPL,A
   \   0000A6   EF           MOV     A,R7
   \   0000A7   3400         ADDC    A,#0x0
   \   0000A9   F583         MOV     DPH,A
   \   0000AB   E0           MOVX    A,@DPTR
   \   0000AC   F5..         MOV     ?V0 + 0,A
    168                  if (temp == miqInfo.firstIndirectPacket) miqInfo.firstIndirectPacket = pPacket->nextPacket;
   \   0000AE   90....       MOV     DPTR,#miqInfo
   \   0000B1   E0           MOVX    A,@DPTR
   \   0000B2   65..         XRL     A,?V0 + 0
   \   0000B4   7009         JNZ     ??miqRemoveIndirectPacket_5
   \   0000B6   8C82         MOV     DPL,R4
   \   0000B8   8D83         MOV     DPH,R5
   \   0000BA   E0           MOVX    A,@DPTR
   \   0000BB   90....       MOV     DPTR,#miqInfo
   \   0000BE   F0           MOVX    @DPTR,A
    169                  if (temp == miqInfo.lastIndirectPacket) miqInfo.lastIndirectPacket = pPacket->prevPacket;
   \                     ??miqRemoveIndirectPacket_5:
   \   0000BF   90....       MOV     DPTR,#(miqInfo + 1)
   \   0000C2   E0           MOVX    A,@DPTR
   \   0000C3   65..         XRL     A,?V0 + 0
   \   0000C5   7009         JNZ     ??miqRemoveIndirectPacket_6
   \   0000C7   8A82         MOV     DPL,R2
   \   0000C9   8B83         MOV     DPH,R3
   \   0000CB   E0           MOVX    A,@DPTR
   \   0000CC   90....       MOV     DPTR,#(miqInfo + 1)
   \   0000CF   F0           MOVX    @DPTR,A
    170          
    171                  pTask->state = MIQ_STATE_MOVE_FIRST_PACKET_FLAG;
   \                     ??miqRemoveIndirectPacket_6:
   \   0000D0   7401         MOV     A,#0x1
   \   0000D2   8882         MOV     DPL,R0
   \   0000D4   8983         MOV     DPH,R1
   \   0000D6   F0           MOVX    @DPTR,A
   \   0000D7   02....       LJMP    ??miqRemoveIndirectPacket_0 & 0xFFFF
    172                  break;
    173          
    174              case MIQ_STATE_MOVE_FIRST_PACKET_FLAG:
    175          
    176                  // If set here, then move the isFirstPacket flag to the next packet with same destination in the queue
    177                  if (pPacket->isFirstPacket) {
   \                     ??miqRemoveIndirectPacket_2:
   \   0000DA   EE           MOV     A,R6
   \   0000DB   248F         ADD     A,#-0x71
   \   0000DD   F582         MOV     DPL,A
   \   0000DF   EF           MOV     A,R7
   \   0000E0   3400         ADDC    A,#0x0
   \   0000E2   F583         MOV     DPH,A
   \   0000E4   E0           MOVX    A,@DPTR
   \   0000E5   7003         JNZ     $+5
   \   0000E7   02....       LJMP    ??miqRemoveIndirectPacket_7 & 0xFFFF
    178                      pPacket->isFirstPacket = FALSE;
   \   0000EA   E4           CLR     A
   \   0000EB   F0           MOVX    @DPTR,A
    179                      temp = pPacket->nextPacket;
   \   0000EC   EE           MOV     A,R6
   \   0000ED   248D         ADD     A,#-0x73
   \   0000EF   F582         MOV     DPL,A
   \   0000F1   EF           MOV     A,R7
   \   0000F2   3400         ADDC    A,#0x0
   \   0000F4   F583         MOV     DPH,A
   \   0000F6   E0           MOVX    A,@DPTR
   \   0000F7   F5..         MOV     ?V0 + 0,A
    180                      destAddrMode = (BYTE)(pPacket->pHeader[1] & DEST_ADDR_BM);
   \   0000F9   8E82         MOV     DPL,R6
   \   0000FB   8F83         MOV     DPH,R7
   \   0000FD   A3           INC     DPTR
   \   0000FE   A3           INC     DPTR
   \   0000FF   A3           INC     DPTR
   \   000100   A3           INC     DPTR
   \   000101   E0           MOVX    A,@DPTR
   \   000102   540C         ANL     A,#0xc
   \   000104   F5..         MOV     ?V0 + 2,A
    181                      pDestAddr = (ADDRESS   *) (pPacket->pHeader + 5);
   \   000106   EE           MOV     A,R6
   \   000107   2408         ADD     A,#0x8
   \   000109   F5..         MOV     ?V0 + 6,A
   \   00010B   EF           MOV     A,R7
   \   00010C   3400         ADDC    A,#0x0
   \   00010E   F5..         MOV     ?V0 + 7,A
   \   000110   8019         SJMP    ??miqRemoveIndirectPacket_8
    182          
    183                      // For each packet in the queue ...
    184                      while (temp != NO_PACKET) {
    185                          pIndirectPacket = &pMtxPacketPool[temp];
    186                          if (destAddrMode == (pIndirectPacket->pHeader[1] & DEST_ADDR_BM)) {
    187                              if (destAddrMode == DEST_ADDR_SHORT) {
    188                                  if (pDestAddr->Short == *((WORD   *) (pIndirectPacket->pHeader + 5))) {
    189                                      pIndirectPacket->isFirstPacket = TRUE;
    190                                      break;
    191                                  }
    192                              } else {
    193                                  if (msupCompareExtendedAddress((ADDRESS   *) pDestAddr, (ADDRESS   *) (pIndirectPacket->pHeader + 5))) {
   \                     ??miqRemoveIndirectPacket_9:
   \   000112                ; Setup parameters for call to function msupCompareExtendedAddress
   \   000112   AA..         MOV     R2,?V0 + 6
   \   000114   AB..         MOV     R3,?V0 + 7
   \   000116   12....       LCALL   msupCompareExtendedAddress & 0xFFFF
   \   000119   E9           MOV     A,R1
   \   00011A   705D         JNZ     ??miqRemoveIndirectPacket_10
    194                                      pIndirectPacket->isFirstPacket = TRUE;
    195                                      break;
    196                                  }
    197                              }
    198                          }
    199                          temp = pIndirectPacket->nextPacket;
   \                     ??miqRemoveIndirectPacket_11:
   \   00011C   E5..         MOV     A,?V0 + 0
   \   00011E   248D         ADD     A,#-0x73
   \   000120   F582         MOV     DPL,A
   \   000122   E5..         MOV     A,?V0 + 1
   \   000124   3400         ADDC    A,#0x0
   \   000126   F583         MOV     DPH,A
   \   000128   E0           MOVX    A,@DPTR
   \   000129   F5..         MOV     ?V0 + 0,A
   \                     ??miqRemoveIndirectPacket_8:
   \   00012B   74FF         MOV     A,#-0x1
   \   00012D   65..         XRL     A,?V0 + 0
   \   00012F   6057         JZ      ??miqRemoveIndirectPacket_7
   \   000131   E5..         MOV     A,?V0 + 0
   \   000133   75F093       MOV     B,#-0x6d
   \   000136   A4           MUL     AB

⌨️ 快捷键说明

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