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

📄 mac_rx_pool.lst

📁 zigbee location examples
💻 LST
📖 第 1 页 / 共 2 页
字号:
     55          ROOT MAC_RX_PACKET  * mrxpReservePacket(void) {
   \                     mrxpReservePacket:
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
     56              MAC_RX_PACKET   *pPacket;
     57              UINT8 n;
     58              for (n = 0; n < MAC_OPT_RX_POOL_SIZE; n++) {
   \   000004   7B00         MOV     R3,#0x0
     59                  pPacket = &pMrxPacketPool[n];
   \                     ??mrxpReservePacket_0:
   \   000006   EB           MOV     A,R3
   \   000007   75F09F       MOV     B,#-0x61
   \   00000A   A4           MUL     AB
   \   00000B   24..         ADD     A,#(pMrxPacketPool & 0xff)
   \   00000D   F582         MOV     DPL,A
   \   00000F   E5F0         MOV     A,B
   \   000011   34..         ADDC    A,#((pMrxPacketPool >> 8) & 0xff)
   \   000013   F583         MOV     DPH,A
     60                  DISABLE_GLOBAL_INT();
   \   000015   C2AF         CLR     0xa8.7
     61                  if (!(pPacket->flags & MRXP_FLAG_PACKET_OCCUPIED_BM)) {
   \   000017   E0           MOVX    A,@DPTR
   \   000018   A2E0         MOV     C,0xE0 /* A   */.0
   \   00001A   400B         JC      ??mrxpReservePacket_1
     62                      pPacket->flags |= MRXP_FLAG_PACKET_OCCUPIED_BM;
   \   00001C   D2E0         SETB    0xE0 /* A   */.0
   \   00001E   F0           MOVX    @DPTR,A
     63                      ENABLE_GLOBAL_INT();
   \   00001F   D2AF         SETB    0xa8.7
     64                      return pPacket;
   \   000021   AA82         MOV     R2,DPL
   \   000023   AB83         MOV     R3,DPH
   \   000025   800D         SJMP    ??mrxpReservePacket_2
     65                  }
     66                  ENABLE_GLOBAL_INT();
   \                     ??mrxpReservePacket_1:
   \   000027   D2AF         SETB    0xa8.7
     67              }
   \   000029   0B           INC     R3
   \   00002A   EB           MOV     A,R3
   \   00002B   C3           CLR     C
   \   00002C   9404         SUBB    A,#0x4
   \   00002E   40D6         JC      ??mrxpReservePacket_0
     68              return NULL;
   \   000030   7A00         MOV     R2,#0x0
   \   000032   7B00         MOV     R3,#0x0
   \                     ??mrxpReservePacket_2:
   \   000034                REQUIRE ?Subroutine0
   \   000034                ; // Fall through to label ?Subroutine0
     69          } // mrxpReservePacket

   \                                 In segment NEAR_CODE, align 1, keep-with-next
   \                     ?Subroutine0:
   \   000000   D083         POP     DPH
   \   000002   D082         POP     DPL
   \   000004   22           RET
     70          
     71          
     72          
     73          
     74          //-------------------------------------------------------------------------------------------------------
     75          //  void mrxpReleasePacket(MAC_RX_PACKET* pPacket)
     76          //
     77          //  DESCRIPTION:
     78          //      Releases a packet back to the RX packet pool.
     79          //
     80          //  ARGUMENTS:
     81          //      MAC_RX_PACKET* pPacket
     82          //          A pointer to the packet to be released. This parameter can be NULL.
     83          //-------------------------------------------------------------------------------------------------------

   \                                 In segment NEAR_CODE, align 1, keep-with-next
     84          ROOT void mrxpReleasePacket(MAC_RX_PACKET   *pPacket) {
   \                     mrxpReleasePacket:
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
     85              if (pPacket) pPacket->flags = 0x00;
   \   000004   EA           MOV     A,R2
   \   000005   7001         JNZ     ??mrxpReleasePacket_0
   \   000007   EB           MOV     A,R3
   \                     ??mrxpReleasePacket_0:
   \   000008   6006         JZ      ??mrxpReleasePacket_1
   \   00000A   E4           CLR     A
   \   00000B   8A82         MOV     DPL,R2
   \   00000D   8B83         MOV     DPH,R3
   \   00000F   F0           MOVX    @DPTR,A
     86          } // mrxpReleasePacket
   \                     ??mrxpReleasePacket_1:
   \   000010   80..         SJMP    ?Subroutine0

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

   Maximum stack usage in bytes:

     Function          ISTACK PSTACK XSTACK
     --------          ------ ------ ------
     mrxpInit              0      0     11
       -> memset           0      0     22
     mrxpReleasePacket     3      0      0
     mrxpReservePacket     2      0      0


   Segment part sizes:

     Function/Label    Bytes
     --------------    -----
     pMrxPacketPool     636
     mrxpInit            42
     mrxpReservePacket   52
     ?Subroutine0         5
     mrxpReleasePacket   18
     _A_IEN0              1

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

Errors: none
Warnings: none

⌨️ 快捷键说明

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