📄 mass_storage.txt
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 934] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\mass_storage.o --depend=.\Obj\mass_storage.d --device=DARMSTM --apcs=interwork -O3 -I..\..\include -I..\..\..\FWLib\library\inc -I..\..\..\USBLib\library\inc -I..\..\SRAM -I"D:\Program Files\MDK KEIL\ARM\INC\ST\STM32F10x" -D__MICROLIB --omf_browse=.\Obj\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 f7fff7ff 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 f7fff7ff BL IntExtOnOffConfig
|L2.8|
;;;62
;;;63
;;;64 while(ReadKey() != NOKEY)
000008 f7fff7ff 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 f7fff7ff BL RCC_AHBPeriphClockCmd
;;;69 /* Clear the LCD screen */
;;;70 LCD_Clear(White);
00001a f64ff64f MOV r6,#0xffff
00001e 4630 MOV r0,r6
000020 f7fff7ff 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 f7fff7ff BL LCD_SetDisplayWindow
;;;73
;;;74 LCD_NORDisplay(USB_ICON);
000030 482c LDR r0,|L2.228|
000032 f7fff7ff BL LCD_NORDisplay
;;;75 RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
000036 2101 MOVS r1,#1
000038 4620 MOV r0,r4
00003a f7fff7ff BL RCC_AHBPeriphClockCmd
;;;76 /* Disable LCD Window mode */
;;;77 LCD_WindowModeDisable();
00003e f7fff7ff BL LCD_WindowModeDisable
;;;78
;;;79 /* Set the Back Color */
;;;80 LCD_SetBackColor(Blue);
000042 201f MOVS r0,#0x1f
000044 f7fff7ff BL LCD_SetBackColor
;;;81 /* Set the Text Color */
;;;82 LCD_SetTextColor(White);
000048 4630 MOV r0,r6
00004a f7fff7ff BL LCD_SetTextColor
;;;83
;;;84
;;;85 /* Display the " Plug the USB " message */
;;;86 LCD_DisplayStringLine(Line8, " Plug the USB Cable ");
00004e a126 ADR r1,|L2.232|
000050 20c0 MOVS r0,#0xc0
000052 f7fff7ff BL LCD_DisplayStringLine
;;;87 LCD_DisplayStringLine(Line9, "Exit: Push JoyStick");
000056 a12a ADR r1,|L2.256|
000058 20d8 MOVS r0,#0xd8
00005a f7fff7ff BL LCD_DisplayStringLine
;;;88
;;;89 /* Enable and GPIOD clock */
;;;90 USB_Disconnect_Config();
00005e f7fff7ff BL USB_Disconnect_Config
;;;91
;;;92 /* MAL configuration */
;;;93 MAL_Config();
000062 f7fff7ff BL MAL_Config
;;;94
;;;95 Set_USBClock();
000066 f7fff7ff BL Set_USBClock
;;;96
;;;97 NVIC_InitStructure.NVIC_IRQChannel = USB_LP_CAN_RX0_IRQChannel;
00006a 2014 MOVS r0,#0x14
00006c f88df88d STRB r0,[sp,#0]
;;;98 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
000070 2500 MOVS r5,#0
000072 f88df88d STRB r5,[sp,#1]
;;;99 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
000076 2401 MOVS r4,#1
000078 f88df88d STRB r4,[sp,#2]
;;;100 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
00007c f88df88d STRB r4,[sp,#3]
;;;101 NVIC_Init(&NVIC_InitStructure);
000080 4668 MOV r0,sp
000082 f7fff7ff BL NVIC_Init
;;;102
;;;103 NVIC_InitStructure.NVIC_IRQChannel = USB_HP_CAN_TX_IRQChannel;
000086 2013 MOVS r0,#0x13
000088 f88df88d STRB r0,[sp,#0]
;;;104 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
00008c f88df88d STRB r5,[sp,#1]
;;;105 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
000090 f88df88d STRB r5,[sp,#2]
;;;106 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
000094 f88df88d STRB r4,[sp,#3]
;;;107 NVIC_Init(&NVIC_InitStructure);
000098 4668 MOV r0,sp
00009a f7fff7ff BL NVIC_Init
;;;108
;;;109 USB_Init();
00009e f7fff7ff BL USB_Init
0000a2 4c1d LDR r4,|L2.280|
0000a4 e003 B |L2.174|
;;;110
;;;111 while (bDeviceState != CONFIGURED)
;;;112 {
;;;113 if(ReadKey() != NOKEY)
0000a6 bf00 NOP
|L2.168|
0000a8 f7fff7ff BL ReadKey
0000ac b970 CBNZ r0,|L2.204|
|L2.174|
0000ae 6820 LDR r0,[r4,#0] ;111 ; bDeviceState
0000b0 2805 CMP r0,#5 ;111
0000b2 d1f9 BNE |L2.168|
;;;114 {
;;;115 PowerOff();
;;;116 LCD_Clear(White);
;;;117 DisplayMenu();
;;;118 IntExtOnOffConfig(ENABLE);
;;;119 return;
;;;120 }
;;;121 }
;;;122
;;;123 LCD_ClearLine(Line9);
0000b4 20d8 MOVS r0,#0xd8
0000b6 f7fff7ff BL LCD_ClearLine
;;;124 /* Display the "To stop Press SEL" message */
;;;125 LCD_DisplayStringLine(Line8, " To stop Press SEL ");
0000ba a118 ADR r1,|L2.284|
0000bc 20c0 MOVS r0,#0xc0
0000be f7fff7ff BL LCD_DisplayStringLine
;;;126
;;;127 /* Loop until SEL key pressed */
;;;128 while(ReadKey() != SEL)
0000c2 bf00 NOP
|L2.196|
0000c4 f7fff7ff BL ReadKey
0000c8 2801 CMP r0,#1
0000ca d1fb BNE |L2.196|
|L2.204|
;;;129 {
;;;130 }
;;;131
;;;132 PowerOff();
0000cc f7fff7ff BL PowerOff
;;;133
;;;134 LCD_Clear(White);
0000d0 4630 MOV r0,r6
0000d2 f7fff7ff BL LCD_Clear
;;;135 DisplayMenu();
0000d6 f7fff7ff BL DisplayMenu
;;;136 IntExtOnOffConfig(ENABLE);
0000da 2001 MOVS r0,#1
0000dc f7fff7ff BL IntExtOnOffConfig
;;;137 }
0000e0 bdf8 POP {r3-r7,pc}
;;;138
ENDP
0000e2 0000 DCW 0x0000
|L2.228|
0000e4 64fe8f96 DCD 0x64fe8f96
|L2.232|
0000e8 20506c75 DCB " Plu"
0000ec 67207468 DCB "g th"
0000f0 65205553 DCB "e US"
0000f4 42204361 DCB "B Ca"
0000f8 626c6520 DCB "ble "
0000fc 00000000 DCB "\0\0\0\0"
|L2.256|
000100 45786974 DCB "Exit"
000104 3a202050 DCB ": P"
000108 75736820 DCB "ush "
00010c 4a6f7953 DCB "JoyS"
000110 7469636b DCB "tick"
000114 00000000 DCB "\0\0\0\0"
|L2.280|
000118 00000000 DCD bDeviceState
|L2.284|
00011c 2020546f DCB " To"
000120 2073746f DCB " sto"
000124 70205072 DCB "p Pr"
000128 65737320 DCB "ess "
00012c 53454c20 DCB "SEL "
000130 00000000 DCB "\0\0\0\0"
AREA ||i.Mass_Storage_Recovery||, CODE, READONLY, ALIGN=2
Mass_Storage_Recovery PROC
;;;146 void Mass_Storage_Recovery (void)
;;;147 {
000000 b510 PUSH {r4,lr}
;;;148 /* Disble the JoyStick interrupts */
;;;149 IntExtOnOffConfig(DISABLE);
000002 2000 MOVS r0,#0
000004 f7fff7ff BL IntExtOnOffConfig
|L3.8|
;;;150
;;;151
;;;152 while(ReadKey() != NOKEY)
000008 f7fff7ff BL ReadKey
00000c 2800 CMP r0,#0
00000e d1fb BNE |L3.8|
;;;153 {
;;;154 }
;;;155
;;;156 LCD_Clear(White);
000010 f64ff64f MOV r4,#0xffff
000014 4620 MOV r0,r4
000016 f7fff7ff BL LCD_Clear
;;;157
;;;158 RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
00001a 2101 MOVS r1,#1
00001c 0208 LSLS r0,r1,#8
00001e f7fff7ff BL RCC_AHBPeriphClockCmd
;;;159
;;;160 /* Set the Back Color */
;;;161 LCD_SetBackColor(Blue);
000022 201f MOVS r0,#0x1f
000024 f7fff7ff BL LCD_SetBackColor
;;;162 /* Set the Text Color */
;;;163 LCD_SetTextColor(White);
000028 4620 MOV r0,r4
00002a f7fff7ff BL LCD_SetTextColor
;;;164
;;;165 LCD_DisplayStringLine(Line4, " Erase NAND Content ");
00002e a111 ADR r1,|L3.116|
000030 2060 MOVS r0,#0x60
000032 f7fff7ff BL LCD_DisplayStringLine
;;;166 LCD_DisplayStringLine(Line5, "Please wait... ");
000036 a115 ADR r1,|L3.140|
000038 2078 MOVS r0,#0x78
00003a f7fff7ff BL LCD_DisplayStringLine
;;;167
;;;168 /* FSMC Initialization */
;;;169 FSMC_NAND_Init();
00003e f7fff7ff BL FSMC_NAND_Init
;;;170
;;;171 NAND_Format();
000042 f7fff7ff BL NAND_Format
;;;172
;;;173 /* Display the "To stop Press SEL" message */
;;;174 LCD_DisplayStringLine(Line4, " NAND Erased ");
000046 a117 ADR r1,|L3.164|
000048 2060 MOVS r0,#0x60
00004a f7fff7ff BL LCD_DisplayStringLine
;;;175 LCD_DisplayStringLine(Line5, " To exit Press SEL ");
00004e a11b ADR r1,|L3.188|
000050 2078 MOVS r0,#0x78
000052 f7fff7ff BL LCD_DisplayStringLine
;;;176
;;;177 /* Loop until SEL key pressed */
;;;178 while(ReadKey() != SEL)
000056 bf00 NOP
|L3.88|
000058 f7fff7ff BL ReadKey
00005c 2801 CMP r0,#1
00005e d1fb BNE |L3.88|
;;;179 {
;;;180 }
;;;181
;;;182 LCD_Clear(White);
000060 4620 MOV r0,r4
000062 f7fff7ff BL LCD_Clear
;;;183 DisplayMenu();
000066 f7fff7ff BL DisplayMenu
;;;184 IntExtOnOffConfig(ENABLE);
00006a e8bde8bd POP {r4,lr}
00006e 2001 MOVS r0,#1
000070 f7fff7ff B.W IntExtOnOffConfig
;;;185 }
;;;186
ENDP
|L3.116|
000074 20457261 DCB " Era"
000078 7365204e DCB "se N"
00007c 414e4420 DCB "AND "
000080 436f6e74 DCB "Cont"
000084 656e7420 DCB "ent "
000088 00000000 DCB "\0\0\0\0"
|L3.140|
00008c 506c6561 DCB "Plea"
000090 73652077 DCB "se w"
000094 6169742e DCB "ait."
000098 2e2e2020 DCB ".. "
00009c 20202020 DCB " "
0000a0 00000000 DCB "\0\0\0\0"
|L3.164|
0000a4 20202020 DCB " "
0000a8 204e414e DCB " NAN"
0000ac 44204572 DCB "D Er"
0000b0 61736564 DCB "ased"
0000b4 20202020 DCB " "
0000b8 00000000 DCB "\0\0\0\0"
|L3.188|
0000bc 2020546f DCB " To"
0000c0 20657869 DCB " exi"
0000c4 74205072 DCB "t Pr"
0000c8 65737320 DCB "ess "
0000cc 53454c20 DCB "SEL "
0000d0 00000000 DCB "\0\0\0\0"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -