⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 osal_nv.s51

📁 cc2430应用实例
💻 S51
📖 第 1 页 / 共 5 页
字号:
//  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, 32, STACK
        FUNCALL ??compactPage, ??setPageUse
        LOCFRAME XSTAC

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -