123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647 |
- ARM GAS /tmp/cc8x624m.s page 1
- 1 .cpu cortex-m4
- 2 .arch armv7e-m
- 3 .fpu fpv4-sp-d16
- 4 .eabi_attribute 27, 1
- 5 .eabi_attribute 28, 1
- 6 .eabi_attribute 20, 1
- 7 .eabi_attribute 21, 1
- 8 .eabi_attribute 23, 3
- 9 .eabi_attribute 24, 1
- 10 .eabi_attribute 25, 1
- 11 .eabi_attribute 26, 1
- 12 .eabi_attribute 30, 1
- 13 .eabi_attribute 34, 1
- 14 .eabi_attribute 18, 4
- 15 .file "system_stm32f4xx.c"
- 16 .text
- 17 .Ltext0:
- 18 .cfi_sections .debug_frame
- 19 .section .text.SystemInit,"ax",%progbits
- 20 .align 1
- 21 .global SystemInit
- 22 .syntax unified
- 23 .thumb
- 24 .thumb_func
- 26 SystemInit:
- 27 .LFB130:
- 28 .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.
- ARM GAS /tmp/cc8x624m.s page 2
- 31:Src/system_stm32f4xx.c **** * 2. Redistributions in binary form must reproduce the above copyright notice,
- 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
- ARM GAS /tmp/cc8x624m.s page 3
- 88:Src/system_stm32f4xx.c **** * @{
- 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 **** * @{
- ARM GAS /tmp/cc8x624m.s page 4
- 145:Src/system_stm32f4xx.c **** */
- 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 **** {
- 29 .loc 1 167 1 view -0
- 30 .cfi_startproc
- 31 @ args = 0, pretend = 0, frame = 0
- 32 @ frame_needed = 0, uses_anonymous_args = 0
- 33 @ 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 */
- 34 .loc 1 170 5 view .LVU1
- 35 .loc 1 170 16 is_stmt 0 view .LVU2
- 36 0000 0F49 ldr r1, .L2
- 37 0002 D1F88830 ldr r3, [r1, #136]
- 38 0006 43F47003 orr r3, r3, #15728640
- 39 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;
- 40 .loc 1 174 3 is_stmt 1 view .LVU3
- 41 .loc 1 174 11 is_stmt 0 view .LVU4
- 42 000e 0D4B ldr r3, .L2+4
- 43 0010 1A68 ldr r2, [r3]
- 44 0012 42F00102 orr r2, r2, #1
- 45 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;
- 46 .loc 1 177 3 is_stmt 1 view .LVU5
- 47 .loc 1 177 13 is_stmt 0 view .LVU6
- 48 0018 0020 movs r0, #0
- 49 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;
- ARM GAS /tmp/cc8x624m.s page 5
- 50 .loc 1 180 3 is_stmt 1 view .LVU7
- 51 .loc 1 180 11 is_stmt 0 view .LVU8
- 52 001c 1A68 ldr r2, [r3]
- 53 001e 22F08472 bic r2, r2, #17301504
- 54 0022 22F48032 bic r2, r2, #65536
- 55 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;
- 56 .loc 1 183 3 is_stmt 1 view .LVU9
- 57 .loc 1 183 16 is_stmt 0 view .LVU10
- 58 0028 074A ldr r2, .L2+8
- 59 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;
- 60 .loc 1 186 3 is_stmt 1 view .LVU11
- 61 .loc 1 186 11 is_stmt 0 view .LVU12
- 62 002c 1A68 ldr r2, [r3]
- 63 002e 22F48022 bic r2, r2, #262144
- 64 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;
- 65 .loc 1 189 3 is_stmt 1 view .LVU13
- 66 .loc 1 189 12 is_stmt 0 view .LVU14
- 67 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 */
- 68 .loc 1 199 3 is_stmt 1 view .LVU15
- 69 .loc 1 199 13 is_stmt 0 view .LVU16
- 70 0036 4FF00063 mov r3, #134217728
- 71 003a 8B60 str r3, [r1, #8]
- 200:Src/system_stm32f4xx.c **** #endif
- 201:Src/system_stm32f4xx.c **** }
- 72 .loc 1 201 1 view .LVU17
- 73 003c 7047 bx lr
- 74 .L3:
- 75 003e 00BF .align 2
- 76 .L2:
- 77 0040 00ED00E0 .word -536810240
- 78 0044 00380240 .word 1073887232
- 79 0048 10300024 .word 603992080
- 80 .cfi_endproc
- 81 .LFE130:
- 83 .section .text.SystemCoreClockUpdate,"ax",%progbits
- 84 .align 1
- 85 .global SystemCoreClockUpdate
- 86 .syntax unified
- ARM GAS /tmp/cc8x624m.s page 6
- 87 .thumb
- 88 .thumb_func
- 90 SystemCoreClockUpdate:
- 91 .LFB131:
- 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
- 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 **** {
- 92 .loc 1 240 1 is_stmt 1 view -0
- 93 .cfi_startproc
- 94 @ args = 0, pretend = 0, frame = 0
- 95 @ frame_needed = 0, uses_anonymous_args = 0
- 96 @ link register save eliminated.
- 241:Src/system_stm32f4xx.c **** uint32_t tmp = 0, pllvco = 0, pllp = 2, pllsource = 0, pllm = 2;
- 97 .loc 1 241 3 view .LVU19
- 98 .LVL0:
- 242:Src/system_stm32f4xx.c ****
- 243:Src/system_stm32f4xx.c **** /* Get SYSCLK source -------------------------------------------------------*/
- 244:Src/system_stm32f4xx.c **** tmp = RCC->CFGR & RCC_CFGR_SWS;
- 99 .loc 1 244 3 view .LVU20
- 100 .loc 1 244 12 is_stmt 0 view .LVU21
- 101 0000 224B ldr r3, .L12
- ARM GAS /tmp/cc8x624m.s page 7
- 102 0002 9B68 ldr r3, [r3, #8]
- 103 .loc 1 244 7 view .LVU22
- 104 0004 03F00C03 and r3, r3, #12
- 105 .LVL1:
- 245:Src/system_stm32f4xx.c ****
- 246:Src/system_stm32f4xx.c **** switch (tmp)
- 106 .loc 1 246 3 is_stmt 1 view .LVU23
- 107 0008 042B cmp r3, #4
- 108 000a 14D0 beq .L5
- 109 000c 082B cmp r3, #8
- 110 000e 16D0 beq .L6
- 111 0010 1BB1 cbz r3, .L11
- 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;
- 112 .loc 1 277 7 view .LVU24
- 113 .loc 1 277 23 is_stmt 0 view .LVU25
- 114 0012 1F4B ldr r3, .L12+4
- 115 .LVL2:
- 116 .loc 1 277 23 view .LVU26
- 117 0014 1F4A ldr r2, .L12+8
- 118 0016 1A60 str r2, [r3]
- 278:Src/system_stm32f4xx.c **** break;
- 119 .loc 1 278 7 is_stmt 1 view .LVU27
- 120 0018 02E0 b .L8
- 121 .LVL3:
- 122 .L11:
- 249:Src/system_stm32f4xx.c **** break;
- 123 .loc 1 249 7 view .LVU28
- ARM GAS /tmp/cc8x624m.s page 8
- 249:Src/system_stm32f4xx.c **** break;
- 124 .loc 1 249 23 is_stmt 0 view .LVU29
- 125 001a 1D4B ldr r3, .L12+4
- 126 .LVL4:
- 249:Src/system_stm32f4xx.c **** break;
- 127 .loc 1 249 23 view .LVU30
- 128 001c 1D4A ldr r2, .L12+8
- 129 001e 1A60 str r2, [r3]
- 250:Src/system_stm32f4xx.c **** case 0x04: /* HSE used as system clock source */
- 130 .loc 1 250 7 is_stmt 1 view .LVU31
- 131 .LVL5:
- 132 .L8:
- 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)];
- 133 .loc 1 282 3 view .LVU32
- 134 .loc 1 282 28 is_stmt 0 view .LVU33
- 135 0020 1A4B ldr r3, .L12
- 136 0022 9B68 ldr r3, [r3, #8]
- 137 .loc 1 282 52 view .LVU34
- 138 0024 C3F30313 ubfx r3, r3, #4, #4
- 139 .loc 1 282 22 view .LVU35
- 140 0028 1B4A ldr r2, .L12+12
- 141 002a D15C ldrb r1, [r2, r3] @ zero_extendqisi2
- 142 .LVL6:
- 283:Src/system_stm32f4xx.c **** /* HCLK frequency */
- 284:Src/system_stm32f4xx.c **** SystemCoreClock >>= tmp;
- 143 .loc 1 284 3 is_stmt 1 view .LVU36
- 144 .loc 1 284 19 is_stmt 0 view .LVU37
- 145 002c 184A ldr r2, .L12+4
- 146 002e 1368 ldr r3, [r2]
- 147 0030 CB40 lsrs r3, r3, r1
- 148 0032 1360 str r3, [r2]
- 285:Src/system_stm32f4xx.c **** }
- 149 .loc 1 285 1 view .LVU38
- 150 0034 7047 bx lr
- 151 .LVL7:
- 152 .L5:
- 252:Src/system_stm32f4xx.c **** break;
- 153 .loc 1 252 7 is_stmt 1 view .LVU39
- 252:Src/system_stm32f4xx.c **** break;
- 154 .loc 1 252 23 is_stmt 0 view .LVU40
- 155 0036 164B ldr r3, .L12+4
- 156 .LVL8:
- 252:Src/system_stm32f4xx.c **** break;
- 157 .loc 1 252 23 view .LVU41
- 158 0038 184A ldr r2, .L12+16
- 159 003a 1A60 str r2, [r3]
- 253:Src/system_stm32f4xx.c **** case 0x08: /* PLL used as system clock source */
- 160 .loc 1 253 7 is_stmt 1 view .LVU42
- 161 003c F0E7 b .L8
- 162 .LVL9:
- 163 .L6:
- 259:Src/system_stm32f4xx.c **** pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM;
- 164 .loc 1 259 7 view .LVU43
- 259:Src/system_stm32f4xx.c **** pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM;
- ARM GAS /tmp/cc8x624m.s page 9
- 165 .loc 1 259 23 is_stmt 0 view .LVU44
- 166 003e 134B ldr r3, .L12
- 167 .LVL10:
- 259:Src/system_stm32f4xx.c **** pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM;
- 168 .loc 1 259 23 view .LVU45
- 169 0040 5968 ldr r1, [r3, #4]
- 170 .LVL11:
- 260:Src/system_stm32f4xx.c ****
- 171 .loc 1 260 7 is_stmt 1 view .LVU46
- 260:Src/system_stm32f4xx.c ****
- 172 .loc 1 260 17 is_stmt 0 view .LVU47
- 173 0042 5A68 ldr r2, [r3, #4]
- 260:Src/system_stm32f4xx.c ****
- 174 .loc 1 260 12 view .LVU48
- 175 0044 02F03F02 and r2, r2, #63
- 176 .LVL12:
- 262:Src/system_stm32f4xx.c **** {
- 177 .loc 1 262 7 is_stmt 1 view .LVU49
- 262:Src/system_stm32f4xx.c **** {
- 178 .loc 1 262 10 is_stmt 0 view .LVU50
- 179 0048 11F4800F tst r1, #4194304
- 180 004c 13D0 beq .L9
- 265:Src/system_stm32f4xx.c **** }
- 181 .loc 1 265 9 is_stmt 1 view .LVU51
- 265:Src/system_stm32f4xx.c **** }
- 182 .loc 1 265 29 is_stmt 0 view .LVU52
- 183 004e 134B ldr r3, .L12+16
- 184 0050 B3FBF2F3 udiv r3, r3, r2
- 265:Src/system_stm32f4xx.c **** }
- 185 .loc 1 265 44 view .LVU53
- 186 0054 0D4A ldr r2, .L12
- 187 .LVL13:
- 265:Src/system_stm32f4xx.c **** }
- 188 .loc 1 265 44 view .LVU54
- 189 0056 5268 ldr r2, [r2, #4]
- 265:Src/system_stm32f4xx.c **** }
- 190 .loc 1 265 74 view .LVU55
- 191 0058 C2F38812 ubfx r2, r2, #6, #9
- 265:Src/system_stm32f4xx.c **** }
- 192 .loc 1 265 16 view .LVU56
- 193 005c 02FB03F3 mul r3, r2, r3
- 194 .LVL14:
- 195 .L10:
- 273:Src/system_stm32f4xx.c **** SystemCoreClock = pllvco/pllp;
- 196 .loc 1 273 7 is_stmt 1 view .LVU57
- 273:Src/system_stm32f4xx.c **** SystemCoreClock = pllvco/pllp;
- 197 .loc 1 273 20 is_stmt 0 view .LVU58
- 198 0060 0A4A ldr r2, .L12
- 199 0062 5268 ldr r2, [r2, #4]
- 273:Src/system_stm32f4xx.c **** SystemCoreClock = pllvco/pllp;
- 200 .loc 1 273 50 view .LVU59
- 201 0064 C2F30142 ubfx r2, r2, #16, #2
- 273:Src/system_stm32f4xx.c **** SystemCoreClock = pllvco/pllp;
- 202 .loc 1 273 56 view .LVU60
- 203 0068 0132 adds r2, r2, #1
- 273:Src/system_stm32f4xx.c **** SystemCoreClock = pllvco/pllp;
- 204 .loc 1 273 12 view .LVU61
- ARM GAS /tmp/cc8x624m.s page 10
- 205 006a 5200 lsls r2, r2, #1
- 206 .LVL15:
- 274:Src/system_stm32f4xx.c **** break;
- 207 .loc 1 274 7 is_stmt 1 view .LVU62
- 274:Src/system_stm32f4xx.c **** break;
- 208 .loc 1 274 31 is_stmt 0 view .LVU63
- 209 006c B3FBF2F3 udiv r3, r3, r2
- 210 .LVL16:
- 274:Src/system_stm32f4xx.c **** break;
- 211 .loc 1 274 23 view .LVU64
- 212 0070 074A ldr r2, .L12+4
- 213 .LVL17:
- 274:Src/system_stm32f4xx.c **** break;
- 214 .loc 1 274 23 view .LVU65
- 215 0072 1360 str r3, [r2]
- 275:Src/system_stm32f4xx.c **** default:
- 216 .loc 1 275 7 is_stmt 1 view .LVU66
- 217 0074 D4E7 b .L8
- 218 .LVL18:
- 219 .L9:
- 270:Src/system_stm32f4xx.c **** }
- 220 .loc 1 270 9 view .LVU67
- 270:Src/system_stm32f4xx.c **** }
- 221 .loc 1 270 29 is_stmt 0 view .LVU68
- 222 0076 074B ldr r3, .L12+8
- 223 0078 B3FBF2F3 udiv r3, r3, r2
- 270:Src/system_stm32f4xx.c **** }
- 224 .loc 1 270 44 view .LVU69
- 225 007c 034A ldr r2, .L12
- 226 .LVL19:
- 270:Src/system_stm32f4xx.c **** }
- 227 .loc 1 270 44 view .LVU70
- 228 007e 5268 ldr r2, [r2, #4]
- 270:Src/system_stm32f4xx.c **** }
- 229 .loc 1 270 74 view .LVU71
- 230 0080 C2F38812 ubfx r2, r2, #6, #9
- 270:Src/system_stm32f4xx.c **** }
- 231 .loc 1 270 16 view .LVU72
- 232 0084 02FB03F3 mul r3, r2, r3
- 233 .LVL20:
- 270:Src/system_stm32f4xx.c **** }
- 234 .loc 1 270 16 view .LVU73
- 235 0088 EAE7 b .L10
- 236 .L13:
- 237 008a 00BF .align 2
- 238 .L12:
- 239 008c 00380240 .word 1073887232
- 240 0090 00000000 .word .LANCHOR0
- 241 0094 0024F400 .word 16000000
- 242 0098 00000000 .word .LANCHOR1
- 243 009c 40787D01 .word 25000000
- 244 .cfi_endproc
- 245 .LFE131:
- 247 .global APBPrescTable
- 248 .global AHBPrescTable
- 249 .global SystemCoreClock
- 250 .section .data.SystemCoreClock,"aw"
- ARM GAS /tmp/cc8x624m.s page 11
- 251 .align 2
- 252 .set .LANCHOR0,. + 0
- 255 SystemCoreClock:
- 256 0000 0024F400 .word 16000000
- 257 .section .rodata.AHBPrescTable,"a"
- 258 .align 2
- 259 .set .LANCHOR1,. + 0
- 262 AHBPrescTable:
- 263 0000 00000000 .ascii "\000\000\000\000\000\000\000\000\001\002\003\004\006"
- 263 00000000
- 263 01020304
- 263 06
- 264 000d 070809 .ascii "\007\010\011"
- 265 .section .rodata.APBPrescTable,"a"
- 266 .align 2
- 269 APBPrescTable:
- 270 0000 00000000 .ascii "\000\000\000\000\001\002\003\004"
- 270 01020304
- 271 .text
- 272 .Letext0:
- 273 .file 2 "/home/gitc/\346\241\214\351\235\242/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/
- 274 .file 3 "/home/gitc/\346\241\214\351\235\242/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/
- 275 .file 4 "Drivers/CMSIS/Include/core_cm4.h"
- 276 .file 5 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h"
- 277 .file 6 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f407xx.h"
- ARM GAS /tmp/cc8x624m.s page 12
- DEFINED SYMBOLS
- *ABS*:0000000000000000 system_stm32f4xx.c
- /tmp/cc8x624m.s:20 .text.SystemInit:0000000000000000 $t
- /tmp/cc8x624m.s:26 .text.SystemInit:0000000000000000 SystemInit
- /tmp/cc8x624m.s:77 .text.SystemInit:0000000000000040 $d
- /tmp/cc8x624m.s:84 .text.SystemCoreClockUpdate:0000000000000000 $t
- /tmp/cc8x624m.s:90 .text.SystemCoreClockUpdate:0000000000000000 SystemCoreClockUpdate
- /tmp/cc8x624m.s:239 .text.SystemCoreClockUpdate:000000000000008c $d
- /tmp/cc8x624m.s:269 .rodata.APBPrescTable:0000000000000000 APBPrescTable
- /tmp/cc8x624m.s:262 .rodata.AHBPrescTable:0000000000000000 AHBPrescTable
- /tmp/cc8x624m.s:255 .data.SystemCoreClock:0000000000000000 SystemCoreClock
- /tmp/cc8x624m.s:251 .data.SystemCoreClock:0000000000000000 $d
- /tmp/cc8x624m.s:258 .rodata.AHBPrescTable:0000000000000000 $d
- /tmp/cc8x624m.s:266 .rodata.APBPrescTable:0000000000000000 $d
- NO UNDEFINED SYMBOLS
|