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

📄 lowpower.txt

📁 stm32.rar
💻 TXT
📖 第 1 页 / 共 3 页
字号:
; 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\lowpower.o --depend=.\Int_Flash\lowpower.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\lowpower.crf ..\source\lowpower.c]
                          THUMB

                          AREA ||i.LowPower_Init||, CODE, READONLY, ALIGN=1

                  LowPower_Init PROC
;;;42     void LowPower_Init(void)
;;;43     {
000000  b510              PUSH     {r4,lr}
;;;44       RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);
000002  2101              MOVS     r1,#1
000004  0708              LSLS     r0,r1,#28
000006  f7fffffe          BL       RCC_APB1PeriphClockCmd
;;;45     
;;;46       /* Enable WakeUp pin */
;;;47       PWR_WakeUpPinCmd(ENABLE);
00000a  2001              MOVS     r0,#1
00000c  f7fffffe          BL       PWR_WakeUpPinCmd
;;;48     
;;;49       /* Enable Clock Security System(CSS) */
;;;50       RCC_ClockSecuritySystemCmd(ENABLE);
000010  e8bd4010          POP      {r4,lr}
000014  2001              MOVS     r0,#1
000016  f7ffbffe          B.W      RCC_ClockSecuritySystemCmd
;;;51     }
;;;52     
                          ENDP


                          AREA ||i.SYSCLKConfig_STOP||, CODE, READONLY, ALIGN=2

                  SYSCLKConfig_STOP PROC
;;;61     void SYSCLKConfig_STOP(void)
;;;62     {
000000  b510              PUSH     {r4,lr}
;;;63       ErrorStatus HSEStartUpStatus;
;;;64     
;;;65       /* Enable HSE */
;;;66       RCC_HSEConfig(RCC_HSE_ON);
000002  f44f3080          MOV      r0,#0x10000
000006  f7fffffe          BL       RCC_HSEConfig
;;;67     
;;;68       /* Wait till HSE is ready */
;;;69       HSEStartUpStatus = RCC_WaitForHSEStartUp();
00000a  f7fffffe          BL       RCC_WaitForHSEStartUp
;;;70     
;;;71       if(HSEStartUpStatus == SUCCESS)
00000e  2801              CMP      r0,#1
000010  d10e              BNE      |L2.48|
;;;72       {
;;;73         /* Enable PLL */ 
;;;74         RCC_PLLCmd(ENABLE);
000012  f7fffffe          BL       RCC_PLLCmd
                  |L2.22|
;;;75     
;;;76         /* Wait till PLL is ready */
;;;77         while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
000016  2039              MOVS     r0,#0x39
000018  f7fffffe          BL       RCC_GetFlagStatus
00001c  2800              CMP      r0,#0
00001e  d0fa              BEQ      |L2.22|
;;;78         {
;;;79         }
;;;80     
;;;81         /* Select PLL as system clock source */
;;;82         RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
000020  2002              MOVS     r0,#2
000022  f7fffffe          BL       RCC_SYSCLKConfig
;;;83     
;;;84         /* Wait till PLL is used as system clock source */
;;;85         while(RCC_GetSYSCLKSource() != 0x08)
000026  bf00              NOP      
                  |L2.40|
000028  f7fffffe          BL       RCC_GetSYSCLKSource
00002c  2808              CMP      r0,#8
00002e  d1fb              BNE      |L2.40|
                  |L2.48|
;;;86         {
;;;87         }
;;;88       }
;;;89     }
000030  bd10              POP      {r4,pc}
;;;90     
                          ENDP


                          AREA ||i.GPIO_RestoreConfig||, CODE, READONLY, ALIGN=2

                  GPIO_RestoreConfig PROC
;;;445    {  
;;;446      GPIOA->CRL = GPIOA_CRL;
000000  4814              LDR      r0,|L3.84|
000002  4915              LDR      r1,|L3.88|
000004  6842              LDR      r2,[r0,#4]  ; GPIOA_CRL
000006  600a              STR      r2,[r1,#0]
;;;447      GPIOA->CRH = GPIOA_CRH;
000008  6882              LDR      r2,[r0,#8]  ; GPIOA_CRH
00000a  604a              STR      r2,[r1,#4]
;;;448      
;;;449      GPIOB->CRL = GPIOB_CRL;
00000c  68c2              LDR      r2,[r0,#0xc]  ; GPIOB_CRL
00000e  f8c12400          STR      r2,[r1,#0x400]
;;;450      GPIOB->CRH = GPIOB_CRH;
000012  6902              LDR      r2,[r0,#0x10]  ; GPIOB_CRH
000014  f8c12404          STR      r2,[r1,#0x404]
;;;451      
;;;452      GPIOC->CRL = GPIOC_CRL;
000018  4910              LDR      r1,|L3.92|
00001a  6942              LDR      r2,[r0,#0x14]  ; GPIOC_CRL
00001c  600a              STR      r2,[r1,#0]
;;;453      GPIOC->CRH = GPIOC_CRH;
00001e  6982              LDR      r2,[r0,#0x18]  ; GPIOC_CRH
000020  604a              STR      r2,[r1,#4]
;;;454      
;;;455      GPIOD->CRL = GPIOD_CRL;
000022  69c2              LDR      r2,[r0,#0x1c]  ; GPIOD_CRL
000024  f8c12400          STR      r2,[r1,#0x400]
;;;456      GPIOD->CRH = GPIOD_CRH;
000028  6a02              LDR      r2,[r0,#0x20]  ; GPIOD_CRH
00002a  f8c12404          STR      r2,[r1,#0x404]
;;;457      
;;;458      GPIOE->CRL = GPIOE_CRL;
00002e  6a42              LDR      r2,[r0,#0x24]  ; GPIOE_CRL
000030  f8c12800          STR      r2,[r1,#0x800]
;;;459      GPIOE->CRH = GPIOE_CRH;
000034  6a82              LDR      r2,[r0,#0x28]  ; GPIOE_CRH
000036  f8c12804          STR      r2,[r1,#0x804]
;;;460    
;;;461      GPIOF->CRL = GPIOF_CRL;
00003a  6ac2              LDR      r2,[r0,#0x2c]  ; GPIOF_CRL
00003c  f8c12c00          STR      r2,[r1,#0xc00]
;;;462      GPIOF->CRH = GPIOF_CRH; 
000040  6b02              LDR      r2,[r0,#0x30]  ; GPIOF_CRH
000042  f8c12c04          STR      r2,[r1,#0xc04]
;;;463    
;;;464      GPIOG->CRL = GPIOG_CRL;
000046  4906              LDR      r1,|L3.96|
000048  6b42              LDR      r2,[r0,#0x34]  ; GPIOG_CRL
00004a  600a              STR      r2,[r1,#0]
;;;465      GPIOG->CRH = GPIOG_CRH;   
00004c  6b80              LDR      r0,[r0,#0x38]  ; GPIOG_CRH
00004e  6048              STR      r0,[r1,#4]
;;;466    }
000050  4770              BX       lr
;;;467    
                          ENDP

000052  0000              DCW      0x0000
                  |L3.84|
000054  00000000          DCD      ||.data||
                  |L3.88|
000058  40010800          DCD      0x40010800
                  |L3.92|
00005c  40011000          DCD      0x40011000
                  |L3.96|
000060  40012000          DCD      0x40012000

                          AREA ||i.GPIO_SaveConfig||, CODE, READONLY, ALIGN=2

                  GPIO_SaveConfig PROC
;;;400    static void GPIO_SaveConfig(void)
;;;401    {
000000  b538              PUSH     {r3-r5,lr}
000002  4926              LDR      r1,|L4.156|
;;;402      GPIO_InitTypeDef GPIO_InitStructure;
;;;403      
;;;404      GPIOA_CRL = GPIOA->CRL;
000004  680a              LDR      r2,[r1,#0]
000006  4826              LDR      r0,|L4.160|
;;;405      GPIOA_CRH = GPIOA->CRH;
000008  6042              STR      r2,[r0,#4]  ; GPIOA_CRL
00000a  684a              LDR      r2,[r1,#4]
;;;406      
;;;407      GPIOB_CRL = GPIOB->CRL;
00000c  6082              STR      r2,[r0,#8]  ; GPIOA_CRH
00000e  f8d12400          LDR      r2,[r1,#0x400]
;;;408      GPIOB_CRH = GPIOB->CRH;
000012  60c2              STR      r2,[r0,#0xc]  ; GPIOB_CRL
000014  f8d11404          LDR      r1,[r1,#0x404]
;;;409      
;;;410      GPIOC_CRL = GPIOC->CRL;
000018  4c22              LDR      r4,|L4.164|
00001a  6101              STR      r1,[r0,#0x10]  ; GPIOB_CRH
00001c  6821              LDR      r1,[r4,#0]
;;;411      GPIOC_CRH = GPIOC->CRH;
00001e  6141              STR      r1,[r0,#0x14]  ; GPIOC_CRL
000020  6861              LDR      r1,[r4,#4]
;;;412      
;;;413      GPIOD_CRL = GPIOD->CRL;
000022  6181              STR      r1,[r0,#0x18]  ; GPIOC_CRH
000024  f8d41400          LDR      r1,[r4,#0x400]
;;;414      GPIOD_CRH = GPIOD->CRH;
000028  61c1              STR      r1,[r0,#0x1c]  ; GPIOD_CRL
00002a  f8d41404          LDR      r1,[r4,#0x404]
;;;415      
;;;416      GPIOE_CRL = GPIOE->CRL;
00002e  6201              STR      r1,[r0,#0x20]  ; GPIOD_CRH
000030  f8d41800          LDR      r1,[r4,#0x800]
;;;417      GPIOE_CRH = GPIOE->CRH;
000034  6241              STR      r1,[r0,#0x24]  ; GPIOE_CRL
000036  f8d41804          LDR      r1,[r4,#0x804]
;;;418    
;;;419      GPIOF_CRL = GPIOF->CRL;
00003a  6281              STR      r1,[r0,#0x28]  ; GPIOE_CRH
00003c  f8d41c00          LDR      r1,[r4,#0xc00]
;;;420      GPIOF_CRH = GPIOF->CRH;
000040  62c1              STR      r1,[r0,#0x2c]  ; GPIOF_CRL
000042  f8d41c04          LDR      r1,[r4,#0xc04]
;;;421    
;;;422      GPIOG_CRL = GPIOG->CRL;
000046  4d18              LDR      r5,|L4.168|
000048  6301              STR      r1,[r0,#0x30]  ; GPIOF_CRH
00004a  6829              LDR      r1,[r5,#0]
;;;423      GPIOG_CRH = GPIOG->CRH;
00004c  6341              STR      r1,[r0,#0x34]  ; GPIOG_CRL
00004e  6869              LDR      r1,[r5,#4]
;;;424      
;;;425      /* Configure all GPIO port pins in Analog Input mode (floating input trigger OFF) */
;;;426      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
000050  6381              STR      r1,[r0,#0x38]  ; GPIOG_CRH
000052  f64f70ff          MOV      r0,#0xffff
000056  f8ad0000          STRH     r0,[sp,#0]
;;;427      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
00005a  2000              MOVS     r0,#0
00005c  f88d0003          STRB     r0,[sp,#3]
;;;428      GPIO_Init(GPIOA, &GPIO_InitStructure);
000060  4669              MOV      r1,sp
000062  480e              LDR      r0,|L4.156|
000064  f7fffffe          BL       GPIO_Init
;;;429      GPIO_Init(GPIOB, &GPIO_InitStructure);
000068  4669              MOV      r1,sp
00006a  4810              LDR      r0,|L4.172|
00006c  f7fffffe          BL       GPIO_Init
;;;430      GPIO_Init(GPIOC, &GPIO_InitStructure);
000070  4669              MOV      r1,sp
000072  4620              MOV      r0,r4
000074  f7fffffe          BL       GPIO_Init
;;;431      GPIO_Init(GPIOD, &GPIO_InitStructure);
000078  4669              MOV      r1,sp
00007a  480d              LDR      r0,|L4.176|
00007c  f7fffffe          BL       GPIO_Init
;;;432      GPIO_Init(GPIOE, &GPIO_InitStructure);  
000080  4669              MOV      r1,sp
000082  480c              LDR      r0,|L4.180|
000084  f7fffffe          BL       GPIO_Init
;;;433      GPIO_Init(GPIOF, &GPIO_InitStructure);
000088  4669              MOV      r1,sp
00008a  480b              LDR      r0,|L4.184|
00008c  f7fffffe          BL       GPIO_Init
;;;434      GPIO_Init(GPIOG, &GPIO_InitStructure);
000090  4669              MOV      r1,sp
000092  4628              MOV      r0,r5
000094  f7fffffe          BL       GPIO_Init
;;;435    }
000098  bd38              POP      {r3-r5,pc}
;;;436    
                          ENDP

00009a  0000              DCW      0x0000
                  |L4.156|
00009c  40010800          DCD      0x40010800
                  |L4.160|
0000a0  00000000          DCD      ||.data||
                  |L4.164|
0000a4  40011000          DCD      0x40011000
                  |L4.168|
0000a8  40012000          DCD      0x40012000
                  |L4.172|
0000ac  40010c00          DCD      0x40010c00
                  |L4.176|
0000b0  40011400          DCD      0x40011400
                  |L4.180|
0000b4  40011800          DCD      0x40011800
                  |L4.184|
0000b8  40011c00          DCD      0x40011c00

                          AREA ||i.EnterSTOPMode_EXTI||, CODE, READONLY, ALIGN=2

                  EnterSTOPMode_EXTI PROC
;;;99     void EnterSTOPMode_EXTI(void)
;;;100    {
000000  e92d4ffe          PUSH     {r1-r11,lr}
;;;101      NVIC_InitTypeDef NVIC_InitStructure;
;;;102      EXTI_InitTypeDef EXTI_InitStructure;
;;;103      
;;;104      STOPModeStatus = 0;
000004  4f47              LDR      r7,|L5.292|
000006  2500              MOVS     r5,#0
000008  603d              STR      r5,[r7,#0]  ; STOPModeStatus
;;;105    
;;;106      /* Clear the LCD */
;;;107      LCD_Clear(White);
00000a  f64f76ff          MOV      r6,#0xffff
00000e  4630              MOV      r0,r6
000010  f7fffffe          BL       LCD_Clear
;;;108      
;;;109      /* Set the LCD Back Color */
;;;110      LCD_SetBackColor(Blue);
000014  201f              MOVS     r0,#0x1f
000016  f7fffffe          BL       LCD_SetBackColor
;;;111    
;;;112      /* Set the LCD Text Color */
;;;113      LCD_SetTextColor(White);
00001a  4630              MOV      r0,r6
00001c  f7fffffe          BL       LCD_SetTextColor
;;;114    
;;;115      /* Disable the JoyStick interrupts */
;;;116      IntExtOnOffConfig(DISABLE);
000020  2000              MOVS     r0,#0
000022  f7fffffe          BL       IntExtOnOffConfig
;;;117    
;;;118      while(ReadKey() != NOKEY)
000026  bf00              NOP      
                  |L5.40|
000028  f7fffffe          BL       ReadKey
00002c  2800              CMP      r0,#0
00002e  d1fb              BNE      |L5.40|
;;;119      {
;;;120      }
;;;121    
;;;122      /* Configure the EXTI Line 8 */
;;;123      EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
000030  f88d5004          STRB     r5,[sp,#4]
;;;124      EXTI_InitStructure.EXTI_Line = EXTI_Line8;
;;;125      EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
000034  f04f0a0c          MOV      r10,#0xc
000038  f44f7980          MOV      r9,#0x100             ;124
00003c  f88da005          STRB     r10,[sp,#5]
;;;126      EXTI_InitStructure.EXTI_LineCmd = ENABLE;
000040  2401              MOVS     r4,#1
000042  f8cd9000          STR      r9,[sp,#0]            ;125
000046  f88d4006          STRB     r4,[sp,#6]
;;;127      EXTI_Init(&EXTI_InitStructure);
00004a  4668              MOV      r0,sp
00004c  f7fffffe          BL       EXTI_Init
;;;128    
;;;129      /* Enable the EXTI0 Interrupt */
;;;130      NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQChannel;
000050  f04f0817          MOV      r8,#0x17
000054  f88d8008          STRB     r8,[sp,#8]
;;;131      NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
000058  f88d4009          STRB     r4,[sp,#9]
;;;132      NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
00005c  f88d400a          STRB     r4,[sp,#0xa]
;;;133      NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
000060  f88d400b          STRB     r4,[sp,#0xb]
;;;134      NVIC_Init(&NVIC_InitStructure);
000064  a802              ADD      r0,sp,#8
000066  f7fffffe          BL       NVIC_Init
;;;135    
;;;136      LCD_DisplayStringLine(Line4, "  MCU in STOP Mode  "); 
00006a  a12f              ADR      r1,|L5.296|
00006c  2060              MOVS     r0,#0x60

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -