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

📄 osal_nv.lst

📁 cc2430应用实例
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   00000A   75..00       MOV     ?V0 + 1,#0x0
    309            uint8 newPg = OSAL_NV_PAGE_NULL;
   \   00000D   7F00         MOV     R7,#0x0
    310            uint8 xBad;
    311            uint8 pg;
    312          
    313            readHdr( OSAL_NV_IEEE_PAGE, OSAL_NV_IEEE_OFFSET, (uint8 *)(&ieee) );
   \   00000F                ; Setup parameters for call to function readHdr
   \   00000F   7408         MOV     A,#0x8
   \   000011   12....       LCALL   ?XSTACK_DISP0_8
   \   000014   AC82         MOV     R4,DPL
   \   000016   AD83         MOV     R5,DPH
   \   000018   7AF8         MOV     R2,#-0x8
   \   00001A   7B07         MOV     R3,#0x7
   \   00001C   793F         MOV     R1,#0x3f
   \   00001E   90....       MOV     DPTR,#(??readHdr & 0xffff)
   \   000021   74..         MOV     A,#((??readHdr >> 16) & 0xff)
   \   000023   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    314            if ( (ieee.active == OSAL_NV_ERASED_ID) &&
    315                 (ieee.inUse == OSAL_NV_ERASED_ID) &&
    316                 (ieee.xfer == OSAL_NV_ERASED_ID) &&
    317                 (ieee.spare == OSAL_NV_ERASED_ID) )
   \   000026   7408         MOV     A,#0x8
   \   000028   12....       LCALL   ?XSTACK_DISP0_8
   \   00002B   E0           MOVX    A,@DPTR
   \   00002C   64FF         XRL     A,#0xff
   \   00002E   7004         JNZ     ??initNV_1
   \   000030   A3           INC     DPTR
   \   000031   E0           MOVX    A,@DPTR
   \   000032   64FF         XRL     A,#0xff
   \                     ??initNV_1:
   \   000034   7035         JNZ     ??initNV_2
   \   000036   740A         MOV     A,#0xa
   \   000038   12....       LCALL   ?XSTACK_DISP0_8
   \   00003B   E0           MOVX    A,@DPTR
   \   00003C   64FF         XRL     A,#0xff
   \   00003E   7004         JNZ     ??initNV_3
   \   000040   A3           INC     DPTR
   \   000041   E0           MOVX    A,@DPTR
   \   000042   64FF         XRL     A,#0xff
   \                     ??initNV_3:
   \   000044   7025         JNZ     ??initNV_2
   \   000046   740C         MOV     A,#0xc
   \   000048   12....       LCALL   ?XSTACK_DISP0_8
   \   00004B   E0           MOVX    A,@DPTR
   \   00004C   64FF         XRL     A,#0xff
   \   00004E   7004         JNZ     ??initNV_4
   \   000050   A3           INC     DPTR
   \   000051   E0           MOVX    A,@DPTR
   \   000052   64FF         XRL     A,#0xff
   \                     ??initNV_4:
   \   000054   7015         JNZ     ??initNV_2
   \   000056   740E         MOV     A,#0xe
   \   000058   12....       LCALL   ?XSTACK_DISP0_8
   \   00005B   E0           MOVX    A,@DPTR
   \   00005C   64FF         XRL     A,#0xff
   \   00005E   7004         JNZ     ??initNV_5
   \   000060   A3           INC     DPTR
   \   000061   E0           MOVX    A,@DPTR
   \   000062   64FF         XRL     A,#0xff
   \                     ??initNV_5:
   \   000064   7005         JNZ     ??initNV_2
    318            {
    319              xBad = TRUE;
   \   000066   75..01       MOV     ?V0 + 0,#0x1
   \   000069   8002         SJMP    ??initNV_6
    320            }
    321            else
    322            {
    323              xBad = FALSE;
   \                     ??initNV_2:
   \   00006B   8F..         MOV     ?V0 + 0,R7
    324            }
    325          
    326            pgRes = OSAL_NV_PAGE_NULL;
   \                     ??initNV_6:
   \   00006D   E4           CLR     A
   \   00006E   90....       MOV     DPTR,#??pgRes
   \   000071   F0           MOVX    @DPTR,A
    327          
    328            for ( pg = OSAL_NV_PAGE_BEG; pg <= OSAL_NV_PAGE_END; pg++ )
   \   000072   7E3C         MOV     R6,#0x3c
    329            {
    330          #if OSAL_NV_CLEANUP
    331              OSAL_NV_PAGE_ERASE( pg );
    332              asm( "NOP" );
    333          #endif
    334          
    335              readHdr( pg, OSAL_NV_PAGE_HDR_OFFSET, (uint8 *)(&pgHdr) );
   \                     ??initNV_7:
   \   000074                ; Setup parameters for call to function readHdr
   \   000074   85..82       MOV     DPL,?XSP + 0
   \   000077   85..83       MOV     DPH,?XSP + 1
   \   00007A   AC82         MOV     R4,DPL
   \   00007C   AD83         MOV     R5,DPH
   \   00007E   7A00         MOV     R2,#0x0
   \   000080   7B00         MOV     R3,#0x0
   \   000082   EE           MOV     A,R6
   \   000083   F9           MOV     R1,A
   \   000084   90....       MOV     DPTR,#(??readHdr & 0xffff)
   \   000087   74..         MOV     A,#((??readHdr >> 16) & 0xff)
   \   000089   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    336          
    337              if ( pgHdr.active == OSAL_NV_ERASED_ID )
   \   00008C   85..82       MOV     DPL,?XSP + 0
   \   00008F   85..83       MOV     DPH,?XSP + 1
   \   000092   E0           MOVX    A,@DPTR
   \   000093   64FF         XRL     A,#0xff
   \   000095   7004         JNZ     ??initNV_8
   \   000097   A3           INC     DPTR
   \   000098   E0           MOVX    A,@DPTR
   \   000099   64FF         XRL     A,#0xff
   \                     ??initNV_8:
   \   00009B   7018         JNZ     ??initNV_9
    338              {
    339                if ( pgRes == OSAL_NV_PAGE_NULL )
   \   00009D   90....       MOV     DPTR,#??pgRes
   \   0000A0   E0           MOVX    A,@DPTR
   \   0000A1   7004         JNZ     ??initNV_10
    340                {
    341                  pgRes = pg;
   \   0000A3   EE           MOV     A,R6
   \   0000A4   F0           MOVX    @DPTR,A
   \   0000A5   8034         SJMP    ??initNV_11
    342                }
    343                else
    344                {
    345                  setPageUse( pg, TRUE );
   \                     ??initNV_10:
   \   0000A7                ; Setup parameters for call to function setPageUse
   \   0000A7   7A01         MOV     R2,#0x1
   \   0000A9   EE           MOV     A,R6
   \   0000AA   F9           MOV     R1,A
   \   0000AB   90....       MOV     DPTR,#(??setPageUse & 0xffff)
   \   0000AE   74..         MOV     A,#((??setPageUse >> 16) & 0xff)
   \   0000B0   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   0000B3   8026         SJMP    ??initNV_11
    346                }
    347              }
    348              else  // Page is active.
    349              {
    350                // If the page is not yet in use, it is the tgt of items from an xfer.
    351                if ( pgHdr.inUse == OSAL_NV_ERASED_ID )
   \                     ??initNV_9:
   \   0000B5   7402         MOV     A,#0x2
   \   0000B7   12....       LCALL   ?XSTACK_DISP0_8
   \   0000BA   E0           MOVX    A,@DPTR
   \   0000BB   64FF         XRL     A,#0xff
   \   0000BD   7004         JNZ     ??initNV_12
   \   0000BF   A3           INC     DPTR
   \   0000C0   E0           MOVX    A,@DPTR
   \   0000C1   64FF         XRL     A,#0xff
   \                     ??initNV_12:
   \   0000C3   7004         JNZ     ??initNV_13
    352                {
    353                  newPg = pg;
   \   0000C5   EE           MOV     A,R6
   \   0000C6   FF           MOV     R7,A
   \   0000C7   8012         SJMP    ??initNV_11
    354                }
    355                // An Xfer from this page was in progress.
    356                else if ( pgHdr.xfer != OSAL_NV_ERASED_ID )
   \                     ??initNV_13:
   \   0000C9   7404         MOV     A,#0x4
   \   0000CB   12....       LCALL   ?XSTACK_DISP0_8
   \   0000CE   E0           MOVX    A,@DPTR
   \   0000CF   64FF         XRL     A,#0xff
   \   0000D1   7004         JNZ     ??initNV_14
   \   0000D3   A3           INC     DPTR
   \   0000D4   E0           MOVX    A,@DPTR
   \   0000D5   64FF         XRL     A,#0xff
   \                     ??initNV_14:
   \   0000D7   6002         JZ      ??initNV_11
    357                {
    358                  oldPg = pg;
   \   0000D9   8E..         MOV     ?V0 + 1,R6
    359                }
    360              }
    361          
    362              // Calculate page offset and lost bytes.
    363              initPage( pg, OSAL_NV_ITEM_NULL );
   \                     ??initNV_11:
   \   0000DB                ; Setup parameters for call to function initPage
   \   0000DB   7A00         MOV     R2,#0x0
   \   0000DD   7B00         MOV     R3,#0x0
   \   0000DF   EE           MOV     A,R6
   \   0000E0   F9           MOV     R1,A
   \   0000E1   90....       MOV     DPTR,#(??initPage & 0xffff)
   \   0000E4   74..         MOV     A,#((??initPage >> 16) & 0xff)
   \   0000E6   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    364          
    365              readHdr( pg, OSAL_NV_IEEE_OFFSET, (uint8 *)(&pgHdr) );
   \   0000E9                ; Setup parameters for call to function readHdr
   \   0000E9   85..82       MOV     DPL,?XSP + 0
   \   0000EC   85..83       MOV     DPH,?XSP + 1
   \   0000EF   AC82         MOV     R4,DPL
   \   0000F1   AD83         MOV     R5,DPH
   \   0000F3   7AF8         MOV     R2,#-0x8
   \   0000F5   7B07         MOV     R3,#0x7
   \   0000F7   EE           MOV     A,R6
   \   0000F8   F9           MOV     R1,A
   \   0000F9   90....       MOV     DPTR,#(??readHdr & 0xffff)
   \   0000FC   74..         MOV     A,#((??readHdr >> 16) & 0xff)
   \   0000FE   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    366              if ( xBad )
   \   000101   E5..         MOV     A,?V0 + 0
   \   000103   85..82       MOV     DPL,?XSP + 0
   \   000106   85..83       MOV     DPH,?XSP + 1
   \   000109   6058         JZ      ??initNV_15
    367              {
    368                /* TBD - For the cost of more code space, the IEEE could be checksummed & then tested here
    369                 * before installing to the erased IEEE on page 63.
    370                 */
    371                if ( (pgHdr.active != OSAL_NV_ERASED_ID) ||
    372                     (pgHdr.inUse != OSAL_NV_ERASED_ID) ||
    373                     (pgHdr.xfer != OSAL_NV_ERASED_ID) ||
    374                     (pgHdr.spare != OSAL_NV_ERASED_ID) )
   \   00010B   E0           MOVX    A,@DPTR
   \   00010C   64FF         XRL     A,#0xff
   \   00010E   7004         JNZ     ??initNV_16
   \   000110   A3           INC     DPTR
   \   000111   E0           MOVX    A,@DPTR
   \   000112   64FF         XRL     A,#0xff
   \                     ??initNV_16:
   \   000114   7030         JNZ     ??initNV_17
   \   000116   7402         MOV     A,#0x2
   \   000118   12....       LCALL   ?XSTACK_DISP0_8
   \   00011B   E0           MOVX    A,@DPTR
   \   00011C   64FF         XRL     A,#0xff
   \   00011E   7004         JNZ     ??initNV_18
   \   000120   A3           INC     DPTR
   \   000121   E0           MOVX    A,@DPTR
   \   000122   64FF         XRL     A,#0xff
   \                     ??initNV_18:
   \   000124   7020         JNZ     ??initNV_17
   \   000126   7404         MOV     A,#0x4
   \   000128   12....       LCALL   ?XSTACK_DISP0_8
   \   00012B   E0           MOVX    A,@DPTR
   \   00012C   64FF         XRL     A,#0xff
   \   00012E   7004         JNZ     ??initNV_19
   \   000130   A3           INC     DPTR
   \   000131   E0           MOVX    A,@DPTR
   \   000132   64FF         XRL     A,#0xff
   \                     ??initNV_19:
   \   000134   7010         JNZ     ??initNV_17
   \   000136   7406         MOV     A,#0x6
   \   000138   12....       LCALL   ?XSTACK_DISP0_8
   \   00013B   E0           MOVX    A,@DPTR
   \   00013C   64FF         XRL     A,#0xff
   \   00013E   7004         JNZ     ??initNV_20
   \   000140   A3           INC     DPTR
   \   000141   E0           MOVX    A,@DPTR
   \   000142   64FF         XRL     A,#0xff
   \                     ??initNV_20:
   \   000144   606F         JZ      ??initNV_21

⌨️ 快捷键说明

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