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

📄 saddr.lst

📁 cc2430应用实例
💻 LST
📖 第 1 页 / 共 2 页
字号:
     55              return (sAddrExtCmp(pAddr1->addr.extAddr, pAddr2->addr.extAddr));
   \   000061                ; Setup parameters for call to function sAddrExtCmp
   \   000061   90....       MOV     DPTR,#(sAddrExtCmp & 0xffff)
   \   000064   74..         MOV     A,#((sAddrExtCmp >> 16) & 0xff)
   \   000066   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \                     ??sAddrCmp_2:
   \   000069                REQUIRE ?Subroutine0
   \   000069                ; // Fall through to label ?Subroutine0
     56            }
     57            else
     58            {
     59              return FALSE;
     60            }
     61          }

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine0:
   \   000000   7F01         MOV     R7,#0x1
   \   000002   02....       LJMP    ?BANKED_LEAVE_XDATA
     62          
     63          /****************************************************************************
     64           * @fn          sAddrCpy
     65           *
     66           * @brief       Copy a device address.
     67           *
     68           * input parameters
     69           *
     70           * @param       pSrc         - Pointer to address to copy.
     71           *
     72           * output parameters
     73           *
     74           * @param       pDest        - Pointer to address of copy.
     75           *
     76           * @return      None.
     77           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
     78          void sAddrCpy(sAddr_t *pDest, const sAddr_t *pSrc)
   \                     sAddrCpy:
     79          {
   \   000000   74F7         MOV     A,#-0x9
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 9
   \   000005                ; Auto size: 0
     80            pDest->addrMode = pSrc->addrMode;
   \   000005   8C82         MOV     DPL,R4
   \   000007   8D83         MOV     DPH,R5
   \   000009   A3           INC     DPTR
   \   00000A   A3           INC     DPTR
   \   00000B   A3           INC     DPTR
   \   00000C   A3           INC     DPTR
   \   00000D   A3           INC     DPTR
   \   00000E   A3           INC     DPTR
   \   00000F   A3           INC     DPTR
   \   000010   A3           INC     DPTR
   \   000011   E0           MOVX    A,@DPTR
   \   000012   FE           MOV     R6,A
   \   000013   8A82         MOV     DPL,R2
   \   000015   8B83         MOV     DPH,R3
   \   000017   A3           INC     DPTR
   \   000018   A3           INC     DPTR
   \   000019   A3           INC     DPTR
   \   00001A   A3           INC     DPTR
   \   00001B   A3           INC     DPTR
   \   00001C   A3           INC     DPTR
   \   00001D   A3           INC     DPTR
   \   00001E   A3           INC     DPTR
   \   00001F   F0           MOVX    @DPTR,A
     81          
     82            if (pDest->addrMode == SADDR_MODE_SHORT)
   \   000020   7402         MOV     A,#0x2
   \   000022   6E           XRL     A,R6
   \   000023   7014         JNZ     ??sAddrCpy_0
     83            {
     84              pDest->addr.shortAddr = pSrc->addr.shortAddr;
   \   000025   8C82         MOV     DPL,R4
   \   000027   8D83         MOV     DPH,R5
   \   000029   E0           MOVX    A,@DPTR
   \   00002A   F8           MOV     R0,A
   \   00002B   A3           INC     DPTR
   \   00002C   E0           MOVX    A,@DPTR
   \   00002D   F9           MOV     R1,A
   \   00002E   8A82         MOV     DPL,R2
   \   000030   8B83         MOV     DPH,R3
   \   000032   E8           MOV     A,R0
   \   000033   F0           MOVX    @DPTR,A
   \   000034   A3           INC     DPTR
   \   000035   E9           MOV     A,R1
   \   000036   F0           MOVX    @DPTR,A
   \   000037   8019         SJMP    ??sAddrCpy_1
     85            }
     86            else if (pDest->addrMode == SADDR_MODE_EXT)
   \                     ??sAddrCpy_0:
   \   000039   8A82         MOV     DPL,R2
   \   00003B   8B83         MOV     DPH,R3
   \   00003D   A3           INC     DPTR
   \   00003E   A3           INC     DPTR
   \   00003F   A3           INC     DPTR
   \   000040   A3           INC     DPTR
   \   000041   A3           INC     DPTR
   \   000042   A3           INC     DPTR
   \   000043   A3           INC     DPTR
   \   000044   A3           INC     DPTR
   \   000045   E0           MOVX    A,@DPTR
   \   000046   6403         XRL     A,#0x3
   \   000048   7008         JNZ     ??sAddrCpy_1
     87            {
     88              sAddrExtCpy(pDest->addr.extAddr, pSrc->addr.extAddr);
   \   00004A                ; Setup parameters for call to function sAddrExtCpy
   \   00004A   90....       MOV     DPTR,#(sAddrExtCpy & 0xffff)
   \   00004D   74..         MOV     A,#((sAddrExtCpy >> 16) & 0xff)
   \   00004F   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
     89            }
     90          }
   \                     ??sAddrCpy_1:
   \   000052   80..         SJMP    ?Subroutine0
     91          
     92          /****************************************************************************
     93           * @fn          sAddrExtCmp
     94           *
     95           * @brief       Compare two extended addresses.
     96           *
     97           * input parameters
     98           *
     99           * @param       pAddr1        - Pointer to first address.
    100           * @param       pAddr2        - Pointer to second address.
    101           *
    102           * output parameters
    103           *
    104           * @return      TRUE if addresses are equal, FALSE otherwise
    105           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    106          bool sAddrExtCmp(const uint8 * pAddr1, const uint8 * pAddr2)
   \                     sAddrExtCmp:
    107          {
   \   000000   74F6         MOV     A,#-0xa
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 10
   \   000005                ; Auto size: 0
    108            byte i;
    109          
    110            for (i = SADDR_EXT_LEN; i != 0; i--)
   \   000005   75..08       MOV     ?V0 + 0,#0x8
    111            {
    112              if (*pAddr1++ != *pAddr2++)
   \                     ??sAddrExtCmp_0:
   \   000008   EA           MOV     A,R2
   \   000009   F8           MOV     R0,A
   \   00000A   EB           MOV     A,R3
   \   00000B   F9           MOV     R1,A
   \   00000C   8882         MOV     DPL,R0
   \   00000E   8983         MOV     DPH,R1
   \   000010   A3           INC     DPTR
   \   000011   AA82         MOV     R2,DPL
   \   000013   AB83         MOV     R3,DPH
   \   000015   EC           MOV     A,R4
   \   000016   FE           MOV     R6,A
   \   000017   ED           MOV     A,R5
   \   000018   FF           MOV     R7,A
   \   000019   8E82         MOV     DPL,R6
   \   00001B   8F83         MOV     DPH,R7
   \   00001D   A3           INC     DPTR
   \   00001E   AC82         MOV     R4,DPL
   \   000020   AD83         MOV     R5,DPH
   \   000022   8882         MOV     DPL,R0
   \   000024   8983         MOV     DPH,R1
   \   000026   E0           MOVX    A,@DPTR
   \   000027   F8           MOV     R0,A
   \   000028   8E82         MOV     DPL,R6
   \   00002A   8F83         MOV     DPH,R7
   \   00002C   E0           MOVX    A,@DPTR
   \   00002D   68           XRL     A,R0
   \   00002E   6004         JZ      ??sAddrExtCmp_1
    113              {
    114                return FALSE;
   \   000030   7900         MOV     R1,#0x0
   \   000032   8008         SJMP    ??sAddrExtCmp_2
    115              }
    116            }
   \                     ??sAddrExtCmp_1:
   \   000034   15..         DEC     ?V0 + 0
   \   000036   E5..         MOV     A,?V0 + 0
   \   000038   70CE         JNZ     ??sAddrExtCmp_0
    117            return TRUE;
   \   00003A   7901         MOV     R1,#0x1
   \                     ??sAddrExtCmp_2:
   \   00003C   7F02         MOV     R7,#0x2
   \   00003E   02....       LJMP    ?BANKED_LEAVE_XDATA
    118          }
    119          
    120          /****************************************************************************
    121           * @fn          sAddrExtCpy
    122           *
    123           * @brief       Copy an extended address.
    124           *
    125           * input parameters
    126           *
    127           * @param       pSrc         - Pointer to address to copy.
    128           *
    129           * output parameters
    130           *
    131           * @param       pDest        - Pointer to address of copy.
    132           *
    133           * @return      pDest + SADDR_EXT_LEN.
    134           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    135          void *sAddrExtCpy(uint8 * pDest, const uint8 * pSrc)
   \                     sAddrExtCpy:
    136          {
   \   000000   74F5         MOV     A,#-0xb
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 11
   \   000005                ; Auto size: 0
    137            return osal_memcpy(pDest, pSrc, SADDR_EXT_LEN);
   \   000005                ; Setup parameters for call to function osal_memcpy
   \   000005   8C..         MOV     ?V0 + 0,R4
   \   000007   8D..         MOV     ?V0 + 1,R5
   \   000009   75..00       MOV     ?V0 + 2,#0x0
   \   00000C   78..         MOV     R0,#?V0 + 0
   \   00000E   12....       LCALL   ?PUSH_XSTACK_I_THREE
   \   000011   7C08         MOV     R4,#0x8
   \   000013   7D00         MOV     R5,#0x0
   \   000015   90....       MOV     DPTR,#(osal_memcpy & 0xffff)
   \   000018   74..         MOV     A,#((osal_memcpy >> 16) & 0xff)
   \   00001A   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   00001D   7403         MOV     A,#0x3
   \   00001F   12....       LCALL   ?DEALLOC_XSTACK8
   \   000022   7F03         MOV     R7,#0x3
   \   000024   02....       LJMP    ?BANKED_LEAVE_XDATA
    138          }
    139          
    140          
    141          
    142          

   Maximum stack usage in bytes:

     Function         ISTACK PSTACK XSTACK
     --------         ------ ------ ------
     sAddrCmp             0      0      9
       -> sAddrExtCmp     0      0     18
     sAddrCpy             1      0      9
       -> sAddrExtCpy     0      0     18
     sAddrExtCmp          0      0     19
     sAddrExtCpy          0      0     23
       -> osal_memcpy     0      0     28


   Segment part sizes:

     Function/Label Bytes
     -------------- -----
     sAddrCmp        105
     ?Subroutine0      5
     sAddrCpy         84
     sAddrExtCmp      65
     sAddrExtCpy      39

 
 298 bytes in segment BANKED_CODE
 
 298 bytes of CODE memory

Errors: none
Warnings: none

⌨️ 快捷键说明

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