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

📄 fat16.lst

📁 at91sam7x256 FREERTOS sd卡的读写程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   00000088   0E2E               CMP         R6,#+14
   \   0000008A   01D1               BNE         ??fat_format_5
     76          		     bpb->bpbResSectors = 1;
   \                     ??fat_format_4:
   \   0000008C   0120               MOV         R0,#+1
   \   0000008E   03E0               B           ??fat_format_6
     77          		 else if(FilesysType==PART_TYPE_FAT32||FilesysType==PART_TYPE_FAT32LBA)
   \                     ??fat_format_5:
   \   00000090   0B2E               CMP         R6,#+11
   \   00000092   01D0               BEQ         ??fat_format_6
   \   00000094   0C2E               CMP         R6,#+12
   \   00000096   00D1               BNE         ??fat_format_7
     78          		     bpb->bpbResSectors = 32;
   \                     ??fat_format_6:
   \   00000098   9060               STR         R0,[R2, #+8]
     79          		 bpb->bpbFATs = 2;
   \                     ??fat_format_7:
   \   0000009A   0220               MOV         R0,#+2
   \   0000009C   1073               STRB        R0,[R2, #+12]
     80          		 bpb->bpbRootDirEnts = ((bpb->bpbSecPerClust)-1-(Sizeofdisk_M >> 1)) << 4;
   \   0000009E   1F20               MOV         R0,#+31
   \   000000A0   6946               MOV         R1,SP
   \   000000A2   097B               LDRB        R1,[R1, #+12]
   \   000000A4   4908               LSR         R1,R1,#+1
   \   000000A6   401A               SUB         R0,R0,R1
   \   000000A8   0001               LSL         R0,R0,#+4
   \   000000AA   1061               STR         R0,[R2, #+16]
     81          		 bpb->bpbSectors = Sizeofdisk_M << 11;
   \   000000AC   6846               MOV         R0,SP
   \   000000AE   007B               LDRB        R0,[R0, #+12]
   \   000000B0   C302               LSL         R3,R0,#+11
   \   000000B2   5361               STR         R3,[R2, #+20]
   \   000000B4   F020               MOV         R0,#+240
   \   000000B6   1076               STRB        R0,[R2, #+24]
     82          		 bpb->bpbMedia = 0xf0;//必须与FAT[0]一致。
     83          		 fatsec = bpb->bpbFATsecs = Sizeofdisk_M >> 2;
   \   000000B8   6846               MOV         R0,SP
   \   000000BA   007B               LDRB        R0,[R0, #+12]
   \   000000BC   8008               LSR         R0,R0,#+2
   \   000000BE   D061               STR         R0,[R2, #+28]
   \   000000C0   011C               MOV         R1,R0
     84          		 bpb->bpbSecPerTrack = 0;
   \   000000C2   4848               LDR         R0,??fat_format_0+0x1C  ;; 0x402b
   \   000000C4   2018               ADD         R0,R4,R0
   \   000000C6   0026               MOV         R6,#+0
   \   000000C8   0660               STR         R6,[R0, #+0]
     85          		 bpb->bpbHeads = 0;
   \   000000CA   4660               STR         R6,[R0, #+4]
     86          		 bpb->bpbHiddenSecs = 0;
   \   000000CC   8660               STR         R6,[R0, #+8]
     87          		 bpb->bpbHugeSectors = Sizeofdisk_M << 11;
   \   000000CE   C360               STR         R3,[R0, #+12]
     88          		 
     89          		 ext->exDriveNumber = 0x80;
   \   000000D0   8023               MOV         R3,#+128
   \   000000D2   5376               STRB        R3,[R2, #+25]
     90          		 ext->exReserved1 = 0;
   \   000000D4   9676               STRB        R6,[R2, #+26]
     91          		 ext->exBootSignature = EXBOOTSIG;
   \   000000D6   2923               MOV         R3,#+41
   \   000000D8   D376               STRB        R3,[R2, #+27]
     92          		 ext->exVolumeID = 0x88331446;
   \   000000DA   434A               LDR         R2,??fat_format_0+0x20  ;; 0x4028
   \   000000DC   434B               LDR         R3,??fat_format_0+0x24  ;; 0x88331446
   \   000000DE   A350               STR         R3,[R4, R2]
     93          		 for(i=0;i<10;i++)
   \   000000E0   0022               MOV         R2,#+0
     94          		 ext->exVolumeLabel[i] = *armsys_str++;
   \                     ??fat_format_8:
   \   000000E2   434B               LDR         R3,??fat_format_0+0x28  ;; 0x402c
   \   000000E4   A618               ADD         R6,R4,R2
   \   000000E6   019F               LDR         R7,[SP, #+4]
   \   000000E8   3F78               LDRB        R7,[R7, #+0]
   \   000000EA   F754               STRB        R7,[R6, R3]
   \   000000EC   019B               LDR         R3,[SP, #+4]
   \   000000EE   5B1C               ADD         R3,R3,#+1
   \   000000F0   0193               STR         R3,[SP, #+4]
   \   000000F2   521C               ADD         R2,R2,#+1
   \   000000F4   0A2A               CMP         R2,#+10
   \   000000F6   F4DB               BLT         ??fat_format_8
     95          		 ext->exVolumeLabel[10]='\0';
   \   000000F8   0022               MOV         R2,#+0
   \   000000FA   C272               STRB        R2,[R0, #+11]
     96          		 for(i=0;i<7;i++)
   \   000000FC   3D4F               LDR         R7,??fat_format_0+0x2C  ;; 0x4037
     97          		 ext->exFileSysType[i] = *fat16_str++;
   \                     ??fat_format_9:
   \   000000FE   A318               ADD         R3,R4,R2
   \   00000100   2E78               LDRB        R6,[R5, #+0]
   \   00000102   DE55               STRB        R6,[R3, R7]
   \   00000104   6D1C               ADD         R5,R5,#+1
   \   00000106   521C               ADD         R2,R2,#+1
   \   00000108   072A               CMP         R2,#+7
   \   0000010A   F8DB               BLT         ??fat_format_9
     98          		 ext->exFileSysType[8]='\0';
                 		 ^
Warning[Pe175]: subscript out of range

  	int i,j,fatsec,temp,blocknum;
  	      ^
"G:\AT91_ENERGY\ATMEL_ARM\mmssys\mmc_sd\fat16.c",31  Warning[Pe177]: variable
          "j" was declared but never referenced

  	int i,j,fatsec,temp,blocknum;
  	                    ^
"G:\AT91_ENERGY\ATMEL_ARM\mmssys\mmc_sd\fat16.c",31  Warning[Pe550]: variable
          "blocknum" was set but never used
   \   0000010C   0022               MOV         R2,#+0
   \   0000010E   0275               STRB        R2,[R0, #+20]
     99          		 
    100          		 memcpy(ClusterBuffer[0],SectorBuffer,512);
   \   00000110   ....               LDR         R2,??DataTable5    ;; ClusterBuffer + 16384
   \   00000112   ....               LDR         R3,??DataTable6    ;; ClusterBuffer
   \   00000114   8020               MOV         R0,#+128
   \   00000116   8000               LSL         R0,R0,#+2          ;; #+512
   \                     ??fat_format_10:
   \   00000118   001F               SUB         R0,R0,#+4
   \   0000011A   1558               LDR         R5,[R2, R0]
   \   0000011C   1D50               STR         R5,[R3, R0]
   \   0000011E   FBD1               BNE         ??fat_format_10
    101          		 
    102          		 //第1个扇区开始是FAT及FAT备份区
    103          		 
    104          		 for(i=0;i<512;i++)
   \   00000120   0020               MOV         R0,#+0
   \   00000122   0025               MOV         R5,#+0
    105          		 SectorBuffer[i]=0x00;
   \                     ??fat_format_11:
   \   00000124   8022               MOV         R2,#+128
   \   00000126   D201               LSL         R2,R2,#+7          ;; #+16384
   \   00000128   2318               ADD         R3,R4,R0
   \   0000012A   9D54               STRB        R5,[R3, R2]
   \   0000012C   401C               ADD         R0,R0,#+1
   \   0000012E   5209               LSR         R2,R2,#+5
   \   00000130   9042               CMP         R0,R2
   \   00000132   F7DB               BLT         ??fat_format_11
    106          		 
    107          		 for(i=1;i<(fatsec*2+1);i++)
   \   00000134   0122               MOV         R2,#+1
   \   00000136   4800               LSL         R0,R1,#+1
   \   00000138   401C               ADD         R0,R0,#+1
   \   0000013A   ....               LDR         R5,??DataTable5    ;; ClusterBuffer + 16384
   \   0000013C   09E0               B           ??fat_format_12
    108          		 memcpy(ClusterBuffer[i],SectorBuffer,512);
   \                     ??fat_format_13:
   \   0000013E   5602               LSL         R6,R2,#+9
   \   00000140   ....               LDR         R7,??DataTable6    ;; ClusterBuffer
   \   00000142   BE19               ADD         R6,R7,R6
   \   00000144   8023               MOV         R3,#+128
   \   00000146   9B00               LSL         R3,R3,#+2          ;; #+512
   \                     ??fat_format_14:
   \   00000148   5B1E               SUB         R3,R3,#+1
   \   0000014A   EF5C               LDRB        R7,[R5, R3]
   \   0000014C   F754               STRB        R7,[R6, R3]
   \   0000014E   FBD1               BNE         ??fat_format_14
   \   00000150   521C               ADD         R2,R2,#+1
   \                     ??fat_format_12:
   \   00000152   8242               CMP         R2,R0
   \   00000154   F3DB               BLT         ??fat_format_13
    109          		 
    110          		 ClusterBuffer[1][0]=0xf0;//0xf8?
   \   00000156   8022               MOV         R2,#+128
   \   00000158   9200               LSL         R2,R2,#+2          ;; #+512
   \   0000015A   A218               ADD         R2,R4,R2
   \   0000015C   F023               MOV         R3,#+240
   \   0000015E   1370               STRB        R3,[R2, #+0]
    111          		 ClusterBuffer[1][1]=0xff;
   \   00000160   FF23               MOV         R3,#+255
   \   00000162   5370               STRB        R3,[R2, #+1]
    112          		 ClusterBuffer[1][2]=0xff;
   \   00000164   9370               STRB        R3,[R2, #+2]
    113          		 ClusterBuffer[1][3]=0xff;
   \   00000166   D370               STRB        R3,[R2, #+3]
    114          		 
    115          		 ClusterBuffer[fatsec+1][0]=0xf0;//0xf8?
   \   00000168   8022               MOV         R2,#+128
   \   0000016A   9200               LSL         R2,R2,#+2          ;; #+512
   \   0000016C   4902               LSL         R1,R1,#+9
   \   0000016E   6118               ADD         R1,R4,R1
   \   00000170   8918               ADD         R1,R1,R2
   \   00000172   F022               MOV         R2,#+240
   \   00000174   0A70               STRB        R2,[R1, #+0]
    116          		 ClusterBuffer[fatsec+1][1]=0xff;
   \   00000176   4B70               STRB        R3,[R1, #+1]
    117          		 ClusterBuffer[fatsec+1][2]=0xff;
   \   00000178   8B70               STRB        R3,[R1, #+2]
    118          		 ClusterBuffer[fatsec+1][3]=0xff;
   \   0000017A   CB70               STRB        R3,[R1, #+3]
    119          		 
    120          		 //从第fatsec*2+1个扇区开始,是根目录区,到簇的最后,应该清零
    121          		 for(i=fatsec*2+1;i<32;i++)
   \   0000017C   ....               LDR         R2,??DataTable5    ;; ClusterBuffer + 16384
   \   0000017E   09E0               B           ??fat_format_15
    122          		 memcpy(ClusterBuffer[i],SectorBuffer,512);
   \                     ??fat_format_16:
   \   00000180   4302               LSL         R3,R0,#+9
   \   00000182   ....               LDR         R5,??DataTable6    ;; ClusterBuffer
   \   00000184   EB18               ADD         R3,R5,R3
   \   00000186   8021               MOV         R1,#+128
   \   00000188   8900               LSL         R1,R1,#+2          ;; #+512
   \                     ??fat_format_17:
   \   0000018A   491E               SUB         R1,R1,#+1
   \   0000018C   555C               LDRB        R5,[R2, R1]
   \   0000018E   5D54               STRB        R5,[R3, R1]
   \   00000190   FBD1               BNE         ??fat_format_17
   \   00000192   401C               ADD         R0,R0,#+1
   \                     ??fat_format_15:
   \   00000194   2028               CMP         R0,#+32
   \   00000196   F3DB               BLT         ??fat_format_16
    123          		 
    124          		 for(i=0;i<32;i++)//一扇区接一扇区写入
   \   00000198   0027               MOV         R7,#+0
    125                   {
    126              	    //for(j=0;j<255;j++);//延时
    127              	    temp=mmc_write_page(0,i,ClusterBuffer[i]);
    128              	    if(temp==0)
   \                     ??fat_format_18:

⌨️ 快捷键说明

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