?? mass_storage.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 + -