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

📄 osal_nv.lst

📁 cc2430应用实例
💻 LST
📖 第 1 页 / 共 5 页
字号:
    375                {
    376                  writeWordD( OSAL_NV_IEEE_PAGE, OSAL_NV_IEEE_OFFSET, (uint8 *)(&pgHdr) );
   \                     ??initNV_17:
   \   000146                ; Setup parameters for call to function writeWordD
   \   000146   85..82       MOV     DPL,?XSP + 0
   \   000149   85..83       MOV     DPH,?XSP + 1
   \   00014C   AC82         MOV     R4,DPL
   \   00014E   AD83         MOV     R5,DPH
   \   000150   7AF8         MOV     R2,#-0x8
   \   000152   7B07         MOV     R3,#0x7
   \   000154   793F         MOV     R1,#0x3f
   \   000156   90....       MOV     DPTR,#(??writeWordD & 0xffff)
   \   000159   74..         MOV     A,#((??writeWordD >> 16) & 0xff)
   \   00015B   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    377                  xBad = FALSE;
   \   00015E   75..00       MOV     ?V0 + 0,#0x0
   \   000161   8052         SJMP    ??initNV_21
    378                }
    379              }
    380              else
    381              {
    382                if ( (pgHdr.active == OSAL_NV_ERASED_ID) &&
    383                     (pgHdr.inUse == OSAL_NV_ERASED_ID) &&
    384                     (pgHdr.xfer == OSAL_NV_ERASED_ID) &&
    385                     (pgHdr.spare == OSAL_NV_ERASED_ID) )
   \                     ??initNV_15:
   \   000163   E0           MOVX    A,@DPTR
   \   000164   64FF         XRL     A,#0xff
   \   000166   7004         JNZ     ??initNV_22
   \   000168   A3           INC     DPTR
   \   000169   E0           MOVX    A,@DPTR
   \   00016A   64FF         XRL     A,#0xff
   \                     ??initNV_22:
   \   00016C   7047         JNZ     ??initNV_21
   \   00016E   7402         MOV     A,#0x2
   \   000170   12....       LCALL   ?XSTACK_DISP0_8
   \   000173   E0           MOVX    A,@DPTR
   \   000174   64FF         XRL     A,#0xff
   \   000176   7004         JNZ     ??initNV_23
   \   000178   A3           INC     DPTR
   \   000179   E0           MOVX    A,@DPTR
   \   00017A   64FF         XRL     A,#0xff
   \                     ??initNV_23:
   \   00017C   7037         JNZ     ??initNV_21
   \   00017E   7404         MOV     A,#0x4
   \   000180   12....       LCALL   ?XSTACK_DISP0_8
   \   000183   E0           MOVX    A,@DPTR
   \   000184   64FF         XRL     A,#0xff
   \   000186   7004         JNZ     ??initNV_24
   \   000188   A3           INC     DPTR
   \   000189   E0           MOVX    A,@DPTR
   \   00018A   64FF         XRL     A,#0xff
   \                     ??initNV_24:
   \   00018C   7027         JNZ     ??initNV_21
   \   00018E   7406         MOV     A,#0x6
   \   000190   12....       LCALL   ?XSTACK_DISP0_8
   \   000193   E0           MOVX    A,@DPTR
   \   000194   64FF         XRL     A,#0xff
   \   000196   7004         JNZ     ??initNV_25
   \   000198   A3           INC     DPTR
   \   000199   E0           MOVX    A,@DPTR
   \   00019A   64FF         XRL     A,#0xff
   \                     ??initNV_25:
   \   00019C   7017         JNZ     ??initNV_21
    386                {
    387                  writeWordD( pg, OSAL_NV_IEEE_OFFSET, (uint8 *)(&ieee) );
   \   00019E                ; Setup parameters for call to function writeWordD
   \   00019E   7408         MOV     A,#0x8
   \   0001A0   12....       LCALL   ?XSTACK_DISP0_8
   \   0001A3   AC82         MOV     R4,DPL
   \   0001A5   AD83         MOV     R5,DPH
   \   0001A7   7AF8         MOV     R2,#-0x8
   \   0001A9   7B07         MOV     R3,#0x7
   \   0001AB   EE           MOV     A,R6
   \   0001AC   F9           MOV     R1,A
   \   0001AD   90....       MOV     DPTR,#(??writeWordD & 0xffff)
   \   0001B0   74..         MOV     A,#((??writeWordD >> 16) & 0xff)
   \   0001B2   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    388                }
    389              }
    390            }  // for ( pg = OSAL_NV_PAGE_BEG; pg <= OSAL_NV_PAGE_END; pg++ )
   \                     ??initNV_21:
   \   0001B5   0E           INC     R6
   \   0001B6   EE           MOV     A,R6
   \   0001B7   C3           CLR     C
   \   0001B8   943E         SUBB    A,#0x3e
   \   0001BA   5003         JNC     $+5
   \   0001BC   02....       LJMP    ??initNV_7 & 0xFFFF
    391          
    392            /* First the old page is erased, and then the new page is put into use.
    393             * So if a transfer was in progress, the new page will always not yet be
    394             * marked as in use, since that is the last step to ending a transfer.
    395             */
    396            if ( newPg != OSAL_NV_PAGE_NULL )
   \   0001BF   EF           MOV     A,R7
   \   0001C0   6023         JZ      ??initNV_26
    397            {
    398              /* If there is already a fallow page reserved, keep it and put the newPg in use.
    399               * An unfinished compaction will finish to the new reserve page and the old page
    400               * will be erased and reserved.
    401               */
    402              if ( pgRes != OSAL_NV_PAGE_NULL )
   \   0001C2   90....       MOV     DPTR,#??pgRes
   \   0001C5   E0           MOVX    A,@DPTR
   \   0001C6   600E         JZ      ??initNV_27
    403              {
    404                setPageUse( newPg, TRUE );
   \   0001C8                ; Setup parameters for call to function setPageUse
   \   0001C8   7A01         MOV     R2,#0x1
   \   0001CA   EF           MOV     A,R7
   \   0001CB   F9           MOV     R1,A
   \   0001CC   90....       MOV     DPTR,#(??setPageUse & 0xffff)
   \   0001CF   74..         MOV     A,#((??setPageUse >> 16) & 0xff)
   \   0001D1   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   0001D4   8002         SJMP    ??initNV_28
    405              }
    406              else
    407              {
    408                pgRes = newPg;
   \                     ??initNV_27:
   \   0001D6   EF           MOV     A,R7
   \   0001D7   F0           MOVX    @DPTR,A
    409              }
    410          
    411              /* If a page compaction was interrupted and the page being compacted is not
    412               * yet erased, then there may be items remaining to xfer before erasing.
    413               */
    414              if ( oldPg != OSAL_NV_PAGE_NULL )
   \                     ??initNV_28:
   \   0001D8   E5..         MOV     A,?V0 + 1
   \   0001DA   6009         JZ      ??initNV_26
    415              {
    416                compactPage( oldPg );
   \   0001DC                ; Setup parameters for call to function compactPage
   \   0001DC   F9           MOV     R1,A
   \   0001DD   90....       MOV     DPTR,#(??compactPage & 0xffff)
   \   0001E0   74..         MOV     A,#((??compactPage >> 16) & 0xff)
   \   0001E2   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    417              }
    418            }
    419          
    420            return (pgRes != OSAL_NV_PAGE_NULL);
   \                     ??initNV_26:
   \   0001E5   90....       MOV     DPTR,#??pgRes
   \   0001E8   E0           MOVX    A,@DPTR
   \   0001E9   6004         JZ      ??initNV_29
   \   0001EB   7901         MOV     R1,#0x1
   \   0001ED   8002         SJMP    ??initNV_30
   \                     ??initNV_29:
   \   0001EF   7900         MOV     R1,#0x0
   \                     ??initNV_30:
   \   0001F1   7410         MOV     A,#0x10
   \   0001F3                REQUIRE ?Subroutine66
   \   0001F3                ; // Fall through to label ?Subroutine66
    421          }

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine66:
   \   000000   12....       LCALL   ?DEALLOC_XSTACK8
   \   000003   7F02         MOV     R7,#0x2
   \   000005   02....       LJMP    ?BANKED_LEAVE_XDATA
    422          
    423          /*********************************************************************
    424           * @fn      setPageUse
    425           *
    426           * @brief   Set page header active/inUse state according to 'inUse'.
    427           *
    428           * @param   pg - Valid NV page to verify and init.
    429           * @param   inUse - Boolean TRUE if inUse, FALSE if only active.
    430           *
    431           * @return  none
    432           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    433          static void setPageUse( uint8 pg, uint8 inUse )
   \                     ??setPageUse:
    434          {
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 8
   \   000004   74F8         MOV     A,#-0x8
   \   000006   12....       LCALL   ?ALLOC_XSTACK8
    435            osalNvPgHdr_t pgHdr;
    436          
    437            pgHdr.active = OSAL_NV_ZEROED_ID;
   \   000009   85..82       MOV     DPL,?XSP + 0
   \   00000C   85..83       MOV     DPH,?XSP + 1
   \   00000F   E4           CLR     A
   \   000010   F0           MOVX    @DPTR,A
   \   000011   A3           INC     DPTR
   \   000012   F0           MOVX    @DPTR,A
    438          
    439            if ( inUse )
   \   000013   EA           MOV     A,R2
   \   000014   6008         JZ      ??setPageUse_1
    440            {
    441              pgHdr.inUse = OSAL_NV_ZEROED_ID;
   \   000016   7402         MOV     A,#0x2
   \   000018   12....       LCALL   ?XSTACK_DISP0_8
   \   00001B   E4           CLR     A
   \   00001C   8007         SJMP    ??setPageUse_2
    442            }
    443            else
    444            {
    445              pgHdr.inUse = OSAL_NV_ERASED_ID;
   \                     ??setPageUse_1:
   \   00001E   7402         MOV     A,#0x2
   \   000020   12....       LCALL   ?XSTACK_DISP0_8
   \   000023   74FF         MOV     A,#-0x1
   \                     ??setPageUse_2:
   \   000025   12....       LCALL   ??Subroutine29_0 & 0xFFFF
    446            }
    447          
    448            writeWord( pg, OSAL_NV_PAGE_HDR_OFFSET, (uint8*)(&pgHdr) );
   \                     ??CrossCallReturnLabel_81:
   \   000028   7A00         MOV     R2,#0x0
   \   00002A   7B00         MOV     R3,#0x0
   \   00002C   90....       MOV     DPTR,#(??writeWord & 0xffff)
   \   00002F   74..         MOV     A,#((??writeWord >> 16) & 0xff)
   \   000031   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    449          }
   \   000034   7408         MOV     A,#0x8
   \   000036   12....       LCALL   ?DEALLOC_XSTACK8
   \   000039                REQUIRE ?Subroutine67
   \   000039                ; // Fall through to label ?Subroutine67

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine67:
   \   000000   D083         POP     DPH
   \   000002   D082         POP     DPL
   \   000004   02....       LJMP    ?BRET

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine29:
   \   000000   85..82       MOV     DPL,?XSP + 0
   \   000003   85..83       MOV     DPH,?XSP + 1
   \   000006   E4           CLR     A
   \                     ??Subroutine29_0:
   \   000007   F0           MOVX    @DPTR,A
   \   000008   A3           INC     DPTR
   \                     ??Subroutine29_1:
   \   000009   F0           MOVX    @DPTR,A
   \   00000A                ; Setup parameters for call to function writeWordH
   \   00000A                ; Setup parameters for call to function writeWord
   \   00000A                ; Setup parameters for call to function writeWord
   \   00000A                ; Setup parameters for call to function writeWord
   \   00000A   85..82       MOV     DPL,?XSP + 0
   \   00000D   85..83       MOV     DPH,?XSP + 1
   \   000010   AC82         MOV     R4,DPL
   \   000012   AD83         MOV     R5,DPH
   \   000014   22           RET
    450          
    451          /*********************************************************************
    452           * @fn      initPage

⌨️ 快捷键说明

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