📄 osal_nv.s51
字号:
// 517 uint16 off = findItem( (hdr.id | 0x8000) );
// 518
// 519 if ( off != OSAL_NV_ITEM_NULL )
// 520 {
// 521 setItem( findPg, off, eNvZero ); // Mark old duplicate as invalid.
// 522 }
// 523 }
// 524 }
// 525 else
// 526 {
// 527 setItem( pg, offset, eNvZero ); // Mark bad checksum as invalid.
??initPage_2:
; Setup parameters for call to function setItem
MOV R4,#0x1
MOV R2,?V0 + 2
MOV R3,?V0 + 3
MOV R1,?V0 + 6
??initPage_3:
MOV DPTR,#(??setItem & 0xffff)
MOV A,#((??setItem >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 528 }
// 529 }
// 530
// 531 if ( hdr.id == OSAL_NV_ZEROED_ID )
??initPage_4:
MOV A,#0x2
LCALL ?XSTACK_DISP0_8
MOVX A,@DPTR
JNZ ??initPage_5
INC DPTR
MOVX A,@DPTR
??initPage_5:
JNZ ??initPage_6
// 532 {
// 533 lost += (OSAL_NV_HDR_SIZE + sz);
MOV A,#0x8
ADD A,?V0 + 0
MOV R0,A
CLR A
ADDC A,?V0 + 1
MOV R1,A
MOV A,R6
ADD A,R0
MOV R6,A
MOV A,R7
ADDC A,R1
MOV R7,A
// 534 }
// 535 offset += sz;
??initPage_6:
MOV A,?V0 + 2
ADD A,?V0 + 0
MOV ?V0 + 2,A
MOV A,?V0 + 3
ADDC A,?V0 + 1
MOV ?V0 + 3,A
// 536
// 537 } while ( TRUE );
??initPage_1:
; Setup parameters for call to function readHdr
MOV A,#0x2
LCALL ?XSTACK_DISP0_8
MOV R4,DPL
MOV R5,DPH
MOV R2,?V0 + 2
MOV R3,?V0 + 3
MOV R1,?V0 + 6
MOV DPTR,#(??readHdr & 0xffff)
MOV A,#((??readHdr >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
MOV A,#0x2
LCALL ?XSTACK_DISP0_8
MOVX A,@DPTR
XRL A,#0xff
JNZ ??initPage_7
INC DPTR
MOVX A,@DPTR
XRL A,#0xff
??initPage_7:
JZ ??initPage_8
MOV A,?V0 + 2
ADD A,#0x8
MOV ?V0 + 2,A
MOV A,?V0 + 3
ADDC A,#0x0
MOV ?V0 + 3,A
MOV A,#0x4
LCALL ?XSTACK_DISP0_8
LCALL ?Subroutine10 & 0xFFFF
??CrossCallReturnLabel_32:
MOV ?V0 + 0,A
MOV A,#-0x1
ANL A,R1
MOV ?V0 + 1,A
MOV A,?V0 + 0
ADD A,?V0 + 2
MOV R0,A
MOV A,R1
LCALL ?Subroutine47 & 0xFFFF
??CrossCallReturnLabel_124:
JC ??initPage_9
CLR A
ADD A,R6
MOV R0,A
MOV A,#0x8
ADDC A,R7
MOV R1,A
MOV A,R0
CLR C
SUBB A,?V0 + 2
MOV R6,A
MOV A,R1
SUBB A,?V0 + 3
MOV R7,A
MOV ?V0 + 2,#-0x8
MOV ?V0 + 3,#0x7
// 538
// 539 pgOff[pg - OSAL_NV_PAGE_BEG] = offset;
??initPage_8:
MOV A,?V0 + 6
LCALL ??Subroutine45_0 & 0xFFFF
??CrossCallReturnLabel_118:
MOV A,?V0 + 2
MOVX @DPTR,A
INC DPTR
MOV A,?V0 + 3
LCALL ?Subroutine32 & 0xFFFF
// 540 pgLost[pg - OSAL_NV_PAGE_BEG] = lost;
??CrossCallReturnLabel_89:
MOV A,R6
MOVX @DPTR,A
INC DPTR
MOV A,R7
MOVX @DPTR,A
// 541
// 542 return OSAL_NV_ITEM_NULL;
MOV R2,#0x0
MOV R3,#0x0
??initPage_10:
MOV A,#0xa
LCALL ?DEALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 15)
MOV R7,#0x7
LJMP ?BANKED_LEAVE_XDATA
CFI CFA_XSP16 add(XSP16, 25)
??initPage_9:
MOV A,#0x2
LCALL ?XSTACK_DISP0_8
MOVX A,@DPTR
JNZ ??initPage_11
INC DPTR
MOVX A,@DPTR
??initPage_11:
JNZ $+5
LJMP ??initPage_4 & 0xFFFF
; Setup parameters for call to function calcChkF
MOV A,#0x4
LCALL ?XSTACK_DISP0_8
LCALL ?Subroutine14 & 0xFFFF
??CrossCallReturnLabel_36:
MOV R2,?V0 + 2
MOV R3,?V0 + 3
MOV R1,?V0 + 6
MOV DPTR,#(??calcChkF & 0xffff)
MOV A,#((??calcChkF >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
MOV ?V0 + 4,R2
MOV ?V0 + 5,R3
MOV R0,?V0 + 4
MOV R1,?V0 + 5
MOV A,#0x6
LCALL ?XSTACK_DISP0_8
MOVX A,@DPTR
XRL A,R0
JNZ ??initPage_12
INC DPTR
MOVX A,@DPTR
XRL A,R1
??initPage_12:
JZ $+5
LJMP ??initPage_2 & 0xFFFF
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
MOVX A,@DPTR
JNZ ??initPage_13
INC DPTR
MOVX A,@DPTR
??initPage_13:
JZ ??initPage_14
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
MOVX A,@DPTR
MOV R0,A
INC DPTR
MOVX A,@DPTR
ANL A,#0x7f
MOV R1,A
MOV A,#0x2
LCALL ?XSTACK_DISP0_8
MOVX A,@DPTR
XRL A,R0
JNZ ??initPage_15
INC DPTR
MOVX A,@DPTR
XRL A,R1
??initPage_15:
JZ $+5
LJMP ??initPage_4 & 0xFFFF
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
INC DPTR
MOVX A,@DPTR
ANL A,#0x80
MOV R1,A
CLR A
JNZ ??initPage_16
MOV A,R1
??initPage_16:
JNZ ??initPage_17
MOV A,#0x8
LCALL ?XSTACK_DISP0_8
MOVX A,@DPTR
XRL A,#0xff
JNZ ??initPage_18
INC DPTR
MOVX A,@DPTR
XRL A,#0xff
??initPage_18:
JZ $+5
LJMP ??initPage_4 & 0xFFFF
SJMP ??initPage_19
??initPage_17:
MOV A,#0x8
LCALL ?XSTACK_DISP0_8
MOVX A,@DPTR
XRL A,#0xff
JNZ ??initPage_20
INC DPTR
MOVX A,@DPTR
XRL A,#0xff
??initPage_20:
JNZ $+5
LJMP ??initPage_4 & 0xFFFF
??initPage_19:
MOV R2,?V0 + 2
MOV R3,?V0 + 3
LJMP ??initPage_10 & 0xFFFF
??initPage_14:
MOV A,#0x8
LCALL ?XSTACK_DISP0_8
MOVX A,@DPTR
XRL A,#0xff
JNZ ??initPage_21
INC DPTR
MOVX A,@DPTR
XRL A,#0xff
??initPage_21:
JZ $+5
LJMP ??initPage_4 & 0xFFFF
; Setup parameters for call to function findItem
MOV A,#0x2
LCALL ?XSTACK_DISP0_8
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
ORL A,#0x80
MOV R3,A
MOV DPTR,#(??findItem & 0xffff)
MOV A,#((??findItem >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
MOV A,R2
JNZ ??initPage_22
MOV A,R3
??initPage_22:
JNZ $+5
LJMP ??initPage_4 & 0xFFFF
; Setup parameters for call to function setItem
MOV R4,#0x1
MOV DPTR,#??findPg
MOVX A,@DPTR
MOV R1,A
LJMP ??initPage_3 & 0xFFFF
CFI EndBlock cfiBlock4
// 543 }
// 544
// 545 /*********************************************************************
// 546 * @fn erasePage
// 547 *
// 548 * @brief Erases a page in Flash.
// 549 *
// 550 * @param pg - Valid NV page to erase.
// 551 *
// 552 * @return none
// 553 */
// 554 static void erasePage( uint8 pg )
// 555 {
// 556 osalNvHdr_t ieee;
// 557
// 558 if ( !OSAL_NV_CHECK_BUS_VOLTAGE )
// 559 {
// 560 failF = TRUE;
// 561 return;
// 562 }
// 563
// 564 OSAL_NV_PAGE_ERASE( pg );
// 565
// 566 pgOff[pg - OSAL_NV_PAGE_BEG] = OSAL_NV_PAGE_HDR_SIZE;
// 567 pgLost[pg - OSAL_NV_PAGE_BEG] = 0;
// 568
// 569 readHdr( OSAL_NV_IEEE_PAGE, OSAL_NV_IEEE_OFFSET, (uint8 *)(&ieee) );
// 570 if ( (ieee.id != OSAL_NV_ERASED_ID) ||
// 571 (ieee.len != OSAL_NV_ERASED_ID) ||
// 572 (ieee.chk != OSAL_NV_ERASED_ID) ||
// 573 (ieee.stat != OSAL_NV_ERASED_ID) )
// 574 {
// 575 writeWordD( pg, OSAL_NV_IEEE_OFFSET, (uint8 *)(&ieee) );
// 576 }
// 577 }
// 578
// 579 /*********************************************************************
// 580 * @fn compactPage
// 581 *
// 582 * @brief Compacts the page specified.
// 583 *
// 584 * @param srcPg - Valid NV page to erase.
// 585 *
// 586 * @return none
// 587 */
RSEG BANKED_CODE:CODE:NOROOT(0)
// 588 static void compactPage( uint8 srcPg )
??compactPage:
CFI Block cfiBlock5 Using cfiCommon0
CFI Function ??compactPage
// 589 {
FUNCALL ??compactPage, ??writeWordH
LOCFRAME XSTACK, 32, STACK
ARGFRAME XSTACK, 32, STACK
FUNCALL ??compactPage, ??calcChkF
LOCFRAME XSTACK, 32, STACK
ARGFRAME XSTACK, 32, STACK
FUNCALL ??compactPage, ??setItem
LOCFRAME XSTACK, 32, STACK
ARGFRAME XSTACK, 32, STACK
FUNCALL ??compactPage, ??writeBuf
LOCFRAME XSTACK, 34, STACK
ARGFRAME XSTACK, 34, STACK
FUNCALL ??compactPage, ??xferBuf
LOCFRAME XSTACK, 36, STACK
ARGFRAME XSTACK, 36, STACK
FUNCALL ??compactPage, ??setItem
LOCFRAME XSTACK, 32, STACK
ARGFRAME XSTACK, 32, STACK
FUNCALL ??compactPage, ??readHdr
LOCFRAME XSTACK, 32, STACK
ARGFRAME XSTACK, 32, STACK
FUNCALL ??compactPage, HalAdcCheckVdd
LOCFRAME XSTACK, 32, STACK
ARGFRAME XSTACK, 32, STACK
FUNCALL ??compactPage, ??readHdr
LOCFRAME XSTACK, 32, STACK
ARGFRAME XSTACK, 32, STACK
FUNCALL ??compactPage, ??writeWordD
LOCFRAME XSTACK, 32, STACK
ARGFRAME XSTACK
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -