📄 zglobals.s51
字号:
// 366 bootCnt = 0;
// 367 else
// 368 bootCnt++;
// 369 osal_nv_write( ZCD_NV_BOOTCOUNTER, 0, sizeof(bootCnt), &bootCnt );
// 370 #endif
// 371
// 372 // Initialize the Extended PAN ID as my own extended address
// 373 ZMacGetReq( ZMacExtAddr, zgExtendedPANID );
??zgInit_0:
; Setup parameters for call to function ZMacGetReq
MOV R2,#(zgExtendedPANID & 0xff)
MOV R3,#((zgExtendedPANID >> 8) & 0xff)
MOV R1,#-0x1e
LCALL ZMacGetReq & 0xFFFF
// 374
// 375 #ifndef NONWK
// 376 // Initialize the Pre-Configured Key to the default key
// 377 osal_memcpy( zgPreConfigKey, defaultKey, SEC_KEY_LEN ); // Do NOT Change!!!
; Setup parameters for call to function osal_memcpy
MOV ?V0 + 4,#(defaultKey & 0xff)
MOV ?V0 + 5,#((defaultKey >> 8) & 0xff)
MOV ?V0 + 6,#-0x80
MOV R0,#?V0 + 4
LCALL ?PUSH_XSTACK_I_THREE
CFI CFA_XSP16 add(XSP16, 18)
MOV R4,#0x10
MOV R5,#0x0
MOV R2,#(zgPreConfigKey & 0xff)
MOV R3,#((zgPreConfigKey >> 8) & 0xff)
MOV DPTR,#(osal_memcpy & 0xffff)
MOV A,#((osal_memcpy >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
MOV A,#0x3
LCALL ?DEALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 15)
SJMP ??zgInit_1
// 378 #endif // NONWK
// 379
// 380 while ( zgItemTable[i].id != 0x00 )
// 381 {
??zgInit_2:
; Setup parameters for call to function osal_nv_read
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 R4,#0x0
MOV R5,#0x0
MOV A,R6
MOV R2,A
MOV A,R7
MOV R3,A
MOV DPTR,#(osal_nv_read & 0xffff)
MOV A,#((osal_nv_read >> 16) & 0xff)
??zgInit_3:
LCALL ?BCALL ; Banked call to: DPTR()
MOV A,#0x4
LCALL ?DEALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 15)
// 382 // Initialize the item
// 383 zgItemInit( zgItemTable[i].id, zgItemTable[i].len, zgItemTable[i].buf, setDefault );
// 384
// 385 // Move on to the next item
// 386 i++;
??zgInit_4:
INC ?V0 + 3
??zgInit_1:
MOV A,?V0 + 3
MOV B,#0x6
MUL AB
MOV R0,A
MOV R2,B
MOV A,R2
MOV R1,A
MOV A,R0
ADD A,#(??zgItemTable & 0xff)
MOV DPL,A
MOV A,R1
ADDC A,#((??zgItemTable >> 8) & 0xff)
MOV DPH,A
CLR A
MOVC A,@A+DPTR
MOV R0,A
MOV A,#0x1
MOVC A,@A+DPTR
MOV R1,A
MOV A,R0
JNZ ??zgInit_5
MOV A,R1
??zgInit_5:
JNZ $+5
LJMP ??zgInit_6 & 0xFFFF
MOV A,?V0 + 3
MOV B,#0x6
MUL AB
MOV R0,A
MOV A,R2
MOV R1,A
MOV A,R0
ADD A,#(??zgItemTable & 0xff)
MOV R0,A
MOV A,R1
ADDC A,#((??zgItemTable >> 8) & 0xff)
MOV R1,A
INC DPTR
INC DPTR
INC DPTR
INC DPTR
CLR A
MOVC A,@A+DPTR
MOV ?V0 + 4,A
MOV A,#0x1
MOVC A,@A+DPTR
MOV ?V0 + 5,A
MOV DPL,R0
MOV DPH,R1
INC DPTR
INC DPTR
CLR A
MOVC A,@A+DPTR
PUSH A
MOV A,#0x1
MOVC A,@A+DPTR
MOV DPH,A
POP DPL
MOV ?V0 + 0,DPL
MOV ?V0 + 1,DPH
MOV DPL,R0
MOV DPH,R1
CLR A
MOVC A,@A+DPTR
PUSH A
MOV A,#0x1
MOVC A,@A+DPTR
MOV DPH,A
POP DPL
MOV R6,DPL
MOV R7,DPH
; Setup parameters for call to function osal_nv_item_init
MOV R0,#?V0 + 4
LCALL ?PUSH_XSTACK_I_TWO
CFI CFA_XSP16 add(XSP16, 17)
MOV R4,?V0 + 0
MOV R5,?V0 + 1
MOV A,R6
MOV R2,A
MOV A,R7
MOV R3,A
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, 15)
MOV A,R1
JZ $+5
LJMP ??zgInit_4 & 0xFFFF
MOV A,?V0 + 2
MOV R0,#?V0 + 4
JNZ $+5
LJMP ??zgInit_2 & 0xFFFF
; Setup parameters for call to function osal_nv_write
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 R4,#0x0
MOV R5,#0x0
MOV A,R6
MOV R2,A
MOV A,R7
MOV R3,A
MOV DPTR,#(osal_nv_write & 0xffff)
MOV A,#((osal_nv_write >> 16) & 0xff)
LJMP ??zgInit_3 & 0xFFFF
CFI CFA_XSP16 add(XSP16, 15)
// 387 }
// 388
// 389 // Clear the Config State default
// 390 if ( setDefault )
??zgInit_6:
MOV A,?V0 + 2
JZ ??zgInit_7
// 391 {
// 392 zgWriteStartupOptions( ZG_STARTUP_CLEAR, ZCD_STARTOPT_DEFAULT_CONFIG_STATE );
; Setup parameters for call to function zgWriteStartupOptions
MOV R2,#0x1
MOV R1,#0x0
MOV DPTR,#(zgWriteStartupOptions & 0xffff)
MOV A,#((zgWriteStartupOptions >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 393 }
// 394
// 395 return ( ZSUCCESS );
??zgInit_7:
MOV R1,#0x0
MOV R7,#0x7
LJMP ?BANKED_LEAVE_XDATA
CFI EndBlock cfiBlock0
// 396 }
// 397
// 398 /*********************************************************************
// 399 * @fn zgReadStartupOptions
// 400 *
// 401 * @brief Reads the ZCD_NV_STARTUP_OPTION NV Item.
// 402 *
// 403 * @param none
// 404 *
// 405 * @return the ZCD_NV_STARTUP_OPTION NV item
// 406 */
RSEG BANKED_CODE:CODE:NOROOT(0)
// 407 uint8 zgReadStartupOptions( void )
zgReadStartupOptions:
CFI Block cfiBlock1 Using cfiCommon0
CFI Function zgReadStartupOptions
// 408 {
FUNCALL zgReadStartupOptions, osal_nv_item_init
LOCFRAME XSTACK, 13, STACK
ARGFRAME XSTACK, 13, STACK
FUNCALL zgReadStartupOptions, osal_nv_read
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)
// 409 // Default to Use Config State and Use Network State
// 410 uint8 startupOption = 0;
LCALL ?Subroutine0 & 0xFFFF
// 411
// 412 // This should have been done in ZMain.c, but just in case.
// 413 if ( osal_nv_item_init( ZCD_NV_STARTUP_OPTION,
// 414 sizeof(startupOption),
// 415 &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
// 416 {
// 417 // Read saved startup control
// 418 osal_nv_read( ZCD_NV_STARTUP_OPTION,
// 419 0,
// 420 sizeof( startupOption ),
// 421 &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)
// 422 }
// 423 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
// 424 }
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)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -