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

📄 af.s51

📁 CC2430上开关控制灯和温度传感器采集两个例子
💻 S51
📖 第 1 页 / 共 5 页
字号:
        MOV	A,R3
        MOVX	@DPTR,A
        SJMP	??afIncomingData_5
//  359   }
//  360   else if ( aff->DstEndPoint == AF_BROADCAST_ENDPOINT )
??afIncomingData_0:
        LCALL	?Subroutine13 & 0xFFFF
??CrossCallReturnLabel_41:
        JNZ	??afIncomingData_6
//  361   {
//  362     // Set the list
//  363     if ( (pList = epList) )
        MOV	DPTR,#epList
        LCALL	??Subroutine20_0 & 0xFFFF
??CrossCallReturnLabel_56:
        MOV	A,#0x2
        LCALL	?XSTACK_DISP0_8
        LCALL	??Subroutine4_0 & 0xFFFF
??CrossCallReturnLabel_7:
        MOV	A,#0x2
        LCALL	?XSTACK_DISP0_8
        MOVX	A,@DPTR
        JNZ	??afIncomingData_7
        INC	DPTR
        MOVX	A,@DPTR
??afIncomingData_7:
        JNZ	$+5
        LJMP	??afIncomingData_1 & 0xFFFF
//  364     {
//  365       epDesc = pList->epDesc;
??afIncomingData_8:
        MOV	A,#0x2
        LCALL	?XSTACK_DISP0_8
        LCALL	?Subroutine12 & 0xFFFF
??CrossCallReturnLabel_36:
        MOV	?V0 + 6,A
        INC	DPTR
        MOVX	A,@DPTR
        MOV	?V0 + 7,A
        SJMP	??afIncomingData_5
//  366     }
//  367   }
//  368   else if ( (epDesc = afFindEndPointDesc( aff->DstEndPoint )) )
??afIncomingData_6:
        ; Setup parameters for call to function afFindEndPointDesc
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        INC	DPTR
        MOVX	A,@DPTR
        MOV	DPH,A
        MOV	DPL,R0
        INC	DPTR
        INC	DPTR
        MOVX	A,@DPTR
        MOV	R1,A
        MOV	DPTR,#(afFindEndPointDesc & 0xffff)
        MOV	A,#((afFindEndPointDesc >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
        MOV	?V0 + 4,R2
        MOV	?V0 + 5,R3
        MOV	R0,?V0 + 4
        MOV	R1,?V0 + 5
        MOV	?V0 + 6,R0
        MOV	?V0 + 7,R1
        MOV	A,R0
        JNZ	??afIncomingData_9
        MOV	A,R1
??afIncomingData_9:
        JNZ	??afIncomingData_4
//  369   {
//  370     pList = afFindEndPointDescList( epDesc->endPoint );
//  371   }
//  372 
//  373   while ( epDesc )
??afIncomingData_5:
        MOV	A,?V0 + 6
        JNZ	??afIncomingData_10
        MOV	A,?V0 + 7
??afIncomingData_10:
        JNZ	$+5
        LJMP	??afIncomingData_1 & 0xFFFF
//  374   {
//  375     if ( pList->pfnDescCB )
        MOV	A,#0x2
        LCALL	?XSTACK_DISP0_8
        LCALL	?Subroutine14 & 0xFFFF
??CrossCallReturnLabel_43:
        LCALL	?Subroutine18 & 0xFFFF
??CrossCallReturnLabel_52:
        MOV	DPL,?V0 + 6
        MOV	DPH,?V0 + 7
        JZ	??afIncomingData_11
//  376     {
//  377       uint16 *pID = (uint16 *)(pList->pfnDescCB(
//  378                                  AF_DESCRIPTOR_PROFILE_ID, epDesc->endPoint ));
        ; Setup parameters for indirect call
        MOVX	A,@DPTR
        MOV	R0,#0x2
        MOV	R4,A
        MOV	A,R0
        LCALL	?XSTACK_DISP0_8
        MOVX	A,@DPTR
        MOV	R1,A
        INC	DPTR
        MOVX	A,@DPTR
        MOV	DPH,A
        MOV	DPL,R1
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        MOVX	A,@DPTR
        MOV	R1,A
        INC	DPTR
        MOVX	A,@DPTR
        MOV	R2,A
        INC	DPTR
        MOVX	A,@DPTR
        MOV	DPL,R1
        MOV	DPH,R2
        XCH	A,R4
        MOV	R2,A
        MOV	A,R4
        XCH	A,R0
        MOV	R1,A
        MOV	A,R0
        LCALL	?BCALL               ; Banked call to: DPTR()
//  379       if ( pID )
        MOV	A,R2
        JNZ	??afIncomingData_12
        MOV	A,R3
??afIncomingData_12:
        JZ	??CrossCallReturnLabel_8
//  380       {
//  381         epProfileID = *pID;
        LCALL	?Subroutine20 & 0xFFFF
??CrossCallReturnLabel_57:
        MOV	A,#0x4
        LCALL	?XSTACK_DISP0_8
        LCALL	?Subroutine3 & 0xFFFF
//  382         osal_mem_free( pID );
??CrossCallReturnLabel_5:
        LCALL	?BCALL               ; Banked call to: DPTR()
        SJMP	??CrossCallReturnLabel_8
//  383       }
//  384     }
//  385     else if ( epDesc->simpleDesc )
??afIncomingData_11:
        INC	DPTR
        INC	DPTR
        INC	DPTR
        MOVX	A,@DPTR
        JNZ	??afIncomingData_13
        INC	DPTR
        MOVX	A,@DPTR
??afIncomingData_13:
        JZ	??CrossCallReturnLabel_8
//  386     {
//  387       epProfileID = epDesc->simpleDesc->AppProfId;
        MOV	DPL,?V0 + 6
        MOV	DPH,?V0 + 7
        LCALL	?Subroutine9 & 0xFFFF
??CrossCallReturnLabel_32:
        MOV	A,#0x4
        LCALL	?XSTACK_DISP0_8
        LCALL	??Subroutine4_0 & 0xFFFF
//  388     }
//  389 
//  390     if ( (aff->ProfileID == epProfileID) ||
//  391          ((epDesc->endPoint == ZDO_EP) && (aff->ProfileID == ZDO_PROFILE_ID)) )
??CrossCallReturnLabel_8:
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        LCALL	?Subroutine5 & 0xFFFF
??CrossCallReturnLabel_18:
        MOV	A,#0x4
        LCALL	?XSTACK_DISP0_8
        MOVX	A,@DPTR
        XRL	A,R0
        JNZ	??afIncomingData_14
        INC	DPTR
        MOVX	A,@DPTR
        XRL	A,R1
??afIncomingData_14:
        JZ	??afIncomingData_15
        MOV	DPL,?V0 + 6
        MOV	DPH,?V0 + 7
        MOVX	A,@DPTR
        JNZ	??afIncomingData_16
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        LCALL	?Subroutine14 & 0xFFFF
??CrossCallReturnLabel_44:
        INC	DPTR
        INC	DPTR
        INC	DPTR
        MOVX	A,@DPTR
        JNZ	??afIncomingData_17
        INC	DPTR
        MOVX	A,@DPTR
??afIncomingData_17:
        JNZ	??afIncomingData_16
//  392     {
//  393 #if ( AF_KVP_SUPPORT )
//  394       if ( (FRAMETYPE_KVP == HI_UINT8(aff->asdu[0])) &&
//  395            (pList->flags & eEP_UsesKVP) )
//  396       {
//  397         afBuildKVPIncoming( aff, epDesc, SrcAddress, LinkQuality, SecurityUse );
//  398       }
//  399       else
//  400 #endif
//  401       {
//  402         afBuildMSGIncoming( aff, epDesc, SrcAddress, LinkQuality, SecurityUse, timestamp );
??afIncomingData_15:
        ; Setup parameters for call to function afBuildMSGIncoming
        MOV	R0,#?V0 + 0
        LCALL	?PUSH_XSTACK_I_FOUR
        CFI CFA_XSP16 add(XSP16, 29)
        MOV	A,#0x1d
        LCALL	?XSTACK_DISP0_8
        MOVX	A,@DPTR
        MOV	?V0 + 4,A
        MOV	R0,#?V0 + 4
        LCALL	?PUSH_XSTACK_I_ONE
        CFI CFA_XSP16 add(XSP16, 30)
        MOV	A,#0xc
        LCALL	?XSTACK_DISP0_8
        LCALL	?PUSH_XSTACK8_X_TWO
        CFI CFA_XSP16 add(XSP16, 32)
        MOV	A,#0xd
        LCALL	?XSTACK_DISP0_8
        MOVX	A,@DPTR
        MOV	R1,A
        MOV	R4,?V0 + 6
        MOV	R5,?V0 + 7
        MOV	A,#0x7
        LCALL	?XSTACK_DISP0_8
        LCALL	??Subroutine7_0 & 0xFFFF
??CrossCallReturnLabel_22:
        MOV	DPTR,#(??afBuildMSGIncoming & 0xffff)
        MOV	A,#((??afBuildMSGIncoming >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
        MOV	A,#0x7
        LCALL	?DEALLOC_XSTACK8
        CFI CFA_XSP16 add(XSP16, 25)
//  403       }
//  404     }
//  405 
//  406     if ( (NLME_GetProtocolVersion() != ZB_PROT_V1_0)
//  407       && ((aff->FrmCtrl & APS_DELIVERYMODE_MASK) == APS_FC_DM_GROUP) )
??afIncomingData_16:
        ; Setup parameters for call to function NLME_GetProtocolVersion
        MOV	DPTR,#(NLME_GetProtocolVersion & 0xffff)
        MOV	A,#((NLME_GetProtocolVersion >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
        MOV	A,R1
        XRL	A,#0x1
        JZ	??afIncomingData_18
        LCALL	?Subroutine11 & 0xFFFF
??CrossCallReturnLabel_35:
        JNZ	??afIncomingData_18
//  408     {
//  409       // Find the next endpoint for this group
//  410       grpEp = aps_FindGroupForEndpoint( aff->GroupID, grpEp );
        ; Setup parameters for call to function aps_FindGroupForEndpoint
        MOV	A,R7
        MOV	R1,A
        LCALL	?Subroutine6 & 0xFFFF
??CrossCallReturnLabel_21:
        LCALL	?BCALL               ; Banked call to: DPTR()
        MOV	A,R1
        MOV	R7,A
//  411       if ( grpEp == APS_GROUPS_EP_NOT_FOUND )
        MOV	A,#-0x2
        XRL	A,R7
        JZ	$+5
        LJMP	??afIncomingData_2 & 0xFFFF
        SJMP	??afIncomingData_1
//  412         return;   // No endpoint found
//  413 
//  414       epDesc = afFindEndPointDesc( grpEp );
//  415       if ( epDesc == NULL )
//  416         return;   // Endpoint descriptor not found
//  417 
//  418       pList = afFindEndPointDescList( epDesc->endPoint );
//  419     }
//  420     else if ( aff->DstEndPoint == AF_BROADCAST_ENDPOINT )
??afIncomingData_18:
        LCALL	?Subroutine13 & 0xFFFF
??CrossCallReturnLabel_42:
        JNZ	??afIncomingData_1
//  421     {
//  422       pList = pList->nextDesc;
        MOV	A,#0x2
        LCALL	?XSTACK_DISP0_8
        LCALL	?Subroutine5 & 0xFFFF
??CrossCallReturnLabel_19:
        MOV	A,#0x2
        LCALL	?XSTACK_DISP0_8
        LCALL	??Subroutine4_0 & 0xFFFF
//  423       if ( pList )
??CrossCallReturnLabel_9:
        MOV	A,#0x2
        LCALL	?XSTACK_DISP0_8
        MOVX	A,@DPTR
        JNZ	??afIncomingData_19
        INC	DPTR
        MOVX	A,@DPTR
??afIncomingData_19:
        JZ	$+5
        LJMP	??afIncomingData_8 & 0xFFFF
??afIncomingData_1:
        MOV	A,#0x9
        CFI EndBlock cfiBlock12
        REQUIRE ?Subroutine33
        ; // Fall through to label ?Subroutine33
//  424         epDesc = pList->epDesc;
//  425       else
//  426         epDesc = NULL;
//  427     }
//  428     else
//  429       epDesc = NULL;
//  430   }
//  431 }

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine33:
        CFI Block cfiBlock13 Using cfiCommon0
        CFI NoFunction
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 21)
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
   

⌨️ 快捷键说明

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