📄 main.txt
字号:
000104 f880a001 STRB r10,[r0,#1] ;257
|L8.264|
000108 e7ab B |L8.98|
|L8.266|
00010a e7ff B |L8.268|
|L8.268|
;;;267 }
;;;268 }
;;;269 }
;;;270 else if( Equal(command, "read",len1,4)) // 以文本文件的方式打开文件
00010c 2304 MOVS r3,#4
00010e 462a MOV r2,r5
000110 a16e ADR r1,|L8.716|
000112 4668 MOV r0,sp
000114 f7fffffe BL Equal
000118 b3a8 CBZ r0,|L8.390|
;;;271 {
;;;272 len2 = USART_Scanf_Name(foldername);
00011a a801 ADD r0,sp,#4
00011c f7fffffe BL USART_Scanf_Name
000120 4602 MOV r2,r0
;;;273 temp = SearchFoler(currSec, foldername, len2, 0); // 查找文件,并返回长度
000122 2300 MOVS r3,#0
000124 a901 ADD r1,sp,#4
000126 4658 MOV r0,r11
000128 f7fffffe BL SearchFoler
00012c 0007 MOVS r7,r0
;;;274 if(temp) // 找到文件
00012e d098 BEQ |L8.98|
;;;275 {
;;;276 printf("\r\n");
000130 a068 ADR r0,|L8.724|
000132 f7fffffe BL __1printf
;;;277 // 输出文件内容
;;;278 for( fileoffset = 0 ; fileoffset < temp / buffsize ; fileoffset++)
000136 2600 MOVS r6,#0
000138 e00f B |L8.346|
|L8.314|
;;;279 {
;;;280 FAT_FileRead(fileoffset * buffsize, buffsize, Stream_Buff[0]);
00013a 02f0 LSLS r0,r6,#11
00013c 4a5c LDR r2,|L8.688|
00013e 4649 MOV r1,r9
000140 f7fffffe BL FAT_FileRead
;;;281 for(tmp = 0; tmp < buffsize; tmp++)
000144 f05f0500 MOVS.W r5,#0
|L8.328|
;;;282 printf("%c", Stream_Buff[0][tmp]);
000148 f8181005 LDRB r1,[r8,r5]
00014c a062 ADR r0,|L8.728|
00014e f7fffffe BL __1printf
000152 1c6d ADDS r5,r5,#1 ;281
000154 454d CMP r5,r9 ;281
000156 d3f7 BCC |L8.328|
000158 1c76 ADDS r6,r6,#1 ;278
|L8.346|
00015a ebb62fd7 CMP r6,r7,LSR #11 ;278
00015e d3ec BCC |L8.314|
;;;283 }
;;;284
;;;285 FAT_FileRead(fileoffset * buffsize , temp % buffsize, Stream_Buff[0]);
000160 f3c7010a UBFX r1,r7,#0,#11
000164 460d MOV r5,r1
000166 02f0 LSLS r0,r6,#11
000168 4a51 LDR r2,|L8.688|
00016a f7fffffe BL FAT_FileRead
;;;286 for( tmp = 0; tmp < temp % buffsize; tmp ++)
00016e 2600 MOVS r6,#0
000170 e006 B |L8.384|
;;;287 printf("%c",Stream_Buff[0][tmp]);
000172 bf00 NOP
|L8.372|
000174 f8181006 LDRB r1,[r8,r6]
000178 a057 ADR r0,|L8.728|
00017a f7fffffe BL __1printf
00017e 1c76 ADDS r6,r6,#1 ;286
|L8.384|
000180 42b5 CMP r5,r6 ;286
000182 d8f7 BHI |L8.372|
000184 e76d B |L8.98|
|L8.390|
000186 e7ff B |L8.392|
|L8.392|
;;;288
;;;289 }
;;;290 }
;;;291 else if( Equal(command, "free",len1,4)) // 计算剩余空间
000188 2304 MOVS r3,#4
00018a 462a MOV r2,r5
00018c a153 ADR r1,|L8.732|
00018e 4668 MOV r0,sp
000190 f7fffffe BL Equal
000194 b130 CBZ r0,|L8.420|
;;;292 {
;;;293 printf("\r\n\r\nfree space: %dMB\r\n",CalcuFreeSpace() / 1024 / 1024);
000196 f7fffffe BL CalcuFreeSpace
00019a 0d01 LSRS r1,r0,#20
00019c a051 ADR r0,|L8.740|
00019e f7fffffe BL __1printf
0001a2 e75e B |L8.98|
|L8.420|
;;;294 }
;;;295 else if( Equal(command, "play",len1,4)) // 播放wave文件
0001a4 2304 MOVS r3,#4
0001a6 462a MOV r2,r5
0001a8 a154 ADR r1,|L8.764|
0001aa 4668 MOV r0,sp
0001ac f7fffffe BL Equal
0001b0 2800 CMP r0,#0
0001b2 d0a9 BEQ |L8.264|
;;;296 {
;;;297
;;;298 readNextBytes = 1;
0001b4 4f53 LDR r7,|L8.772|
0001b6 2001 MOVS r0,#1
0001b8 7078 STRB r0,[r7,#1] ; readNextBytes
;;;299 Out_Data_Offset = 0;
0001ba f8a7a002 STRH r10,[r7,#2] ; Out_Data_Offset
;;;300 len2 = USART_Scanf_Name(foldername);
0001be a801 ADD r0,sp,#4
0001c0 f7fffffe BL USART_Scanf_Name
0001c4 4602 MOV r2,r0
;;;301 temp = SearchFoler(currSec, foldername, len2, 0); // 查找文件,并返回长度
0001c6 2300 MOVS r3,#0
0001c8 a901 ADD r1,sp,#4
0001ca 4658 MOV r0,r11
0001cc f7fffffe BL SearchFoler
0001d0 0006 MOVS r6,r0
;;;302 if(temp) // 找到文件
0001d2 d099 BEQ |L8.264|
;;;303 {
;;;304 FAT_FileRead(0 , buffsize, Stream_Buff[0]); // 读取头一个文件流
0001d4 4a36 LDR r2,|L8.688|
0001d6 4649 MOV r1,r9
0001d8 2000 MOVS r0,#0
0001da f7fffffe BL FAT_FileRead
;;;305 fileoffset = 1;
0001de 2501 MOVS r5,#1
;;;306 SBNo = 0;
0001e0 f887a000 STRB r10,[r7,#0] ; SBNo
;;;307 printf("\r\nplaying...");
0001e4 a048 ADR r0,|L8.776|
0001e6 f7fffffe BL __1printf
;;;308 Set_System();
0001ea f7fffffe BL Set_System
;;;309 Speaker_Timer_Config();
0001ee f7fffffe BL Speaker_Timer_Config
;;;310 NVIC_Config();
0001f2 f7fffffe BL NVIC_Config
|L8.502|
;;;311 while(1)
;;;312 {
;;;313 if(readNextBytes)
0001f6 7878 LDRB r0,[r7,#1] ; readNextBytes
0001f8 2800 CMP r0,#0
0001fa d0fc BEQ |L8.502|
;;;314 {
;;;315 if(fileoffset < temp / buffsize)
0001fc ebb52fd6 CMP r5,r6,LSR #11
;;;316 FAT_FileRead(fileoffset++ * buffsize, buffsize, Stream_Buff[1-SBNo]);
000200 ea4f20c5 LSL r0,r5,#11
000204 d20b BCS |L8.542|
000206 7839 LDRB r1,[r7,#0] ; SBNo
000208 1c6d ADDS r5,r5,#1
00020a f1c10101 RSB r1,r1,#1
00020e eb0822c1 ADD r2,r8,r1,LSL #11
000212 4649 MOV r1,r9
000214 f7fffffe BL FAT_FileRead
;;;317 else
;;;318 {
;;;319 FAT_FileRead(fileoffset++ * buffsize, temp % buffsize, Stream_Buff[1-SBNo]);
;;;320 // 停止TIM4和TIM2
;;;321 TIM_Cmd(TIM4, DISABLE);
;;;322 TIM_Cmd(TIM2, DISABLE);
;;;323 break; // 返回
;;;324 }
;;;325 readNextBytes = 0;
000218 f887a001 STRB r10,[r7,#1] ; readNextBytes
00021c e7eb B |L8.502|
|L8.542|
00021e 7839 LDRB r1,[r7,#0] ;319 ; SBNo
000220 f1c10101 RSB r1,r1,#1 ;319
000224 eb0822c1 ADD r2,r8,r1,LSL #11 ;319
000228 f3c6010a UBFX r1,r6,#0,#11 ;319
00022c f7fffffe BL FAT_FileRead
000230 2100 MOVS r1,#0 ;321
000232 4839 LDR r0,|L8.792|
000234 f7fffffe BL TIM_Cmd
000238 2100 MOVS r1,#0 ;322
00023a f04f4080 MOV r0,#0x40000000 ;322
00023e f7fffffe BL TIM_Cmd
000242 e70e B |L8.98|
;;;326 }
;;;327
;;;328 }
;;;329
;;;330 }
;;;331
;;;332 }
;;;333
;;;334 }
;;;335
;;;336 }
;;;337
ENDP
|L8.580|
000244 0d0a4d53 DCB "\r\n\115\123"
000248 445f496e DCB "D_In"
00024c 69742072 DCB "it r"
000250 6573756c DCB "esul"
000254 743a2025 DCB "t: %"
000258 64000000 DCB "d\0\0\0"
|L8.604|
00025c 00000000 DCD Mass_Block_Count
|L8.608|
000260 0d0a4d73 DCB "\r\n\115\163"
000264 64426c6f DCB "dBlo"
000268 636b436f DCB "ckCo"
00026c 756e743a DCB "unt:"
000270 20256400 DCB " %d\0"
|L8.628|
000274 00000000 DCD Mass_Block_Size
|L8.632|
000278 0d0a4d73 DCB "\r\n\115\163"
00027c 64426c6f DCB "dBlo"
000280 636b5369 DCB "ckSi"
000284 7a653a20 DCB "ze: "
000288 25642042 DCB "%d B"
00028c 79746500 DCB "yte\0"
|L8.656|
000290 00000000 DCD Mass_Memory_Size
|L8.660|
000294 0d0a4d73 DCB "\r\n\115\163"
000298 644d656d DCB "dMem"
00029c 6f727953 DCB "oryS"
0002a0 697a653a DCB "ize:"
0002a4 20256420 DCB " %d "
0002a8 4d420d0a DCB "MB\r\n"
0002ac 00000000 DCB "\0\0\0\0"
|L8.688|
0002b0 00000000 DCD ||.bss||
|L8.692|
0002b4 64697200 DCB "dir\0"
|L8.696|
0002b8 0d0a0d0a DCB "\r\n\r\n"
0002bc 00000000 DCB "\0\0\0\0"
|L8.704|
0002c0 63640000 DCB "cd\0\0"
|L8.708|
0002c4 2e2e0000 DCB "..\0\0"
|L8.712|
0002c8 2e000000 DCB ".\0\0\0"
|L8.716|
0002cc 72656164 DCB "read"
0002d0 00000000 DCB "\0\0\0\0"
|L8.724|
0002d4 0d0a0000 DCB "\r\n\0\0"
|L8.728|
0002d8 25630000 DCB "%c\0\0"
|L8.732|
0002dc 66726565 DCB "free"
0002e0 00000000 DCB "\0\0\0\0"
|L8.740|
0002e4 0d0a0d0a DCB "\r\n\r\n"
0002e8 66726565 DCB "free"
0002ec 20737061 DCB " spa"
0002f0 63653a20 DCB "ce: "
0002f4 25644d42 DCB "%dMB"
0002f8 0d0a0000 DCB "\r\n\0\0"
|L8.764|
0002fc 706c6179 DCB "play"
000300 00000000 DCB "\0\0\0\0"
|L8.772|
000304 00000000 DCD ||.data||
|L8.776|
000308 0d0a706c DCB "\r\n\160\154"
00030c 6179696e DCB "ayin"
000310 672e2e2e DCB "g..."
000314 00000000 DCB "\0\0\0\0"
|L8.792|
000318 40000800 DCD 0x40000800
AREA ||.data||, DATA, ALIGN=1
SBNo
000000 00 DCB 0x00
readNextBytes
000001 00 DCB 0x00
Out_Data_Offset
000002 0000 DCB 0x00,0x00
AREA ||.bss||, DATA, NOINIT, ALIGN=0
Stream_Buff
% 4096
__ARM_use_no_argv EQU 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -