Files
EEPROM_programmer/build/system_stm32f4xx.lst
2025-09-05 10:30:26 +02:00

590 lines
32 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

ARM GAS /tmp/cc9poKmu.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 .arch armv7e-m
21 .syntax unified
22 .thumb
23 .thumb_func
24 .fpu fpv4-sp-d16
26 SystemInit:
27 .LFB134:
28 .file 1 "Core/Src/system_stm32f4xx.c"
1:Core/Src/system_stm32f4xx.c **** /**
2:Core/Src/system_stm32f4xx.c **** ******************************************************************************
3:Core/Src/system_stm32f4xx.c **** * @file system_stm32f4xx.c
4:Core/Src/system_stm32f4xx.c **** * @author MCD Application Team
5:Core/Src/system_stm32f4xx.c **** * @brief CMSIS Cortex-M4 Device Peripheral Access Layer System Source File.
6:Core/Src/system_stm32f4xx.c **** *
7:Core/Src/system_stm32f4xx.c **** * This file provides two functions and one global variable to be called from
8:Core/Src/system_stm32f4xx.c **** * user application:
9:Core/Src/system_stm32f4xx.c **** * - SystemInit(): This function is called at startup just after reset and
10:Core/Src/system_stm32f4xx.c **** * before branch to main program. This call is made inside
11:Core/Src/system_stm32f4xx.c **** * the "startup_stm32f4xx.s" file.
12:Core/Src/system_stm32f4xx.c **** *
13:Core/Src/system_stm32f4xx.c **** * - SystemCoreClock variable: Contains the core clock (HCLK), it can be used
14:Core/Src/system_stm32f4xx.c **** * by the user application to setup the SysTick
15:Core/Src/system_stm32f4xx.c **** * timer or configure other parameters.
16:Core/Src/system_stm32f4xx.c **** *
17:Core/Src/system_stm32f4xx.c **** * - SystemCoreClockUpdate(): Updates the variable SystemCoreClock and must
18:Core/Src/system_stm32f4xx.c **** * be called whenever the core clock is changed
19:Core/Src/system_stm32f4xx.c **** * during program execution.
20:Core/Src/system_stm32f4xx.c **** *
21:Core/Src/system_stm32f4xx.c **** *
22:Core/Src/system_stm32f4xx.c **** ******************************************************************************
23:Core/Src/system_stm32f4xx.c **** * @attention
24:Core/Src/system_stm32f4xx.c **** *
25:Core/Src/system_stm32f4xx.c **** * Copyright (c) 2017 STMicroelectronics.
26:Core/Src/system_stm32f4xx.c **** * All rights reserved.
27:Core/Src/system_stm32f4xx.c **** *
28:Core/Src/system_stm32f4xx.c **** * This software is licensed under terms that can be found in the LICENSE file
29:Core/Src/system_stm32f4xx.c **** * in the root directory of this software component.
30:Core/Src/system_stm32f4xx.c **** * If no LICENSE file comes with this software, it is provided AS-IS.
ARM GAS /tmp/cc9poKmu.s page 2
31:Core/Src/system_stm32f4xx.c **** *
32:Core/Src/system_stm32f4xx.c **** ******************************************************************************
33:Core/Src/system_stm32f4xx.c **** */
34:Core/Src/system_stm32f4xx.c ****
35:Core/Src/system_stm32f4xx.c **** /** @addtogroup CMSIS
36:Core/Src/system_stm32f4xx.c **** * @{
37:Core/Src/system_stm32f4xx.c **** */
38:Core/Src/system_stm32f4xx.c ****
39:Core/Src/system_stm32f4xx.c **** /** @addtogroup stm32f4xx_system
40:Core/Src/system_stm32f4xx.c **** * @{
41:Core/Src/system_stm32f4xx.c **** */
42:Core/Src/system_stm32f4xx.c ****
43:Core/Src/system_stm32f4xx.c **** /** @addtogroup STM32F4xx_System_Private_Includes
44:Core/Src/system_stm32f4xx.c **** * @{
45:Core/Src/system_stm32f4xx.c **** */
46:Core/Src/system_stm32f4xx.c ****
47:Core/Src/system_stm32f4xx.c ****
48:Core/Src/system_stm32f4xx.c **** #include "stm32f4xx.h"
49:Core/Src/system_stm32f4xx.c ****
50:Core/Src/system_stm32f4xx.c **** #if !defined (HSE_VALUE)
51:Core/Src/system_stm32f4xx.c **** #define HSE_VALUE ((uint32_t)25000000) /*!< Default value of the External oscillator in Hz */
52:Core/Src/system_stm32f4xx.c **** #endif /* HSE_VALUE */
53:Core/Src/system_stm32f4xx.c ****
54:Core/Src/system_stm32f4xx.c **** #if !defined (HSI_VALUE)
55:Core/Src/system_stm32f4xx.c **** #define HSI_VALUE ((uint32_t)16000000) /*!< Value of the Internal oscillator in Hz*/
56:Core/Src/system_stm32f4xx.c **** #endif /* HSI_VALUE */
57:Core/Src/system_stm32f4xx.c ****
58:Core/Src/system_stm32f4xx.c **** /**
59:Core/Src/system_stm32f4xx.c **** * @}
60:Core/Src/system_stm32f4xx.c **** */
61:Core/Src/system_stm32f4xx.c ****
62:Core/Src/system_stm32f4xx.c **** /** @addtogroup STM32F4xx_System_Private_TypesDefinitions
63:Core/Src/system_stm32f4xx.c **** * @{
64:Core/Src/system_stm32f4xx.c **** */
65:Core/Src/system_stm32f4xx.c ****
66:Core/Src/system_stm32f4xx.c **** /**
67:Core/Src/system_stm32f4xx.c **** * @}
68:Core/Src/system_stm32f4xx.c **** */
69:Core/Src/system_stm32f4xx.c ****
70:Core/Src/system_stm32f4xx.c **** /** @addtogroup STM32F4xx_System_Private_Defines
71:Core/Src/system_stm32f4xx.c **** * @{
72:Core/Src/system_stm32f4xx.c **** */
73:Core/Src/system_stm32f4xx.c ****
74:Core/Src/system_stm32f4xx.c **** /************************* Miscellaneous Configuration ************************/
75:Core/Src/system_stm32f4xx.c **** /*!< Uncomment the following line if you need to use external SRAM or SDRAM as data memory */
76:Core/Src/system_stm32f4xx.c **** #if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx)\
77:Core/Src/system_stm32f4xx.c **** || defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\
78:Core/Src/system_stm32f4xx.c **** || defined(STM32F469xx) || defined(STM32F479xx) || defined(STM32F412Zx) || defined(STM32F412Vx)
79:Core/Src/system_stm32f4xx.c **** /* #define DATA_IN_ExtSRAM */
80:Core/Src/system_stm32f4xx.c **** #endif /* STM32F40xxx || STM32F41xxx || STM32F42xxx || STM32F43xxx || STM32F469xx || STM32F479xx ||
81:Core/Src/system_stm32f4xx.c **** STM32F412Zx || STM32F412Vx */
82:Core/Src/system_stm32f4xx.c ****
83:Core/Src/system_stm32f4xx.c **** #if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\
84:Core/Src/system_stm32f4xx.c **** || defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
85:Core/Src/system_stm32f4xx.c **** /* #define DATA_IN_ExtSDRAM */
86:Core/Src/system_stm32f4xx.c **** #endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx ||
87:Core/Src/system_stm32f4xx.c **** STM32F479xx */
ARM GAS /tmp/cc9poKmu.s page 3
88:Core/Src/system_stm32f4xx.c ****
89:Core/Src/system_stm32f4xx.c **** /* Note: Following vector table addresses must be defined in line with linker
90:Core/Src/system_stm32f4xx.c **** configuration. */
91:Core/Src/system_stm32f4xx.c **** /*!< Uncomment the following line if you need to relocate the vector table
92:Core/Src/system_stm32f4xx.c **** anywhere in Flash or Sram, else the vector table is kept at the automatic
93:Core/Src/system_stm32f4xx.c **** remap of boot address selected */
94:Core/Src/system_stm32f4xx.c **** /* #define USER_VECT_TAB_ADDRESS */
95:Core/Src/system_stm32f4xx.c ****
96:Core/Src/system_stm32f4xx.c **** #if defined(USER_VECT_TAB_ADDRESS)
97:Core/Src/system_stm32f4xx.c **** /*!< Uncomment the following line if you need to relocate your vector Table
98:Core/Src/system_stm32f4xx.c **** in Sram else user remap will be done in Flash. */
99:Core/Src/system_stm32f4xx.c **** /* #define VECT_TAB_SRAM */
100:Core/Src/system_stm32f4xx.c **** #if defined(VECT_TAB_SRAM)
101:Core/Src/system_stm32f4xx.c **** #define VECT_TAB_BASE_ADDRESS SRAM_BASE /*!< Vector Table base address field.
102:Core/Src/system_stm32f4xx.c **** This value must be a multiple of 0x200. */
103:Core/Src/system_stm32f4xx.c **** #else
104:Core/Src/system_stm32f4xx.c **** #define VECT_TAB_BASE_ADDRESS FLASH_BASE /*!< Vector Table base address field.
105:Core/Src/system_stm32f4xx.c **** This value must be a multiple of 0x200. */
106:Core/Src/system_stm32f4xx.c **** #endif /* VECT_TAB_SRAM */
107:Core/Src/system_stm32f4xx.c **** #if !defined(VECT_TAB_OFFSET)
108:Core/Src/system_stm32f4xx.c **** #define VECT_TAB_OFFSET 0x00000000U /*!< Vector Table offset field.
109:Core/Src/system_stm32f4xx.c **** This value must be a multiple of 0x200. */
110:Core/Src/system_stm32f4xx.c **** #endif /* VECT_TAB_OFFSET */
111:Core/Src/system_stm32f4xx.c **** #endif /* USER_VECT_TAB_ADDRESS */
112:Core/Src/system_stm32f4xx.c **** /******************************************************************************/
113:Core/Src/system_stm32f4xx.c ****
114:Core/Src/system_stm32f4xx.c **** /**
115:Core/Src/system_stm32f4xx.c **** * @}
116:Core/Src/system_stm32f4xx.c **** */
117:Core/Src/system_stm32f4xx.c ****
118:Core/Src/system_stm32f4xx.c **** /** @addtogroup STM32F4xx_System_Private_Macros
119:Core/Src/system_stm32f4xx.c **** * @{
120:Core/Src/system_stm32f4xx.c **** */
121:Core/Src/system_stm32f4xx.c ****
122:Core/Src/system_stm32f4xx.c **** /**
123:Core/Src/system_stm32f4xx.c **** * @}
124:Core/Src/system_stm32f4xx.c **** */
125:Core/Src/system_stm32f4xx.c ****
126:Core/Src/system_stm32f4xx.c **** /** @addtogroup STM32F4xx_System_Private_Variables
127:Core/Src/system_stm32f4xx.c **** * @{
128:Core/Src/system_stm32f4xx.c **** */
129:Core/Src/system_stm32f4xx.c **** /* This variable is updated in three ways:
130:Core/Src/system_stm32f4xx.c **** 1) by calling CMSIS function SystemCoreClockUpdate()
131:Core/Src/system_stm32f4xx.c **** 2) by calling HAL API function HAL_RCC_GetHCLKFreq()
132:Core/Src/system_stm32f4xx.c **** 3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency
133:Core/Src/system_stm32f4xx.c **** Note: If you use this function to configure the system clock; then there
134:Core/Src/system_stm32f4xx.c **** is no need to call the 2 first functions listed above, since SystemCoreClock
135:Core/Src/system_stm32f4xx.c **** variable is updated automatically.
136:Core/Src/system_stm32f4xx.c **** */
137:Core/Src/system_stm32f4xx.c **** uint32_t SystemCoreClock = 16000000;
138:Core/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};
139:Core/Src/system_stm32f4xx.c **** const uint8_t APBPrescTable[8] = {0, 0, 0, 0, 1, 2, 3, 4};
140:Core/Src/system_stm32f4xx.c **** /**
141:Core/Src/system_stm32f4xx.c **** * @}
142:Core/Src/system_stm32f4xx.c **** */
143:Core/Src/system_stm32f4xx.c ****
144:Core/Src/system_stm32f4xx.c **** /** @addtogroup STM32F4xx_System_Private_FunctionPrototypes
ARM GAS /tmp/cc9poKmu.s page 4
145:Core/Src/system_stm32f4xx.c **** * @{
146:Core/Src/system_stm32f4xx.c **** */
147:Core/Src/system_stm32f4xx.c ****
148:Core/Src/system_stm32f4xx.c **** #if defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM)
149:Core/Src/system_stm32f4xx.c **** static void SystemInit_ExtMemCtl(void);
150:Core/Src/system_stm32f4xx.c **** #endif /* DATA_IN_ExtSRAM || DATA_IN_ExtSDRAM */
151:Core/Src/system_stm32f4xx.c ****
152:Core/Src/system_stm32f4xx.c **** /**
153:Core/Src/system_stm32f4xx.c **** * @}
154:Core/Src/system_stm32f4xx.c **** */
155:Core/Src/system_stm32f4xx.c ****
156:Core/Src/system_stm32f4xx.c **** /** @addtogroup STM32F4xx_System_Private_Functions
157:Core/Src/system_stm32f4xx.c **** * @{
158:Core/Src/system_stm32f4xx.c **** */
159:Core/Src/system_stm32f4xx.c ****
160:Core/Src/system_stm32f4xx.c **** /**
161:Core/Src/system_stm32f4xx.c **** * @brief Setup the microcontroller system
162:Core/Src/system_stm32f4xx.c **** * Initialize the FPU setting, vector table location and External memory
163:Core/Src/system_stm32f4xx.c **** * configuration.
164:Core/Src/system_stm32f4xx.c **** * @param None
165:Core/Src/system_stm32f4xx.c **** * @retval None
166:Core/Src/system_stm32f4xx.c **** */
167:Core/Src/system_stm32f4xx.c **** void SystemInit(void)
168:Core/Src/system_stm32f4xx.c **** {
29 .loc 1 168 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.
169:Core/Src/system_stm32f4xx.c **** /* FPU settings ------------------------------------------------------------*/
170:Core/Src/system_stm32f4xx.c **** #if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
171:Core/Src/system_stm32f4xx.c **** SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */
34 .loc 1 171 5 view .LVU1
35 .loc 1 171 16 is_stmt 0 view .LVU2
36 0000 034A ldr r2, .L2
37 0002 D2F88830 ldr r3, [r2, #136]
38 0006 43F47003 orr r3, r3, #15728640
39 000a C2F88830 str r3, [r2, #136]
172:Core/Src/system_stm32f4xx.c **** #endif
173:Core/Src/system_stm32f4xx.c ****
174:Core/Src/system_stm32f4xx.c **** #if defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM)
175:Core/Src/system_stm32f4xx.c **** SystemInit_ExtMemCtl();
176:Core/Src/system_stm32f4xx.c **** #endif /* DATA_IN_ExtSRAM || DATA_IN_ExtSDRAM */
177:Core/Src/system_stm32f4xx.c ****
178:Core/Src/system_stm32f4xx.c **** /* Configure the Vector Table location -------------------------------------*/
179:Core/Src/system_stm32f4xx.c **** #if defined(USER_VECT_TAB_ADDRESS)
180:Core/Src/system_stm32f4xx.c **** SCB->VTOR = VECT_TAB_BASE_ADDRESS | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM
181:Core/Src/system_stm32f4xx.c **** #endif /* USER_VECT_TAB_ADDRESS */
182:Core/Src/system_stm32f4xx.c **** }
40 .loc 1 182 1 view .LVU3
41 000e 7047 bx lr
42 .L3:
43 .align 2
44 .L2:
45 0010 00ED00E0 .word -536810240
46 .cfi_endproc
47 .LFE134:
ARM GAS /tmp/cc9poKmu.s page 5
49 .section .text.SystemCoreClockUpdate,"ax",%progbits
50 .align 1
51 .global SystemCoreClockUpdate
52 .syntax unified
53 .thumb
54 .thumb_func
55 .fpu fpv4-sp-d16
57 SystemCoreClockUpdate:
58 .LFB135:
183:Core/Src/system_stm32f4xx.c ****
184:Core/Src/system_stm32f4xx.c **** /**
185:Core/Src/system_stm32f4xx.c **** * @brief Update SystemCoreClock variable according to Clock Register Values.
186:Core/Src/system_stm32f4xx.c **** * The SystemCoreClock variable contains the core clock (HCLK), it can
187:Core/Src/system_stm32f4xx.c **** * be used by the user application to setup the SysTick timer or configure
188:Core/Src/system_stm32f4xx.c **** * other parameters.
189:Core/Src/system_stm32f4xx.c **** *
190:Core/Src/system_stm32f4xx.c **** * @note Each time the core clock (HCLK) changes, this function must be called
191:Core/Src/system_stm32f4xx.c **** * to update SystemCoreClock variable value. Otherwise, any configuration
192:Core/Src/system_stm32f4xx.c **** * based on this variable will be incorrect.
193:Core/Src/system_stm32f4xx.c **** *
194:Core/Src/system_stm32f4xx.c **** * @note - The system frequency computed by this function is not the real
195:Core/Src/system_stm32f4xx.c **** * frequency in the chip. It is calculated based on the predefined
196:Core/Src/system_stm32f4xx.c **** * constant and the selected clock source:
197:Core/Src/system_stm32f4xx.c **** *
198:Core/Src/system_stm32f4xx.c **** * - If SYSCLK source is HSI, SystemCoreClock will contain the HSI_VALUE(*)
199:Core/Src/system_stm32f4xx.c **** *
200:Core/Src/system_stm32f4xx.c **** * - If SYSCLK source is HSE, SystemCoreClock will contain the HSE_VALUE(**)
201:Core/Src/system_stm32f4xx.c **** *
202:Core/Src/system_stm32f4xx.c **** * - If SYSCLK source is PLL, SystemCoreClock will contain the HSE_VALUE(**)
203:Core/Src/system_stm32f4xx.c **** * or HSI_VALUE(*) multiplied/divided by the PLL factors.
204:Core/Src/system_stm32f4xx.c **** *
205:Core/Src/system_stm32f4xx.c **** * (*) HSI_VALUE is a constant defined in stm32f4xx_hal_conf.h file (default value
206:Core/Src/system_stm32f4xx.c **** * 16 MHz) but the real value may vary depending on the variations
207:Core/Src/system_stm32f4xx.c **** * in voltage and temperature.
208:Core/Src/system_stm32f4xx.c **** *
209:Core/Src/system_stm32f4xx.c **** * (**) HSE_VALUE is a constant defined in stm32f4xx_hal_conf.h file (its value
210:Core/Src/system_stm32f4xx.c **** * depends on the application requirements), user has to ensure that HSE_VALUE
211:Core/Src/system_stm32f4xx.c **** * is same as the real frequency of the crystal used. Otherwise, this function
212:Core/Src/system_stm32f4xx.c **** * may have wrong result.
213:Core/Src/system_stm32f4xx.c **** *
214:Core/Src/system_stm32f4xx.c **** * - The result of this function could be not correct when using fractional
215:Core/Src/system_stm32f4xx.c **** * value for HSE crystal.
216:Core/Src/system_stm32f4xx.c **** *
217:Core/Src/system_stm32f4xx.c **** * @param None
218:Core/Src/system_stm32f4xx.c **** * @retval None
219:Core/Src/system_stm32f4xx.c **** */
220:Core/Src/system_stm32f4xx.c **** void SystemCoreClockUpdate(void)
221:Core/Src/system_stm32f4xx.c **** {
59 .loc 1 221 1 is_stmt 1 view -0
60 .cfi_startproc
61 @ args = 0, pretend = 0, frame = 0
62 @ frame_needed = 0, uses_anonymous_args = 0
63 @ link register save eliminated.
222:Core/Src/system_stm32f4xx.c **** uint32_t tmp, pllvco, pllp, pllsource, pllm;
64 .loc 1 222 3 view .LVU5
223:Core/Src/system_stm32f4xx.c ****
224:Core/Src/system_stm32f4xx.c **** /* Get SYSCLK source -------------------------------------------------------*/
ARM GAS /tmp/cc9poKmu.s page 6
225:Core/Src/system_stm32f4xx.c **** tmp = RCC->CFGR & RCC_CFGR_SWS;
65 .loc 1 225 3 view .LVU6
66 .loc 1 225 12 is_stmt 0 view .LVU7
67 0000 224B ldr r3, .L12
68 0002 9B68 ldr r3, [r3, #8]
69 .loc 1 225 7 view .LVU8
70 0004 03F00C03 and r3, r3, #12
71 .LVL0:
226:Core/Src/system_stm32f4xx.c ****
227:Core/Src/system_stm32f4xx.c **** switch (tmp)
72 .loc 1 227 3 is_stmt 1 view .LVU9
73 0008 042B cmp r3, #4
74 000a 14D0 beq .L5
75 000c 082B cmp r3, #8
76 000e 16D0 beq .L6
77 0010 1BB1 cbz r3, .L11
228:Core/Src/system_stm32f4xx.c **** {
229:Core/Src/system_stm32f4xx.c **** case 0x00: /* HSI used as system clock source */
230:Core/Src/system_stm32f4xx.c **** SystemCoreClock = HSI_VALUE;
231:Core/Src/system_stm32f4xx.c **** break;
232:Core/Src/system_stm32f4xx.c **** case 0x04: /* HSE used as system clock source */
233:Core/Src/system_stm32f4xx.c **** SystemCoreClock = HSE_VALUE;
234:Core/Src/system_stm32f4xx.c **** break;
235:Core/Src/system_stm32f4xx.c **** case 0x08: /* PLL used as system clock source */
236:Core/Src/system_stm32f4xx.c ****
237:Core/Src/system_stm32f4xx.c **** /* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N
238:Core/Src/system_stm32f4xx.c **** SYSCLK = PLL_VCO / PLL_P
239:Core/Src/system_stm32f4xx.c **** */
240:Core/Src/system_stm32f4xx.c **** pllsource = (RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) >> 22;
241:Core/Src/system_stm32f4xx.c **** pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM;
242:Core/Src/system_stm32f4xx.c ****
243:Core/Src/system_stm32f4xx.c **** if (pllsource != 0)
244:Core/Src/system_stm32f4xx.c **** {
245:Core/Src/system_stm32f4xx.c **** /* HSE used as PLL clock source */
246:Core/Src/system_stm32f4xx.c **** pllvco = (HSE_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6);
247:Core/Src/system_stm32f4xx.c **** }
248:Core/Src/system_stm32f4xx.c **** else
249:Core/Src/system_stm32f4xx.c **** {
250:Core/Src/system_stm32f4xx.c **** /* HSI used as PLL clock source */
251:Core/Src/system_stm32f4xx.c **** pllvco = (HSI_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6);
252:Core/Src/system_stm32f4xx.c **** }
253:Core/Src/system_stm32f4xx.c ****
254:Core/Src/system_stm32f4xx.c **** pllp = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >>16) + 1 ) *2;
255:Core/Src/system_stm32f4xx.c **** SystemCoreClock = pllvco/pllp;
256:Core/Src/system_stm32f4xx.c **** break;
257:Core/Src/system_stm32f4xx.c **** default:
258:Core/Src/system_stm32f4xx.c **** SystemCoreClock = HSI_VALUE;
78 .loc 1 258 7 view .LVU10
79 .loc 1 258 23 is_stmt 0 view .LVU11
80 0012 1F4B ldr r3, .L12+4
81 .LVL1:
82 .loc 1 258 23 view .LVU12
83 0014 1F4A ldr r2, .L12+8
84 0016 1A60 str r2, [r3]
259:Core/Src/system_stm32f4xx.c **** break;
85 .loc 1 259 7 is_stmt 1 view .LVU13
86 0018 02E0 b .L8
ARM GAS /tmp/cc9poKmu.s page 7
87 .LVL2:
88 .L11:
230:Core/Src/system_stm32f4xx.c **** break;
89 .loc 1 230 7 view .LVU14
230:Core/Src/system_stm32f4xx.c **** break;
90 .loc 1 230 23 is_stmt 0 view .LVU15
91 001a 1D4B ldr r3, .L12+4
92 .LVL3:
230:Core/Src/system_stm32f4xx.c **** break;
93 .loc 1 230 23 view .LVU16
94 001c 1D4A ldr r2, .L12+8
95 001e 1A60 str r2, [r3]
231:Core/Src/system_stm32f4xx.c **** case 0x04: /* HSE used as system clock source */
96 .loc 1 231 7 is_stmt 1 view .LVU17
97 .L8:
260:Core/Src/system_stm32f4xx.c **** }
261:Core/Src/system_stm32f4xx.c **** /* Compute HCLK frequency --------------------------------------------------*/
262:Core/Src/system_stm32f4xx.c **** /* Get HCLK prescaler */
263:Core/Src/system_stm32f4xx.c **** tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> 4)];
98 .loc 1 263 3 view .LVU18
99 .loc 1 263 28 is_stmt 0 view .LVU19
100 0020 1A4B ldr r3, .L12
101 0022 9B68 ldr r3, [r3, #8]
102 .loc 1 263 52 view .LVU20
103 0024 C3F30313 ubfx r3, r3, #4, #4
104 .loc 1 263 22 view .LVU21
105 0028 1B4A ldr r2, .L12+12
106 002a D15C ldrb r1, [r2, r3] @ zero_extendqisi2
107 .LVL4:
264:Core/Src/system_stm32f4xx.c **** /* HCLK frequency */
265:Core/Src/system_stm32f4xx.c **** SystemCoreClock >>= tmp;
108 .loc 1 265 3 is_stmt 1 view .LVU22
109 .loc 1 265 19 is_stmt 0 view .LVU23
110 002c 184A ldr r2, .L12+4
111 002e 1368 ldr r3, [r2]
112 0030 CB40 lsrs r3, r3, r1
113 0032 1360 str r3, [r2]
266:Core/Src/system_stm32f4xx.c **** }
114 .loc 1 266 1 view .LVU24
115 0034 7047 bx lr
116 .LVL5:
117 .L5:
233:Core/Src/system_stm32f4xx.c **** break;
118 .loc 1 233 7 is_stmt 1 view .LVU25
233:Core/Src/system_stm32f4xx.c **** break;
119 .loc 1 233 23 is_stmt 0 view .LVU26
120 0036 164B ldr r3, .L12+4
121 .LVL6:
233:Core/Src/system_stm32f4xx.c **** break;
122 .loc 1 233 23 view .LVU27
123 0038 184A ldr r2, .L12+16
124 003a 1A60 str r2, [r3]
234:Core/Src/system_stm32f4xx.c **** case 0x08: /* PLL used as system clock source */
125 .loc 1 234 7 is_stmt 1 view .LVU28
126 003c F0E7 b .L8
127 .LVL7:
128 .L6:
ARM GAS /tmp/cc9poKmu.s page 8
240:Core/Src/system_stm32f4xx.c **** pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM;
129 .loc 1 240 7 view .LVU29
240:Core/Src/system_stm32f4xx.c **** pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM;
130 .loc 1 240 23 is_stmt 0 view .LVU30
131 003e 134B ldr r3, .L12
132 .LVL8:
240:Core/Src/system_stm32f4xx.c **** pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM;
133 .loc 1 240 23 view .LVU31
134 0040 5968 ldr r1, [r3, #4]
135 .LVL9:
241:Core/Src/system_stm32f4xx.c ****
136 .loc 1 241 7 is_stmt 1 view .LVU32
241:Core/Src/system_stm32f4xx.c ****
137 .loc 1 241 17 is_stmt 0 view .LVU33
138 0042 5A68 ldr r2, [r3, #4]
241:Core/Src/system_stm32f4xx.c ****
139 .loc 1 241 12 view .LVU34
140 0044 02F03F02 and r2, r2, #63
141 .LVL10:
243:Core/Src/system_stm32f4xx.c **** {
142 .loc 1 243 7 is_stmt 1 view .LVU35
243:Core/Src/system_stm32f4xx.c **** {
143 .loc 1 243 10 is_stmt 0 view .LVU36
144 0048 11F4800F tst r1, #4194304
145 004c 13D0 beq .L9
246:Core/Src/system_stm32f4xx.c **** }
146 .loc 1 246 9 is_stmt 1 view .LVU37
246:Core/Src/system_stm32f4xx.c **** }
147 .loc 1 246 29 is_stmt 0 view .LVU38
148 004e 134B ldr r3, .L12+16
149 0050 B3FBF2F3 udiv r3, r3, r2
246:Core/Src/system_stm32f4xx.c **** }
150 .loc 1 246 44 view .LVU39
151 0054 0D4A ldr r2, .L12
152 .LVL11:
246:Core/Src/system_stm32f4xx.c **** }
153 .loc 1 246 44 view .LVU40
154 0056 5268 ldr r2, [r2, #4]
246:Core/Src/system_stm32f4xx.c **** }
155 .loc 1 246 74 view .LVU41
156 0058 C2F38812 ubfx r2, r2, #6, #9
246:Core/Src/system_stm32f4xx.c **** }
157 .loc 1 246 16 view .LVU42
158 005c 02FB03F3 mul r3, r2, r3
159 .LVL12:
160 .L10:
254:Core/Src/system_stm32f4xx.c **** SystemCoreClock = pllvco/pllp;
161 .loc 1 254 7 is_stmt 1 view .LVU43
254:Core/Src/system_stm32f4xx.c **** SystemCoreClock = pllvco/pllp;
162 .loc 1 254 20 is_stmt 0 view .LVU44
163 0060 0A4A ldr r2, .L12
164 0062 5268 ldr r2, [r2, #4]
254:Core/Src/system_stm32f4xx.c **** SystemCoreClock = pllvco/pllp;
165 .loc 1 254 50 view .LVU45
166 0064 C2F30142 ubfx r2, r2, #16, #2
254:Core/Src/system_stm32f4xx.c **** SystemCoreClock = pllvco/pllp;
167 .loc 1 254 56 view .LVU46
ARM GAS /tmp/cc9poKmu.s page 9
168 0068 0132 adds r2, r2, #1
254:Core/Src/system_stm32f4xx.c **** SystemCoreClock = pllvco/pllp;
169 .loc 1 254 12 view .LVU47
170 006a 5200 lsls r2, r2, #1
171 .LVL13:
255:Core/Src/system_stm32f4xx.c **** break;
172 .loc 1 255 7 is_stmt 1 view .LVU48
255:Core/Src/system_stm32f4xx.c **** break;
173 .loc 1 255 31 is_stmt 0 view .LVU49
174 006c B3FBF2F3 udiv r3, r3, r2
175 .LVL14:
255:Core/Src/system_stm32f4xx.c **** break;
176 .loc 1 255 23 view .LVU50
177 0070 074A ldr r2, .L12+4
178 .LVL15:
255:Core/Src/system_stm32f4xx.c **** break;
179 .loc 1 255 23 view .LVU51
180 0072 1360 str r3, [r2]
256:Core/Src/system_stm32f4xx.c **** default:
181 .loc 1 256 7 is_stmt 1 view .LVU52
182 0074 D4E7 b .L8
183 .LVL16:
184 .L9:
251:Core/Src/system_stm32f4xx.c **** }
185 .loc 1 251 9 view .LVU53
251:Core/Src/system_stm32f4xx.c **** }
186 .loc 1 251 29 is_stmt 0 view .LVU54
187 0076 074B ldr r3, .L12+8
188 0078 B3FBF2F3 udiv r3, r3, r2
251:Core/Src/system_stm32f4xx.c **** }
189 .loc 1 251 44 view .LVU55
190 007c 034A ldr r2, .L12
191 .LVL17:
251:Core/Src/system_stm32f4xx.c **** }
192 .loc 1 251 44 view .LVU56
193 007e 5268 ldr r2, [r2, #4]
251:Core/Src/system_stm32f4xx.c **** }
194 .loc 1 251 74 view .LVU57
195 0080 C2F38812 ubfx r2, r2, #6, #9
251:Core/Src/system_stm32f4xx.c **** }
196 .loc 1 251 16 view .LVU58
197 0084 02FB03F3 mul r3, r2, r3
198 .LVL18:
251:Core/Src/system_stm32f4xx.c **** }
199 .loc 1 251 16 view .LVU59
200 0088 EAE7 b .L10
201 .L13:
202 008a 00BF .align 2
203 .L12:
204 008c 00380240 .word 1073887232
205 0090 00000000 .word .LANCHOR0
206 0094 0024F400 .word 16000000
207 0098 00000000 .word .LANCHOR1
208 009c 00127A00 .word 8000000
209 .cfi_endproc
210 .LFE135:
212 .global APBPrescTable
ARM GAS /tmp/cc9poKmu.s page 10
213 .global AHBPrescTable
214 .global SystemCoreClock
215 .section .data.SystemCoreClock,"aw"
216 .align 2
217 .set .LANCHOR0,. + 0
220 SystemCoreClock:
221 0000 0024F400 .word 16000000
222 .section .rodata.AHBPrescTable,"a"
223 .align 2
224 .set .LANCHOR1,. + 0
227 AHBPrescTable:
228 0000 00000000 .ascii "\000\000\000\000\000\000\000\000\001\002\003\004\006"
228 00000000
228 01020304
228 06
229 000d 070809 .ascii "\007\010\011"
230 .section .rodata.APBPrescTable,"a"
231 .align 2
234 APBPrescTable:
235 0000 00000000 .ascii "\000\000\000\000\001\002\003\004"
235 01020304
236 .text
237 .Letext0:
238 .file 2 "/usr/lib/gcc/arm-none-eabi/10.3.1/include/stdint.h"
239 .file 3 "Drivers/CMSIS/Include/core_cm4.h"
240 .file 4 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h"
241 .file 5 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h"
ARM GAS /tmp/cc9poKmu.s page 11
DEFINED SYMBOLS
*ABS*:0000000000000000 system_stm32f4xx.c
/tmp/cc9poKmu.s:18 .text.SystemInit:0000000000000000 $t
/tmp/cc9poKmu.s:26 .text.SystemInit:0000000000000000 SystemInit
/tmp/cc9poKmu.s:45 .text.SystemInit:0000000000000010 $d
/tmp/cc9poKmu.s:50 .text.SystemCoreClockUpdate:0000000000000000 $t
/tmp/cc9poKmu.s:57 .text.SystemCoreClockUpdate:0000000000000000 SystemCoreClockUpdate
/tmp/cc9poKmu.s:204 .text.SystemCoreClockUpdate:000000000000008c $d
/tmp/cc9poKmu.s:234 .rodata.APBPrescTable:0000000000000000 APBPrescTable
/tmp/cc9poKmu.s:227 .rodata.AHBPrescTable:0000000000000000 AHBPrescTable
/tmp/cc9poKmu.s:220 .data.SystemCoreClock:0000000000000000 SystemCoreClock
/tmp/cc9poKmu.s:216 .data.SystemCoreClock:0000000000000000 $d
/tmp/cc9poKmu.s:223 .rodata.AHBPrescTable:0000000000000000 $d
/tmp/cc9poKmu.s:231 .rodata.APBPrescTable:0000000000000000 $d
NO UNDEFINED SYMBOLS