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

📄 zdobject.lst

📁 用IAR开发的ZIGBEE网络路由例子
💻 LST
📖 第 1 页 / 共 5 页
字号:

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine10:
   \   000000   EA           MOV     A,R2
   \   000001   F0           MOVX    @DPTR,A
   \   000002   A3           INC     DPTR
   \   000003   EB           MOV     A,R3
   \   000004   F0           MOVX    @DPTR,A
   \   000005   22           RET

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine64:
   \   000000   E0           MOVX    A,@DPTR
   \   000001   F8           MOV     R0,A
   \   000002   12....       LCALL   ?Subroutine66 & 0xFFFF
   \                     ??CrossCallReturnLabel_199:
   \   000005   22           RET

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine66:
   \   000000   A3           INC     DPTR
   \   000001   E0           MOVX    A,@DPTR
   \   000002   F583         MOV     DPH,A
   \   000004   8882         MOV     DPL,R0
   \   000006   22           RET
    420          
    421          #if defined ( REFLECTOR )
    422          /*********************************************************************
    423           * @fn          ZDO_RemoveEndDeviceBind
    424           *
    425           * @brief       Remove the end device bind
    426           *
    427           * @param  none
    428           *
    429           * @return      none
    430           */
    431          static void ZDO_RemoveEndDeviceBind( void )
    432          {
    433            if ( ZDO_EDBind )
    434            {
    435              // Free the RAM
    436              if ( ZDO_EDBind->inClusters )
    437                osal_mem_free( ZDO_EDBind->inClusters );
    438              if ( ZDO_EDBind->outClusters )
    439                osal_mem_free( ZDO_EDBind->outClusters );
    440              osal_mem_free( ZDO_EDBind );
    441              ZDO_EDBind = NULL;
    442            }
    443          }
    444          #endif // REFLECTOR
    445          
    446          #if defined ( REFLECTOR )
    447          /*********************************************************************
    448           * @fn          ZDO_RemoveEndDeviceBind
    449           *
    450           * @brief       Remove the end device bind
    451           *
    452           * @param  none
    453           *
    454           * @return      none
    455           */
    456          static void ZDO_SendEDBindRsp( byte TransSeq, zAddrType_t *dstAddr, byte Status, byte secUse )
    457          {
    458            ZDP_EndDeviceBindRsp( TransSeq, dstAddr, Status, secUse );
    459          
    460          #if defined( LCD_SUPPORTED )
    461            HalLcdWriteString( "End Device Bind", HAL_LCD_LINE_1 );
    462            if ( Status == ZDP_SUCCESS )
    463              HalLcdWriteString( "Success Sent", HAL_LCD_LINE_2 );
    464            else
    465              HalLcdWriteString( "Timeout", HAL_LCD_LINE_2 );
    466          #endif
    467          
    468          }
    469          #endif // REFLECTOR
    470          
    471          #if defined ( REFLECTOR ) || defined ( ZDO_COORDINATOR )
    472          /*********************************************************************
    473           * @fn          ZDO_CompareClusterLists
    474           *
    475           * @brief       Compare one list to another list
    476           *
    477           * @param       numList1 - number of items in list 1
    478           * @param       list1 - first list of cluster IDs
    479           * @param       numList2 - number of items in list 2
    480           * @param       list2 - second list of cluster IDs
    481           * @param       pMatches - buffer to put matches
    482           *
    483           * @return      number of matches
    484           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    485          static byte ZDO_CompareClusterLists( byte numList1, uint16 *list1,
   \                     ??ZDO_CompareClusterLists:
    486                                    byte numList2, uint16 *list2, uint16 *pMatches )
    487          {
   \   000000   74F0         MOV     A,#-0x10
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 16
   \   000005                ; Auto size: 0
   \   000005   89..         MOV     ?V0 + 2,R1
   \   000007   8A..         MOV     ?V0 + 6,R2
   \   000009   8B..         MOV     ?V0 + 7,R3
   \   00000B   7410         MOV     A,#0x10
   \   00000D   12....       LCALL   ?XSTACK_DISP0_8
   \   000010   12....       LCALL   ?Subroutine41 & 0xFFFF
   \                     ??CrossCallReturnLabel_120:
   \   000013   7412         MOV     A,#0x12
   \   000015   12....       LCALL   ?XSTACK_DISP0_8
   \   000018   12....       LCALL   ?Subroutine42 & 0xFFFF
    488            byte x, y;
    489            uint16 z;
    490            byte numMatches = 0;
   \                     ??CrossCallReturnLabel_127:
   \   00001B   7D00         MOV     R5,#0x0
    491          
    492            // Check the first in against the seconds out
    493            for ( x = 0; x < numList1; x++ )
   \   00001D   8D..         MOV     ?V0 + 3,R5
   \   00001F   804E         SJMP    ??ZDO_CompareClusterLists_1
    494            {
    495              for ( y = 0; y < numList2; y++ )
    496              {
    497                z = list2[y];
   \                     ??ZDO_CompareClusterLists_2:
   \   000021   E5..         MOV     A,?V0 + 4
   \   000023   C3           CLR     C
   \   000024   33           RLC     A
   \   000025   F8           MOV     R0,A
   \   000026   E4           CLR     A
   \   000027   33           RLC     A
   \   000028   F9           MOV     R1,A
   \   000029   EA           MOV     A,R2
   \   00002A   28           ADD     A,R0
   \   00002B   F582         MOV     DPL,A
   \   00002D   EB           MOV     A,R3
   \   00002E   12....       LCALL   ?Subroutine56 & 0xFFFF
    498                if ( list1[x] == z )
   \                     ??CrossCallReturnLabel_162:
   \   000031   E5..         MOV     A,?V0 + 3
   \   000033   C3           CLR     C
   \   000034   33           RLC     A
   \   000035   F8           MOV     R0,A
   \   000036   E4           CLR     A
   \   000037   33           RLC     A
   \   000038   F9           MOV     R1,A
   \   000039   E5..         MOV     A,?V0 + 6
   \   00003B   28           ADD     A,R0
   \   00003C   F582         MOV     DPL,A
   \   00003E   E5..         MOV     A,?V0 + 7
   \   000040   39           ADDC    A,R1
   \   000041   F583         MOV     DPH,A
   \   000043   E0           MOVX    A,@DPTR
   \   000044   65..         XRL     A,?V0 + 0
   \   000046   7004         JNZ     ??ZDO_CompareClusterLists_3
   \   000048   A3           INC     DPTR
   \   000049   E0           MOVX    A,@DPTR
   \   00004A   65..         XRL     A,?V0 + 1
   \                     ??ZDO_CompareClusterLists_3:
   \   00004C   7017         JNZ     ??ZDO_CompareClusterLists_4
    499                  pMatches[numMatches++] = z;
   \   00004E   ED           MOV     A,R5
   \   00004F   C3           CLR     C
   \   000050   33           RLC     A
   \   000051   F8           MOV     R0,A
   \   000052   E4           CLR     A
   \   000053   33           RLC     A
   \   000054   F9           MOV     R1,A
   \   000055   EE           MOV     A,R6
   \   000056   28           ADD     A,R0
   \   000057   F582         MOV     DPL,A
   \   000059   EF           MOV     A,R7
   \   00005A   39           ADDC    A,R1
   \   00005B   F583         MOV     DPH,A
   \   00005D   E5..         MOV     A,?V0 + 0
   \   00005F   F0           MOVX    @DPTR,A
   \   000060   A3           INC     DPTR
   \   000061   E5..         MOV     A,?V0 + 1
   \   000063   F0           MOVX    @DPTR,A
   \   000064   0D           INC     R5
    500              }
   \                     ??ZDO_CompareClusterLists_4:
   \   000065   05..         INC     ?V0 + 4
   \                     ??ZDO_CompareClusterLists_5:
   \   000067   E5..         MOV     A,?V0 + 4
   \   000069   C3           CLR     C
   \   00006A   9C           SUBB    A,R4
   \   00006B   40B4         JC      ??ZDO_CompareClusterLists_2
   \   00006D   05..         INC     ?V0 + 3
   \                     ??ZDO_CompareClusterLists_1:
   \   00006F   E5..         MOV     A,?V0 + 3
   \   000071   C3           CLR     C
   \   000072   95..         SUBB    A,?V0 + 2
   \   000074   5005         JNC     ??ZDO_CompareClusterLists_6
   \   000076   75..00       MOV     ?V0 + 4,#0x0
   \   000079   80EC         SJMP    ??ZDO_CompareClusterLists_5
    501            }
    502          
    503            return ( numMatches );
   \                     ??ZDO_CompareClusterLists_6:
   \   00007B   ED           MOV     A,R5
   \   00007C   F9           MOV     R1,A
   \   00007D   80..         SJMP    ??Subroutine69_0
    504          }

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine69:
   \   000000   12....       LCALL   ?DEALLOC_XSTACK8
   \                     ??Subroutine69_0:
   \   000003   7F08         MOV     R7,#0x8
   \   000005   02....       LJMP    ?BANKED_LEAVE_XDATA

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine56:
   \   000000   39           ADDC    A,R1
   \                     ??Subroutine56_0:
   \   000001   F583         MOV     DPH,A
   \                     ??Subroutine56_1:
   \   000003   E0           MOVX    A,@DPTR
   \   000004   F5..         MOV     ?V0 + 0,A
   \   000006   A3           INC     DPTR
   \   000007   E0           MOVX    A,@DPTR
   \   000008   F5..         MOV     ?V0 + 1,A
   \   00000A   22           RET
    505          #endif // REFLECTOR || ZDO_COORDINATOR
    506          
    507          #if defined ( REFLECTOR )
    508          /*********************************************************************
    509           * @fn          ZDO_DoEndDeviceBind
    510           *
    511           * @brief       Process the End Device Bind Req from ZDApp
    512           *
    513           * @param  bindReq  - Bind Request Information
    514           * @param  SecurityUse - Security enable/disable
    515           *
    516           * @return      none
    517           */
    518          void ZDO_DoEndDeviceBind( ZDEndDeviceBind_t *bindReq )
    519          {
    520            uint8 numMatches;
    521            uint8 Status;
    522            BindingEntry_t *pBind;
    523            AddrMgrEntry_t addrEntry;
    524            zAddrType_t SrcAddr;
    525          
    526            SrcAddr.addrMode = Addr16Bit;
    527            SrcAddr.addr.shortAddr = bindReq->srcAddr;
    528          
    529            // Ask for IEEE address
    530            if ( (bindReq->srcAddr != ZDAppNwkAddr.addr.shortAddr) )
    531            {
    532              addrEntry.user = ADDRMGR_USER_BINDING;
    533              addrEntry.nwkAddr = bindReq->srcAddr;
    534              Status = AddrMgrEntryLookupNwk( &addrEntry );
    535              if ( Status == TRUE)
    536              {
    537                // Add a reference to entry
    538                AddrMgrEntryAddRef( &addrEntry );
    539              }

⌨️ 快捷键说明

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