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

📄 mac_indirect_polling.s51

📁 zigbee location examples
💻 S51
📖 第 1 页 / 共 4 页
字号:
        CFI EndBlock cfiBlock5

        RSEG NEAR_CODE:CODE:NOROOT(0)
mipDataRequestTimeout:
        CFI Block cfiBlock6 Using cfiCommon1
        CFI Function mipDataRequestTimeout
        FUNCALL mipDataRequestTimeout, mschReserveTask
        LOCFRAME ISTACK, 1, STACK
        LOCFRAME XSTACK, 14, STACK
        ARGFRAME ISTACK, 1, STACK
        ARGFRAME XSTACK, 14, STACK
        FUNCALL mipDataRequestTimeout, mschAddTask
        LOCFRAME XSTACK, 14, STACK
        ARGFRAME XSTACK, 14, STACK
        FUNCALL mipDataRequestTimeout, mtimSetCallback
        LOCFRAME XSTACK, 15, STACK
        ARGFRAME XSTACK, 15, 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
        ; Setup parameters for call to function mschAddTask
        MOV	?V0 + 0,#(mipDataRequestTimeoutTask & 0xff)
        MOV	?V0 + 1,#((mipDataRequestTimeoutTask >> 8) & 0xff)
        MOV	?V0 + 2,#((mipDataRequestTimeoutTask >> 16) & 0xff)
        MOV	R0,#?V0 + 0
        LCALL	?PUSH_XSTACK_I_THREE
        CFI CFA_XSP16 add(XSP16, 14)
        MOV	R2,#0x2
        MOV	A,R2
        PUSH	A
        CFI CFA_SP SP+-1
        ; Setup parameters for call to function mschReserveTask
        LCALL	mschReserveTask & 0xFFFF
        CLR	A
        MOV	R4,A
        MOV	R5,A
        POP	A
        CFI CFA_SP SP+0
        MOV	R2,A
        LCALL	mschAddTask & 0xFFFF
        MOV	A,#0x3
        LCALL	?DEALLOC_XSTACK8
        CFI CFA_XSP16 add(XSP16, 11)
        MOV	A,R1
        JNZ	??mipDataRequestTimeout_0
        ; Setup parameters for call to function mtimSetCallback
        MOV	DPTR,#__Constant_a
        LCALL	?PUSH_XSTACK8_X_FOUR
        CFI CFA_XSP16 add(XSP16, 15)
        MOV	R1,#(mipDataRequestTimeout & 0xff)
        MOV	R2,#((mipDataRequestTimeout >> 8) & 0xff)
        MOV	R3,#((mipDataRequestTimeout >> 16) & 0xff)
        LCALL	mtimSetCallback & 0xFFFF
        MOV	A,#0x4
        LCALL	?DEALLOC_XSTACK8
        CFI CFA_XSP16 add(XSP16, 11)
        CFI EndBlock cfiBlock6
??mipDataRequestTimeout_0:
        REQUIRE ?Subroutine2
        ; // Fall through to label ?Subroutine2

        RSEG NEAR_CODE:CODE:NOROOT(0)
?Subroutine2:
        CFI Block cfiBlock7 Using cfiCommon1
        CFI NoFunction
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 11)
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
        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(-11)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V2 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,#0x3
        LJMP	?BANKED_LEAVE_XDATA
        CFI EndBlock cfiBlock7

        RSEG NEAR_CODE:CODE:NOROOT(0)
mipCancelDataRequestTimeout:
        CFI Block cfiBlock8 Using cfiCommon1
        CFI Function mipCancelDataRequestTimeout
        FUNCALL mipCancelDataRequestTimeout, mtimCancelCallback
        LOCFRAME XSTACK, 9, STACK
        ARGFRAME XSTACK, 9, STACK
        FUNCALL mipCancelDataRequestTimeout, mrxDecrOnCounter
        LOCFRAME XSTACK, 9, STACK
        ARGFRAME XSTACK, 9, STACK
        FUNCALL mipCancelDataRequestTimeout, macSetState
        LOCFRAME XSTACK, 9, STACK
        ARGFRAME XSTACK, 9, STACK
        MOV	A,#-0x9
        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 V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 9)
        ; Saved register size: 9
        ; Auto size: 0
        MOV	R6,#0x0
        ; Setup parameters for call to function mtimCancelCallback
        MOV	R1,#(mipDataRequestTimeout & 0xff)
        MOV	R2,#((mipDataRequestTimeout >> 8) & 0xff)
        MOV	R3,#((mipDataRequestTimeout >> 16) & 0xff)
        LCALL	mtimCancelCallback & 0xFFFF
        MOV	A,R1
        JZ	??mipCancelDataRequestTimeout_0
        ; Setup parameters for call to function mrxDecrOnCounter
        MOV	DPTR,#(mrxDecrOnCounter & 0xffff)
        MOV	A,#((mrxDecrOnCounter >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
        CLR	0xa8.7
        MOV	DPTR,#macInfo
        MOVX	A,@DPTR
        MOV	R6,A
        ; Setup parameters for call to function macSetState
        MOV	R1,#0x0
        LCALL	macSetState & 0xFFFF
        SETB	0xa8.7
??mipCancelDataRequestTimeout_0:
        MOV	A,R6
        MOV	R1,A
        SJMP	?Subroutine1
        CFI EndBlock cfiBlock8
//  299 
//  300 
//  301 
//  302 
//  303 //-------------------------------------------------------------------------------------------------------
//  304 //  void mipPollAssociateResponseTask(MAC_TASK_INFO *pTask)
//  305 //
//  306 //  DESCRIPTION:
//  307 //      This task makes sure that a data request is transmitted in the association procedure. If the
//  308 //      transmission couldn't be initiated, this task will be rescheduled.
//  309 //
//  310 //  TASK DATA:
//  311 //      0
//  312 //-------------------------------------------------------------------------------------------------------

        RSEG NEAR_CODE:CODE:NOROOT(0)
//  313 void mipPollAssociateResponseTask(MAC_TASK_INFO   *pTask) NEAR {
mipPollAssociateResponseTask:
        CFI Block cfiBlock9 Using cfiCommon1
        CFI Function mipPollAssociateResponseTask
        FUNCALL mipPollAssociateResponseTask, mipTransmitAssocDataRequest
        LOCFRAME XSTACK, 9, STACK
        ARGFRAME XSTACK, 9, STACK
        FUNCALL mipPollAssociateResponseTask, mschRescheduleTask
        LOCFRAME XSTACK, 9, STACK
        ARGFRAME XSTACK, 9, STACK
        FUNCALL mipPollAssociateResponseTask, mschRemoveTask
        LOCFRAME XSTACK, 9, STACK
        ARGFRAME XSTACK, 9, STACK
        MOV	A,#-0x9
        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 V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 9)
        ; Saved register size: 9
        ; Auto size: 0
        MOV	A,R2
        MOV	R6,A
        MOV	A,R3
        MOV	R7,A
//  314 
//  315     // We should not wait for the association response to be indicated in the beacon pending list, because there's no
//  316     // guarantee that it will ever appear there (the coordinator could for instance be out of resources when the
//  317     // association request is received)! If the association response is not polled, the MAC state machine (macInfo.state)
//  318     // will lock up (and probably the higher layer too).
//  319     if (macInfo.state == MAC_STATE_ASSOC_REQUEST_SENT) {
        MOV	DPTR,#macInfo
        MOVX	A,@DPTR
        XRL	A,#0x81
        JNZ	??mipPollAssociateResponseTask_0
//  320         if (mipTransmitAssocDataRequest() == RESOURCE_SHORTAGE) {
        ; Setup parameters for call to function mipTransmitAssocDataRequest
        LCALL	mipTransmitAssocDataRequest & 0xFFFF
        MOV	A,R1
        XRL	A,#0x1
        JNZ	??mipPollAssociateResponseTask_0
//  321 
//  322             // Reschedule this task if there was a lack of resources (TX packet or task)
//  323             mschRescheduleTask(pTask, 0);
        ; Setup parameters for call to function mschRescheduleTask
        MOV	R1,#0x0
        MOV	A,R6
        MOV	R2,A
        MOV	A,R7
        MOV	R3,A
        LCALL	mschRescheduleTask & 0xFFFF
//  324             return;
        SJMP	??mipPollAssociateResponseTask_1
//  325         }
//  326     }
//  327 
//  328     // Done! Remove this task
//  329     mschRemoveTask(pTask->priority, MSCH_KEEP_TASK_IN_PROGRESS_BM);
??mipPollAssociateResponseTask_0:
        ; Setup parameters for call to function mschRemoveTask
        MOV	R2,#0x2
        MOV	DPL,R6
        MOV	DPH,R7
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        MOVX	A,@DPTR
        MOV	R1,A
        LCALL	mschRemoveTask & 0xFFFF
//  330 
//  331 } // mipPollAssociateResponse
??mipPollAssociateResponseTask_1:
        LJMP	?Subroutine1
        CFI EndBlock cfiBlock9
//  332 
//  333 
//  334 
//  335 
//  336 //-------------------------------------------------------------------------------------------------------
//  337 //  void mipPollAssociateResponse(void)
//  338 //
//  339 //  DESCRIPTION:
//  340 //      This timeout function creates the task responsible for polling the association response.
//  341 //-------------------------------------------------------------------------------------------------------

        RSEG NEAR_CODE:CODE:NOROOT(0)
//  342 void mipPollAssociateResponse(void) NEAR {
mipPollAssociateResponse:
        CFI Block cfiBlock10 Using cfiCommon1
        CFI Function mipPollAssociateResponse
        FUNCALL mipPollAssociateResponse, mschReserveTask
        LOCFRAME ISTACK, 1, STACK
        LOCFRAME XSTACK, 14, STACK
        ARGFRAME ISTACK, 1, STACK
        ARGFRAME XSTACK, 14, STACK
        FUNCALL mipPollAssociateResponse, mschAddTask
        LOCFRAME XSTACK, 14, STACK
        ARGFRAME XSTACK, 14, STACK
        FUNCALL mipPollAssociateResponse, mtimSetCallback
        LOCFRAME XSTACK, 15, STACK
        ARGFRAME XSTACK, 15, 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
//  343     if (!mschAddTask(mschReserveTask(), MAC_TASK_PRI_LOW, mipPollAssociateResponseTask, 0)) {
        ; Setup parameters for call to function mschAddTask
        MOV	?V0 + 0,#(mipPollAssociateResponseTask & 0xff)
        MOV	?V0 + 1,#((mipPollAssociateResponseTask >> 8) & 0xff)
        MOV	?V0 + 2,#((mipPollAssociateResponseTask >> 16) & 0xff)
        MOV	R0,#?V0 + 0
        LCALL	?PUSH_XSTACK_I_THREE
        CFI CFA_XSP16 add(XSP16, 14)
        MOV	R2,#0x0
        MOV	A,R2
        PUSH	A
        CFI CFA_SP SP+-1
        ; Setup parameters for call to function mschReserveTask
        LCALL	mschReserveTask & 0xFFFF
        CLR	A
        MOV	R4,A
        MOV	R5,A
        POP	A
        CFI CFA_SP SP+0
        MOV	R2,A
        LCALL	mschAddTask & 0xFFFF
        MOV	A,#0x3
        LCALL	?DEALLOC_XSTACK8
        CFI CFA_XSP16 add(XSP16, 11)
        MOV	A,R1
        JNZ	??mipPollAssociateResponse_0
//  344         mtimSetCallback(mipPollAssociateResponse, MIP_RETRY_ASSOCIATION_RESPONSE_POLLING_TIMEOUT);
        ; Setup parameters for call to function mtimSetCallback
        MOV	DPTR,#__Constant_a
        LCALL	?PUSH_XSTACK8_X_FOUR
        CFI CFA_XSP16 add(XSP16, 15)
        MOV	R1,#(mipPollAssociateResponse & 0xff)
        MOV	R2,#((mipPollAssociateResponse >> 8) & 0xff)
        MOV	R3,#((mipPollAssociateResponse >> 16) & 0xff)
        LCALL	mtimSetCallback & 0xFFFF
        MOV	A,#0x4
        LCALL	?DEALLOC_XSTACK8
        CFI CFA_XSP16 add(XSP16, 11)
//  345     }
//  346 } // mipPollAssociateResponse
??mipPollAssociateResponse_0:
        LJMP	?Subroutine2
        CFI EndBlock cfiBlock10

        RSEG XDATA_I:XDATA:NOROOT(0)
__Constant_a:
        DS 4
        REQUIRE `?<Initializer for __Constant_a>`
        REQUIRE __INIT_XDATA_I

        RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for __Constant_a>`:
        DD 10

        ASEGN SFR_AN:DATA:NOROOT,0a8H
// union <unnamed> volatile __sfr _A_IEN0
_A_IEN0:
        DS 1

        END
//  347 
// 
// 789 bytes in segment NEAR_CODE
//   1 byte  in segment SFR_AN
//   4 bytes in segment XDATA_I
//   4 bytes in segment XDATA_ID
// 
// 789 bytes of CODE  memory (+ 4 bytes shared)
//   0 bytes of DATA  memory (+ 1 byte  shared)
//   0 bytes of XDATA memory (+ 4 bytes shared)
//
//Errors: none
//Warnings: none

⌨️ 快捷键说明

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