📄 sampleapp.s51
字号:
// 389
// 390 switch ( pkt->clusterId )
MOV DPL,R2
MOV DPH,R3
INC DPTR
INC DPTR
INC DPTR
INC DPTR
MOVX A,@DPTR
MOV ?V0 + 0,A
INC DPTR
MOVX A,@DPTR
MOV ?V0 + 1,A
MOV R0,#?V0 + 0
LCALL ?US_SWITCH_DENSE
`?<Jumptable for SampleApp_MessageMSGCB>_0`:
DW 2
DB 0
DW ??SampleApp_MessageMSGCB_0
DW ??SampleApp_MessageMSGCB_1
// 391 {
// 392 case SAMPLEAPP_PERIODIC_CLUSTERID:
// 393 break;
// 394
// 395 case SAMPLEAPP_FLASH_CLUSTERID:
// 396 flashTime = BUILD_UINT16(pkt->cmd.Data[1], pkt->cmd.Data[2] );
// 397 HalLedBlink( HAL_LED_4, 4, 50, (flashTime / 4) );
??SampleApp_MessageMSGCB_1:
MOV A,R2
ADD A,#0x15
MOV DPL,A
MOV A,R3
ADDC A,#0x0
MOV DPH,A
MOVX A,@DPTR
MOV R0,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
; Setup parameters for call to function HalLedBlink
MOV DPL,R0
MOV DPH,R1
INC DPTR
MOVX A,@DPTR
MOV R2,A
MOV DPL,R0
MOV DPH,R1
INC DPTR
INC DPTR
MOVX A,@DPTR
MOV R1,A
CLR A
ADD A,R2
MOV ?V0 + 0,A
MOV A,R1
ADDC A,#0x0
MOV ?V0 + 1,A
MOV A,#0x2
MOV R0,#?V0 + 0
LCALL ?US_SHR
MOV R4,?V0 + 0
MOV R5,?V0 + 1
MOV R3,#0x32
MOV R2,#0x4
MOV R1,#0x8
MOV DPTR,#(HalLedBlink & 0xffff)
MOV A,#((HalLedBlink >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 398 break;
// 399 }
// 400 }
??SampleApp_MessageMSGCB_0:
SJMP ??Subroutine0_0
CFI EndBlock cfiBlock4
// 401
// 402 /*********************************************************************
// 403 * @fn SampleApp_SendPeriodicMessage
// 404 *
// 405 * @brief Send the periodic message.
// 406 *
// 407 * @param none
// 408 *
// 409 * @return none
// 410 */
RSEG BANKED_CODE:CODE:NOROOT(0)
// 411 void SampleApp_SendPeriodicMessage( void )
SampleApp_SendPeriodicMessage:
CFI Block cfiBlock5 Using cfiCommon0
CFI Function SampleApp_SendPeriodicMessage
// 412 {
FUNCALL SampleApp_SendPeriodicMessage, 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
// 413 if ( AF_DataRequest( &SampleApp_Periodic_DstAddr, &SampleApp_epDesc,
// 414 SAMPLEAPP_PERIODIC_CLUSTERID,
// 415 1,
// 416 (uint8*)&SampleAppPeriodicCounter,
// 417 &SampleApp_TransID,
// 418 AF_DISCV_ROUTE,
// 419 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,#(SampleApp_TransID & 0xff)
MOV ?V0 + 1,#((SampleApp_TransID >> 8) & 0xff)
MOV R0,#?V0 + 0
LCALL ?PUSH_XSTACK_I_TWO
CFI CFA_XSP16 add(XSP16, 13)
MOV ?V0 + 0,#(SampleAppPeriodicCounter & 0xff)
MOV ?V0 + 1,#((SampleAppPeriodicCounter >> 8) & 0xff)
MOV R0,#?V0 + 0
LCALL ?PUSH_XSTACK_I_TWO
CFI CFA_XSP16 add(XSP16, 15)
MOV ?V0 + 0,#0x1
MOV ?V0 + 1,#0x0
MOV R0,#?V0 + 0
LCALL ?PUSH_XSTACK_I_TWO
CFI CFA_XSP16 add(XSP16, 17)
MOV R0,#?V0 + 0
LCALL ?PUSH_XSTACK_I_TWO
CFI CFA_XSP16 add(XSP16, 19)
MOV R1,#0x20
MOV R4,#(SampleApp_epDesc & 0xff)
MOV R5,#((SampleApp_epDesc >> 8) & 0xff)
MOV R2,#(SampleApp_Periodic_DstAddr & 0xff)
MOV R3,#((SampleApp_Periodic_DstAddr >> 8) & 0xff)
MOV DPTR,#(AF_DataRequest & 0xffff)
MOV A,#((AF_DataRequest >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
MOV A,#0x9
LJMP ?Subroutine0 & 0xFFFF
CFI EndBlock cfiBlock5
// 420 {
// 421 }
// 422 else
// 423 {
// 424 // Error occurred in request to send.
// 425 }
// 426 }
// 427
// 428 /*********************************************************************
// 429 * @fn SampleApp_SendFlashMessage
// 430 *
// 431 * @brief Send the flash message to group 1.
// 432 *
// 433 * @param flashTime - in milliseconds
// 434 *
// 435 * @return none
// 436 */
RSEG BANKED_CODE:CODE:NOROOT(0)
// 437 void SampleApp_SendFlashMessage( uint16 flashTime )
SampleApp_SendFlashMessage:
CFI Block cfiBlock6 Using cfiCommon0
CFI Function SampleApp_SendFlashMessage
// 438 {
FUNCALL SampleApp_SendFlashMessage, AF_DataRequest
LOCFRAME XSTACK, 22, STACK
ARGFRAME XSTACK, 22, 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: 3
MOV A,#-0x3
LCALL ?ALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 13)
// 439 uint8 buffer[3];
// 440 buffer[0] = (uint8)(SampleAppFlashCounter++);
MOV DPTR,#SampleAppFlashCounter
MOVX A,@DPTR
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
MOVX @DPTR,A
MOV DPTR,#SampleAppFlashCounter
MOVX A,@DPTR
INC A
MOVX @DPTR,A
// 441 buffer[1] = LO_UINT16( flashTime );
MOV A,#0x1
LCALL ?XSTACK_DISP0_8
MOV A,R2
MOVX @DPTR,A
// 442 buffer[2] = HI_UINT16( flashTime );
MOV A,#0x2
LCALL ?XSTACK_DISP0_8
MOV A,R3
MOVX @DPTR,A
// 443
// 444 if ( AF_DataRequest( &SampleApp_Flash_DstAddr, &SampleApp_epDesc,
// 445 SAMPLEAPP_FLASH_CLUSTERID,
// 446 3,
// 447 buffer,
// 448 &SampleApp_TransID,
// 449 AF_DISCV_ROUTE,
// 450 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, 14)
MOV ?V0 + 0,#(SampleApp_TransID & 0xff)
MOV ?V0 + 1,#((SampleApp_TransID >> 8) & 0xff)
MOV R0,#?V0 + 0
LCALL ?PUSH_XSTACK_I_TWO
CFI CFA_XSP16 add(XSP16, 16)
MOV A,#0x3
LCALL ?XSTACK_DISP0_8
MOV ?V0 + 0,DPL
MOV ?V0 + 1,DPH
MOV R0,#?V0 + 0
LCALL ?PUSH_XSTACK_I_TWO
CFI CFA_XSP16 add(XSP16, 18)
MOV ?V0 + 0,#0x3
MOV ?V0 + 1,#0x0
MOV R0,#?V0 + 0
LCALL ?PUSH_XSTACK_I_TWO
CFI CFA_XSP16 add(XSP16, 20)
MOV ?V0 + 0,#0x2
MOV R0,#?V0 + 0
LCALL ?PUSH_XSTACK_I_TWO
CFI CFA_XSP16 add(XSP16, 22)
MOV R1,#0x20
MOV R4,#(SampleApp_epDesc & 0xff)
MOV R5,#((SampleApp_epDesc >> 8) & 0xff)
MOV R2,#(SampleApp_Flash_DstAddr & 0xff)
MOV R3,#((SampleApp_Flash_DstAddr >> 8) & 0xff)
MOV DPTR,#(AF_DataRequest & 0xffff)
MOV A,#((AF_DataRequest >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
MOV A,#0x9
LCALL ?DEALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 13)
// 451 {
// 452 }
// 453 else
// 454 {
// 455 // Error occurred in request to send.
// 456 }
// 457 }
MOV A,#0x3
LJMP ?Subroutine0 & 0xFFFF
CFI EndBlock cfiBlock6
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for <Constant "Group 1">>`:
DB "Group 1"
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for SampleApp_ClusterList>`:
DW 1, 2
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for SampleApp_SimpleDesc>`:
DB 20
DW 3848, 1
DB 0, 2
DW SampleApp_ClusterList
DB 2
DW SampleApp_ClusterList
ASEGN SFR_AN:DATA:NOROOT,090H
// union <unnamed> volatile __sfr _A_P1
_A_P1:
DS 1
END
// 458
// 459 /*********************************************************************
// 460 *********************************************************************/
//
// 872 bytes in segment BANKED_CODE
// 1 byte in segment SFR_AN
// 24 bytes in segment XDATA_I
// 24 bytes in segment XDATA_ID
// 47 bytes in segment XDATA_Z
//
// 896 bytes of CODE memory
// 0 bytes of DATA memory (+ 1 byte shared)
// 71 bytes of XDATA memory
//
//Errors: none
//Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -