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

📄 main.txt

📁 MP3_PLAYER.rar
💻 TXT
📖 第 1 页 / 共 3 页
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 938] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\main.o --depend=.\Obj\main.d --device=DARMSTM --apcs=interwork -O3 -I.\Code\FATSystem\INC -I.\Code\Library\INC -I.\Code\SDCard\INC -I.\Code\Speaker\INC -I.\Code\System\INC -I.\Code\USBMassStorage\INC -I.\Code\User\INC -I.\Code\VS1003\INC -ID:\Keil\ARM\INC\ST\STM32F10x --omf_browse=.\Obj\main.crf Code\User\SRC\main.c]
                          THUMB

                          AREA ||i.USART_Scanf_Name||, CODE, READONLY, ALIGN=2

                  USART_Scanf_Name PROC
;;;55     u8 USART_Scanf_Name(u8 * str)
;;;56     {	
000000  e92d41f0          PUSH     {r4-r8,lr}
;;;57       u8 index = 0;
000004  4f0d              LDR      r7,|L1.60|
000006  4606              MOV      r6,r0                 ;56
000008  2400              MOVS     r4,#0
                  |L1.10|
;;;58       while(1) 
;;;59       {
;;;60         /* Loop until RXNE = 1 */
;;;61         while(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET)
00000a  2120              MOVS     r1,#0x20
00000c  4638              MOV      r0,r7
00000e  f7fffffe          BL       USART_GetFlagStatus
000012  2800              CMP      r0,#0
000014  d0f9              BEQ      |L1.10|
;;;62         {
;;;63         }
;;;64         str[index++] = (USART_ReceiveData(USART1));
000016  4638              MOV      r0,r7
000018  f7fffffe          BL       USART_ReceiveData
00001c  5530              STRB     r0,[r6,r4]
00001e  1c64              ADDS     r4,r4,#1
000020  b2e4              UXTB     r4,r4
;;;65     	printf("%c",str[index - 1]);
000022  1935              ADDS     r5,r6,r4
000024  f8151d01          LDRB     r1,[r5,#-1]!
000028  a005              ADR      r0,|L1.64|
00002a  f7fffffe          BL       __1printf
;;;66     	if(str[index - 1] == 13)
00002e  7828              LDRB     r0,[r5,#0]
000030  280d              CMP      r0,#0xd
000032  d1ea              BNE      |L1.10|
;;;67     	{  
;;;68     	    index--;
000034  1e64              SUBS     r4,r4,#1
000036  b2e0              UXTB     r0,r4
;;;69     	    return index;
;;;70         }
;;;71       }													
;;;72     }
000038  e8bd81f0          POP      {r4-r8,pc}
;;;73     
                          ENDP

                  |L1.60|
00003c  40013800          DCD      0x40013800
                  |L1.64|
000040  25630000          DCB      "%c\0\0"

                          AREA ||i.USART_Scanf_Cmd||, CODE, READONLY, ALIGN=2

                  USART_Scanf_Cmd PROC
;;;81     u8 USART_Scanf_Cmd(u8 * str)
;;;82     {	
000000  e92d41f0          PUSH     {r4-r8,lr}
;;;83       u8 index = 0;
000004  4f0e              LDR      r7,|L2.64|
000006  4606              MOV      r6,r0                 ;82
000008  2400              MOVS     r4,#0
                  |L2.10|
;;;84       while(1) 
;;;85       {
;;;86         /* Loop until RXNE = 1 */
;;;87         while(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET)
00000a  2120              MOVS     r1,#0x20
00000c  4638              MOV      r0,r7
00000e  f7fffffe          BL       USART_GetFlagStatus
000012  2800              CMP      r0,#0
000014  d0f9              BEQ      |L2.10|
;;;88         {
;;;89         }
;;;90         str[index++] = (USART_ReceiveData(USART1));
000016  4638              MOV      r0,r7
000018  f7fffffe          BL       USART_ReceiveData
00001c  5530              STRB     r0,[r6,r4]
00001e  1c64              ADDS     r4,r4,#1
000020  b2e4              UXTB     r4,r4
;;;91     	printf("%c",str[index - 1]);
000022  1935              ADDS     r5,r6,r4
000024  f8151d01          LDRB     r1,[r5,#-1]!
000028  a006              ADR      r0,|L2.68|
00002a  f7fffffe          BL       __1printf
;;;92     	if(str[index - 1] == 13 || str[index - 1] == 32)
00002e  7828              LDRB     r0,[r5,#0]
000030  280d              CMP      r0,#0xd
000032  d001              BEQ      |L2.56|
000034  2820              CMP      r0,#0x20
000036  d1e8              BNE      |L2.10|
                  |L2.56|
;;;93     	{  
;;;94     	    index--;
000038  1e64              SUBS     r4,r4,#1
00003a  b2e0              UXTB     r0,r4
;;;95     	    return index;
;;;96         }
;;;97       }
;;;98     }
00003c  e8bd81f0          POP      {r4-r8,pc}
;;;99     
                          ENDP

                  |L2.64|
000040  40013800          DCD      0x40013800
                  |L2.68|
000044  25630000          DCB      "%c\0\0"

                          AREA ||i.Equal||, CODE, READONLY, ALIGN=1

                  Equal PROC
000000  b530              PUSH     {r4,r5,lr}
000002  429a              CMP      r2,r3
000004  d105              BNE      |L3.18|
000006  2300              MOVS     r3,#0
000008  e007              B        |L3.26|
                  |L3.10|
00000a  5cc4              LDRB     r4,[r0,r3]
00000c  5ccd              LDRB     r5,[r1,r3]
00000e  42ac              CMP      r4,r5
000010  d001              BEQ      |L3.22|
                  |L3.18|
000012  2000              MOVS     r0,#0
000014  bd30              POP      {r4,r5,pc}
                  |L3.22|
000016  1c5b              ADDS     r3,r3,#1
000018  b2db              UXTB     r3,r3
                  |L3.26|
00001a  4293              CMP      r3,r2
00001c  d3f5              BCC      |L3.10|
00001e  2001              MOVS     r0,#1
000020  bd30              POP      {r4,r5,pc}
                          ENDP


                          AREA ||i.PrintPass||, CODE, READONLY, ALIGN=2

                  PrintPass PROC
;;;125    void PrintPass(u8 * pass)
;;;126    {
000000  b510              PUSH     {r4,lr}
000002  4604              MOV      r4,r0
;;;127       	printf("\r\nX:");
000004  a007              ADR      r0,|L4.36|
000006  f7fffffe          BL       __1printf
;;;128    	while(* pass != '\0')
00000a  e003              B        |L4.20|
                  |L4.12|
;;;129    	   printf("%c",*(pass++));
00000c  1c64              ADDS     r4,r4,#1
00000e  a007              ADR      r0,|L4.44|
000010  f7fffffe          BL       __1printf
                  |L4.20|
000014  7821              LDRB     r1,[r4,#0]            ;128
000016  2900              CMP      r1,#0                 ;128
000018  d1f8              BNE      |L4.12|
;;;130    	printf(">");
00001a  e8bd4010          POP      {r4,lr}
00001e  a004              ADR      r0,|L4.48|
000020  f7ffbffe          B.W      __1printf
;;;131    }
;;;132    
                          ENDP

                  |L4.36|
000024  0d0a583a          DCB      "\r\n\130\72"
000028  00000000          DCB      "\0\0\0\0"
                  |L4.44|
00002c  25630000          DCB      "%c\0\0"
                  |L4.48|
000030  3e000000          DCB      ">\0\0\0"

                          AREA ||i.Sleep||, CODE, READONLY, ALIGN=1

                  Sleep PROC
;;;141    {
;;;142      cpt_loop = cpt_loop * 10000;
000000  f2427110          MOV      r1,#0x2710
000004  4348              MULS     r0,r1,r0
                  |L5.6|
;;;143      while (cpt_loop -- != 0);
000006  1e40              SUBS     r0,r0,#1
000008  d2fd              BCS      |L5.6|
;;;144    }  
00000a  4770              BX       lr
;;;145     
                          ENDP


                          AREA ||i.main||, CODE, READONLY, ALIGN=2

                  main PROC
;;;153    int main(void)
;;;154    {	
000000  e92d4ff0          PUSH     {r4-r11,lr}
000004  f5ad7d23          SUB      sp,sp,#0x28c
;;;155    	u8 ret = 1;
;;;156    
;;;157    	static u32 currSec;  									// currSec记录当前目录所在的首扇区 ,fileSec记录打开文件首扇区
;;;158        u32 temp ,fileoffset;
;;;159    	u8 pass[512];											// 记录路径
;;;160    	u8 foldername[128];										// 文件或目录名
;;;161        u8 command[6];											// 记录命令
;;;162    	u8 len1,len2;
;;;163    	u32 tmp;
;;;164    	s16 index;
;;;165    	u32 i;
;;;166    
;;;167    	SetupClock ();
000008  f7fffffe          BL       SetupClock
;;;168      	SetupUART1 ();
00000c  f7fffffe          BL       SetupUART1
;;;169    	VS1003_Config();
000010  f7fffffe          BL       VS1003_Config
;;;170        ret = MSD_Init();
000014  f7fffffe          BL       MSD_Init
;;;171        printf("\r\nMSD_Init result: %d",ret);
000018  4601              MOV      r1,r0
00001a  a0ac              ADR      r0,|L6.716|
00001c  f7fffffe          BL       __1printf
;;;172    	Get_Medium_Characteristics();
000020  f7fffffe          BL       Get_Medium_Characteristics
;;;173    	printf("\r\nMsdBlockCount: %d",Mass_Block_Count);
000024  48af              LDR      r0,|L6.740|
000026  6801              LDR      r1,[r0,#0]  ; Mass_Block_Count
000028  a0af              ADR      r0,|L6.744|
00002a  f7fffffe          BL       __1printf
;;;174    	printf("\r\nMsdBlockSize: %d Byte",Mass_Block_Size);
00002e  48b3              LDR      r0,|L6.764|
000030  6801              LDR      r1,[r0,#0]  ; Mass_Block_Size
000032  a0b3              ADR      r0,|L6.768|
000034  f7fffffe          BL       __1printf
;;;175    	printf("\r\nMsdMemorySize: %d MB\r\n",Mass_Memory_Size/1024/1024);
000038  48b7              LDR      r0,|L6.792|
00003a  6800              LDR      r0,[r0,#0]  ; Mass_Memory_Size
00003c  0d01              LSRS     r1,r0,#20
00003e  a0b7              ADR      r0,|L6.796|
000040  f7fffffe          BL       __1printf
;;;176     	
;;;177      	FAT_Init();

⌨️ 快捷键说明

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