📄 main.txt
字号:
000004 f7fffffe BL SysTick_CLKSourceConfig
000008 4803 LDR r0,|L5.24|
00000a f7fffffe BL SysTick_SetReload
00000e e8bd4010 POP {r4,lr}
000012 2001 MOVS r0,#1
000014 f7ffbffe B.W SysTick_ITConfig
ENDP
|L5.24|
000018 000afc80 DCD 0x000afc80
AREA ||i.InterruptConfig||, CODE, READONLY, ALIGN=2
InterruptConfig PROC
;;;207 void InterruptConfig(void)
;;;208 {
000000 b5fe PUSH {r1-r7,lr}
;;;209 NVIC_InitTypeDef NVIC_InitStructure;
;;;210 EXTI_InitTypeDef EXTI_InitStructure;
;;;211
;;;212 /* Deinitializes the NVIC */
;;;213 NVIC_DeInit();
000002 f7fffffe BL NVIC_DeInit
;;;214
;;;215 /* Set the Vector Table base address at 0x08000000 */
;;;216 NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x00);
000006 2100 MOVS r1,#0
000008 f04f6000 MOV r0,#0x8000000
00000c f7fffffe BL NVIC_SetVectorTable
;;;217
;;;218 /* Configure the Priority Group to 2 bits */
;;;219 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
000010 f44f60a0 MOV r0,#0x500
000014 f7fffffe BL NVIC_PriorityGroupConfig
;;;220
;;;221 /* Configure the SysTick handler priority */
;;;222 NVIC_SystemHandlerPriorityConfig(SystemHandler_SysTick, 0, 0);
000018 2200 MOVS r2,#0
00001a 4611 MOV r1,r2
00001c 4839 LDR r0,|L6.260|
00001e f7fffffe BL NVIC_SystemHandlerPriorityConfig
;;;223
;;;224 /* Enable the EXTI3 Interrupt */
;;;225 NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQChannel;
000022 2009 MOVS r0,#9
000024 f88d0008 STRB r0,[sp,#8]
;;;226 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
000028 2502 MOVS r5,#2
00002a f88d5009 STRB r5,[sp,#9]
;;;227 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
00002e 2401 MOVS r4,#1
000030 f88d400a STRB r4,[sp,#0xa]
;;;228 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
000034 f88d400b STRB r4,[sp,#0xb]
;;;229 NVIC_Init(&NVIC_InitStructure);
000038 a802 ADD r0,sp,#8
00003a f7fffffe BL NVIC_Init
;;;230
;;;231 /* Enable the EXTI9_5 Interrupt */
;;;232 NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQChannel;
00003e 2017 MOVS r0,#0x17
000040 f88d0008 STRB r0,[sp,#8]
;;;233 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
000044 f88d5009 STRB r5,[sp,#9]
;;;234 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
000048 f88d400a STRB r4,[sp,#0xa]
;;;235 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
00004c f88d400b STRB r4,[sp,#0xb]
;;;236 NVIC_Init(&NVIC_InitStructure);
000050 a802 ADD r0,sp,#8
000052 f7fffffe BL NVIC_Init
;;;237
;;;238 /* Enable the EXTI15_10 Interrupt */
;;;239 NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQChannel;
000056 2028 MOVS r0,#0x28
000058 f88d0008 STRB r0,[sp,#8]
;;;240 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
00005c f88d5009 STRB r5,[sp,#9]
;;;241 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
000060 2500 MOVS r5,#0
000062 f88d500a STRB r5,[sp,#0xa]
;;;242 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
000066 f88d400b STRB r4,[sp,#0xb]
;;;243 NVIC_Init(&NVIC_InitStructure);
00006a a802 ADD r0,sp,#8
00006c f7fffffe BL NVIC_Init
;;;244
;;;245 /* Enable the RTC Interrupt */
;;;246 NVIC_InitStructure.NVIC_IRQChannel = RTC_IRQChannel;
000070 2603 MOVS r6,#3
000072 f88d6008 STRB r6,[sp,#8]
;;;247 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
000076 f88d5009 STRB r5,[sp,#9]
;;;248 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
00007a f88d500a STRB r5,[sp,#0xa]
;;;249 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
00007e f88d400b STRB r4,[sp,#0xb]
;;;250 NVIC_Init(&NVIC_InitStructure);
000082 a802 ADD r0,sp,#8
000084 f7fffffe BL NVIC_Init
;;;251
;;;252
;;;253 /* Enable the USB_LP_CAN_RX0 Interrupt */
;;;254 NVIC_InitStructure.NVIC_IRQChannel = USB_LP_CAN_RX0_IRQChannel;
000088 2014 MOVS r0,#0x14
00008a f88d0008 STRB r0,[sp,#8]
;;;255 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
00008e f88d4009 STRB r4,[sp,#9]
;;;256 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
000092 f88d500a STRB r5,[sp,#0xa]
;;;257 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
000096 f88d400b STRB r4,[sp,#0xb]
;;;258 NVIC_Init(&NVIC_InitStructure);
00009a a802 ADD r0,sp,#8
00009c f7fffffe BL NVIC_Init
;;;259
;;;260 /* Enable the USB_HP_CAN_TX Interrupt */
;;;261 NVIC_InitStructure.NVIC_IRQChannel = USB_HP_CAN_TX_IRQChannel;
0000a0 2013 MOVS r0,#0x13
0000a2 f88d0008 STRB r0,[sp,#8]
;;;262 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
0000a6 f88d5009 STRB r5,[sp,#9]
;;;263 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
0000aa f88d400a STRB r4,[sp,#0xa]
;;;264 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
0000ae f88d400b STRB r4,[sp,#0xb]
;;;265 NVIC_Init(&NVIC_InitStructure);
0000b2 a802 ADD r0,sp,#8
0000b4 f7fffffe BL NVIC_Init
;;;266
;;;267 /* Enable the TIM1 UP Interrupt */
;;;268 NVIC_InitStructure.NVIC_IRQChannel = TIM1_UP_IRQChannel;
0000b8 2019 MOVS r0,#0x19
0000ba f88d0008 STRB r0,[sp,#8]
;;;269 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
0000be f88d4009 STRB r4,[sp,#9]
;;;270 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;
0000c2 f88d600a STRB r6,[sp,#0xa]
;;;271 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
0000c6 f88d400b STRB r4,[sp,#0xb]
;;;272 NVIC_Init(&NVIC_InitStructure);
0000ca a802 ADD r0,sp,#8
0000cc f7fffffe BL NVIC_Init
;;;273
;;;274 /* Enable the RTC Alarm Interrupt */
;;;275 NVIC_InitStructure.NVIC_IRQChannel = RTCAlarm_IRQChannel;
0000d0 2029 MOVS r0,#0x29
0000d2 f88d0008 STRB r0,[sp,#8]
;;;276 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
0000d6 f88d4009 STRB r4,[sp,#9]
;;;277 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
0000da f88d400a STRB r4,[sp,#0xa]
;;;278 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
0000de f88d400b STRB r4,[sp,#0xb]
;;;279 NVIC_Init(&NVIC_InitStructure);
0000e2 a802 ADD r0,sp,#8
0000e4 f7fffffe BL NVIC_Init
;;;280
;;;281 /* Enable the EXTI Line17 Interrupt */
;;;282 EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
;;;283 EXTI_InitStructure.EXTI_Line = EXTI_Line17;
0000e8 0460 LSLS r0,r4,#17
;;;284 EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
0000ea 9000 STR r0,[sp,#0]
0000ec f88d5004 STRB r5,[sp,#4] ;282
0000f0 2008 MOVS r0,#8
0000f2 f88d0005 STRB r0,[sp,#5]
;;;285 EXTI_InitStructure.EXTI_LineCmd = ENABLE;
0000f6 f88d4006 STRB r4,[sp,#6]
;;;286 EXTI_Init(&EXTI_InitStructure);
0000fa 4668 MOV r0,sp
0000fc f7fffffe BL EXTI_Init
;;;287 }
000100 bdfe POP {r1-r7,pc}
;;;288
ENDP
000102 0000 DCW 0x0000
|L6.260|
000104 0002c39a DCD 0x0002c39a
AREA ||i.GPIO_Config||, CODE, READONLY, ALIGN=2
GPIO_Config PROC
;;;353 void GPIO_Config(void)
;;;354 {
000000 b538 PUSH {r3-r5,lr}
;;;355 GPIO_InitTypeDef GPIO_InitStructure;
;;;356
;;;357 /* Configure PG.07, PG.08, PG.13, PG.14 and PG.15 as input floating */
;;;358 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
000002 f24e1080 MOV r0,#0xe180
000006 f8ad0000 STRH r0,[sp,#0]
;;;359 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
00000a 2404 MOVS r4,#4
00000c f88d4003 STRB r4,[sp,#3]
;;;360 GPIO_Init(GPIOG, &GPIO_InitStructure);
000010 4669 MOV r1,sp
000012 4812 LDR r0,|L7.92|
000014 f7fffffe BL GPIO_Init
;;;361
;;;362 /* Configure PD.03 as input floating */
;;;363 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
000018 2008 MOVS r0,#8
00001a f8ad0000 STRH r0,[sp,#0]
;;;364 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
00001e f88d4003 STRB r4,[sp,#3]
;;;365 GPIO_Init(GPIOD, &GPIO_InitStructure);
000022 4669 MOV r1,sp
000024 480e LDR r0,|L7.96|
000026 f7fffffe BL GPIO_Init
;;;366
;;;367 /* RIGHT Button */
;;;368 GPIO_EXTILineConfig(GPIO_PortSourceGPIOG, GPIO_PinSource13);
00002a 210d MOVS r1,#0xd
00002c 2006 MOVS r0,#6
00002e f7fffffe BL GPIO_EXTILineConfig
;;;369
;;;370 /* LEFT Button */
;;;371 GPIO_EXTILineConfig(GPIO_PortSourceGPIOG, GPIO_PinSource14);
000032 210e MOVS r1,#0xe
000034 2006 MOVS r0,#6
000036 f7fffffe BL GPIO_EXTILineConfig
;;;372
;;;373 /* DOWN Button */
;;;374 GPIO_EXTILineConfig(GPIO_PortSourceGPIOD, GPIO_PinSource3);
00003a 2103 MOVS r1,#3
00003c 4608 MOV r0,r1
00003e f7fffffe BL GPIO_EXTILineConfig
;;;375
;;;376 /* UP Button */
;;;377 GPIO_EXTILineConfig(GPIO_PortSourceGPIOG, GPIO_PinSource15);
000042 210f MOVS r1,#0xf
000044 2006 MOVS r0,#6
000046 f7fffffe BL GPIO_EXTILineConfig
;;;378
;;;379 /* SEL Button */
;;;380 GPIO_EXTILineConfig(GPIO_PortSourceGPIOG, GPIO_PinSource7);
00004a 2107 MOVS r1,#7
00004c 2006 MOVS r0,#6
00004e f7fffffe BL GPIO_EXTILineConfig
;;;381
;;;382 /* KEY Button */
;;;383 GPIO_EXTILineConfig(GPIO_PortSourceGPIOG, GPIO_PinSource8);
000052 2108 MOVS r1,#8
000054 2006 MOVS r0,#6
000056 f7fffffe BL GPIO_EXTILineConfig
;;;384 }
00005a bd38 POP {r3-r5,pc}
;;;385
ENDP
|L7.92|
00005c 40012000 DCD 0x40012000
|L7.96|
000060 40011400 DCD 0x40011400
AREA ||i.Demo_Init||, CODE, READONLY, ALIGN=2
Demo_Init PROC
;;;75 void Demo_Init(void)
;;;76 {
000000 b570 PUSH {r4-r6,lr}
;;;77 /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration -----------------------------*/
;;;78 /* RCC system reset(for debug purpose) */
;;;79 RCC_DeInit();
000002 f7fffffe BL RCC_DeInit
;;;80
;;;81 /* Enable HSE */
;;;82 RCC_HSEConfig(RCC_HSE_ON);
000006 f44f3580 MOV r5,#0x10000
00000a 4628 MOV r0,r5
00000c f7fffffe BL RCC_HSEConfig
;;;83
;;;84 /* Wait till HSE is ready */
;;;85 HSEStartUpStatus = RCC_WaitForHSEStartUp();
000010 f7fffffe BL RCC_WaitForHSEStartUp
000014 4c30 LDR r4,|L8.216|
000016 7020 STRB r0,[r4,#0] ; HSEStartUpStatus
;;;86
;;;87 if(HSEStartUpStatus == SUCCESS)
000018 7820 LDRB r0,[r4,#0] ; HSEStartUpStatus
00001a 2801 CMP r0,#1
00001c d122 BNE |L8.100|
;;;88 {
;;;89 /* Enable Prefetch Buffer */
;;;90 FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
00001e 2010 MOVS r0,#0x10
000020 f7fffffe BL FLASH_PrefetchBufferCmd
;;;91
;;;92 /* Flash 2 wait state */
;;;93 FLASH_SetLatency(FLASH_Latency_2);
000024 2002 MOVS r0,#2
000026 f7fffffe BL FLASH_SetLatency
;;;94
;;;95 /* HCLK = SYSCLK */
;;;96 RCC_HCLKConfig(RCC_SYSCLK_Div1);
00002a 2000 MOVS r0,#0
00002c f7fffffe BL RCC_HCLKConfig
;;;97
;;;98 /* PCLK2 = HCLK */
;;;99 RCC_PCLK2Config(RCC_HCLK_Div1);
000030 2000 MOVS r0,#0
000032 f7fffffe BL RCC_PCLK2Config
;;;100
;;;101 /* PCLK1 = HCLK/2 */
;;;102 RCC_PCLK1Config(RCC_HCLK_Div2);
000036 11a8 ASRS r0,r5,#6
000038 f7fffffe BL RCC_PCLK1Config
;;;103
;;;104 /* PLLCLK = 8MHz * 9 = 72 MHz */
;;;105 RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
00003c f44f11e0 MOV r1,#0x1c0000
000040 4628 MOV r0,r5
000042 f7fffffe BL RCC_PLLConfig
;;;106
;;;107 /* Enable PLL */
;;;108 RCC_PLLCmd(ENABLE);
000046 2001 MOVS r0,#1
000048 f7fffffe BL RCC_PLLCmd
|L8.76|
;;;109
;;;110 /* Wait till PLL is ready */
;;;111 while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
00004c 2039 MOVS r0,#0x39
00004e f7fffffe BL RCC_GetFlagStatus
000052 2800 CMP r0,#0
000054 d0fa BEQ |L8.76|
;;;112 {
;;;113 }
;;;114
;;;115 /* Select PLL as system clock source */
;;;116 RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
000056 2002 MOVS r0,#2
000058 f7fffffe BL RCC_SYSCLKConfig
|L8.92|
;;;117
;;;118 /* Wait till PLL is used as system clock source */
;;;119 while(RCC_GetSYSCLKSource() != 0x08)
00005c f7fffffe BL RCC_GetSYSCLKSource
000060 2808 CMP r0,#8
000062 d1fb BNE |L8.92|
|L8.100|
;;;120 {
;;;121 }
;;;122 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -