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

📄 mac_tx_pool.lst

📁 zigbee location examples
💻 LST
📖 第 1 页 / 共 2 页
字号:
     61          //          A pointer to the reserved packet, or NULL if the pool is empty
     62          //-------------------------------------------------------------------------------------------------------

   \                                 In segment NEAR_CODE, align 1, keep-with-next
     63          ROOT MAC_TX_PACKET  * mtxpReservePacket(void) {
   \                     mtxpReservePacket:
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
     64              MAC_TX_PACKET   *pPacket;
     65              UINT8 n;
     66              for (n = 0; n < MAC_OPT_TX_POOL_SIZE; n++) {
   \   000004   7B00         MOV     R3,#0x0
     67                  pPacket = &pMtxPacketPool[n];
   \                     ??mtxpReservePacket_0:
   \   000006   EB           MOV     A,R3
   \   000007   75F093       MOV     B,#-0x6d
   \   00000A   A4           MUL     AB
   \   00000B   24..         ADD     A,#(pMtxPacketPool & 0xff)
   \   00000D   F582         MOV     DPL,A
   \   00000F   E5F0         MOV     A,B
   \   000011   34..         ADDC    A,#((pMtxPacketPool >> 8) & 0xff)
   \   000013   F583         MOV     DPH,A
     68                  if (!pPacket->occupied) {
   \   000015   E0           MOVX    A,@DPTR
   \   000016   7011         JNZ     ??mtxpReservePacket_1
     69                      DISABLE_GLOBAL_INT();
   \   000018   C2AF         CLR     0xa8.7
     70                      if (!pPacket->occupied) {
   \   00001A   700B         JNZ     ??mtxpReservePacket_2
     71                          pPacket->occupied = TRUE;
   \   00001C   7401         MOV     A,#0x1
   \   00001E   F0           MOVX    @DPTR,A
     72                          ENABLE_GLOBAL_INT();
   \   00001F   D2AF         SETB    0xa8.7
     73                          return pPacket;
   \   000021   AA82         MOV     R2,DPL
   \   000023   AB83         MOV     R3,DPH
   \   000025   800D         SJMP    ??mtxpReservePacket_3
     74                      }
     75                      ENABLE_GLOBAL_INT();
   \                     ??mtxpReservePacket_2:
   \   000027   D2AF         SETB    0xa8.7
     76                  }
     77              }
   \                     ??mtxpReservePacket_1:
   \   000029   0B           INC     R3
   \   00002A   EB           MOV     A,R3
   \   00002B   C3           CLR     C
   \   00002C   9406         SUBB    A,#0x6
   \   00002E   40D6         JC      ??mtxpReservePacket_0
     78              return NULL;
   \   000030   7A00         MOV     R2,#0x0
   \   000032   7B00         MOV     R3,#0x0
   \                     ??mtxpReservePacket_3:
   \   000034   80..         SJMP    ?Subroutine0
     79          } // mtxpReservePacket
     80          
     81          
     82          
     83          
     84          //-------------------------------------------------------------------------------------------------------
     85          //  void mtxpReleasePacket(MAC_TX_PACKET* pPacket)
     86          //
     87          //  DESCRIPTION:
     88          //      Releases a packet back to the TX packet pool
     89          //
     90          //  ARGUMENTS:
     91          //      MAC_TX_PACKET* pPacket
     92          //          A pointer to the packet to be released. This parameter can be NULL
     93          //-------------------------------------------------------------------------------------------------------

   \                                 In segment NEAR_CODE, align 1, keep-with-next
     94          ROOT void mtxpReleasePacket(MAC_TX_PACKET   *pPacket) {
   \                     mtxpReleasePacket:
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
     95              if (pPacket) {
   \   000004   EA           MOV     A,R2
   \   000005   7001         JNZ     ??mtxpReleasePacket_0
   \   000007   EB           MOV     A,R3
   \                     ??mtxpReleasePacket_0:
   \   000008   601D         JZ      ??mtxpReleasePacket_1
     96                  if (mtxInfo.pPacket == pPacket) mtxInfo.pPacket = NULL;
   \   00000A   90....       MOV     DPTR,#mtxInfo
   \   00000D   E0           MOVX    A,@DPTR
   \   00000E   F8           MOV     R0,A
   \   00000F   A3           INC     DPTR
   \   000010   E0           MOVX    A,@DPTR
   \   000011   F9           MOV     R1,A
   \   000012   EA           MOV     A,R2
   \   000013   68           XRL     A,R0
   \   000014   7002         JNZ     ??mtxpReleasePacket_2
   \   000016   EB           MOV     A,R3
   \   000017   69           XRL     A,R1
   \                     ??mtxpReleasePacket_2:
   \   000018   7007         JNZ     ??mtxpReleasePacket_3
   \   00001A   90....       MOV     DPTR,#mtxInfo
   \   00001D   E4           CLR     A
   \   00001E   F0           MOVX    @DPTR,A
   \   00001F   A3           INC     DPTR
   \   000020   F0           MOVX    @DPTR,A
     97                  pPacket->occupied = FALSE;
   \                     ??mtxpReleasePacket_3:
   \   000021   E4           CLR     A
   \   000022   8A82         MOV     DPL,R2
   \   000024   8B83         MOV     DPH,R3
   \   000026   F0           MOVX    @DPTR,A
     98              }
     99          } // mtxpReleasePacket
   \                     ??mtxpReleasePacket_1:
   \   000027   80..         SJMP    ?Subroutine0

   \                                 In segment SFR_AN, at 0xa8
   \   union <unnamed> volatile __sfr _A_IEN0
   \                     _A_IEN0:
   \   000000                DS 1
    100          

   Maximum stack usage in bytes:

     Function          ISTACK PSTACK XSTACK
     --------          ------ ------ ------
     mtxpInit              3      0      0
     mtxpReleasePacket     3      0      0
     mtxpReservePacket     3      0      0


   Segment part sizes:

     Function/Label    Bytes
     --------------    -----
     pMtxPacketPool     882
     mtxpInit            43
     ?Subroutine0         5
     mtxpReservePacket   54
     mtxpReleasePacket   41
     _A_IEN0              1

 
 143 bytes in segment NEAR_CODE
 882 bytes in segment PM0_XDATA
   1 byte  in segment SFR_AN
 
 143 bytes of CODE  memory
   0 bytes of DATA  memory (+ 1 byte shared)
 882 bytes of XDATA memory

Errors: none
Warnings: none

⌨️ 快捷键说明

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