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

📄 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..\Release\main.o --depend=..\Release\main.d --device=DARMSTM --apcs=interwork -O3 -I..\code\header -I..\code\library\inc -I..\..\include -I..\..\..\..\library\inc -I..\..\..\..\..\FWLib\library\inc -I..\code\FAT16 -I..\code\driver -ID:\Keil\ARM\INC\ST\STM32F10x -DVECT_TAB_FLASH -W --omf_browse=..\Release\main.crf ..\code\user\main.c]
                          THUMB

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

                  USART_Scanf_Name PROC
;;;58     u8 USART_Scanf_Name(u8 * str)
;;;59     {	
000000  e92d41f0          PUSH     {r4-r8,lr}
;;;60       u8 index = 0;
000004  4f0d              LDR      r7,|L1.60|
000006  4606              MOV      r6,r0                 ;59
000008  2400              MOVS     r4,#0
                  |L1.10|
;;;61       while(1) 
;;;62       {
;;;63         /* Loop until RXNE = 1 */
;;;64         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|
;;;65         {
;;;66         }
;;;67         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
;;;68     	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
;;;69     	if(str[index - 1] == 13)
00002e  7828              LDRB     r0,[r5,#0]
000030  280d              CMP      r0,#0xd
000032  d1ea              BNE      |L1.10|
;;;70     	{  
;;;71     	    index--;
000034  1e64              SUBS     r4,r4,#1
000036  b2e0              UXTB     r0,r4
;;;72     	    return index;
;;;73         }
;;;74       }													
;;;75     }
000038  e8bd81f0          POP      {r4-r8,pc}
;;;76     
                          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
;;;84     u8 USART_Scanf_Cmd(u8 * str)
;;;85     {	
000000  e92d41f0          PUSH     {r4-r8,lr}
;;;86       u8 index = 0;
000004  4f0e              LDR      r7,|L2.64|
000006  4606              MOV      r6,r0                 ;85
000008  2400              MOVS     r4,#0
                  |L2.10|
;;;87       while(1) 
;;;88       {
;;;89         /* Loop until RXNE = 1 */
;;;90         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|
;;;91         {
;;;92         }
;;;93         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
;;;94     	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
;;;95     	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|
;;;96     	{  
;;;97     	    index--;
000038  1e64              SUBS     r4,r4,#1
00003a  b2e0              UXTB     r0,r4
;;;98     	    return index;
;;;99         }
;;;100      }
;;;101    }
00003c  e8bd81f0          POP      {r4-r8,pc}
;;;102    
                          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
;;;128    void PrintPass(u8 * pass)
;;;129    {
000000  b510              PUSH     {r4,lr}
000002  4604              MOV      r4,r0
;;;130       	printf("\r\nX:");
000004  a007              ADR      r0,|L4.36|
000006  f7fffffe          BL       __1printf
;;;131    	while(* pass != '\0')
00000a  e003              B        |L4.20|
                  |L4.12|
;;;132    	   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]            ;131
000016  2900              CMP      r1,#0                 ;131
000018  d1f8              BNE      |L4.12|
;;;133    	printf(">");
00001a  e8bd4010          POP      {r4,lr}
00001e  a004              ADR      r0,|L4.48|
000020  f7ffbffe          B.W      __1printf
;;;134    }
;;;135    
                          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.SetupClock||, CODE, READONLY, ALIGN=2

                  SetupClock PROC
;;;143    void SetupClock(void)
;;;144    {
000000  b570              PUSH     {r4-r6,lr}
;;;145    
;;;146      ErrorStatus HSEStartUpStatus;
;;;147      /* RCC system reset(for debug purpose) */
;;;148      RCC_DeInit();
000002  f7fffffe          BL       RCC_DeInit
;;;149    
;;;150      /* Enable HSE */
;;;151      RCC_HSEConfig(RCC_HSE_ON);
000006  f44f3580          MOV      r5,#0x10000
00000a  4628              MOV      r0,r5
00000c  f7fffffe          BL       RCC_HSEConfig
;;;152    
;;;153      /* Wait till HSE is ready */
;;;154      HSEStartUpStatus = RCC_WaitForHSEStartUp();
000010  f7fffffe          BL       RCC_WaitForHSEStartUp
;;;155    
;;;156      if(HSEStartUpStatus == SUCCESS)
000014  2801              CMP      r0,#1
000016  d121              BNE      |L5.92|
;;;157      {
;;;158        /* HCLK = SYSCLK */
;;;159        RCC_HCLKConfig(RCC_SYSCLK_Div1); 
000018  2000              MOVS     r0,#0
00001a  f7fffffe          BL       RCC_HCLKConfig
;;;160      
;;;161        /* PCLK2 = HCLK/2 */
;;;162        RCC_PCLK2Config(RCC_HCLK_Div2); 
00001e  11ac              ASRS     r4,r5,#6
000020  4620              MOV      r0,r4
000022  f7fffffe          BL       RCC_PCLK2Config
;;;163    
;;;164        /* PCLK1 = HCLK/2 */
;;;165        RCC_PCLK1Config(RCC_HCLK_Div2);
000026  4620              MOV      r0,r4
000028  f7fffffe          BL       RCC_PCLK1Config
;;;166    
;;;167    	/* Flash 2 wait state */
;;;168        FLASH_SetLatency(FLASH_Latency_2);
00002c  2002              MOVS     r0,#2
00002e  f7fffffe          BL       FLASH_SetLatency
;;;169     
;;;170       /* PLLCLK = 8MHz * 9 = 72 MHz */
;;;171        RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
000032  f44f11e0          MOV      r1,#0x1c0000
000036  4628              MOV      r0,r5
000038  f7fffffe          BL       RCC_PLLConfig
;;;172    
;;;173        /* Enable PLL */ 
;;;174        RCC_PLLCmd(ENABLE);
00003c  2001              MOVS     r0,#1
00003e  f7fffffe          BL       RCC_PLLCmd
                  |L5.66|
;;;175    
;;;176        /* Wait till PLL is ready */
;;;177        while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);
000042  2039              MOVS     r0,#0x39
000044  f7fffffe          BL       RCC_GetFlagStatus
000048  2800              CMP      r0,#0
00004a  d0fa              BEQ      |L5.66|
;;;178    
;;;179        /* Select PLL as system clock source */
;;;180        RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
00004c  2002              MOVS     r0,#2
00004e  f7fffffe          BL       RCC_SYSCLKConfig
;;;181    
;;;182        /* Wait till PLL is used as system clock source */
;;;183        while(RCC_GetSYSCLKSource() != 0x08);
000052  bf00              NOP      
                  |L5.84|
000054  f7fffffe          BL       RCC_GetSYSCLKSource
000058  2808              CMP      r0,#8
00005a  d1fb              BNE      |L5.84|
                  |L5.92|
;;;184        
;;;185      }
;;;186    
;;;187    /* Enable peripheral clocks --------------------------------------------------*/
;;;188      /* GPIOA, GPIOB and SPI1 clock enable */
;;;189      RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOE |
00005c  2101              MOVS     r1,#1
00005e  f245005c          MOV      r0,#0x505c
000062  f7fffffe          BL       RCC_APB2PeriphClockCmd
;;;190                             RCC_APB2Periph_USART1 |RCC_APB2Periph_SPI1, ENABLE);
;;;191      
;;;192      /* SysTick event each 10 ms with input clock equal to 9MHz (HCLK/8)         */
;;;193      SysTick_SetReload(90000);
000066  4804              LDR      r0,|L5.120|
000068  f7fffffe          BL       SysTick_SetReload
;;;194    
;;;195      SysTick_ITConfig(ENABLE);             /* Enable SysTick interrupt           */
00006c  e8bd4070          POP      {r4-r6,lr}
000070  2001              MOVS     r0,#1
000072  f7ffbffe          B.W      SysTick_ITConfig
;;;196    }
;;;197    
                          ENDP

000076  0000              DCW      0x0000
                  |L5.120|
000078  00015f90          DCD      0x00015f90

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

                  Sleep PROC
;;;199    {
;;;200      cpt_loop = cpt_loop * 10000;
000000  f2427110          MOV      r1,#0x2710
000004  4348              MULS     r0,r1,r0
                  |L6.6|
;;;201      while (cpt_loop -- != 0);
000006  1e40              SUBS     r0,r0,#1
000008  d2fd              BCS      |L6.6|
;;;202    }   
00000a  4770              BX       lr

⌨️ 快捷键说明

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