📄 zglobals.s51
字号:
// 416 &startupOption ) == ZSUCCESS )
??CrossCallReturnLabel_0:
LCALL ?PUSH_XSTACK_I_TWO
CFI CFA_XSP16 add(XSP16, 13)
MOV R4,#0x1
MOV R5,#0x0
MOV R2,#0x3
MOV R3,#0x0
MOV DPTR,#(osal_nv_item_init & 0xffff)
MOV A,#((osal_nv_item_init >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
MOV A,#0x2
LCALL ?DEALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 11)
MOV A,R1
JNZ ??zgReadStartupOptions_0
// 417 {
// 418 // Read saved startup control
// 419 osal_nv_read( ZCD_NV_STARTUP_OPTION,
// 420 0,
// 421 sizeof( startupOption ),
// 422 &startupOption);
; Setup parameters for call to function osal_nv_read
MOV R0,#?V0 + 0
LCALL ?PUSH_XSTACK_I_TWO
CFI CFA_XSP16 add(XSP16, 13)
MOV ?V0 + 0,#0x1
MOV ?V0 + 1,#0x0
MOV R0,#?V0 + 0
LCALL ?PUSH_XSTACK_I_TWO
CFI CFA_XSP16 add(XSP16, 15)
MOV R4,#0x0
MOV R5,#0x0
MOV R2,#0x3
MOV R3,#0x0
MOV DPTR,#(osal_nv_read & 0xffff)
MOV A,#((osal_nv_read >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
MOV A,#0x4
LCALL ?DEALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 11)
// 423 }
// 424 return ( startupOption );
??zgReadStartupOptions_0:
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
MOVX A,@DPTR
MOV R1,A
CFI EndBlock cfiBlock1
REQUIRE ?Subroutine1
; // Fall through to label ?Subroutine1
// 425 }
RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine1:
CFI Block cfiBlock2 Using cfiCommon0
CFI NoFunction
CFI CFA_SP SP+0
CFI CFA_XSP16 add(XSP16, 11)
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 A,#0x1
LCALL ?DEALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 10)
MOV R7,#0x2
LJMP ?BANKED_LEAVE_XDATA
CFI EndBlock cfiBlock2
RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine0:
CFI Block cfiCond3 Using cfiCommon0
CFI NoFunction
CFI Conditional ??CrossCallReturnLabel_1
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, 11)
CFI Block cfiCond4 Using cfiCommon0
CFI (cfiCond4) NoFunction
CFI (cfiCond4) Conditional ??CrossCallReturnLabel_0
CFI (cfiCond4) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond4) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond4) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond4) V1 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, 11)
CFI Block cfiPicker5 Using cfiCommon1
CFI (cfiPicker5) NoFunction
CFI (cfiPicker5) Picker
CLR A
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
CFI Block cfiCond6 Using cfiCommon0
CFI (cfiCond6) NoFunction
CFI (cfiCond6) Conditional ??CrossCallReturnLabel_2
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, 11)
??Subroutine0_0:
MOVX @DPTR,A
; Setup parameters for call to function osal_nv_item_init
; Setup parameters for call to function osal_nv_read
; Setup parameters for call to function osal_nv_write
MOV ?V0 + 0,DPL
MOV ?V0 + 1,DPH
MOV R0,#?V0 + 0
RET
CFI EndBlock cfiCond3
CFI EndBlock cfiCond4
CFI EndBlock cfiPicker5
CFI EndBlock cfiCond6
// 426
// 427 /*********************************************************************
// 428 * @fn zgWriteStartupOptions
// 429 *
// 430 * @brief Writes bits into the ZCD_NV_STARTUP_OPTION NV Item.
// 431 *
// 432 * @param action - ZG_STARTUP_SET set bit, ZG_STARTUP_CLEAR to
// 433 * clear bit. The set bit is an OR operation, and the
// 434 * clear bit is an AND ~(bitOptions) operation.
// 435 *
// 436 * @param bitOptions - which bits to perform action on:
// 437 * ZCD_STARTOPT_DEFAULT_CONFIG_STATE
// 438 * ZCD_STARTOPT_DEFAULT_NETWORK_STATE
// 439 *
// 440 * @return ZSUCCESS if successful
// 441 */
RSEG BANKED_CODE:CODE:NOROOT(0)
// 442 uint8 zgWriteStartupOptions( uint8 action, uint8 bitOptions )
zgWriteStartupOptions:
CFI Block cfiBlock7 Using cfiCommon0
CFI Function zgWriteStartupOptions
// 443 {
FUNCALL zgWriteStartupOptions, osal_nv_read
LOCFRAME XSTACK, 15, STACK
ARGFRAME XSTACK, 15, STACK
FUNCALL zgWriteStartupOptions, osal_nv_write
LOCFRAME XSTACK, 15, STACK
ARGFRAME XSTACK, 15, 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: 1
MOV A,#-0x1
LCALL ?ALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 11)
MOV A,R1
MOV R6,A
MOV A,R2
MOV R7,A
// 444 uint8 status;
// 445 uint8 startupOptions = 0;
LCALL ?Subroutine0 & 0xFFFF
// 446
// 447 status = osal_nv_read( ZCD_NV_STARTUP_OPTION,
// 448 0,
// 449 sizeof( startupOptions ),
// 450 &startupOptions );
??CrossCallReturnLabel_1:
LCALL ?PUSH_XSTACK_I_TWO
CFI CFA_XSP16 add(XSP16, 13)
MOV ?V0 + 0,#0x1
MOV ?V0 + 1,#0x0
MOV R0,#?V0 + 0
LCALL ?PUSH_XSTACK_I_TWO
CFI CFA_XSP16 add(XSP16, 15)
MOV R4,#0x0
MOV R5,#0x0
MOV R2,#0x3
MOV R3,#0x0
MOV DPTR,#(osal_nv_read & 0xffff)
MOV A,#((osal_nv_read >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
MOV A,#0x4
LCALL ?DEALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 11)
MOV A,R1
// 451
// 452 if ( status == ZSUCCESS )
JNZ ??zgWriteStartupOptions_0
// 453 {
// 454 if ( action == ZG_STARTUP_SET )
MOV A,#-0x1
XRL A,R6
JNZ ??zgWriteStartupOptions_1
// 455 {
// 456 // Set bits
// 457 startupOptions |= bitOptions;
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
MOVX A,@DPTR
ORL A,R7
SJMP ??zgWriteStartupOptions_2
// 458 }
// 459 else
// 460 {
// 461 // Clear bits
// 462 startupOptions &= ~(bitOptions);
??zgWriteStartupOptions_1:
MOV A,R7
CPL A
MOV R2,A
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
MOVX A,@DPTR
ANL A,R2
??zgWriteStartupOptions_2:
LCALL ??Subroutine0_0 & 0xFFFF
// 463 }
// 464
// 465 // Changed?
// 466 status = osal_nv_write( ZCD_NV_STARTUP_OPTION,
// 467 0,
// 468 sizeof( startupOptions ),
// 469 &startupOptions );
??CrossCallReturnLabel_2:
LCALL ?PUSH_XSTACK_I_TWO
CFI CFA_XSP16 add(XSP16, 13)
MOV ?V0 + 0,#0x1
MOV ?V0 + 1,#0x0
MOV R0,#?V0 + 0
LCALL ?PUSH_XSTACK_I_TWO
CFI CFA_XSP16 add(XSP16, 15)
MOV R4,#0x0
MOV R5,#0x0
MOV R2,#0x3
MOV R3,#0x0
MOV DPTR,#(osal_nv_write & 0xffff)
MOV A,#((osal_nv_write >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
MOV A,#0x4
LCALL ?DEALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 11)
// 470 }
// 471
// 472 return ( status );
??zgWriteStartupOptions_0:
LJMP ?Subroutine1 & 0xFFFF
CFI EndBlock cfiBlock7
// 473 }
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for zgPollRate>`:
DW 1000
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for zgQueuedPollRate>`:
DW 100
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for zgResponsePollRate>`:
DW 100
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for zgRejoinPollRate>`:
DW 440
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for zgMaxDataRetries>`:
DB 2
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for zgMaxPollFailureRetries>`:
DB 2
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for zgDefaultChannelList>`:
DD 2048
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for zgDefaultStartingScanDuratio`:
DB 5
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for zgStackProfile>`:
DB 1
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for zgIndirectMsgTimeout>`:
DB 7
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for zgRouteExpiryTime>`:
DB 30
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for zgMaxBcastRetires>`:
DB 2
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for zgPassiveAckTimeout>`:
DB 5
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for zgBcastDeliveryTime>`:
DB 30
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for zgNwkMode>`:
DB 2
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for zgConcentratorRadius>`:
DB 10
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for zgMaxSourceRoute>`:
DB 12
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for zgApscMaxFrameRetries>`:
DB 3
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for zgApscAckWaitDurationPolled>`:
DW 3000
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for zgApsAckWaitMultiplier>`:
DB 2
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for zgApsDefaultMaxBindingTime>`:
DW 16000
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for zgConfigPANID>`:
DW 65535
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for zgDeviceLogicalType>`:
DB 2
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for zgStartDelay>`:
DB 10
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for zgSapiEndpoint>`:
DB 224
END
// 474
// 475 /*********************************************************************
// 476 *********************************************************************/
//
// 535 bytes in segment BANKED_CODE
// 6 bytes in segment CODE_C
// 35 bytes in segment XDATA_I
// 35 bytes in segment XDATA_ID
// 28 bytes in segment XDATA_Z
//
// 576 bytes of CODE memory
// 63 bytes of XDATA memory
//
//Errors: none
//Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -