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

📄 efs.lst

📁 Philips LPC2138 Demo Application with Keil C
💻 LST
字号:
ARM COMPILER V2.42,  efs                                                                   27/03/06  10:45:49  PAGE 1   


ARM COMPILER V2.42, COMPILATION OF MODULE efs
OBJECT MODULE PLACED IN .\obj\efs.obj
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe src\efs.c THUMB DEBUG PRINT(.\LST\EFS.LST) TABS(4) OBJECT(.\obj\efs.obj) 

stmt  level    source

    1          /*****************************************************************************\
    2          *              efs - General purpose Embedded Filesystem library              *
    3          *          --------------------- -----------------------------------          *
    4          *                                                                             *
    5          * Filename : efs.h                                                            *
    6          * Description : This should become the wrapper around efs. It will contain    *
    7          *               functions like efs_init etc.                                  *
    8          *                                                                             *
    9          * This library is free software; you can redistribute it and/or               *
   10          * modify it under the terms of the GNU Lesser General Public                  *
   11          * License as published by the Free Software Foundation; either                *
   12          * version 2.1 of the License, or (at your option) any later version.          *
   13          *                                                                             *
   14          * This library is distributed in the hope that it will be useful,             *
   15          * but WITHOUT ANY WARRANTY; without even the implied warranty of              *
   16          * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU           *
   17          * Lesser General Public License for more details.                             *
   18          *                                                                             *
   19          *                                                    (c)2005 Michael De Nil   *
   20          *                                                    (c)2005 Lennart Yseboodt *
   21          \*****************************************************************************/
   22          
   23          /*****************************************************************************/
   24          #include "efs.h"
   25          /*****************************************************************************/
   26          
   27          /* ****************************************************************************  
   28           * esint8 efs_init(EmbeddedFileSystem * efs,eint8* opts)
   29           * Description: This function initialises all subelements of a filesystem.
   30           * It sets the pointerchain and verifies each step.
   31           * Return value: 0 on success and -1 on failure.
   32          */
   33          esint8 efs_init(EmbeddedFileSystem * efs,eint8* opts)
   34          {
   35   1          if(if_initInterface(&efs->myCard, opts)==0)
   36   1          {
   37   2              ioman_init(&efs->myIOman,&efs->myCard,0);
   38   2              disc_initDisc(&efs->myDisc, &efs->myIOman);
   39   2              part_initPartition(&efs->myPart, &efs->myDisc);
   40   2              if(efs->myPart.activePartition==-1){
   41   3                  efs->myDisc.partitions[0].type=0x0B;
   42   3                  efs->myDisc.partitions[0].LBA_begin=0;
   43   3                  efs->myDisc.partitions[0].numSectors=efs->myCard.sectorCount;   
   44   3                  /*efs->myPart.activePartition = 0;*/
   45   3                  /*efs->myPart.disc = &(efs->myDisc);*/
   46   3                  part_initPartition(&efs->myPart, &efs->myDisc);
   47   3              }
   48   2              /*part_initPartition(&efs->myPart, &efs->myDisc);*/
   49   2              if(fs_initFs(&efs->myFs, &efs->myPart))
   50   2                  return(-2);
   51   2              return(0);
   52   2          }
   53   1          return(-1);
   54   1      }
   55          /*****************************************************************************/
   56          
   57          
ARM COMPILER V2.42,  efs                                                                   27/03/06  10:45:49  PAGE 2   

ASSEMBLY LISTING OF GENERATED OBJECT CODE



*** EXTERNALS:
 EXTERN CODE16 (if_initInterface?T)
 EXTERN CODE16 (ioman_init?T)
 EXTERN CODE16 (disc_initDisc?T)
 EXTERN CODE16 (part_initPartition?T)
 EXTERN CODE16 (fs_initFs?T)



*** PUBLICS:
 PUBLIC         efs_init?T



*** CODE SEGMENT '?PR?efs_init?T?efs':
   33: esint8 efs_init(EmbeddedFileSystem * efs,eint8* opts)
 00000000  B510      PUSH        {R4,LR}
 00000002  1C0A      MOV         R2,R1 ; opts
 00000004  ---- Variable 'opts' assigned to Register 'R2' ----
 00000004  1C04      MOV         R4,R0 ; efs
 00000006  ---- Variable 'efs' assigned to Register 'R4' ----
   35:     if(if_initInterface(&efs->myCard, opts)==0)
 00000006  1C20      MOV         R0,R4 ; efs
 00000008  1C11      MOV         R1,R2 ; opts
 0000000A  F7FF      BL          if_initInterface?T  ; T=0x0001  (1)
 0000000C  FFF9      BL          if_initInterface?T  ; T=0x0001  (2)
 0000000E  0600      LSL         R0,R0,#0x18 ; if_initInterface?T
 00000010  1600      ASR         R0,R0,#0x18
 00000012  2800      CMP         R0,#0x0
 00000014  D13F      BNE         L_1  ; T=0x00000096
   37:         ioman_init(&efs->myIOman,&efs->myCard,0);
 00000016  1C20      MOV         R0,R4 ; efs
 00000018  3004      ADD         R0,#0x4
 0000001A  1C21      MOV         R1,R4 ; efs
 0000001C  2200      MOV         R2,#0x0
 0000001E  F7FF      BL          ioman_init?T  ; T=0x0001  (1)
 00000020  FFEF      BL          ioman_init?T  ; T=0x0001  (2)
   38:         disc_initDisc(&efs->myDisc, &efs->myIOman);
 00000022  4800      LDR         R1,=0xCD4
 00000024  1C20      MOV         R0,R4 ; efs
 00000026  1840      ADD         R0,R1 ; efs
 00000028  1C21      MOV         R1,R4 ; efs
 0000002A  3104      ADD         R1,#0x4
 0000002C  F7FF      BL          disc_initDisc?T  ; T=0x0001  (1)
 0000002E  FFE8      BL          disc_initDisc?T  ; T=0x0001  (2)
   39:         part_initPartition(&efs->myPart, &efs->myDisc);
 00000030  4800      LDR         R1,=0xD1C
 00000032  1C20      MOV         R0,R4 ; efs
 00000034  1840      ADD         R0,R1 ; efs
 00000036  4800      LDR         R2,=0xCD4
 00000038  1C21      MOV         R1,R4 ; efs
 0000003A  1889      ADD         R1,R2 ; efs
 0000003C  F7FF      BL          part_initPartition?T  ; T=0x0001  (1)
 0000003E  FFE0      BL          part_initPartition?T  ; T=0x0001  (2)
   40:         if(efs->myPart.activePartition==-1){
 00000040  4800      LDR         R1,=0xD20
 00000042  1C20      MOV         R0,R4 ; efs
 00000044  5C40      LDRB        R0,[R0,R1]
 00000046  0600      LSL         R0,R0,#0x18
 00000048  1600      ASR         R0,R0,#0x18
 0000004A  2101      MOV         R1,#0x1
 0000004C  42C8      CMN         R0,R1
 0000004E  D114      BNE         L_2  ; T=0x0000007A
   41:             efs->myDisc.partitions[0].type=0x0B;
 00000050  210B      MOV         R1,#0xB
 00000052  4800      LDR         R2,=0xCE0
 00000054  1C20      MOV         R0,R4 ; efs
ARM COMPILER V2.42,  efs                                                                   27/03/06  10:45:49  PAGE 3   

 00000056  5481      STRB        R1,[R0,R2]
   42:             efs->myDisc.partitions[0].LBA_begin=0;
 00000058  2100      MOV         R1,#0x0
 0000005A  4800      LDR         R2,=0xCE4
 0000005C  1C20      MOV         R0,R4 ; efs
 0000005E  5081      STR         R1,[R0,R2]
   43:             efs->myDisc.partitions[0].numSectors=efs->myCard.sectorCount;   
 00000060  1C20      MOV         R0,R4 ; efs
 00000062  6801      LDR         R1,[R0,#0x0] ; efs
 00000064  4800      LDR         R2,=0xCE8
 00000066  1C20      MOV         R0,R4 ; efs
 00000068  5081      STR         R1,[R0,R2]
   46:             part_initPartition(&efs->myPart, &efs->myDisc);
 0000006A  4800      LDR         R1,=0xD1C
 0000006C  1C20      MOV         R0,R4 ; efs
 0000006E  1840      ADD         R0,R1 ; efs
 00000070  4800      LDR         R2,=0xCD4
 00000072  1C21      MOV         R1,R4 ; efs
 00000074  1889      ADD         R1,R2 ; efs
 00000076  F7FF      BL          part_initPartition?T  ; T=0x0001  (1)
 00000078  FFC3      BL          part_initPartition?T  ; T=0x0001  (2)
   47:         }
 0000007A          L_2:
   49:         if(fs_initFs(&efs->myFs, &efs->myPart))
 0000007A  4800      LDR         R1,=0xD24
 0000007C  1C20      MOV         R0,R4 ; efs
 0000007E  1840      ADD         R0,R1 ; efs
 00000080  4800      LDR         R2,=0xD1C
 00000082  1C21      MOV         R1,R4 ; efs
 00000084  1889      ADD         R1,R2 ; efs
 00000086  F7FF      BL          fs_initFs?T  ; T=0x0001  (1)
 00000088  FFBB      BL          fs_initFs?T  ; T=0x0001  (2)
 0000008A  2800      CMP         R0,#0x0 ; fs_initFs?T
 0000008C  D001      BEQ         L_3  ; T=0x00000092
   50:             return(-2);
 0000008E  4800      LDR         R0,=0xFFFFFFFE
 00000090  E002      B           L_4  ; T=0x00000098
 00000092          L_3:
   51:         return(0);
 00000092  2000      MOV         R0,#0x0
 00000094  E000      B           L_4  ; T=0x00000098
   52:     }
 00000096          L_1:
   53:     return(-1);
 00000096  4800      LDR         R0,=0xFFFFFFFF
   54: }
 00000098          L_4:
 00000098  BC10      POP         {R4}
 0000009A  BC08      POP         {R3}
 0000009C  4718      BX          R3
 0000009E          ENDP ; 'efs_init?T'



Module Information          Static
----------------------------------
  code size            =    ------
  data size            =    ------
  const size           =    ------
End of Module Information.


ARM COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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