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 **** *
© COPYRIGHT 2017 STMicroelectronics
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