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

📄 af.s51

📁 cc2430应用实例
💻 S51
📖 第 1 页 / 共 5 页
字号:
        MOV	A,#((osal_mem_alloc >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//  191   if ( ep )
        MOV	A,R2
        JNZ	??afRegisterExtended_0
        MOV	A,R3
??afRegisterExtended_0:
        JZ	??afRegisterExtended_1
//  192   {
//  193     // Fill in the new list entry
//  194     ep->epDesc = epDesc;
        MOV	DPL,R2
        MOV	DPH,R3
        MOV	A,R6
        MOVX	@DPTR,A
        INC	DPTR
        MOV	A,R7
        LCALL	?Subroutine2 & 0xFFFF
//  195     #if !defined ( REFLECTOR )
//  196     ep->reflectorAddr = NWK_PAN_COORD_ADDR;
//  197     #else
//  198     ep->reflectorAddr = INVALID_NODE_ADDR;
??CrossCallReturnLabel_2:
        MOV	A,#-0x2
        MOVX	@DPTR,A
        INC	DPTR
        MOV	A,#-0x1
        MOVX	@DPTR,A
//  199     #endif
//  200     // Default to allow Match Descriptor.
//  201     ep->flags = eEP_AllowMatch;
        MOV	A,#0x1
        MOV	DPL,R2
        MOV	DPH,R3
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        LCALL	?Subroutine1 & 0xFFFF
//  202 #if ( AF_KVP_SUPPORT )
//  203     ep->flags |= ((epDesc->endPoint == ZDO_EP) ? 0 : eEP_UsesKVP);
//  204 #endif
//  205     ep->pfnDescCB = descFn;
??CrossCallReturnLabel_101:
        MOV	A,?V0 + 0
        MOVX	@DPTR,A
        INC	DPTR
        MOV	A,?V0 + 1
        MOVX	@DPTR,A
        INC	DPTR
        MOV	A,?V0 + 2
        LCALL	?Subroutine1 & 0xFFFF
//  206     ep->nextDesc = NULL;
??CrossCallReturnLabel_102:
        INC	DPTR
        INC	DPTR
        INC	DPTR
        CLR	A
        MOVX	@DPTR,A
        INC	DPTR
        MOVX	@DPTR,A
//  207 
//  208     // Does a list exist?
//  209     if ( epList == NULL )
        MOV	DPTR,#epList
        MOVX	A,@DPTR
        JNZ	??afRegisterExtended_2
        INC	DPTR
        MOVX	A,@DPTR
??afRegisterExtended_2:
        MOV	DPTR,#epList
        JZ	??afRegisterExtended_3
//  210       epList = ep;  // Make this the first entry
//  211     else
//  212     {
//  213       // Look for the end of the list
//  214       epSearch = epList;
//  215       while( epSearch->nextDesc != NULL )
//  216         epSearch = epSearch->nextDesc;
??afRegisterExtended_4:
        LCALL	?Subroutine19 & 0xFFFF
??CrossCallReturnLabel_54:
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        MOVX	A,@DPTR
        JNZ	??afRegisterExtended_5
        INC	DPTR
        MOVX	A,@DPTR
??afRegisterExtended_5:
        MOV	DPL,R0
        MOV	DPH,R1
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        JNZ	??afRegisterExtended_4
//  217 
//  218       // Add new entry to end of list
//  219       epSearch->nextDesc = ep;
??afRegisterExtended_3:
        MOV	A,R2
        MOVX	@DPTR,A
        INC	DPTR
        MOV	A,R3
        MOVX	@DPTR,A
        CFI EndBlock cfiBlock1
//  220     }
//  221   }
//  222 
//  223   return ep;
??afRegisterExtended_1:
        REQUIRE ?Subroutine31
        ; // Fall through to label ?Subroutine31
//  224 }

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine31:
        CFI Block cfiBlock2 Using cfiCommon0
        CFI NoFunction
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 14)
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        MOV	R7,#0x6
        LJMP	?BANKED_LEAVE_XDATA
        CFI EndBlock cfiBlock2

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine1:
        CFI Block cfiCond3 Using cfiCommon0
        CFI NoFunction
        CFI Conditional ??CrossCallReturnLabel_102
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 14)
        CFI Block cfiCond4 Using cfiCommon0
        CFI (cfiCond4) NoFunction
        CFI (cfiCond4) Conditional ??CrossCallReturnLabel_101
        CFI (cfiCond4) R6 load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI (cfiCond4) VB load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI (cfiCond4) V0 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI (cfiCond4) V1 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI (cfiCond4) V2 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond4) V3 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond4) V4 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond4) V5 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond4) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond4) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond4) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond4) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond4) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond4) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond4) CFA_SP SP+0
        CFI (cfiCond4) CFA_XSP16 add(XSP16, 14)
        CFI Block cfiPicker5 Using cfiCommon1
        CFI (cfiPicker5) NoFunction
        CFI (cfiPicker5) Picker
        MOVX	@DPTR,A
        MOV	DPL,R2
        MOV	DPH,R3
        LJMP	?Subroutine32 & 0xFFFF
        CFI EndBlock cfiCond3
        CFI EndBlock cfiCond4
        CFI EndBlock cfiPicker5
//  225 
//  226 /*********************************************************************
//  227  * @fn      afRegister
//  228  *
//  229  * @brief   Register an Application's EndPoint description.
//  230  *
//  231  * @param   epDesc - pointer to the Application's endpoint descriptor.
//  232  *
//  233  * NOTE:  The memory that epDesc is pointing to must exist after this call.
//  234  *
//  235  * @return  afStatus_SUCCESS - Registered
//  236  *          afStatus_MEM_FAIL - not enough memory to add descriptor
//  237  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  238 afStatus_t afRegister( endPointDesc_t *epDesc )
afRegister:
        CFI Block cfiBlock6 Using cfiCommon0
        CFI Function afRegister
//  239 {
        FUNCALL afRegister, afRegisterExtended
        LOCFRAME XSTACK, 14, STACK
        ARGFRAME XSTACK, 14, STACK
        MOV	A,#-0xb
        LCALL	?BANKED_ENTER_XDATA
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 11)
        ; Saved register size: 11
        ; Auto size: 0
//  240   epList_t *ep = afRegisterExtended( epDesc, NULL );
//  241 
//  242   return ((ep == NULL) ? afStatus_MEM_FAIL : afStatus_SUCCESS);
        ; Setup parameters for call to function afRegisterExtended
        MOV	?V0 + 0,#0x0
        MOV	?V0 + 1,#0x0
        MOV	?V0 + 2,#0x0
        MOV	R0,#?V0 + 0
        LCALL	?PUSH_XSTACK_I_THREE
        CFI CFA_XSP16 add(XSP16, 14)
        MOV	DPTR,#(afRegisterExtended & 0xffff)
        MOV	A,#((afRegisterExtended >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
        MOV	A,#0x3
        LCALL	?DEALLOC_XSTACK8
        CFI CFA_XSP16 add(XSP16, 11)
        MOV	A,R2
        JNZ	??afRegister_0
        MOV	A,R3
??afRegister_0:
        JNZ	??afRegister_1
        MOV	R1,#-0x7f
        SJMP	??afRegister_2
??afRegister_1:
        MOV	R1,#0x0
??afRegister_2:
        MOV	R7,#0x3
        LJMP	?BANKED_LEAVE_XDATA
        CFI EndBlock cfiBlock6
//  243 }
//  244 
//  245 #if ( AF_KVP_SUPPORT )
//  246 /*********************************************************************
//  247  * @fn      afRegisterFlags
//  248  *
//  249  * @brief   Register an Application's EndPoint description.
//  250  *
//  251  * @param   epDesc - pointer to the Application's endpoint descriptor.
//  252  *
//  253  * NOTE:  The memory that epDesc is pointing to must exist after this call.
//  254  *
//  255  * @return  afStatus_SUCCESS - Registered
//  256  *          afStatus_MEM_FAIL - not enough memory to add descriptor
//  257  */
//  258 afStatus_t afRegisterFlags( endPointDesc_t *epDesc, eEP_Flags flags )
//  259 {
//  260   epList_t *ep = afRegisterExtended( epDesc, NULL );
//  261 
//  262   if ( ep != NULL )
//  263   {
//  264     ep->flags = flags;
//  265     return afStatus_SUCCESS;
//  266   }
//  267   else
//  268   {
//  269     return afStatus_MEM_FAIL;
//  270   }
//  271 }
//  272 #endif
//  273 
//  274 /*********************************************************************
//  275  * @fn          afDataConfirm
//  276  *
//  277  * @brief       This function will generate the Data Confirm back to
//  278  *              the application.
//  279  *
//  280  * @param       endPoint - confirm end point
//  281  * @param       transID - transaction ID from APSDE_DATA_REQUEST
//  282  * @param       status - status of APSDE_DATA_REQUEST
//  283  *
//  284  * @return      none
//  285  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  286 void afDataConfirm( uint8 endPoint, uint8 transID, ZStatus_t status )
afDataConfirm:
        CFI Block cfiBlock7 Using cfiCommon0
        CFI Function afDataConfirm
//  287 {
        FUNCALL afDataConfirm, afFindEndPointDesc
        LOCFRAME XSTACK, 12, STACK
        ARGFRAME XSTACK, 12, STACK
        FUNCALL afDataConfirm, osal_msg_allocate
        LOCFRAME XSTACK, 12, STACK
        ARGFRAME XSTACK, 12, STACK
        FUNCALL afDataConfirm, osal_msg_send
        LOCFRAME XSTACK, 12, STACK
        ARGFRAME XSTACK, 12, STACK
        MOV	A,#-0xc
        LCALL	?BANKED_ENTER_XDATA
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-7)))

⌨️ 快捷键说明

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