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

📄 file.lst

📁 Philips LPC2138 Demo Application with Keil C
💻 LST
📖 第 1 页 / 共 5 页
字号:
 000000C8  0409      LSL         R1,R1,#0x10
 000000CA  0C09      LSR         R1,R1,#0x10
 000000CC  A804      ADD         R0,R13,#0x10
 000000CE  8001      STRH        R1,[R0,#0x0] ; btr
  174:         }else{
 000000D0  E002      B           L_35  ; T=0x000000D8
 000000D2          L_31:
  175:             btr = 512;
 000000D2  4980      LDRH        R1,=0x200
 000000D4  A804      ADD         R0,R13,#0x10
 000000D6  8001      STRH        R1,[R0,#0x0] ; btr
  176:         }
 000000D8          L_35:
  178:         if((fat_LogicToDiscCluster(file->fs,&(file->Cache),cclus))!=0){
 000000D8  1C20      MOV         R0,R4 ; file
ARM COMPILER V2.42,  file                                                                  27/03/06  10:45:50  PAGE 17  

 000000DA  6A80      LDR         R0,[R0,#0x28]
 000000DC  1C21      MOV         R1,R4 ; file
 000000DE  312C      ADD         R1,#0x2C
 000000E0  1C1A      MOV         R2,R3 ; cclus
 000000E2  F7FF      BL          fat_LogicToDiscCluster?T  ; T=0x0001  (1)
 000000E4  FF8D      BL          fat_LogicToDiscCluster?T  ; T=0x0001  (2)
 000000E6  0400      LSL         R0,R0,#0x10 ; fat_LogicToDiscCluster?T
 000000E8  1400      ASR         R0,R0,#0x10
 000000EA  2800      CMP         R0,#0x0
 000000EC  D00F      BEQ         L_36  ; T=0x0000010E
  179:             file->FileSize+=bytes_written;
 000000EE  9A02      LDR         R2,[R13,#0x8] ; bytes_written
 000000F0  1C20      MOV         R0,R4 ; file
 000000F2  6CC1      LDR         R1,[R0,#0x4C]
 000000F4  1889      ADD         R1,R2
 000000F6  1C20      MOV         R0,R4 ; file
 000000F8  64C1      STR         R1,[R0,#0x4C]
  180:             dir_setFileSize(file->fs,&(file->Location),file->FileSize);
 000000FA  1C20      MOV         R0,R4 ; file
 000000FC  6A80      LDR         R0,[R0,#0x28]
 000000FE  1C21      MOV         R1,R4 ; file
 00000100  6CCA      LDR         R2,[R1,#0x4C]
 00000102  1C21      MOV         R1,R4 ; file
 00000104  3120      ADD         R1,#0x20
 00000106  F7FF      BL          dir_setFileSize?T  ; T=0x0001  (1)
 00000108  FF7B      BL          dir_setFileSize?T  ; T=0x0001  (2)
  181:             return(bytes_written);
 0000010A  9802      LDR         R0,[R13,#0x8] ; bytes_written
 0000010C  E050      B           L_23  ; T=0x000001B0
  182:         }
 0000010E          L_36:
  183:         rclus=file->Cache.DiscCluster;
 0000010E  1C20      MOV         R0,R4 ; file
 00000110  6B47      LDR         R7,[R0,#0x34]
 00000112  ---- Variable 'rclus' assigned to Register 'R7' ----
  184:         rsec=fs_clusterToSector(file->fs,rclus);
 00000112  1C20      MOV         R0,R4 ; file
 00000114  6A80      LDR         R0,[R0,#0x28]
 00000116  1C39      MOV         R1,R7 ; rclus
 00000118  F7FF      BL          fs_clusterToSector?T  ; T=0x0001  (1)
 0000011A  FF72      BL          fs_clusterToSector?T  ; T=0x0001  (2)
 0000011C  1C07      MOV         R7,R0 ; rsec
 0000011E  ---- Variable 'rsec' assigned to Register 'R7' ----
  186:         if(btr==512){
 0000011E  A804      ADD         R0,R13,#0x10
 00000120  8800      LDRH        R0,[R0,#0x0] ; btr
 00000122  4980      LDR         R1,=0x200
 00000124  4288      CMP         R0,R1
 00000126  D10B      BNE         L_37  ; T=0x00000140
  188:             part_directSectorWrite(file->fs->part,rsec+csec,buf+bytes_written);
 00000128  1C20      MOV         R0,R4 ; file
 0000012A  6A80      LDR         R0,[R0,#0x28]
 0000012C  6800      LDR         R0,[R0,#0x0]
 0000012E  9A00      LDR         R2,[R13,#0x0] ; csec
 00000130  1C39      MOV         R1,R7 ; rsec
 00000132  1889      ADD         R1,R2 ; rsec
 00000134  9B02      LDR         R3,[R13,#0x8] ; bytes_written
 00000136  1C32      MOV         R2,R6 ; buf
 00000138  18D2      ADD         R2,R3 ; buf
 0000013A  F7FF      BL          part_directSectorWrite?T  ; T=0x0001  (1)
 0000013C  FF61      BL          part_directSectorWrite?T  ; T=0x0001  (2)
  189:         }else{
 0000013E  E01B      B           L_38  ; T=0x00000178
 00000140          L_37:
  191:             tbuf = part_getSect(file->fs->part,rsec+csec,IOM_MODE_READWRITE);
 00000140  1C20      MOV         R0,R4 ; file
ARM COMPILER V2.42,  file                                                                  27/03/06  10:45:50  PAGE 18  

 00000142  6A80      LDR         R0,[R0,#0x28]
 00000144  6800      LDR         R0,[R0,#0x0]
 00000146  9A00      LDR         R2,[R13,#0x0] ; csec
 00000148  1C39      MOV         R1,R7 ; rsec
 0000014A  1889      ADD         R1,R2 ; rsec
 0000014C  2202      MOV         R2,#0x2
 0000014E  F7FF      BL          part_getSect?T  ; T=0x0001  (1)
 00000150  FF57      BL          part_getSect?T  ; T=0x0001  (2)
 00000152  1C07      MOV         R7,R0 ; tbuf
 00000154  ---- Variable 'tbuf' assigned to Register 'R7' ----
  192:             memCpy(buf+bytes_written,tbuf+(coffset%512),btr);
 00000154  9803      LDR         R0,[R13,#0xC] ; coffset
 00000156  4800      LDR         R1,=0x1FF
 00000158  4008      AND         R0,R1
 0000015A  1C39      MOV         R1,R7 ; tbuf
 0000015C  1809      ADD         R1,R0 ; tbuf
 0000015E  9A02      LDR         R2,[R13,#0x8] ; bytes_written
 00000160  1C30      MOV         R0,R6 ; buf
 00000162  1880      ADD         R0,R2 ; buf
 00000164  AA04      ADD         R2,R13,#0x10
 00000166  8812      LDRH        R2,[R2,#0x0] ; btr
 00000168  F7FF      BL          memCpy?T  ; T=0x0001  (1)
 0000016A  FF4A      BL          memCpy?T  ; T=0x0001  (2)
  194:             part_relSect(file->fs->part,tbuf);
 0000016C  1C20      MOV         R0,R4 ; file
 0000016E  6A80      LDR         R0,[R0,#0x28]
 00000170  6800      LDR         R0,[R0,#0x0]
 00000172  1C39      MOV         R1,R7 ; tbuf
 00000174  F7FF      BL          part_relSect?T  ; T=0x0001  (1)
 00000176  FF44      BL          part_relSect?T  ; T=0x0001  (2)
  195:         }
 00000178          L_38:
  197:         coffset+=btr;
 00000178  A804      ADD         R0,R13,#0x10
 0000017A  8800      LDRH        R0,[R0,#0x0] ; btr
 0000017C  1C01      MOV         R1,R0
 0000017E  9803      LDR         R0,[R13,#0xC] ; coffset
 00000180  1840      ADD         R0,R1
 00000182  9003      STR         R0,[R13,#0xC] ; coffset
  198:         bytes_written+=btr;
 00000184  9802      LDR         R0,[R13,#0x8] ; bytes_written
 00000186  1840      ADD         R0,R1
 00000188  9002      STR         R0,[R13,#0x8] ; bytes_written
  199:         size_left-=btr;
 0000018A  9801      LDR         R0,[R13,#0x4] ; size_left
 0000018C  1A40      SUB         R0,R1
 0000018E  9001      STR         R0,[R13,#0x4] ; size_left
  200:     }
 00000190          L_27:
 00000190  9801      LDR         R0,[R13,#0x4] ; size_left
 00000192  2800      CMP         R0,#0x0
 00000194  D900      BHI         $+4
 00000196  E76F      B           L_29  ; T=0x00000078
  202:     if(bytes_written>file->FileSize-offset){
 0000019A  1C20      MOV         R0,R4 ; file
 0000019C  6CC1      LDR         R1,[R0,#0x4C]
 0000019E  1C28      MOV         R0,R5 ; offset
 000001A0  1A0A      SUB         R2,R1,R0 ; offset
 000001A2  9802      LDR         R0,[R13,#0x8] ; bytes_written
 000001A4  4290      CMP         R0,R2
 000001A6  D902      BLS         L_39  ; T=0x000001AE
  203:         file->FileSize+=bytes_written-(file->FileSize-offset);
 000001A8  1A80      SUB         R0,R2
 000001AA  1809      ADD         R1,R0
 000001AC  1C20      MOV         R0,R4 ; file
 000001AE  64C1      STR         R1,[R0,#0x4C]
ARM COMPILER V2.42,  file                                                                  27/03/06  10:45:50  PAGE 19  

  204:     }
 000001B0          L_39:
  206:     return(bytes_written);  
 000001B0  9802      LDR         R0,[R13,#0x8] ; bytes_written
 000001B2            ; SCOPE-END
  207: }
 000001B2          L_23:
 000001B2  B005      ADD         R13,#0x14
 000001B4  BCF0      POP         {R4-R7}
 000001B6  BC08      POP         {R3}
 000001B8  4718      BX          R3
 000001BA          ENDP ; 'file_fwrite?T'


*** CODE SEGMENT '?PR?file_fopen?T?file':
  215: esint8 file_fopen(File* file,FileSystem *fs,eint8* filename,eint8 mode)
 00000000  B5F0      PUSH        {R4-R7,LR}
 00000002  1C1F      MOV         R7,R3 ; mode
 00000004  ---- Variable 'mode' assigned to Register 'R7' ----
 00000004  1C16      MOV         R6,R2 ; filename
 00000006  ---- Variable 'filename' assigned to Register 'R6' ----
 00000006  1C0D      MOV         R5,R1 ; fs
 00000008  ---- Variable 'fs' assigned to Register 'R5' ----
 00000008  1C04      MOV         R4,R0 ; file
 0000000A  ---- Variable 'file' assigned to Register 'R4' ----
 0000000A  B08E      SUB         R13,#0x38
  216: {
 0000000C            ; SCOPE-START
  222:     dir_getFatFileName(filename,fatfilename);
 0000000C  1C30      MOV         R0,R6 ; filename
 0000000E  A90A      ADD         R1,R13,#0x28
 00000010  F7FF      BL          dir_getFatFileName?T  ; T=0x0001  (1)
 00000012  FFF6      BL          dir_getFatFileName?T  ; T=0x0001  (2)
  224:     switch(mode)
 00000014  1C38      MOV         R0,R7 ; mode
 00000016  2861      CMP         R0,#0x61 ; mode
 00000018  D07F      BEQ         L_41  ; T=0x0000011A
 0000001A  2877      CMP         R0,#0x77 ; mode
 0000001C  D025      BEQ         L_44  ; T=0x0000006A
 0000001E  2872      CMP         R0,#0x72 ; mode
 00000020  D000      BNE         $+4
 00000022  E114      B           L_42  ; T=0x0000024E
  226:         case MODE_READ:
 00000026          L_43:
  227:             if(fs_findFile(fs,filename,&loc,0)==1)
 00000026  1C28      MOV         R0,R5 ; fs
 00000028  1C31      MOV         R1,R6 ; filename
 0000002A  AA00      ADD         R2,R13,#0x0
 0000002C  2300      MOV         R3,#0x0
 0000002E  F7FF      BL          fs_findFile?T  ; T=0x0001  (1)
 00000030  FFE7      BL          fs_findFile?T  ; T=0x0001  (2)
 00000032  0600      LSL         R0,R0,#0x18 ; fs_findFile?T
 00000034  1600      ASR         R0,R0,#0x18
 00000036  2801      CMP         R0,#0x1
 00000038  D115      BNE         L_45  ; T=0x00000066
  229:                 dir_getFileStructure(fs,&(file->DirEntry), &loc);
 0000003A  1C28      MOV         R0,R5 ; fs
 0000003C  1C21      MOV         R1,R4 ; file
 0000003E  AF00      ADD         R7,R13,#0x0
 00000040  1C3A      MOV         R2,R7
 00000042  F7FF      BL          dir_getFileStructure?T  ; T=0x0001  (1)
 00000044  FFDD      BL          dir_getFileStructure?T  ; T=0x0001  (2)
  230:                 file_initFile(file,fs,&loc);
 00000046  1C20      MOV         R0,R4 ; file
 00000048  1C29      MOV         R1,R5 ; fs
 0000004A  1C3A      MOV         R2,R7
 0000004C  F7FF      BL          file_initFile?T  ; T=0x0001  (1)
 0000004E  FFD8      BL          file_initFile?T  ; T=0x0001  (2)
ARM COMPILER V2.42,  file                                                                  27/03/06  10:45:50  PAGE 20  

  231:                 file_setAttr(file,FILE_STATUS_OPEN,1);
 00000050  1C20      MOV         R0,R4 ; file
 00000052  2100      MOV         R1,#0x0
 00000054  2201      MOV         R2,#0x1
 00000056  F7FF      BL          file_setAttr?T  ; T=0x0001  (1)
 00000058  FFD3      BL          file_setAttr?T  ; T=0x0001  (2)
  232:                 file_setAttr(file,FILE_STATUS_WRITE,0);
 0000005A  1C20      MOV         R0,R4 ; file
 0000005C  2101      MOV         R1,#0x1
 0000005E  2200      MOV         R2,#0x0
 00000060  F7FF      BL          file_setAttr?T  ; T=0x0001  (1)
 00000062  FFCE      BL          file_setAttr?T  ; T=0x0001  (2)
  233:                 return(0);
 00000064  2000      MOV         R0,#0x0
 00000066  E0F3      B           L_46  ; T=0x00000250
  234:             }
 00000068          L_45:
  235:             return(-1);
 00000068  4800      LDR         R0,=0xFFFFFFFF
 0000006A  E0F1      B           L_46  ; T=0x00000250
  237:         case MODE_WRITE:
 0000006C          L_44:
  238:             if(fs_findFile(fs,filename,&loc,0))
 0000006C  1C28      MOV         R0,R5 ; fs
 0000006E  1C31      MOV         R1,R6 ; filename
 00000070  AA00      ADD         R2,R13,#0x0
 00000072  2300      MOV         R3,#0x0
 00000074  F7FF      BL          fs_findFile?T  ; T=0x0001  (1)
 00000076  FFC4      BL          fs_findFile?T  ; T=0x0001  (2)
 00000078  2800      CMP         R0,#0x0 ; fs_findFile?T
 0000007A  D000      BEQ         L_47  ; T=0x0000007E
  240:                 return(-2);
 0000007C  4800      LDR         R0,=0xFFFFFFFE
 0000007E  E0E7      B           L_46  ; T=0x00000250
  241:             }
 00000080          L_47:
  242:             if(fs_findFreeFile(fs,filename,&loc,0))
 00000080  1C28      MO

⌨️ 快捷键说明

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