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

📄 main.txt

📁 stm32.rar
💻 TXT
📖 第 1 页 / 共 3 页
字号:
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 + -