123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588 |
- ARM GAS /tmp/ccwdC0Nl.s page 1
- 1 .cpu cortex-m4
- 2 .eabi_attribute 27, 1
- 3 .eabi_attribute 28, 1
- 4 .eabi_attribute 20, 1
- 5 .eabi_attribute 21, 1
- 6 .eabi_attribute 23, 3
- 7 .eabi_attribute 24, 1
- 8 .eabi_attribute 25, 1
- 9 .eabi_attribute 26, 1
- 10 .eabi_attribute 30, 1
- 11 .eabi_attribute 34, 1
- 12 .eabi_attribute 18, 4
- 13 .file "system_stm32f4xx.c"
- 14 .text
- 15 .Ltext0:
- 16 .cfi_sections .debug_frame
- 17 .section .text.SystemInit,"ax",%progbits
- 18 .align 1
- 19 .global SystemInit
- 20 .syntax unified
- 21 .thumb
- 22 .thumb_func
- 23 .fpu fpv4-sp-d16
- 25 SystemInit:
- 26 .LFB130:
- 27 .file 1 "Src/system_stm32f4xx.c"
- 1:Src/system_stm32f4xx.c **** /**
- 2:Src/system_stm32f4xx.c **** ******************************************************************************
- 3:Src/system_stm32f4xx.c **** * @file system_stm32f4xx.c
- 4:Src/system_stm32f4xx.c **** * @author MCD Application Team
- 5:Src/system_stm32f4xx.c **** * @brief CMSIS Cortex-M4 Device Peripheral Access Layer System Source File.
- 6:Src/system_stm32f4xx.c **** *
- 7:Src/system_stm32f4xx.c **** * This file provides two functions and one global variable to be called from
- 8:Src/system_stm32f4xx.c **** * user application:
- 9:Src/system_stm32f4xx.c **** * - SystemInit(): This function is called at startup just after reset and
- 10:Src/system_stm32f4xx.c **** * before branch to main program. This call is made inside
- 11:Src/system_stm32f4xx.c **** * the "startup_stm32f4xx.s" file.
- 12:Src/system_stm32f4xx.c **** *
- 13:Src/system_stm32f4xx.c **** * - SystemCoreClock variable: Contains the core clock (HCLK), it can be used
- 14:Src/system_stm32f4xx.c **** * by the user application to setup the SysTick
- 15:Src/system_stm32f4xx.c **** * timer or configure other parameters.
- 16:Src/system_stm32f4xx.c **** *
- 17:Src/system_stm32f4xx.c **** * - SystemCoreClockUpdate(): Updates the variable SystemCoreClock and must
- 18:Src/system_stm32f4xx.c **** * be called whenever the core clock is changed
- 19:Src/system_stm32f4xx.c **** * during program execution.
- 20:Src/system_stm32f4xx.c **** *
- 21:Src/system_stm32f4xx.c **** *
- 22:Src/system_stm32f4xx.c **** ******************************************************************************
- 23:Src/system_stm32f4xx.c **** * @attention
- 24:Src/system_stm32f4xx.c **** *
- 25:Src/system_stm32f4xx.c **** * <h2><center>© COPYRIGHT 2017 STMicroelectronics</center></h2>
- 26:Src/system_stm32f4xx.c **** *
- 27:Src/system_stm32f4xx.c **** * Redistribution and use in source and binary forms, with or without modification,
- 28:Src/system_stm32f4xx.c **** * are permitted provided that the following conditions are met:
- 29:Src/system_stm32f4xx.c **** * 1. Redistributions of source code must retain the above copyright notice,
- 30:Src/system_stm32f4xx.c **** * this list of conditions and the following disclaimer.
- 31:Src/system_stm32f4xx.c **** * 2. Redistributions in binary form must reproduce the above copyright notice,
- ARM GAS /tmp/ccwdC0Nl.s page 2
- 32:Src/system_stm32f4xx.c **** * this list of conditions and the following disclaimer in the documentation
- 33:Src/system_stm32f4xx.c **** * and/or other materials provided with the distribution.
- 34:Src/system_stm32f4xx.c **** * 3. Neither the name of STMicroelectronics nor the names of its contributors
- 35:Src/system_stm32f4xx.c **** * may be used to endorse or promote products derived from this software
- 36:Src/system_stm32f4xx.c **** * without specific prior written permission.
- 37:Src/system_stm32f4xx.c **** *
- 38:Src/system_stm32f4xx.c **** * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- 39:Src/system_stm32f4xx.c **** * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- 40:Src/system_stm32f4xx.c **** * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- 41:Src/system_stm32f4xx.c **** * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- 42:Src/system_stm32f4xx.c **** * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- 43:Src/system_stm32f4xx.c **** * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- 44:Src/system_stm32f4xx.c **** * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- 45:Src/system_stm32f4xx.c **** * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- 46:Src/system_stm32f4xx.c **** * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- 47:Src/system_stm32f4xx.c **** * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- 48:Src/system_stm32f4xx.c **** *
- 49:Src/system_stm32f4xx.c **** ******************************************************************************
- 50:Src/system_stm32f4xx.c **** */
- 51:Src/system_stm32f4xx.c ****
- 52:Src/system_stm32f4xx.c **** /** @addtogroup CMSIS
- 53:Src/system_stm32f4xx.c **** * @{
- 54:Src/system_stm32f4xx.c **** */
- 55:Src/system_stm32f4xx.c ****
- 56:Src/system_stm32f4xx.c **** /** @addtogroup stm32f4xx_system
- 57:Src/system_stm32f4xx.c **** * @{
- 58:Src/system_stm32f4xx.c **** */
- 59:Src/system_stm32f4xx.c ****
- 60:Src/system_stm32f4xx.c **** /** @addtogroup STM32F4xx_System_Private_Includes
- 61:Src/system_stm32f4xx.c **** * @{
- 62:Src/system_stm32f4xx.c **** */
- 63:Src/system_stm32f4xx.c ****
- 64:Src/system_stm32f4xx.c ****
- 65:Src/system_stm32f4xx.c **** #include "stm32f4xx.h"
- 66:Src/system_stm32f4xx.c ****
- 67:Src/system_stm32f4xx.c **** #if !defined (HSE_VALUE)
- 68:Src/system_stm32f4xx.c **** #define HSE_VALUE ((uint32_t)25000000) /*!< Default value of the External oscillator in Hz */
- 69:Src/system_stm32f4xx.c **** #endif /* HSE_VALUE */
- 70:Src/system_stm32f4xx.c ****
- 71:Src/system_stm32f4xx.c **** #if !defined (HSI_VALUE)
- 72:Src/system_stm32f4xx.c **** #define HSI_VALUE ((uint32_t)16000000) /*!< Value of the Internal oscillator in Hz*/
- 73:Src/system_stm32f4xx.c **** #endif /* HSI_VALUE */
- 74:Src/system_stm32f4xx.c ****
- 75:Src/system_stm32f4xx.c **** /**
- 76:Src/system_stm32f4xx.c **** * @}
- 77:Src/system_stm32f4xx.c **** */
- 78:Src/system_stm32f4xx.c ****
- 79:Src/system_stm32f4xx.c **** /** @addtogroup STM32F4xx_System_Private_TypesDefinitions
- 80:Src/system_stm32f4xx.c **** * @{
- 81:Src/system_stm32f4xx.c **** */
- 82:Src/system_stm32f4xx.c ****
- 83:Src/system_stm32f4xx.c **** /**
- 84:Src/system_stm32f4xx.c **** * @}
- 85:Src/system_stm32f4xx.c **** */
- 86:Src/system_stm32f4xx.c ****
- 87:Src/system_stm32f4xx.c **** /** @addtogroup STM32F4xx_System_Private_Defines
- 88:Src/system_stm32f4xx.c **** * @{
- ARM GAS /tmp/ccwdC0Nl.s page 3
- 89:Src/system_stm32f4xx.c **** */
- 90:Src/system_stm32f4xx.c ****
- 91:Src/system_stm32f4xx.c **** /************************* Miscellaneous Configuration ************************/
- 92:Src/system_stm32f4xx.c **** /*!< Uncomment the following line if you need to use external SRAM or SDRAM as data memory */
- 93:Src/system_stm32f4xx.c **** #if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx)\
- 94:Src/system_stm32f4xx.c **** || defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\
- 95:Src/system_stm32f4xx.c **** || defined(STM32F469xx) || defined(STM32F479xx) || defined(STM32F412Zx) || defined(STM32F412Vx)
- 96:Src/system_stm32f4xx.c **** /* #define DATA_IN_ExtSRAM */
- 97:Src/system_stm32f4xx.c **** #endif /* STM32F40xxx || STM32F41xxx || STM32F42xxx || STM32F43xxx || STM32F469xx || STM32F479xx ||
- 98:Src/system_stm32f4xx.c **** STM32F412Zx || STM32F412Vx */
- 99:Src/system_stm32f4xx.c ****
- 100:Src/system_stm32f4xx.c **** #if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\
- 101:Src/system_stm32f4xx.c **** || defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
- 102:Src/system_stm32f4xx.c **** /* #define DATA_IN_ExtSDRAM */
- 103:Src/system_stm32f4xx.c **** #endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx ||
- 104:Src/system_stm32f4xx.c **** STM32F479xx */
- 105:Src/system_stm32f4xx.c ****
- 106:Src/system_stm32f4xx.c **** /*!< Uncomment the following line if you need to relocate your vector Table in
- 107:Src/system_stm32f4xx.c **** Internal SRAM. */
- 108:Src/system_stm32f4xx.c **** /* #define VECT_TAB_SRAM */
- 109:Src/system_stm32f4xx.c **** #define VECT_TAB_OFFSET 0x00 /*!< Vector Table base offset field.
- 110:Src/system_stm32f4xx.c **** This value must be a multiple of 0x200. */
- 111:Src/system_stm32f4xx.c **** /******************************************************************************/
- 112:Src/system_stm32f4xx.c ****
- 113:Src/system_stm32f4xx.c **** /**
- 114:Src/system_stm32f4xx.c **** * @}
- 115:Src/system_stm32f4xx.c **** */
- 116:Src/system_stm32f4xx.c ****
- 117:Src/system_stm32f4xx.c **** /** @addtogroup STM32F4xx_System_Private_Macros
- 118:Src/system_stm32f4xx.c **** * @{
- 119:Src/system_stm32f4xx.c **** */
- 120:Src/system_stm32f4xx.c ****
- 121:Src/system_stm32f4xx.c **** /**
- 122:Src/system_stm32f4xx.c **** * @}
- 123:Src/system_stm32f4xx.c **** */
- 124:Src/system_stm32f4xx.c ****
- 125:Src/system_stm32f4xx.c **** /** @addtogroup STM32F4xx_System_Private_Variables
- 126:Src/system_stm32f4xx.c **** * @{
- 127:Src/system_stm32f4xx.c **** */
- 128:Src/system_stm32f4xx.c **** /* This variable is updated in three ways:
- 129:Src/system_stm32f4xx.c **** 1) by calling CMSIS function SystemCoreClockUpdate()
- 130:Src/system_stm32f4xx.c **** 2) by calling HAL API function HAL_RCC_GetHCLKFreq()
- 131:Src/system_stm32f4xx.c **** 3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency
- 132:Src/system_stm32f4xx.c **** Note: If you use this function to configure the system clock; then there
- 133:Src/system_stm32f4xx.c **** is no need to call the 2 first functions listed above, since SystemCoreClock
- 134:Src/system_stm32f4xx.c **** variable is updated automatically.
- 135:Src/system_stm32f4xx.c **** */
- 136:Src/system_stm32f4xx.c **** uint32_t SystemCoreClock = 16000000;
- 137:Src/system_stm32f4xx.c **** const uint8_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9};
- 138:Src/system_stm32f4xx.c **** const uint8_t APBPrescTable[8] = {0, 0, 0, 0, 1, 2, 3, 4};
- 139:Src/system_stm32f4xx.c **** /**
- 140:Src/system_stm32f4xx.c **** * @}
- 141:Src/system_stm32f4xx.c **** */
- 142:Src/system_stm32f4xx.c ****
- 143:Src/system_stm32f4xx.c **** /** @addtogroup STM32F4xx_System_Private_FunctionPrototypes
- 144:Src/system_stm32f4xx.c **** * @{
- 145:Src/system_stm32f4xx.c **** */
- ARM GAS /tmp/ccwdC0Nl.s page 4
- 146:Src/system_stm32f4xx.c ****
- 147:Src/system_stm32f4xx.c **** #if defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM)
- 148:Src/system_stm32f4xx.c **** static void SystemInit_ExtMemCtl(void);
- 149:Src/system_stm32f4xx.c **** #endif /* DATA_IN_ExtSRAM || DATA_IN_ExtSDRAM */
- 150:Src/system_stm32f4xx.c ****
- 151:Src/system_stm32f4xx.c **** /**
- 152:Src/system_stm32f4xx.c **** * @}
- 153:Src/system_stm32f4xx.c **** */
- 154:Src/system_stm32f4xx.c ****
- 155:Src/system_stm32f4xx.c **** /** @addtogroup STM32F4xx_System_Private_Functions
- 156:Src/system_stm32f4xx.c **** * @{
- 157:Src/system_stm32f4xx.c **** */
- 158:Src/system_stm32f4xx.c ****
- 159:Src/system_stm32f4xx.c **** /**
- 160:Src/system_stm32f4xx.c **** * @brief Setup the microcontroller system
- 161:Src/system_stm32f4xx.c **** * Initialize the FPU setting, vector table location and External memory
- 162:Src/system_stm32f4xx.c **** * configuration.
- 163:Src/system_stm32f4xx.c **** * @param None
- 164:Src/system_stm32f4xx.c **** * @retval None
- 165:Src/system_stm32f4xx.c **** */
- 166:Src/system_stm32f4xx.c **** void SystemInit(void)
- 167:Src/system_stm32f4xx.c **** {
- 28 .loc 1 167 0
- 29 .cfi_startproc
- 30 @ args = 0, pretend = 0, frame = 0
- 31 @ frame_needed = 0, uses_anonymous_args = 0
- 32 @ link register save eliminated.
- 168:Src/system_stm32f4xx.c **** /* FPU settings ------------------------------------------------------------*/
- 169:Src/system_stm32f4xx.c **** #if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
- 170:Src/system_stm32f4xx.c **** SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */
- 33 .loc 1 170 0
- 34 0000 0F49 ldr r1, .L2
- 35 0002 D1F88830 ldr r3, [r1, #136]
- 36 0006 43F47003 orr r3, r3, #15728640
- 37 000a C1F88830 str r3, [r1, #136]
- 171:Src/system_stm32f4xx.c **** #endif
- 172:Src/system_stm32f4xx.c **** /* Reset the RCC clock configuration to the default reset state ------------*/
- 173:Src/system_stm32f4xx.c **** /* Set HSION bit */
- 174:Src/system_stm32f4xx.c **** RCC->CR |= (uint32_t)0x00000001;
- 38 .loc 1 174 0
- 39 000e 0D4B ldr r3, .L2+4
- 40 0010 1A68 ldr r2, [r3]
- 41 0012 42F00102 orr r2, r2, #1
- 42 0016 1A60 str r2, [r3]
- 175:Src/system_stm32f4xx.c ****
- 176:Src/system_stm32f4xx.c **** /* Reset CFGR register */
- 177:Src/system_stm32f4xx.c **** RCC->CFGR = 0x00000000;
- 43 .loc 1 177 0
- 44 0018 0020 movs r0, #0
- 45 001a 9860 str r0, [r3, #8]
- 178:Src/system_stm32f4xx.c ****
- 179:Src/system_stm32f4xx.c **** /* Reset HSEON, CSSON and PLLON bits */
- 180:Src/system_stm32f4xx.c **** RCC->CR &= (uint32_t)0xFEF6FFFF;
- 46 .loc 1 180 0
- 47 001c 1A68 ldr r2, [r3]
- 48 001e 22F08472 bic r2, r2, #17301504
- 49 0022 22F48032 bic r2, r2, #65536
- ARM GAS /tmp/ccwdC0Nl.s page 5
- 50 0026 1A60 str r2, [r3]
- 181:Src/system_stm32f4xx.c ****
- 182:Src/system_stm32f4xx.c **** /* Reset PLLCFGR register */
- 183:Src/system_stm32f4xx.c **** RCC->PLLCFGR = 0x24003010;
- 51 .loc 1 183 0
- 52 0028 074A ldr r2, .L2+8
- 53 002a 5A60 str r2, [r3, #4]
- 184:Src/system_stm32f4xx.c ****
- 185:Src/system_stm32f4xx.c **** /* Reset HSEBYP bit */
- 186:Src/system_stm32f4xx.c **** RCC->CR &= (uint32_t)0xFFFBFFFF;
- 54 .loc 1 186 0
- 55 002c 1A68 ldr r2, [r3]
- 56 002e 22F48022 bic r2, r2, #262144
- 57 0032 1A60 str r2, [r3]
- 187:Src/system_stm32f4xx.c ****
- 188:Src/system_stm32f4xx.c **** /* Disable all interrupts */
- 189:Src/system_stm32f4xx.c **** RCC->CIR = 0x00000000;
- 58 .loc 1 189 0
- 59 0034 D860 str r0, [r3, #12]
- 190:Src/system_stm32f4xx.c ****
- 191:Src/system_stm32f4xx.c **** #if defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM)
- 192:Src/system_stm32f4xx.c **** SystemInit_ExtMemCtl();
- 193:Src/system_stm32f4xx.c **** #endif /* DATA_IN_ExtSRAM || DATA_IN_ExtSDRAM */
- 194:Src/system_stm32f4xx.c ****
- 195:Src/system_stm32f4xx.c **** /* Configure the Vector Table location add offset address ------------------*/
- 196:Src/system_stm32f4xx.c **** #ifdef VECT_TAB_SRAM
- 197:Src/system_stm32f4xx.c **** SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */
- 198:Src/system_stm32f4xx.c **** #else
- 199:Src/system_stm32f4xx.c **** SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH */
- 60 .loc 1 199 0
- 61 0036 4FF00063 mov r3, #134217728
- 62 003a 8B60 str r3, [r1, #8]
- 63 003c 7047 bx lr
- 64 .L3:
- 65 003e 00BF .align 2
- 66 .L2:
- 67 0040 00ED00E0 .word -536810240
- 68 0044 00380240 .word 1073887232
- 69 0048 10300024 .word 603992080
- 70 .cfi_endproc
- 71 .LFE130:
- 73 .section .text.SystemCoreClockUpdate,"ax",%progbits
- 74 .align 1
- 75 .global SystemCoreClockUpdate
- 76 .syntax unified
- 77 .thumb
- 78 .thumb_func
- 79 .fpu fpv4-sp-d16
- 81 SystemCoreClockUpdate:
- 82 .LFB131:
- 200:Src/system_stm32f4xx.c **** #endif
- 201:Src/system_stm32f4xx.c **** }
- 202:Src/system_stm32f4xx.c ****
- 203:Src/system_stm32f4xx.c **** /**
- 204:Src/system_stm32f4xx.c **** * @brief Update SystemCoreClock variable according to Clock Register Values.
- 205:Src/system_stm32f4xx.c **** * The SystemCoreClock variable contains the core clock (HCLK), it can
- 206:Src/system_stm32f4xx.c **** * be used by the user application to setup the SysTick timer or configure
- ARM GAS /tmp/ccwdC0Nl.s page 6
- 207:Src/system_stm32f4xx.c **** * other parameters.
- 208:Src/system_stm32f4xx.c **** *
- 209:Src/system_stm32f4xx.c **** * @note Each time the core clock (HCLK) changes, this function must be called
- 210:Src/system_stm32f4xx.c **** * to update SystemCoreClock variable value. Otherwise, any configuration
- 211:Src/system_stm32f4xx.c **** * based on this variable will be incorrect.
- 212:Src/system_stm32f4xx.c **** *
- 213:Src/system_stm32f4xx.c **** * @note - The system frequency computed by this function is not the real
- 214:Src/system_stm32f4xx.c **** * frequency in the chip. It is calculated based on the predefined
- 215:Src/system_stm32f4xx.c **** * constant and the selected clock source:
- 216:Src/system_stm32f4xx.c **** *
- 217:Src/system_stm32f4xx.c **** * - If SYSCLK source is HSI, SystemCoreClock will contain the HSI_VALUE(*)
- 218:Src/system_stm32f4xx.c **** *
- 219:Src/system_stm32f4xx.c **** * - If SYSCLK source is HSE, SystemCoreClock will contain the HSE_VALUE(**)
- 220:Src/system_stm32f4xx.c **** *
- 221:Src/system_stm32f4xx.c **** * - If SYSCLK source is PLL, SystemCoreClock will contain the HSE_VALUE(**)
- 222:Src/system_stm32f4xx.c **** * or HSI_VALUE(*) multiplied/divided by the PLL factors.
- 223:Src/system_stm32f4xx.c **** *
- 224:Src/system_stm32f4xx.c **** * (*) HSI_VALUE is a constant defined in stm32f4xx_hal_conf.h file (default value
- 225:Src/system_stm32f4xx.c **** * 16 MHz) but the real value may vary depending on the variations
- 226:Src/system_stm32f4xx.c **** * in voltage and temperature.
- 227:Src/system_stm32f4xx.c **** *
- 228:Src/system_stm32f4xx.c **** * (**) HSE_VALUE is a constant defined in stm32f4xx_hal_conf.h file (its value
- 229:Src/system_stm32f4xx.c **** * depends on the application requirements), user has to ensure that HSE_VALUE
- 230:Src/system_stm32f4xx.c **** * is same as the real frequency of the crystal used. Otherwise, this function
- 231:Src/system_stm32f4xx.c **** * may have wrong result.
- 232:Src/system_stm32f4xx.c **** *
- 233:Src/system_stm32f4xx.c **** * - The result of this function could be not correct when using fractional
- 234:Src/system_stm32f4xx.c **** * value for HSE crystal.
- 235:Src/system_stm32f4xx.c **** *
- 236:Src/system_stm32f4xx.c **** * @param None
- 237:Src/system_stm32f4xx.c **** * @retval None
- 238:Src/system_stm32f4xx.c **** */
- 239:Src/system_stm32f4xx.c **** void SystemCoreClockUpdate(void)
- 240:Src/system_stm32f4xx.c **** {
- 83 .loc 1 240 0
- 84 .cfi_startproc
- 85 @ args = 0, pretend = 0, frame = 0
- 86 @ frame_needed = 0, uses_anonymous_args = 0
- 87 @ link register save eliminated.
- 88 .LVL0:
- 241:Src/system_stm32f4xx.c **** uint32_t tmp = 0, pllvco = 0, pllp = 2, pllsource = 0, pllm = 2;
- 242:Src/system_stm32f4xx.c ****
- 243:Src/system_stm32f4xx.c **** /* Get SYSCLK source -------------------------------------------------------*/
- 244:Src/system_stm32f4xx.c **** tmp = RCC->CFGR & RCC_CFGR_SWS;
- 89 .loc 1 244 0
- 90 0000 224B ldr r3, .L14
- 91 0002 9B68 ldr r3, [r3, #8]
- 92 0004 03F00C03 and r3, r3, #12
- 93 .LVL1:
- 245:Src/system_stm32f4xx.c ****
- 246:Src/system_stm32f4xx.c **** switch (tmp)
- 94 .loc 1 246 0
- 95 0008 042B cmp r3, #4
- 96 000a 14D0 beq .L6
- 97 000c 082B cmp r3, #8
- 98 000e 16D0 beq .L7
- 99 0010 1BB1 cbz r3, .L13
- ARM GAS /tmp/ccwdC0Nl.s page 7
- 247:Src/system_stm32f4xx.c **** {
- 248:Src/system_stm32f4xx.c **** case 0x00: /* HSI used as system clock source */
- 249:Src/system_stm32f4xx.c **** SystemCoreClock = HSI_VALUE;
- 250:Src/system_stm32f4xx.c **** break;
- 251:Src/system_stm32f4xx.c **** case 0x04: /* HSE used as system clock source */
- 252:Src/system_stm32f4xx.c **** SystemCoreClock = HSE_VALUE;
- 253:Src/system_stm32f4xx.c **** break;
- 254:Src/system_stm32f4xx.c **** case 0x08: /* PLL used as system clock source */
- 255:Src/system_stm32f4xx.c ****
- 256:Src/system_stm32f4xx.c **** /* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N
- 257:Src/system_stm32f4xx.c **** SYSCLK = PLL_VCO / PLL_P
- 258:Src/system_stm32f4xx.c **** */
- 259:Src/system_stm32f4xx.c **** pllsource = (RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) >> 22;
- 260:Src/system_stm32f4xx.c **** pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM;
- 261:Src/system_stm32f4xx.c ****
- 262:Src/system_stm32f4xx.c **** if (pllsource != 0)
- 263:Src/system_stm32f4xx.c **** {
- 264:Src/system_stm32f4xx.c **** /* HSE used as PLL clock source */
- 265:Src/system_stm32f4xx.c **** pllvco = (HSE_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6);
- 266:Src/system_stm32f4xx.c **** }
- 267:Src/system_stm32f4xx.c **** else
- 268:Src/system_stm32f4xx.c **** {
- 269:Src/system_stm32f4xx.c **** /* HSI used as PLL clock source */
- 270:Src/system_stm32f4xx.c **** pllvco = (HSI_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6);
- 271:Src/system_stm32f4xx.c **** }
- 272:Src/system_stm32f4xx.c ****
- 273:Src/system_stm32f4xx.c **** pllp = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >>16) + 1 ) *2;
- 274:Src/system_stm32f4xx.c **** SystemCoreClock = pllvco/pllp;
- 275:Src/system_stm32f4xx.c **** break;
- 276:Src/system_stm32f4xx.c **** default:
- 277:Src/system_stm32f4xx.c **** SystemCoreClock = HSI_VALUE;
- 100 .loc 1 277 0
- 101 0012 1F4A ldr r2, .L14+4
- 102 0014 1F4B ldr r3, .L14+8
- 103 .LVL2:
- 104 0016 1A60 str r2, [r3]
- 278:Src/system_stm32f4xx.c **** break;
- 105 .loc 1 278 0
- 106 0018 02E0 b .L9
- 107 .LVL3:
- 108 .L13:
- 249:Src/system_stm32f4xx.c **** break;
- 109 .loc 1 249 0
- 110 001a 1D4A ldr r2, .L14+4
- 111 001c 1D4B ldr r3, .L14+8
- 112 .LVL4:
- 113 001e 1A60 str r2, [r3]
- 114 .LVL5:
- 115 .L9:
- 279:Src/system_stm32f4xx.c **** }
- 280:Src/system_stm32f4xx.c **** /* Compute HCLK frequency --------------------------------------------------*/
- 281:Src/system_stm32f4xx.c **** /* Get HCLK prescaler */
- 282:Src/system_stm32f4xx.c **** tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> 4)];
- 116 .loc 1 282 0
- 117 0020 1A4B ldr r3, .L14
- 118 0022 9B68 ldr r3, [r3, #8]
- 119 0024 C3F30313 ubfx r3, r3, #4, #4
- ARM GAS /tmp/ccwdC0Nl.s page 8
- 120 0028 1B4A ldr r2, .L14+12
- 121 002a D15C ldrb r1, [r2, r3] @ zero_extendqisi2
- 122 .LVL6:
- 283:Src/system_stm32f4xx.c **** /* HCLK frequency */
- 284:Src/system_stm32f4xx.c **** SystemCoreClock >>= tmp;
- 123 .loc 1 284 0
- 124 002c 194A ldr r2, .L14+8
- 125 002e 1368 ldr r3, [r2]
- 126 0030 CB40 lsrs r3, r3, r1
- 127 0032 1360 str r3, [r2]
- 128 0034 7047 bx lr
- 129 .LVL7:
- 130 .L6:
- 252:Src/system_stm32f4xx.c **** break;
- 131 .loc 1 252 0
- 132 0036 194A ldr r2, .L14+16
- 133 0038 164B ldr r3, .L14+8
- 134 .LVL8:
- 135 003a 1A60 str r2, [r3]
- 253:Src/system_stm32f4xx.c **** case 0x08: /* PLL used as system clock source */
- 136 .loc 1 253 0
- 137 003c F0E7 b .L9
- 138 .LVL9:
- 139 .L7:
- 259:Src/system_stm32f4xx.c **** pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM;
- 140 .loc 1 259 0
- 141 003e 134B ldr r3, .L14
- 142 .LVL10:
- 143 0040 5A68 ldr r2, [r3, #4]
- 144 .LVL11:
- 260:Src/system_stm32f4xx.c ****
- 145 .loc 1 260 0
- 146 0042 5B68 ldr r3, [r3, #4]
- 147 0044 03F03F03 and r3, r3, #63
- 148 .LVL12:
- 262:Src/system_stm32f4xx.c **** {
- 149 .loc 1 262 0
- 150 0048 12F4800F tst r2, #4194304
- 151 004c 13D0 beq .L10
- 265:Src/system_stm32f4xx.c **** }
- 152 .loc 1 265 0
- 153 004e 134A ldr r2, .L14+16
- 154 .LVL13:
- 155 0050 B2FBF3F2 udiv r2, r2, r3
- 156 0054 0D4B ldr r3, .L14
- 157 .LVL14:
- 158 0056 5B68 ldr r3, [r3, #4]
- 159 0058 C3F38813 ubfx r3, r3, #6, #9
- 160 005c 03FB02F3 mul r3, r3, r2
- 161 .LVL15:
- 162 .L11:
- 273:Src/system_stm32f4xx.c **** SystemCoreClock = pllvco/pllp;
- 163 .loc 1 273 0
- 164 0060 0A4A ldr r2, .L14
- 165 0062 5268 ldr r2, [r2, #4]
- 166 0064 C2F30142 ubfx r2, r2, #16, #2
- 167 0068 0132 adds r2, r2, #1
- ARM GAS /tmp/ccwdC0Nl.s page 9
- 168 006a 5200 lsls r2, r2, #1
- 169 .LVL16:
- 274:Src/system_stm32f4xx.c **** break;
- 170 .loc 1 274 0
- 171 006c B3FBF2F3 udiv r3, r3, r2
- 172 .LVL17:
- 173 0070 084A ldr r2, .L14+8
- 174 .LVL18:
- 175 0072 1360 str r3, [r2]
- 275:Src/system_stm32f4xx.c **** default:
- 176 .loc 1 275 0
- 177 0074 D4E7 b .L9
- 178 .LVL19:
- 179 .L10:
- 270:Src/system_stm32f4xx.c **** }
- 180 .loc 1 270 0
- 181 0076 064A ldr r2, .L14+4
- 182 .LVL20:
- 183 0078 B2FBF3F2 udiv r2, r2, r3
- 184 007c 034B ldr r3, .L14
- 185 .LVL21:
- 186 007e 5B68 ldr r3, [r3, #4]
- 187 0080 C3F38813 ubfx r3, r3, #6, #9
- 188 0084 03FB02F3 mul r3, r3, r2
- 189 .LVL22:
- 190 0088 EAE7 b .L11
- 191 .L15:
- 192 008a 00BF .align 2
- 193 .L14:
- 194 008c 00380240 .word 1073887232
- 195 0090 0024F400 .word 16000000
- 196 0094 00000000 .word .LANCHOR0
- 197 0098 00000000 .word .LANCHOR1
- 198 009c 40787D01 .word 25000000
- 199 .cfi_endproc
- 200 .LFE131:
- 202 .global APBPrescTable
- 203 .global AHBPrescTable
- 204 .global SystemCoreClock
- 205 .section .data.SystemCoreClock,"aw",%progbits
- 206 .align 2
- 207 .set .LANCHOR0,. + 0
- 210 SystemCoreClock:
- 211 0000 0024F400 .word 16000000
- 212 .section .rodata.AHBPrescTable,"a",%progbits
- 213 .align 2
- 214 .set .LANCHOR1,. + 0
- 217 AHBPrescTable:
- 218 0000 00 .byte 0
- 219 0001 00 .byte 0
- 220 0002 00 .byte 0
- 221 0003 00 .byte 0
- 222 0004 00 .byte 0
- 223 0005 00 .byte 0
- 224 0006 00 .byte 0
- 225 0007 00 .byte 0
- 226 0008 01 .byte 1
- ARM GAS /tmp/ccwdC0Nl.s page 10
- 227 0009 02 .byte 2
- 228 000a 03 .byte 3
- 229 000b 04 .byte 4
- 230 000c 06 .byte 6
- 231 000d 07 .byte 7
- 232 000e 08 .byte 8
- 233 000f 09 .byte 9
- 234 .section .rodata.APBPrescTable,"a",%progbits
- 235 .align 2
- 238 APBPrescTable:
- 239 0000 00 .byte 0
- 240 0001 00 .byte 0
- 241 0002 00 .byte 0
- 242 0003 00 .byte 0
- 243 0004 01 .byte 1
- 244 0005 02 .byte 2
- 245 0006 03 .byte 3
- 246 0007 04 .byte 4
- 247 .text
- 248 .Letext0:
- 249 .file 2 "/usr/include/newlib/machine/_default_types.h"
- 250 .file 3 "/usr/include/newlib/sys/_stdint.h"
- 251 .file 4 "Drivers/CMSIS/Include/core_cm4.h"
- 252 .file 5 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h"
- 253 .file 6 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f407xx.h"
- ARM GAS /tmp/ccwdC0Nl.s page 11
- DEFINED SYMBOLS
- *ABS*:0000000000000000 system_stm32f4xx.c
- /tmp/ccwdC0Nl.s:18 .text.SystemInit:0000000000000000 $t
- /tmp/ccwdC0Nl.s:25 .text.SystemInit:0000000000000000 SystemInit
- /tmp/ccwdC0Nl.s:67 .text.SystemInit:0000000000000040 $d
- /tmp/ccwdC0Nl.s:74 .text.SystemCoreClockUpdate:0000000000000000 $t
- /tmp/ccwdC0Nl.s:81 .text.SystemCoreClockUpdate:0000000000000000 SystemCoreClockUpdate
- /tmp/ccwdC0Nl.s:194 .text.SystemCoreClockUpdate:000000000000008c $d
- /tmp/ccwdC0Nl.s:238 .rodata.APBPrescTable:0000000000000000 APBPrescTable
- /tmp/ccwdC0Nl.s:217 .rodata.AHBPrescTable:0000000000000000 AHBPrescTable
- /tmp/ccwdC0Nl.s:210 .data.SystemCoreClock:0000000000000000 SystemCoreClock
- /tmp/ccwdC0Nl.s:206 .data.SystemCoreClock:0000000000000000 $d
- /tmp/ccwdC0Nl.s:213 .rodata.AHBPrescTable:0000000000000000 $d
- /tmp/ccwdC0Nl.s:235 .rodata.APBPrescTable:0000000000000000 $d
- .debug_frame:0000000000000010 $d
- NO UNDEFINED SYMBOLS
|