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

📄 mac_indirect_queue.lst

📁 zigbee location examples
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   000137   24..         ADD     A,#(pMtxPacketPool & 0xff)
   \   000139   F5..         MOV     ?V0 + 0,A
   \   00013B   E5F0         MOV     A,B
   \   00013D   34..         ADDC    A,#((pMtxPacketPool >> 8) & 0xff)
   \   00013F   F5..         MOV     ?V0 + 1,A
   \   000141   85..82       MOV     DPL,?V0 + 0
   \   000144   F583         MOV     DPH,A
   \   000146   A3           INC     DPTR
   \   000147   A3           INC     DPTR
   \   000148   A3           INC     DPTR
   \   000149   A3           INC     DPTR
   \   00014A   E0           MOVX    A,@DPTR
   \   00014B   540C         ANL     A,#0xc
   \   00014D   65..         XRL     A,?V0 + 2
   \   00014F   70CB         JNZ     ??miqRemoveIndirectPacket_11
   \   000151   E5..         MOV     A,?V0 + 0
   \   000153   2408         ADD     A,#0x8
   \   000155   FC           MOV     R4,A
   \   000156   E5..         MOV     A,?V0 + 1
   \   000158   3400         ADDC    A,#0x0
   \   00015A   FD           MOV     R5,A
   \   00015B   7408         MOV     A,#0x8
   \   00015D   65..         XRL     A,?V0 + 2
   \   00015F   70B1         JNZ     ??miqRemoveIndirectPacket_9
   \   000161   85..82       MOV     DPL,?V0 + 6
   \   000164   85..83       MOV     DPH,?V0 + 7
   \   000167   E0           MOVX    A,@DPTR
   \   000168   F8           MOV     R0,A
   \   000169   A3           INC     DPTR
   \   00016A   E0           MOVX    A,@DPTR
   \   00016B   F9           MOV     R1,A
   \   00016C   8C82         MOV     DPL,R4
   \   00016E   8D83         MOV     DPH,R5
   \   000170   E0           MOVX    A,@DPTR
   \   000171   68           XRL     A,R0
   \   000172   7003         JNZ     ??miqRemoveIndirectPacket_12
   \   000174   A3           INC     DPTR
   \   000175   E0           MOVX    A,@DPTR
   \   000176   69           XRL     A,R1
   \                     ??miqRemoveIndirectPacket_12:
   \   000177   70A3         JNZ     ??miqRemoveIndirectPacket_11
   \                     ??miqRemoveIndirectPacket_10:
   \   000179   E5..         MOV     A,?V0 + 0
   \   00017B   248F         ADD     A,#-0x71
   \   00017D   F582         MOV     DPL,A
   \   00017F   E5..         MOV     A,?V0 + 1
   \   000181   3400         ADDC    A,#0x0
   \   000183   F583         MOV     DPH,A
   \   000185   7401         MOV     A,#0x1
   \   000187   F0           MOVX    @DPTR,A
    200                      }
    201                  }
    202          
    203                  // Clean up
    204                  mschRemoveTask(pTask->priority, MSCH_KEEP_TASK_IN_PROGRESS_BM);
   \                     ??miqRemoveIndirectPacket_7:
   \   000188                ; Setup parameters for call to function mschRemoveTask
   \   000188   7A02         MOV     R2,#0x2
   \   00018A   85..82       MOV     DPL,?V0 + 4
   \   00018D   85..83       MOV     DPH,?V0 + 5
   \   000190   A3           INC     DPTR
   \   000191   A3           INC     DPTR
   \   000192   A3           INC     DPTR
   \   000193   A3           INC     DPTR
   \   000194   A3           INC     DPTR
   \   000195   A3           INC     DPTR
   \   000196   A3           INC     DPTR
   \   000197   A3           INC     DPTR
   \   000198   E0           MOVX    A,@DPTR
   \   000199   F9           MOV     R1,A
   \   00019A   12....       LCALL   mschRemoveTask & 0xFFFF
    205                  mtxpReleasePacket(pPacket);
   \   00019D                ; Setup parameters for call to function mtxpReleasePacket
   \   00019D   EE           MOV     A,R6
   \   00019E   FA           MOV     R2,A
   \   00019F   EF           MOV     A,R7
   \   0001A0   FB           MOV     R3,A
   \   0001A1   12....       LCALL   mtxpReleasePacket & 0xFFFF
    206                  break;
    207              }
    208          } // miqRemoveIndirectPacket
   \                     ??miqRemoveIndirectPacket_0:
   \   0001A4   02....       LJMP    ?Subroutine2
    209          
    210          //-------------------------------------------------------------------------------------------------------
    211          //  BOOL miqFindIndirectPacket(ADDRESS *pDestAddr, BOOL isExtAddr)
    212          //
    213          //  DESCRIPTION:
    214          //      Searches through the indirect packet queue for a match on the given address.
    215          //
    216          //  ARGUMENTS:
    217          //      ADDRESS *pDestAddr
    218          //          A pointer to the address to search for
    219          //      BOOL isExtAddr
    220          //          TRUE if pDestAddr points to an extended address
    221          //
    222          //  RETURN VALUE:
    223          //      MAC_TX_PACKET
    224          //          A packet was found a packet pointer is returned, if no packet is found NULL is returned
    225          //-------------------------------------------------------------------------------------------------------

   \                                 In segment NEAR_CODE, align 1, keep-with-next
    226          ROOT MAC_TX_PACKET *miqFindIndirectPacket(ADDRESS *pDestAddr, BOOL isExtAddr) {
   \                     miqFindIndirectPacket:
   \   000000   74F6         MOV     A,#-0xa
   \   000002   12....       LCALL   ?FUNC_ENTER_XDATA
   \   000005                ; Saved register size: 10
   \   000005                ; Auto size: 0
   \   000005   8A..         MOV     ?V0 + 0,R2
   \   000007   8B..         MOV     ?V0 + 1,R3
    227              UINT8 temp;
    228              BYTE destAddrMode = isExtAddr ? DEST_ADDR_EXT : DEST_ADDR_SHORT;
   \   000009   E9           MOV     A,R1
   \   00000A   6005         JZ      ??miqFindIndirectPacket_0
   \   00000C   75..0C       MOV     ?V0 + 2,#0xc
   \   00000F   8003         SJMP    ??miqFindIndirectPacket_1
   \                     ??miqFindIndirectPacket_0:
   \   000011   75..08       MOV     ?V0 + 2,#0x8
    229              MAC_TX_PACKET *pIndirectPacket;
    230          
    231              // For each packet in the queue ...
    232              temp = miqInfo.firstIndirectPacket;
   \                     ??miqFindIndirectPacket_1:
   \   000014   90....       MOV     DPTR,#miqInfo
   \   000017   8014         SJMP    ??miqFindIndirectPacket_2
    233              while (temp != NO_PACKET) {
    234                  pIndirectPacket = &pMtxPacketPool[temp];
    235          
    236                  // ... return the packet index if there's a match on the address mode ...
    237                  if ((destAddrMode == (pIndirectPacket->pHeader[1] & DEST_ADDR_BM)) && (pIndirectPacket->transmissionStarted != TRUE)) {
    238          
    239                      // ... and the address itself
    240                      if (destAddrMode == DEST_ADDR_SHORT) {
    241                          if (pDestAddr->Short == *((WORD   *) (pIndirectPacket->pHeader + 5))) {
    242                              return pIndirectPacket;
    243                          }
    244                      } else {
    245                          if (msupCompareExtendedAddress((ADDRESS   *) pDestAddr, (ADDRESS   *) (pIndirectPacket->pHeader + 5))) {
   \                     ??miqFindIndirectPacket_3:
   \   000019                ; Setup parameters for call to function msupCompareExtendedAddress
   \   000019   AA..         MOV     R2,?V0 + 0
   \   00001B   AB..         MOV     R3,?V0 + 1
   \   00001D   12....       LCALL   msupCompareExtendedAddress
   \   000020   E9           MOV     A,R1
   \   000021   7062         JNZ     ??miqFindIndirectPacket_4
    246                              return pIndirectPacket;
    247                          }
    248                      }
    249                  }
    250          
    251          
    252                  // Move to the next packet in the queue
    253                  temp = pIndirectPacket->nextPacket;
   \                     ??miqFindIndirectPacket_5:
   \   000023   EE           MOV     A,R6
   \   000024   248D         ADD     A,#-0x73
   \   000026   F582         MOV     DPL,A
   \   000028   EF           MOV     A,R7
   \   000029   3400         ADDC    A,#0x0
   \   00002B   F583         MOV     DPH,A
   \                     ??miqFindIndirectPacket_2:
   \   00002D   E0           MOVX    A,@DPTR
   \   00002E   FA           MOV     R2,A
   \   00002F   74FF         MOV     A,#-0x1
   \   000031   6A           XRL     A,R2
   \   000032   6057         JZ      ??miqFindIndirectPacket_6
   \   000034   EA           MOV     A,R2
   \   000035   75F093       MOV     B,#-0x6d
   \   000038   A4           MUL     AB
   \   000039   24..         ADD     A,#(pMtxPacketPool & 0xff)
   \   00003B   FE           MOV     R6,A
   \   00003C   E5F0         MOV     A,B
   \   00003E   34..         ADDC    A,#((pMtxPacketPool >> 8) & 0xff)
   \   000040   FF           MOV     R7,A
   \   000041   8E82         MOV     DPL,R6
   \   000043   8F83         MOV     DPH,R7
   \   000045   A3           INC     DPTR
   \   000046   A3           INC     DPTR
   \   000047   A3           INC     DPTR
   \   000048   A3           INC     DPTR
   \   000049   E0           MOVX    A,@DPTR
   \   00004A   540C         ANL     A,#0xc
   \   00004C   65..         XRL     A,?V0 + 2
   \   00004E   70D3         JNZ     ??miqFindIndirectPacket_5
   \   000050   EE           MOV     A,R6
   \   000051   248C         ADD     A,#-0x74
   \   000053   F582         MOV     DPL,A
   \   000055   EF           MOV     A,R7
   \   000056   3400         ADDC    A,#0x0
   \   000058   F583         MOV     DPH,A
   \   00005A   E0           MOVX    A,@DPTR
   \   00005B   6401         XRL     A,#0x1
   \   00005D   60C4         JZ      ??miqFindIndirectPacket_5
   \   00005F   EE           MOV     A,R6
   \   000060   2408         ADD     A,#0x8
   \   000062   FC           MOV     R4,A
   \   000063   EF           MOV     A,R7
   \   000064   3400         ADDC    A,#0x0
   \   000066   FD           MOV     R5,A
   \   000067   7408         MOV     A,#0x8
   \   000069   65..         XRL     A,?V0 + 2
   \   00006B   70AC         JNZ     ??miqFindIndirectPacket_3
   \   00006D   85..82       MOV     DPL,?V0 + 0
   \   000070   85..83       MOV     DPH,?V0 + 1
   \   000073   E0           MOVX    A,@DPTR
   \   000074   F8           MOV     R0,A
   \   000075   A3           INC     DPTR
   \   000076   E0           MOVX    A,@DPTR
   \   000077   F9           MOV     R1,A
   \   000078   8C82         MOV     DPL,R4
   \   00007A   8D83         MOV     DPH,R5
   \   00007C   E0           MOVX    A,@DPTR
   \   00007D   68           XRL     A,R0
   \   00007E   7003         JNZ     ??miqFindIndirectPacket_7
   \   000080   A3           INC     DPTR
   \   000081   E0           MOVX    A,@DPTR
   \   000082   69           XRL     A,R1
   \                     ??miqFindIndirectPacket_7:
   \   000083   709E         JNZ     ??miqFindIndirectPacket_5
   \                     ??miqFindIndirectPacket_4:
   \   000085   EE           MOV     A,R6
   \   000086   FA           MOV     R2,A
   \   000087   EF           MOV     A,R7
   \   000088   FB           MOV     R3,A
   \   000089   8004         SJMP    ??miqFindIndirectPacket_8
    254              }
    255          
    256              // Could not find any match
    257              return NULL;
   \                     ??miqFindIndirectPacket_6:
   \   00008B   7A00         MOV     R2,#0x0
   \   00008D   7B00         MOV     R3,#0x0
   \                     ??miqFindIndirectPacket_8:
   \   00008F                REQUIRE ?Subroutine1
   \   00008F                ; // Fall through to label ?Subroutine1
    258          
    259          } // miqFindIndirectPacket

   \                                 In segment NEAR_CODE, align 1, keep-with-next
   \                     ?Subroutine1:
   \   000000   7F03         MOV     R7,#0x3
   \   000002   02....       LJMP    ?FUNC_LEAVE_XDATA
    260          

⌨️ 快捷键说明

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