📄 sampleapp.s51
字号:
MOV DPL,R6
MOV DPH,R7
INC DPTR
INC DPTR
INC DPTR
INC DPTR
MOVX A,@DPTR
MOV ?V0 + 2,A
INC DPTR
MOVX A,@DPTR
MOV ?V0 + 3,A
MOV R0,#?V0 + 2
LCALL ?US_SWITCH_DENSE
`?<Jumptable for SampleApp_ProcessEvent>_1`:
DW 16
DB 0
DW ??SampleApp_ProcessEvent_5
DW ??SampleApp_ProcessEvent_12
??SampleApp_ProcessEvent_12:
MOV A,R6
ADD A,#0x15
MOV DPL,A
MOV A,R7
ADDC A,#0x0
MOV DPH,A
MOVX A,@DPTR
MOV R0,A
INC DPTR
MOVX A,@DPTR
MOV DPH,A
MOV DPL,R0
MOVX A,@DPTR
LCALL ?UC_SWITCH_SPARSE
`?<Jumptable for SampleApp_ProcessEvent>_2`:
DB 0
DB 3
DB 240
DW ??SampleApp_ProcessEvent_13
DB 255
DW ??SampleApp_ProcessEvent_14
DB 0
DW ??SampleApp_ProcessEvent_15
DW ??SampleApp_ProcessEvent_5
??SampleApp_ProcessEvent_15:
; Setup parameters for call to function HalLedSet
MOV R2,#0x0
??SampleApp_ProcessEvent_16:
MOV R1,#0x4
MOV DPTR,#(HalLedSet & 0xffff)
MOV A,#((HalLedSet >> 16) & 0xff)
LJMP ??SampleApp_ProcessEvent_6 & 0xFFFF
??SampleApp_ProcessEvent_13:
; Setup parameters for call to function HalLedSet
MOV R2,#0x8
SJMP ??SampleApp_ProcessEvent_16
??SampleApp_ProcessEvent_14:
; Setup parameters for call to function HalLedSet
MOV R2,#0x1
SJMP ??SampleApp_ProcessEvent_16
// 305 }
// 306
// 307 // Return unprocessed events.
// 308 return ( events ^ SYS_EVENT_MSG );
??SampleApp_ProcessEvent_8:
MOV R2,?V0 + 0
MOV A,#-0x80
XRL A,?V0 + 1
MOV R3,A
SJMP ??SampleApp_ProcessEvent_17
// 309 }
// 310
// 311 return 0; // Discard unknown events
??SampleApp_ProcessEvent_2:
MOV R2,#0x0
MOV R3,#0x0
??SampleApp_ProcessEvent_17:
MOV A,#0x5
LCALL ?DEALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 12)
MOV R7,#0x4
LJMP ?BANKED_LEAVE_XDATA
CFI EndBlock cfiBlock3
// 312 }
// 313
// 314 /*********************************************************************
// 315 * @fn SampleApp_NoACK
// 316 *
// 317 * @brief Sample Application recovery from getting a ZMacNoAck.
// 318 *
// 319 * @return none
// 320 */
RSEG BANKED_CODE:CODE:NOROOT(0)
// 321 void SampleApp_NoACK( void )
SampleApp_NoACK:
CFI Block cfiBlock4 Using cfiCommon0
CFI Function SampleApp_NoACK
// 322 {
FUNCALL SampleApp_NoACK, ZDApp_SendEventMsg
LOCFRAME ISTACK, 2, STACK
ARGFRAME ISTACK, 2, STACK
FUNCALL SampleApp_NoACK, SampleApp_Sleep
LOCFRAME ISTACK, 2, STACK
ARGFRAME ISTACK, 2, STACK
PUSH DPL
CFI DPL0 Frame(CFA_SP, 4)
CFI CFA_SP SP+-4
PUSH DPH
CFI DPH0 Frame(CFA_SP, 5)
CFI CFA_SP SP+-5
; Saved register size: 2
; Auto size: 0
// 323 #if defined( POWER_SAVING )
// 324 rejoinPending = TRUE;
MOV A,#0x1
MOV DPTR,#??rejoinPending
MOVX @DPTR,A
// 325 ZDApp_SendEventMsg( ZDO_NWK_JOIN_REQ, 0, NULL );
; Setup parameters for call to function ZDApp_SendEventMsg
MOV R4,#0x0
MOV R5,#0x0
MOV R2,#0x0
MOV R1,#0x3
MOV DPTR,#(ZDApp_SendEventMsg & 0xffff)
MOV A,#((ZDApp_SendEventMsg >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 326
// 327 SampleApp_Sleep( FALSE );
; Setup parameters for call to function SampleApp_Sleep
MOV R1,#0x0
MOV DPTR,#(SampleApp_Sleep & 0xffff)
MOV A,#((SampleApp_Sleep >> 16) & 0xff)
LJMP ?Subroutine0 & 0xFFFF
CFI EndBlock cfiBlock4
// 328 #endif
// 329 }
// 330
// 331 /*********************************************************************
// 332 * @fn SampleApp_Sleep
// 333 *
// 334 * @brief Sample Application set allow/disallow sleep mode.
// 335 *
// 336 * @return none
// 337 */
RSEG BANKED_CODE:CODE:NOROOT(0)
// 338 void SampleApp_Sleep( uint8 allow )
SampleApp_Sleep:
CFI Block cfiBlock5 Using cfiCommon0
CFI Function SampleApp_Sleep
// 339 {
FUNCALL SampleApp_Sleep, osal_pwrmgr_task_state
LOCFRAME ISTACK, 2, STACK
ARGFRAME ISTACK, 2, STACK
FUNCALL SampleApp_Sleep, NLME_SetPollRate
LOCFRAME ISTACK, 2, STACK
ARGFRAME ISTACK, 2, STACK
FUNCALL SampleApp_Sleep, osal_pwrmgr_task_state
LOCFRAME ISTACK, 2, STACK
ARGFRAME ISTACK, 2, STACK
FUNCALL SampleApp_Sleep, NLME_SetPollRate
LOCFRAME ISTACK, 2, STACK
ARGFRAME ISTACK, 2, STACK
PUSH DPL
CFI DPL0 Frame(CFA_SP, 4)
CFI CFA_SP SP+-4
PUSH DPH
CFI DPH0 Frame(CFA_SP, 5)
CFI CFA_SP SP+-5
; Saved register size: 2
; Auto size: 0
// 340 #if defined( POWER_SAVING )
// 341 if ( allow )
MOV A,R1
JZ ??SampleApp_Sleep_0
// 342 {
// 343 osal_pwrmgr_task_state( NWK_TaskID, PWRMGR_CONSERVE );
; Setup parameters for call to function osal_pwrmgr_task_state
MOV R2,#0x0
MOV DPTR,#NWK_TaskID
MOVX A,@DPTR
MOV R1,A
MOV DPTR,#(osal_pwrmgr_task_state & 0xffff)
MOV A,#((osal_pwrmgr_task_state >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 344 NLME_SetPollRate( 0 );
; Setup parameters for call to function NLME_SetPollRate
MOV R2,#0x0
MOV R3,#0x0
SJMP ??SampleApp_Sleep_1
// 345 }
// 346 else
// 347 {
// 348 osal_pwrmgr_task_state( NWK_TaskID, PWRMGR_HOLD );
??SampleApp_Sleep_0:
; Setup parameters for call to function osal_pwrmgr_task_state
MOV R2,#0x1
MOV DPTR,#NWK_TaskID
MOVX A,@DPTR
MOV R1,A
MOV DPTR,#(osal_pwrmgr_task_state & 0xffff)
MOV A,#((osal_pwrmgr_task_state >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 349 NLME_SetPollRate( 1000 );
; Setup parameters for call to function NLME_SetPollRate
MOV R2,#-0x18
MOV R3,#0x3
??SampleApp_Sleep_1:
MOV DPTR,#(NLME_SetPollRate & 0xffff)
MOV A,#((NLME_SetPollRate >> 16) & 0xff)
LJMP ?Subroutine0 & 0xFFFF
CFI EndBlock cfiBlock5
// 350 }
// 351 #endif
// 352 }
// 353
// 354 /*********************************************************************
// 355 * @fn handleKeys
// 356 *
// 357 * @brief Handles all key events for this device.
// 358 *
// 359 * @param shift - true if in shift/alt.
// 360 * @param keys - bit field for key events. Valid entries:
// 361 *
// 362 * @return none
// 363 */
// 364 static void handleKeys( uint8 shift, uint8 keys )
// 365 {
// 366 /* POWER_SAVING key press interrupt uses shift key to awaken from deep sleep,
// 367 * so it is not available.
// 368 */
// 369 #if !defined( POWER_SAVING )
// 370 /* Give the LocationProfile access to 4 keys by sending any Shif-Key
// 371 * sequence to the profile as a normal Key.
// 372 */
// 373 if ( shift )
// 374 {
// 375 LocationHandleKeys( keys );
// 376 }
// 377 else
// 378 #endif
// 379 {
// 380 if ( keys & HAL_KEY_SW_1 )
// 381 {
// 382 }
// 383
// 384 if ( keys & HAL_KEY_SW_2 )
// 385 {
// 386 }
// 387
// 388 if ( keys & HAL_KEY_SW_3 )
// 389 {
// 390 }
// 391
// 392 if ( keys & HAL_KEY_SW_4 )
// 393 {
// 394 }
// 395 }
// 396
// 397 #if defined ( LOCATION_BLINDNODE )
// 398 {
RSEG XDATA_Z:XDATA:NOROOT(0)
REQUIRE __INIT_XDATA_Z
// 399 static uint8 transId;
??transId:
DS 1
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for SampleApp_InputClusterList>`:
DW 1
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for SampleApp_OutputClusterList>`:
DW 1, 16
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for SampleApp_SimpleDesc>`:
DB 10
DW 8193, 13
DB 15, 2
DW ??SampleApp_InputClusterList
DB 4
DW ??SampleApp_OutputClusterList
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for SampleApp_epDesc>`:
DB 10
DW SampleApp_TaskID, ??SampleApp_SimpleDesc
DB 0
END
// 400
// 401 uint8 actionId = SAMPLE_APP_TOGGLE;
// 402 afAddrType_t dstAddr;
// 403
// 404 dstAddr.addrMode = afAddrBroadcast;
// 405 dstAddr.addr.shortAddr = NWK_BROADCAST_SHORTADDR_DEVALL;
// 406 dstAddr.endPoint = SAMPLE_APP_ENDPOINT;
// 407
// 408 // Control all lights within 1-hop radio range.
// 409 (void)AF_DataRequest( &dstAddr, (endPointDesc_t *)&SampleApp_epDesc,
// 410 SAMPLE_APP_ON_OFF_ID, 1, &actionId,
// 411 &transId, AF_SKIP_ROUTING, 1 );
// 412
// 413 BlindNode_FindRequest();
// 414 }
// 415 #endif
// 416 }
// 417
// 418 /*********************************************************************
// 419 * @fn processMSGCmd
// 420 *
// 421 * @brief Data message processor callback.
// 422 *
// 423 * @param none
// 424 *
// 425 * @return none
// 426 */
// 427 static void processMSGCmd( afIncomingMSGPacket_t *pkt )
// 428 {
// 429 switch ( pkt->clusterId )
// 430 {
// 431 case SAMPLE_APP_ON_OFF_ID:
// 432 switch ( pkt->cmd.Data[0] )
// 433 {
// 434 case SAMPLE_APP_OFF:
// 435 HalLedSet( HAL_LED_3, HAL_LED_MODE_OFF );
// 436 break;
// 437
// 438 case SAMPLE_APP_TOGGLE:
// 439 HalLedSet( HAL_LED_3, HAL_LED_MODE_TOGGLE );
// 440 break;
// 441
// 442 case SAMPLE_APP_ON:
// 443 HalLedSet( HAL_LED_3, HAL_LED_MODE_ON );
// 444 break;
// 445 }
// 446 break;
// 447
// 448 default:
// 449 break;
// 450 }
// 451 }
// 452
// 453 /*********************************************************************
// 454 *********************************************************************/
//
// 752 bytes in segment BANKED_CODE
// 24 bytes in segment XDATA_I
// 24 bytes in segment XDATA_ID
// 3 bytes in segment XDATA_Z
//
// 776 bytes of CODE memory
// 27 bytes of XDATA memory
//
//Errors: none
//Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -