wxl_sampleapp.s51

来自「TI的基于ZIGBEE2006的协议栈」· S51 代码 · 共 1,436 行 · 第 1/4 页

S51
1,436
字号
??CrossCallReturnLabel_1:
        LCALL	?XSTACK_DISP0_8
        MOV	R2,DPL
        MOV	R3,DPH
        MOV	DPTR,#(memcpy & 0xffff)
        MOV	A,#((memcpy >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
        MOV	A,#0x2
        LCALL	?DEALLOC_XSTACK8
        CFI CFA_XSP16 add(XSP16, 14)
//  256       if((Rx_Buf[0] == 'O') && (Rx_Buf[1] == 'P') && (Rx_Buf[2] == 'E') && (Rx_Buf[3] == 'N'))
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        MOVX	A,@DPTR
        XRL	A,#0x4f
        JNZ	??WXL_SampleApp_MessageMSGCB_0
        MOV	A,#0x1
        LCALL	?XSTACK_DISP0_8
        MOVX	A,@DPTR
        XRL	A,#0x50
        JNZ	??WXL_SampleApp_MessageMSGCB_0
        MOV	A,#0x2
        LCALL	?XSTACK_DISP0_8
        MOVX	A,@DPTR
        XRL	A,#0x45
        JNZ	??WXL_SampleApp_MessageMSGCB_0
        MOV	A,#0x3
        LCALL	?XSTACK_DISP0_8
        MOVX	A,@DPTR
        XRL	A,#0x4e
        JNZ	??WXL_SampleApp_MessageMSGCB_0
//  257       {
//  258         HalLedBlink( HAL_LED_4, 4, 50, 250);         //小灯闪烁四次
        ; Setup parameters for call to function HalLedBlink
        MOV	R4,#-0x6
        MOV	R5,#0x0
        MOV	R3,#0x32
        MOV	R2,#0x4
        MOV	R1,#0x8
        MOV	DPTR,#(HalLedBlink & 0xffff)
        MOV	A,#((HalLedBlink >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//  259         WXL_SampleApp_SendData("YES",pkt->srcAddr.addr.shortAddr,3);  //以单播的方式回复信号
        ; Setup parameters for call to function WXL_SampleApp_SendData
        MOV	R1,#0x3
        MOV	DPL,R6
        MOV	DPH,R7
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        MOVX	A,@DPTR
        MOV	R4,A
        INC	DPTR
        MOVX	A,@DPTR
        MOV	R5,A
        MOV	R2,#(`?<Constant "YES">` & 0xff)
        MOV	R3,#((`?<Constant "YES">` >> 8) & 0xff)
        MOV	DPTR,#(WXL_SampleApp_SendData & 0xffff)
        MOV	A,#((WXL_SampleApp_SendData >> 16) & 0xff)
??WXL_SampleApp_MessageMSGCB_3:
        LCALL	?BCALL               ; Banked call to: DPTR()
//  260       }
//  261       break;
//  262   }
//  263 }
??WXL_SampleApp_MessageMSGCB_0:
        MOV	A,#0x4
        SJMP	??Subroutine2_0
        CFI EndBlock cfiBlock4

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine0:
        CFI Block cfiCond5 Using cfiCommon0
        CFI NoFunction
        CFI Conditional ??CrossCallReturnLabel_0
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V1 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, 16)
        CFI Block cfiCond6 Using cfiCommon0
        CFI (cfiCond6) NoFunction
        CFI (cfiCond6) Conditional ??CrossCallReturnLabel_1
        CFI (cfiCond6) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI (cfiCond6) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI (cfiCond6) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI (cfiCond6) V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI (cfiCond6) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI (cfiCond6) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI (cfiCond6) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI (cfiCond6) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI (cfiCond6) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI (cfiCond6) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI (cfiCond6) CFA_SP SP+0
        CFI (cfiCond6) CFA_XSP16 add(XSP16, 16)
        CFI Block cfiPicker7 Using cfiCommon1
        CFI (cfiPicker7) NoFunction
        CFI (cfiPicker7) Picker
        MOV	A,R6
        ADD	A,#0x15
        MOV	DPL,A
        MOV	A,R7
        ADDC	A,#0x0
        MOV	DPH,A
        MOVX	A,@DPTR
        MOV	R4,A
        INC	DPTR
        MOVX	A,@DPTR
        MOV	R5,A
        MOV	A,#0x2
        RET
        CFI EndBlock cfiCond5
        CFI EndBlock cfiCond6
        CFI EndBlock cfiPicker7
//  264 /*********************************************************************
//  265  * @函数名:   SampleApp_SendFlashMessage
//  266  *
//  267  * @函数功能: 广播发送一串数据。
//  268  *
//  269  * @param   none
//  270  *
//  271  * @return  none
//  272  */
//  273 

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  274 void WXL_SampleApp_SendFlashMessage( uint8 *buffer )
WXL_SampleApp_SendFlashMessage:
        CFI Block cfiBlock8 Using cfiCommon0
        CFI Function WXL_SampleApp_SendFlashMessage
//  275 {
        FUNCALL WXL_SampleApp_SendFlashMessage, AF_DataRequest
        LOCFRAME XSTACK, 19, STACK
        ARGFRAME XSTACK, 19, STACK
        MOV	A,#-0xa
        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 V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 10)
        ; Saved register size: 10
        ; Auto size: 0
//  276 
//  277   if ( AF_DataRequest( &WXL_SampleApp_All_DstAddr, &WXL_SampleApp_epDesc,
//  278                        WXL_SAMPLEAPP_CLUSTERID2,
//  279                        4,
//  280                        buffer,
//  281                        &WXL_SampleApp_TransID,
//  282                        AF_DISCV_ROUTE,
//  283                        AF_DEFAULT_RADIUS ) == afStatus_SUCCESS )
        ; Setup parameters for call to function AF_DataRequest
        MOV	?V0 + 0,#0xa
        MOV	R0,#?V0 + 0
        LCALL	?PUSH_XSTACK_I_ONE
        CFI CFA_XSP16 add(XSP16, 11)
        MOV	?V0 + 0,#(WXL_SampleApp_TransID & 0xff)
        MOV	?V0 + 1,#((WXL_SampleApp_TransID >> 8) & 0xff)
        MOV	R0,#?V0 + 0
        LCALL	?PUSH_XSTACK_I_TWO
        CFI CFA_XSP16 add(XSP16, 13)
        MOV	?V0 + 0,R2
        MOV	?V0 + 1,R3
        MOV	R0,#?V0 + 0
        LCALL	?PUSH_XSTACK_I_TWO
        CFI CFA_XSP16 add(XSP16, 15)
        MOV	?V0 + 0,#0x4
        MOV	?V0 + 1,#0x0
        MOV	R0,#?V0 + 0
        LCALL	?PUSH_XSTACK_I_TWO
        CFI CFA_XSP16 add(XSP16, 17)
        MOV	?V0 + 0,#0x2
        MOV	R0,#?V0 + 0
        LCALL	?PUSH_XSTACK_I_TWO
        CFI CFA_XSP16 add(XSP16, 19)
        MOV	R1,#0x20
        MOV	R4,#(WXL_SampleApp_epDesc & 0xff)
        MOV	R5,#((WXL_SampleApp_epDesc >> 8) & 0xff)
        MOV	R2,#(WXL_SampleApp_All_DstAddr & 0xff)
        MOV	R3,#((WXL_SampleApp_All_DstAddr >> 8) & 0xff)
        CFI EndBlock cfiBlock8
        REQUIRE ?Subroutine2
        ; // Fall through to label ?Subroutine2
//  284   {
//  285   }
//  286   else
//  287   {
//  288     // Error occurred in request to send.
//  289   }
//  290 }

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine2:
        CFI Block cfiBlock9 Using cfiCommon0
        CFI NoFunction
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 19)
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
        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(-10)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V1 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	DPTR,#(AF_DataRequest & 0xffff)
        MOV	A,#((AF_DataRequest >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
        MOV	A,#0x9
??Subroutine2_0:
        LCALL	?DEALLOC_XSTACK8
        CFI CFA_XSP16 add(XSP16, 10)
        MOV	R7,#0x2
        LJMP	?BANKED_LEAVE_XDATA
        CFI EndBlock cfiBlock9
//  291 
//  292 //**********************************************************************
//  293 //**以短地址方式发送数据
//  294 //buf ::发送的数据
//  295 //addr::目的地址
//  296 //Leng::数据长度
//  297 //********************************************************************

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  298 void WXL_SampleApp_SendData(uint8 *buf, uint16 addr, uint8 Leng)
WXL_SampleApp_SendData:
        CFI Block cfiBlock10 Using cfiCommon0
        CFI Function WXL_SampleApp_SendData
//  299 {
        FUNCALL WXL_SampleApp_SendData, AF_DataRequest
        LOCFRAME XSTACK, 19, STACK
        ARGFRAME XSTACK, 19, STACK
        MOV	A,#-0xa
        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 V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 10)
        ; Saved register size: 10
        ; Auto size: 0
//  300 	WXL_SampleApp_Single_DstAddr.addr.shortAddr = addr;
        MOV	DPTR,#WXL_SampleApp_Single_DstAddr
        MOV	A,R4
        MOVX	@DPTR,A
        INC	DPTR
        MOV	A,R5
        MOVX	@DPTR,A
//  301         if ( AF_DataRequest( &WXL_SampleApp_Single_DstAddr, //发送的地址和模式
//  302                        &WXL_SampleApp_epDesc,   //终端(比如操作系统中任务ID等)
//  303                        WXL_SAMPLEAPP_CLUSTERID1,//发送串ID
//  304                        Leng,                    //信息长度
//  305                        buf,                     //待发送的数据
//  306                        &WXL_SampleApp_TransID,
//  307                        AF_DISCV_ROUTE,
//  308                        AF_DEFAULT_RADIUS ) == afStatus_SUCCESS )
        ; Setup parameters for call to function AF_DataRequest
        MOV	?V0 + 0,#0xa
        MOV	R0,#?V0 + 0
        LCALL	?PUSH_XSTACK_I_ONE
        CFI CFA_XSP16 add(XSP16, 11)
        MOV	?V0 + 0,#(WXL_SampleApp_TransID & 0xff)
        MOV	?V0 + 1,#((WXL_SampleApp_TransID >> 8) & 0xff)
        MOV	R0,#?V0 + 0
        LCALL	?PUSH_XSTACK_I_TWO
        CFI CFA_XSP16 add(XSP16, 13)
        MOV	?V0 + 0,R2
        MOV	?V0 + 1,R3
        MOV	R0,#?V0 + 0
        LCALL	?PUSH_XSTACK_I_TWO
        CFI CFA_XSP16 add(XSP16, 15)
        MOV	?V0 + 0,R1
        MOV	?V0 + 1,#0x0
        MOV	R0,#?V0 + 0
        LCALL	?PUSH_XSTACK_I_TWO
        CFI CFA_XSP16 add(XSP16, 17)
        MOV	?V0 + 0,#0x1
        MOV	R0,#?V0 + 0
        LCALL	?PUSH_XSTACK_I_TWO
        CFI CFA_XSP16 add(XSP16, 19)
        MOV	R1,#0x20
        MOV	R4,#(WXL_SampleApp_epDesc & 0xff)
        MOV	R5,#((WXL_SampleApp_epDesc >> 8) & 0xff)
        MOV	R2,#(WXL_SampleApp_Single_DstAddr & 0xff)
        MOV	R3,#((WXL_SampleApp_Single_DstAddr >> 8) & 0xff)
        SJMP	?Subroutine2
        CFI EndBlock cfiBlock10
//  309 	{
//  310 
//  311 	}
//  312 	else
//  313 	{
//  314 
//  315 	}
//  316 }

        RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for <Constant "OPEN">>`:
        DB "OPEN"

        RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for <Constant "YES">>`:
        DB "YES"

        RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for WXL_SampleApp_ClusterList>`:
        DW 1, 2

        RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for WXL_SampleApp_SimpleDesc>`:
        DB 20
        DW 3848, 1
        DB 0, 2
        DW WXL_SampleApp_ClusterList
        DB 2
        DW WXL_SampleApp_ClusterList

        END
//  317 
//  318 /*********************************************************************
//  319 *********************************************************************/
// 
// 714 bytes in segment BANKED_CODE
//  25 bytes in segment XDATA_I
//  25 bytes in segment XDATA_ID
//  17 bytes in segment XDATA_Z
// 
// 739 bytes of CODE  memory
//  42 bytes of XDATA memory
//
//Errors: none
//Warnings: none

⌨️ 快捷键说明

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