📄 mass_storage.txt
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] 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..\..\Config -I..\..\GUI\Core -I..\..\GUI\Font -I..\..\GUI\ConvertColor -I..\..\GUI\AntiAlias -I..\..\GUI\ConvertMono -I..\..\GUI\JPEG -I..\..\GUI\MemDev -I..\..\GUI\MultiLayer -I..\..\GUI\Widget -I..\..\GUI\WM -IC:\Keil\ARM\INC\ST\STM32F10x ..\..\source\mass_storage.c]
THUMB
AREA ||i.Mass_Storage_Init||, CODE, READONLY, ALIGN=1
Mass_Storage_Init PROC
;;;41 *******************************************************************************/
;;;42 void Mass_Storage_Init(void)
000000 2000 MOVS r0,#0
;;;43 {
;;;44 /* Disable the Pull-Up*/
;;;45 USB_Cable_Config(DISABLE);
000002 f7ffbffe B.W USB_Cable_Config
;;;46
;;;47 }
;;;48
ENDP
AREA ||i.Mass_Storage_Recovery||, CODE, READONLY, ALIGN=2
Mass_Storage_Recovery PROC
;;;145 *******************************************************************************/
;;;146 void Mass_Storage_Recovery (void)
000000 b510 PUSH {r4,lr}
;;;147 {
;;;148 /* Disble the JoyStick interrupts */
;;;149 IntExtOnOffConfig(DISABLE);
000002 2000 MOVS r0,#0
000004 f7fffffe BL IntExtOnOffConfig
|L2.8|
;;;150
;;;151
;;;152 while(ReadKey() != NOKEY)
000008 f7fffffe BL ReadKey
00000c 2800 CMP r0,#0
00000e d1fb BNE |L2.8|
;;;153 {
;;;154 }
;;;155
;;;156 LCD_Clear(White);
000010 f64f74ff MOV r4,#0xffff
000014 4620 MOV r0,r4
000016 f7fffffe BL LCD_Clear
;;;157
;;;158 RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
00001a 2101 MOVS r1,#1
00001c 0208 LSLS r0,r1,#8
00001e f7fffffe BL RCC_AHBPeriphClockCmd
;;;159
;;;160 /* Set the Back Color */
;;;161 LCD_SetBackColor(Blue);
000022 201f MOVS r0,#0x1f
000024 f7fffffe BL LCD_SetBackColor
;;;162 /* Set the Text Color */
;;;163 LCD_SetTextColor(White);
000028 4620 MOV r0,r4
00002a f7fffffe BL LCD_SetTextColor
;;;164
;;;165 LCD_DisplayStringLine(Line4, " Erase NAND Content ");
00002e a111 ADR r1,|L2.116|
000030 2060 MOVS r0,#0x60
000032 f7fffffe BL LCD_DisplayStringLine
;;;166 LCD_DisplayStringLine(Line5, "Please wait... ");
000036 a115 ADR r1,|L2.140|
000038 2078 MOVS r0,#0x78
00003a f7fffffe BL LCD_DisplayStringLine
;;;167
;;;168 /* FSMC Initialization */
;;;169 FSMC_NAND_Init();
00003e f7fffffe BL FSMC_NAND_Init
;;;170
;;;171 NAND_Format();
000042 f7fffffe BL NAND_Format
;;;172
;;;173 /* Display the "To stop Press SEL" message */
;;;174 LCD_DisplayStringLine(Line4, " NAND Erased ");
000046 a117 ADR r1,|L2.164|
000048 2060 MOVS r0,#0x60
00004a f7fffffe BL LCD_DisplayStringLine
;;;175 LCD_DisplayStringLine(Line5, " To exit Press SEL ");
00004e a11b ADR r1,|L2.188|
000050 2078 MOVS r0,#0x78
000052 f7fffffe BL LCD_DisplayStringLine
;;;176
;;;177 /* Loop until SEL key pressed */
;;;178 while(ReadKey() != SEL)
000056 bf00 NOP
|L2.88|
000058 f7fffffe BL ReadKey
00005c 2801 CMP r0,#1
00005e d1fb BNE |L2.88|
;;;179 {
;;;180 }
;;;181
;;;182 LCD_Clear(White);
000060 4620 MOV r0,r4
000062 f7fffffe BL LCD_Clear
;;;183 DisplayMenu();
000066 f7fffffe BL DisplayMenu
;;;184 IntExtOnOffConfig(ENABLE);
00006a e8bd4010 POP {r4,lr}
00006e 2001 MOVS r0,#1
000070 f7ffbffe B.W IntExtOnOffConfig
;;;185 }
;;;186
ENDP
|L2.116|
000074 204572617365204e414e4420436f6e74656e742000 DCB " Erase NAND Content ",0
000089 00 DCB 0
00008a 00 DCB 0
00008b 00 DCB 0
|L2.140|
00008c 506c6561736520776169742e2e2e20202020202000 DCB "Please wait... ",0
0000a1 00 DCB 0
0000a2 00 DCB 0
0000a3 00 DCB 0
|L2.164|
0000a4 20202020204e414e44204572617365642020202000 DCB " NAND Erased ",0
0000b9 00 DCB 0
0000ba 00 DCB 0
0000bb 00 DCB 0
|L2.188|
0000bc 2020546f20657869742050726573732053454c2000 DCB " To exit Press SEL ",0
0000d1 00 DCB 0
0000d2 00 DCB 0
0000d3 00 DCB 0
AREA ||i.Mass_Storage_Start||, CODE, READONLY, ALIGN=2
Mass_Storage_Start PROC
;;;55 *******************************************************************************/
;;;56 void Mass_Storage_Start (void)
000000 b5f8 PUSH {r3-r7,lr}
;;;57 {
;;;58 NVIC_InitTypeDef NVIC_InitStructure;
;;;59
;;;60 /* Disble the JoyStick interrupts */
;;;61 IntExtOnOffConfig(DISABLE);
000002 2000 MOVS r0,#0
000004 f7fffffe BL IntExtOnOffConfig
|L3.8|
;;;62
;;;63
;;;64 while(ReadKey() != NOKEY)
000008 f7fffffe BL ReadKey
00000c 2800 CMP r0,#0
00000e d1fb BNE |L3.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 f64f75ff MOV r5,#0xffff
00001e 4628 MOV r0,r5
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 LCD_NORDisplay(USB_ICON);
000030 482c LDR r0,|L3.228|
000032 f7fffffe BL LCD_NORDisplay
;;;75 RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
000036 2101 MOVS r1,#1
000038 4620 MOV r0,r4
00003a f7fffffe BL RCC_AHBPeriphClockCmd
;;;76 /* Disable LCD Window mode */
;;;77 LCD_WindowModeDisable();
00003e f7fffffe BL LCD_WindowModeDisable
;;;78
;;;79 /* Set the Back Color */
;;;80 LCD_SetBackColor(Blue);
000042 201f MOVS r0,#0x1f
000044 f7fffffe BL LCD_SetBackColor
;;;81 /* Set the Text Color */
;;;82 LCD_SetTextColor(White);
000048 4628 MOV r0,r5
00004a f7fffffe BL LCD_SetTextColor
;;;83
;;;84
;;;85 /* Display the " Plug the USB " message */
;;;86 LCD_DisplayStringLine(Line8, " Plug the USB Cable ");
00004e a126 ADR r1,|L3.232|
000050 20c0 MOVS r0,#0xc0
000052 f7fffffe BL LCD_DisplayStringLine
;;;87 LCD_DisplayStringLine(Line9, "Exit: Push JoyStick");
000056 a12a ADR r1,|L3.256|
000058 20d8 MOVS r0,#0xd8
00005a f7fffffe BL LCD_DisplayStringLine
;;;88
;;;89 /* Enable and GPIOD clock */
;;;90 USB_Disconnect_Config();
00005e f7fffffe BL USB_Disconnect_Config
;;;91
;;;92 /* MAL configuration */
;;;93 MAL_Config();
000062 f7fffffe BL MAL_Config
;;;94
;;;95 Set_USBClock();
000066 f7fffffe BL Set_USBClock
;;;96
;;;97 NVIC_InitStructure.NVIC_IRQChannel = USB_LP_CAN_RX0_IRQChannel;
00006a 2014 MOVS r0,#0x14
00006c f88d0000 STRB r0,[sp,#0]
;;;98 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
000070 2600 MOVS r6,#0
000072 f88d6001 STRB r6,[sp,#1]
;;;99 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
000076 2401 MOVS r4,#1
000078 f88d4002 STRB r4,[sp,#2]
;;;100 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
00007c f88d4003 STRB r4,[sp,#3]
;;;101 NVIC_Init(&NVIC_InitStructure);
000080 4668 MOV r0,sp
000082 f7fffffe BL NVIC_Init
;;;102
;;;103 NVIC_InitStructure.NVIC_IRQChannel = USB_HP_CAN_TX_IRQChannel;
000086 2013 MOVS r0,#0x13
000088 f88d0000 STRB r0,[sp,#0]
;;;104 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
00008c f88d6001 STRB r6,[sp,#1]
;;;105 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
000090 f88d6002 STRB r6,[sp,#2]
;;;106 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
000094 f88d4003 STRB r4,[sp,#3]
;;;107 NVIC_Init(&NVIC_InitStructure);
000098 4668 MOV r0,sp
00009a f7fffffe BL NVIC_Init
;;;108
;;;109 USB_Init();
00009e f7fffffe BL USB_Init
;;;110
;;;111 while (bDeviceState != CONFIGURED)
0000a2 4c1d LDR r4,|L3.280|
;;;112 {
;;;113 if(ReadKey() != NOKEY)
;;;114 {
;;;115 PowerOff();
;;;116 LCD_Clear(White);
;;;117 DisplayMenu();
;;;118 IntExtOnOffConfig(ENABLE);
;;;119 return;
0000a4 e003 B |L3.174|
0000a6 bf00 NOP ;113
|L3.168|
0000a8 f7fffffe BL ReadKey
0000ac b970 CBNZ r0,|L3.204|
|L3.174|
0000ae 6820 LDR r0,[r4,#0] ;111 ; bDeviceState
0000b0 2805 CMP r0,#5 ;111
0000b2 d1f9 BNE |L3.168|
;;;120 }
;;;121 }
;;;122
;;;123 LCD_ClearLine(Line9);
0000b4 20d8 MOVS r0,#0xd8
0000b6 f7fffffe BL LCD_ClearLine
;;;124 /* Display the "To stop Press SEL" message */
;;;125 LCD_DisplayStringLine(Line8, " To stop Press SEL ");
0000ba a118 ADR r1,|L3.284|
0000bc 20c0 MOVS r0,#0xc0
0000be f7fffffe BL LCD_DisplayStringLine
;;;126
;;;127 /* Loop until SEL key pressed */
;;;128 while(ReadKey() != SEL)
0000c2 bf00 NOP
|L3.196|
0000c4 f7fffffe BL ReadKey
0000c8 2801 CMP r0,#1
0000ca d1fb BNE |L3.196|
|L3.204|
;;;129 {
;;;130 }
;;;131
;;;132 PowerOff();
0000cc f7fffffe BL PowerOff
;;;133
;;;134 LCD_Clear(White);
0000d0 4628 MOV r0,r5
0000d2 f7fffffe BL LCD_Clear
;;;135 DisplayMenu();
0000d6 f7fffffe BL DisplayMenu
;;;136 IntExtOnOffConfig(ENABLE);
0000da 2001 MOVS r0,#1
0000dc f7fffffe BL IntExtOnOffConfig
;;;137 }
0000e0 bdf8 POP {r3-r7,pc}
;;;138
ENDP
0000e2 0000 DCW 0x0000
|L3.228|
DCD 0x641efc08
|L3.232|
0000e8 20506c75672074686520555342204361626c652000 DCB " Plug the USB Cable ",0
0000fd 00 DCB 0
0000fe 00 DCB 0
0000ff 00 DCB 0
|L3.256|
000100 457869743a202050757368204a6f79537469636b00 DCB "Exit: Push JoyStick",0
000115 00 DCB 0
000116 00 DCB 0
000117 00 DCB 0
|L3.280|
DCD bDeviceState
|L3.284|
00011c 2020546f2073746f702050726573732053454c2000 DCB " To stop Press SEL ",0
000131 00 DCB 0
000132 00 DCB 0
000133 00 DCB 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -