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

📄 mass_storage.txt

📁 stm32.rar
💻 TXT
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 942] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Int_Flash\mass_storage.o --depend=.\Int_Flash\mass_storage.d --device=DARMSTM --apcs=interwork -O3 -I..\include -I..\..\..\..\..\INC\ST\STM32F10x\USB -Id:\Keil\ARM\INC\ST\STM32F10x -D__MICROLIB --omf_browse=.\Int_Flash\mass_storage.crf ..\source\mass_storage.c]
                          THUMB

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

                  Mass_Storage_Init PROC
;;;44       /* Disable the Pull-Up*/
;;;45       USB_Cable_Config(DISABLE);
000000  2000              MOVS     r0,#0
000002  f7ffbffe          B.W      USB_Cable_Config
;;;46     
;;;47     }
;;;48     
                          ENDP


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

                  Mass_Storage_Start PROC
;;;56     void Mass_Storage_Start (void)
;;;57     {
000000  b5f8              PUSH     {r3-r7,lr}
;;;58       NVIC_InitTypeDef NVIC_InitStructure;
;;;59     
;;;60       /* Disble the JoyStick interrupts */
;;;61       IntExtOnOffConfig(DISABLE);
000002  2000              MOVS     r0,#0
000004  f7fffffe          BL       IntExtOnOffConfig
                  |L2.8|
;;;62     
;;;63     
;;;64       while(ReadKey() != NOKEY)
000008  f7fffffe          BL       ReadKey
00000c  2800              CMP      r0,#0
00000e  d1fb              BNE      |L2.8|
;;;65       {
;;;66       }
;;;67     
;;;68       RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
000010  2101              MOVS     r1,#1
000012  020c              LSLS     r4,r1,#8
000014  4620              MOV      r0,r4
000016  f7fffffe          BL       RCC_AHBPeriphClockCmd
;;;69       /* Clear the LCD screen */
;;;70       LCD_Clear(White);
00001a  f64f76ff          MOV      r6,#0xffff
00001e  4630              MOV      r0,r6
000020  f7fffffe          BL       LCD_Clear
;;;71     
;;;72       LCD_SetDisplayWindow(160, 223, 128, 128);
000024  2380              MOVS     r3,#0x80
000026  461a              MOV      r2,r3
000028  21df              MOVS     r1,#0xdf
00002a  20a0              MOVS     r0,#0xa0
00002c  f7fffffe          BL       LCD_SetDisplayWindow
;;;73      
;;;74     #if STM3210E
;;;75       LCD_NORDisplay(USB_ICON);
;;;76     #else
;;;77       LCD_SPIDisplay(USB_ICON);
000030  482c              LDR      r0,|L2.228|
000032  f7fffffe          BL       LCD_SPIDisplay
;;;78     #endif
;;;79       RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
000036  2101              MOVS     r1,#1
000038  4620              MOV      r0,r4
00003a  f7fffffe          BL       RCC_AHBPeriphClockCmd
;;;80       /* Disable LCD Window mode */
;;;81       LCD_WindowModeDisable();
00003e  f7fffffe          BL       LCD_WindowModeDisable
;;;82       
;;;83       /* Set the Back Color */
;;;84       LCD_SetBackColor(Blue);
000042  201f              MOVS     r0,#0x1f
000044  f7fffffe          BL       LCD_SetBackColor
;;;85       /* Set the Text Color */
;;;86       LCD_SetTextColor(White); 
000048  4630              MOV      r0,r6
00004a  f7fffffe          BL       LCD_SetTextColor
;;;87     
;;;88       
;;;89       /* Display the "  Plug the USB   " message */
;;;90       LCD_DisplayStringLine(Line8, " Plug the USB Cable ");
00004e  a126              ADR      r1,|L2.232|
000050  20c0              MOVS     r0,#0xc0
000052  f7fffffe          BL       LCD_DisplayStringLine
;;;91       LCD_DisplayStringLine(Line9, "Exit:  Push JoyStick");
000056  a12a              ADR      r1,|L2.256|
000058  20d8              MOVS     r0,#0xd8
00005a  f7fffffe          BL       LCD_DisplayStringLine
;;;92         
;;;93       /* Enable and GPIOD clock */
;;;94       USB_Disconnect_Config();
00005e  f7fffffe          BL       USB_Disconnect_Config
;;;95       
;;;96       /* MAL configuration */
;;;97       MAL_Config();
000062  f7fffffe          BL       MAL_Config
;;;98     
;;;99       Set_USBClock();
000066  f7fffffe          BL       Set_USBClock
;;;100    
;;;101      NVIC_InitStructure.NVIC_IRQChannel = USB_LP_CAN_RX0_IRQChannel;
00006a  2014              MOVS     r0,#0x14
00006c  f88d0000          STRB     r0,[sp,#0]
;;;102      NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
000070  2500              MOVS     r5,#0
000072  f88d5001          STRB     r5,[sp,#1]
;;;103      NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
000076  2401              MOVS     r4,#1
000078  f88d4002          STRB     r4,[sp,#2]
;;;104      NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
00007c  f88d4003          STRB     r4,[sp,#3]
;;;105      NVIC_Init(&NVIC_InitStructure);
000080  4668              MOV      r0,sp
000082  f7fffffe          BL       NVIC_Init
;;;106      
;;;107      NVIC_InitStructure.NVIC_IRQChannel = USB_HP_CAN_TX_IRQChannel;
000086  2013              MOVS     r0,#0x13
000088  f88d0000          STRB     r0,[sp,#0]
;;;108      NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
00008c  f88d5001          STRB     r5,[sp,#1]
;;;109      NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
000090  f88d5002          STRB     r5,[sp,#2]
;;;110      NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
000094  f88d4003          STRB     r4,[sp,#3]
;;;111      NVIC_Init(&NVIC_InitStructure);
000098  4668              MOV      r0,sp
00009a  f7fffffe          BL       NVIC_Init
;;;112    
;;;113      USB_Init();
00009e  f7fffffe          BL       USB_Init
0000a2  4c1d              LDR      r4,|L2.280|
0000a4  e003              B        |L2.174|
;;;114    
;;;115      while (bDeviceState != CONFIGURED)
;;;116      {
;;;117        if(ReadKey() != NOKEY)
0000a6  bf00              NOP      
                  |L2.168|
0000a8  f7fffffe          BL       ReadKey
0000ac  b970              CBNZ     r0,|L2.204|
                  |L2.174|
0000ae  6820              LDR      r0,[r4,#0]            ;115  ; bDeviceState
0000b0  2805              CMP      r0,#5                 ;115
0000b2  d1f9              BNE      |L2.168|
;;;118        {
;;;119          PowerOff();
;;;120          LCD_Clear(White);
;;;121          DisplayMenu();
;;;122          IntExtOnOffConfig(ENABLE);
;;;123          return;
;;;124        }
;;;125      }
;;;126    
;;;127      LCD_ClearLine(Line9);
0000b4  20d8              MOVS     r0,#0xd8
0000b6  f7fffffe          BL       LCD_ClearLine
;;;128      /* Display the "To stop Press SEL" message */
;;;129      LCD_DisplayStringLine(Line8, "  To stop Press SEL ");
0000ba  a118              ADR      r1,|L2.284|
0000bc  20c0              MOVS     r0,#0xc0
0000be  f7fffffe          BL       LCD_DisplayStringLine
;;;130    
;;;131      /* Loop until SEL key pressed */
;;;132      while(ReadKey() != SEL)
0000c2  bf00              NOP      
                  |L2.196|
0000c4  f7fffffe          BL       ReadKey
0000c8  2801              CMP      r0,#1
0000ca  d1fb              BNE      |L2.196|
                  |L2.204|
;;;133      {
;;;134      }
;;;135    
;;;136      PowerOff();
0000cc  f7fffffe          BL       PowerOff
;;;137      
;;;138      LCD_Clear(White);
0000d0  4630              MOV      r0,r6
0000d2  f7fffffe          BL       LCD_Clear
;;;139      DisplayMenu();
0000d6  f7fffffe          BL       DisplayMenu
;;;140      IntExtOnOffConfig(ENABLE);
0000da  2001              MOVS     r0,#1
0000dc  f7fffffe          BL       IntExtOnOffConfig
;;;141    }
0000e0  bdf8              POP      {r3-r7,pc}
;;;142    
                          ENDP

0000e2  0000              DCW      0x0000
                  |L2.228|
0000e4  007c8082          DCD      0x007c8082
                  |L2.232|
0000e8  20506c75672074686520555342204361626c652000        DCB      " Plug the USB Cable ",0
0000fd  00                DCB      0
0000fe  00                DCB      0
0000ff  00                DCB      0
                  |L2.256|
000100  457869743a202050757368204a6f79537469636b00        DCB      "Exit:  Push JoyStick",0
000115  00                DCB      0
000116  00                DCB      0
000117  00                DCB      0
                  |L2.280|
000118  00000000          DCD      bDeviceState
                  |L2.284|
00011c  2020546f2073746f702050726573732053454c2000        DCB      "  To stop Press SEL ",0
000131  00                DCB      0
000132  00                DCB      0
000133  00                DCB      0

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

                  Mass_Storage_Recovery PROC
;;;150    void Mass_Storage_Recovery (void)
;;;151    {
000000  b510              PUSH     {r4,lr}
;;;152      /* Disble the JoyStick interrupts */
;;;153      IntExtOnOffConfig(DISABLE);
000002  2000              MOVS     r0,#0
000004  f7fffffe          BL       IntExtOnOffConfig
                  |L3.8|
;;;154    
;;;155    
;;;156      while(ReadKey() != NOKEY)
000008  f7fffffe          BL       ReadKey
00000c  2800              CMP      r0,#0
00000e  d1fb              BNE      |L3.8|
;;;157      {
;;;158      }
;;;159    
;;;160      LCD_Clear(White);
000010  f64f74ff          MOV      r4,#0xffff
000014  4620              MOV      r0,r4
000016  f7fffffe          BL       LCD_Clear
;;;161    
;;;162      RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
00001a  2101              MOVS     r1,#1
00001c  0208              LSLS     r0,r1,#8
00001e  f7fffffe          BL       RCC_AHBPeriphClockCmd
;;;163      
;;;164      /* Set the Back Color */
;;;165      LCD_SetBackColor(Blue);
000022  201f              MOVS     r0,#0x1f
000024  f7fffffe          BL       LCD_SetBackColor
;;;166      /* Set the Text Color */
;;;167      LCD_SetTextColor(White); 
000028  4620              MOV      r0,r4
00002a  f7fffffe          BL       LCD_SetTextColor
;;;168    
;;;169      LCD_DisplayStringLine(Line4, " Erase NAND Content ");
00002e  a111              ADR      r1,|L3.116|
000030  2060              MOVS     r0,#0x60
000032  f7fffffe          BL       LCD_DisplayStringLine
;;;170      LCD_DisplayStringLine(Line5, "Please wait...      ");
000036  a115              ADR      r1,|L3.140|
000038  2078              MOVS     r0,#0x78
00003a  f7fffffe          BL       LCD_DisplayStringLine
;;;171     
;;;172      /* FSMC Initialization */
;;;173      FSMC_NAND_Init();
00003e  f7fffffe          BL       FSMC_NAND_Init
;;;174    
;;;175      NAND_Format();
000042  f7fffffe          BL       NAND_Format
;;;176    
;;;177      /* Display the "To stop Press SEL" message */
;;;178      LCD_DisplayStringLine(Line4, "     NAND Erased    ");
000046  a117              ADR      r1,|L3.164|
000048  2060              MOVS     r0,#0x60
00004a  f7fffffe          BL       LCD_DisplayStringLine
;;;179      LCD_DisplayStringLine(Line5, "  To exit Press SEL ");
00004e  a11b              ADR      r1,|L3.188|
000050  2078              MOVS     r0,#0x78
000052  f7fffffe          BL       LCD_DisplayStringLine
;;;180    
;;;181      /* Loop until SEL key pressed */
;;;182      while(ReadKey() != SEL)
000056  bf00              NOP      
                  |L3.88|
000058  f7fffffe          BL       ReadKey
00005c  2801              CMP      r0,#1
00005e  d1fb              BNE      |L3.88|
;;;183      {
;;;184      }
;;;185      
;;;186      LCD_Clear(White);
000060  4620              MOV      r0,r4
000062  f7fffffe          BL       LCD_Clear
;;;187      DisplayMenu();
000066  f7fffffe          BL       DisplayMenu
;;;188      IntExtOnOffConfig(ENABLE);
00006a  e8bd4010          POP      {r4,lr}
00006e  2001              MOVS     r0,#1
000070  f7ffbffe          B.W      IntExtOnOffConfig
;;;189    }
;;;190    
                          ENDP

                  |L3.116|
000074  204572617365204e414e4420436f6e74656e742000        DCB      " Erase NAND Content ",0
000089  00                DCB      0
00008a  00                DCB      0
00008b  00                DCB      0
                  |L3.140|
00008c  506c6561736520776169742e2e2e20202020202000        DCB      "Please wait...      ",0
0000a1  00                DCB      0
0000a2  00                DCB      0
0000a3  00                DCB      0
                  |L3.164|
0000a4  20202020204e414e44204572617365642020202000        DCB      "     NAND Erased    ",0
0000b9  00                DCB      0
0000ba  00                DCB      0
0000bb  00                DCB      0
                  |L3.188|
0000bc  2020546f20657869742050726573732053454c2000        DCB      "  To exit Press SEL ",0
0000d1  00                DCB      0
0000d2  00                DCB      0
0000d3  00                DCB      0

⌨️ 快捷键说明

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