system_stm32f4xx.lst 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594
  1. ARM GAS C:\Users\10728\AppData\Local\Temp\ccgjYoCB.s page 1
  2. 1 .cpu cortex-m4
  3. 2 .arch armv7e-m
  4. 3 .fpu fpv4-sp-d16
  5. 4 .eabi_attribute 27, 1
  6. 5 .eabi_attribute 28, 1
  7. 6 .eabi_attribute 20, 1
  8. 7 .eabi_attribute 21, 1
  9. 8 .eabi_attribute 23, 3
  10. 9 .eabi_attribute 24, 1
  11. 10 .eabi_attribute 25, 1
  12. 11 .eabi_attribute 26, 1
  13. 12 .eabi_attribute 30, 6
  14. 13 .eabi_attribute 34, 1
  15. 14 .eabi_attribute 18, 4
  16. 15 .file "system_stm32f4xx.c"
  17. 16 .text
  18. 17 .Ltext0:
  19. 18 .cfi_sections .debug_frame
  20. 19 .global SystemCoreClock
  21. 20 .section .data.SystemCoreClock,"aw"
  22. 21 .align 2
  23. 24 SystemCoreClock:
  24. 25 0000 0024F400 .word 16000000
  25. 26 .global AHBPrescTable
  26. 27 .section .rodata.AHBPrescTable,"a"
  27. 28 .align 2
  28. 31 AHBPrescTable:
  29. 32 0000 00000000 .ascii "\000\000\000\000\000\000\000\000\001\002\003\004\006"
  30. 32 00000000
  31. 32 01020304
  32. 32 06
  33. 33 000d 070809 .ascii "\007\010\011"
  34. 34 .global APBPrescTable
  35. 35 .section .rodata.APBPrescTable,"a"
  36. 36 .align 2
  37. 39 APBPrescTable:
  38. 40 0000 00000000 .ascii "\000\000\000\000\001\002\003\004"
  39. 40 01020304
  40. 41 .section .text.SystemInit,"ax",%progbits
  41. 42 .align 1
  42. 43 .global SystemInit
  43. 44 .syntax unified
  44. 45 .thumb
  45. 46 .thumb_func
  46. 48 SystemInit:
  47. 49 .LFB235:
  48. 50 .file 1 "Core/Src/system_stm32f4xx.c"
  49. 1:Core/Src/system_stm32f4xx.c **** /**
  50. 2:Core/Src/system_stm32f4xx.c **** ******************************************************************************
  51. 3:Core/Src/system_stm32f4xx.c **** * @file system_stm32f4xx.c
  52. 4:Core/Src/system_stm32f4xx.c **** * @author MCD Application Team
  53. 5:Core/Src/system_stm32f4xx.c **** * @brief CMSIS Cortex-M4 Device Peripheral Access Layer System Source File.
  54. 6:Core/Src/system_stm32f4xx.c **** *
  55. 7:Core/Src/system_stm32f4xx.c **** * This file provides two functions and one global variable to be called from
  56. 8:Core/Src/system_stm32f4xx.c **** * user application:
  57. 9:Core/Src/system_stm32f4xx.c **** * - SystemInit(): This function is called at startup just after reset and
  58. 10:Core/Src/system_stm32f4xx.c **** * before branch to main program. This call is made inside
  59. ARM GAS C:\Users\10728\AppData\Local\Temp\ccgjYoCB.s page 2
  60. 11:Core/Src/system_stm32f4xx.c **** * the "startup_stm32f4xx.s" file.
  61. 12:Core/Src/system_stm32f4xx.c **** *
  62. 13:Core/Src/system_stm32f4xx.c **** * - SystemCoreClock variable: Contains the core clock (HCLK), it can be used
  63. 14:Core/Src/system_stm32f4xx.c **** * by the user application to setup the SysTick
  64. 15:Core/Src/system_stm32f4xx.c **** * timer or configure other parameters.
  65. 16:Core/Src/system_stm32f4xx.c **** *
  66. 17:Core/Src/system_stm32f4xx.c **** * - SystemCoreClockUpdate(): Updates the variable SystemCoreClock and must
  67. 18:Core/Src/system_stm32f4xx.c **** * be called whenever the core clock is changed
  68. 19:Core/Src/system_stm32f4xx.c **** * during program execution.
  69. 20:Core/Src/system_stm32f4xx.c **** *
  70. 21:Core/Src/system_stm32f4xx.c **** *
  71. 22:Core/Src/system_stm32f4xx.c **** ******************************************************************************
  72. 23:Core/Src/system_stm32f4xx.c **** * @attention
  73. 24:Core/Src/system_stm32f4xx.c **** *
  74. 25:Core/Src/system_stm32f4xx.c **** * Copyright (c) 2017 STMicroelectronics.
  75. 26:Core/Src/system_stm32f4xx.c **** * All rights reserved.
  76. 27:Core/Src/system_stm32f4xx.c **** *
  77. 28:Core/Src/system_stm32f4xx.c **** * This software is licensed under terms that can be found in the LICENSE file
  78. 29:Core/Src/system_stm32f4xx.c **** * in the root directory of this software component.
  79. 30:Core/Src/system_stm32f4xx.c **** * If no LICENSE file comes with this software, it is provided AS-IS.
  80. 31:Core/Src/system_stm32f4xx.c **** *
  81. 32:Core/Src/system_stm32f4xx.c **** ******************************************************************************
  82. 33:Core/Src/system_stm32f4xx.c **** */
  83. 34:Core/Src/system_stm32f4xx.c ****
  84. 35:Core/Src/system_stm32f4xx.c **** /** @addtogroup CMSIS
  85. 36:Core/Src/system_stm32f4xx.c **** * @{
  86. 37:Core/Src/system_stm32f4xx.c **** */
  87. 38:Core/Src/system_stm32f4xx.c ****
  88. 39:Core/Src/system_stm32f4xx.c **** /** @addtogroup stm32f4xx_system
  89. 40:Core/Src/system_stm32f4xx.c **** * @{
  90. 41:Core/Src/system_stm32f4xx.c **** */
  91. 42:Core/Src/system_stm32f4xx.c ****
  92. 43:Core/Src/system_stm32f4xx.c **** /** @addtogroup STM32F4xx_System_Private_Includes
  93. 44:Core/Src/system_stm32f4xx.c **** * @{
  94. 45:Core/Src/system_stm32f4xx.c **** */
  95. 46:Core/Src/system_stm32f4xx.c ****
  96. 47:Core/Src/system_stm32f4xx.c ****
  97. 48:Core/Src/system_stm32f4xx.c **** #include "stm32f4xx.h"
  98. 49:Core/Src/system_stm32f4xx.c ****
  99. 50:Core/Src/system_stm32f4xx.c **** #if !defined (HSE_VALUE)
  100. 51:Core/Src/system_stm32f4xx.c **** #define HSE_VALUE ((uint32_t)25000000) /*!< Default value of the External oscillator in Hz */
  101. 52:Core/Src/system_stm32f4xx.c **** #endif /* HSE_VALUE */
  102. 53:Core/Src/system_stm32f4xx.c ****
  103. 54:Core/Src/system_stm32f4xx.c **** #if !defined (HSI_VALUE)
  104. 55:Core/Src/system_stm32f4xx.c **** #define HSI_VALUE ((uint32_t)16000000) /*!< Value of the Internal oscillator in Hz*/
  105. 56:Core/Src/system_stm32f4xx.c **** #endif /* HSI_VALUE */
  106. 57:Core/Src/system_stm32f4xx.c ****
  107. 58:Core/Src/system_stm32f4xx.c **** /**
  108. 59:Core/Src/system_stm32f4xx.c **** * @}
  109. 60:Core/Src/system_stm32f4xx.c **** */
  110. 61:Core/Src/system_stm32f4xx.c ****
  111. 62:Core/Src/system_stm32f4xx.c **** /** @addtogroup STM32F4xx_System_Private_TypesDefinitions
  112. 63:Core/Src/system_stm32f4xx.c **** * @{
  113. 64:Core/Src/system_stm32f4xx.c **** */
  114. 65:Core/Src/system_stm32f4xx.c ****
  115. 66:Core/Src/system_stm32f4xx.c **** /**
  116. 67:Core/Src/system_stm32f4xx.c **** * @}
  117. ARM GAS C:\Users\10728\AppData\Local\Temp\ccgjYoCB.s page 3
  118. 68:Core/Src/system_stm32f4xx.c **** */
  119. 69:Core/Src/system_stm32f4xx.c ****
  120. 70:Core/Src/system_stm32f4xx.c **** /** @addtogroup STM32F4xx_System_Private_Defines
  121. 71:Core/Src/system_stm32f4xx.c **** * @{
  122. 72:Core/Src/system_stm32f4xx.c **** */
  123. 73:Core/Src/system_stm32f4xx.c ****
  124. 74:Core/Src/system_stm32f4xx.c **** /************************* Miscellaneous Configuration ************************/
  125. 75:Core/Src/system_stm32f4xx.c **** /*!< Uncomment the following line if you need to use external SRAM or SDRAM as data memory */
  126. 76:Core/Src/system_stm32f4xx.c **** #if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx)\
  127. 77:Core/Src/system_stm32f4xx.c **** || defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\
  128. 78:Core/Src/system_stm32f4xx.c **** || defined(STM32F469xx) || defined(STM32F479xx) || defined(STM32F412Zx) || defined(STM32F412Vx)
  129. 79:Core/Src/system_stm32f4xx.c **** /* #define DATA_IN_ExtSRAM */
  130. 80:Core/Src/system_stm32f4xx.c **** #endif /* STM32F40xxx || STM32F41xxx || STM32F42xxx || STM32F43xxx || STM32F469xx || STM32F479xx ||
  131. 81:Core/Src/system_stm32f4xx.c **** STM32F412Zx || STM32F412Vx */
  132. 82:Core/Src/system_stm32f4xx.c ****
  133. 83:Core/Src/system_stm32f4xx.c **** #if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\
  134. 84:Core/Src/system_stm32f4xx.c **** || defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
  135. 85:Core/Src/system_stm32f4xx.c **** /* #define DATA_IN_ExtSDRAM */
  136. 86:Core/Src/system_stm32f4xx.c **** #endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx ||
  137. 87:Core/Src/system_stm32f4xx.c **** STM32F479xx */
  138. 88:Core/Src/system_stm32f4xx.c ****
  139. 89:Core/Src/system_stm32f4xx.c **** /* Note: Following vector table addresses must be defined in line with linker
  140. 90:Core/Src/system_stm32f4xx.c **** configuration. */
  141. 91:Core/Src/system_stm32f4xx.c **** /*!< Uncomment the following line if you need to relocate the vector table
  142. 92:Core/Src/system_stm32f4xx.c **** anywhere in Flash or Sram, else the vector table is kept at the automatic
  143. 93:Core/Src/system_stm32f4xx.c **** remap of boot address selected */
  144. 94:Core/Src/system_stm32f4xx.c **** /* #define USER_VECT_TAB_ADDRESS */
  145. 95:Core/Src/system_stm32f4xx.c ****
  146. 96:Core/Src/system_stm32f4xx.c **** #if defined(USER_VECT_TAB_ADDRESS)
  147. 97:Core/Src/system_stm32f4xx.c **** /*!< Uncomment the following line if you need to relocate your vector Table
  148. 98:Core/Src/system_stm32f4xx.c **** in Sram else user remap will be done in Flash. */
  149. 99:Core/Src/system_stm32f4xx.c **** /* #define VECT_TAB_SRAM */
  150. 100:Core/Src/system_stm32f4xx.c **** #if defined(VECT_TAB_SRAM)
  151. 101:Core/Src/system_stm32f4xx.c **** #define VECT_TAB_BASE_ADDRESS SRAM_BASE /*!< Vector Table base address field.
  152. 102:Core/Src/system_stm32f4xx.c **** This value must be a multiple of 0x200. */
  153. 103:Core/Src/system_stm32f4xx.c **** #define VECT_TAB_OFFSET 0x00000000U /*!< Vector Table base offset field.
  154. 104:Core/Src/system_stm32f4xx.c **** This value must be a multiple of 0x200. */
  155. 105:Core/Src/system_stm32f4xx.c **** #else
  156. 106:Core/Src/system_stm32f4xx.c **** #define VECT_TAB_BASE_ADDRESS FLASH_BASE /*!< Vector Table base address field.
  157. 107:Core/Src/system_stm32f4xx.c **** This value must be a multiple of 0x200. */
  158. 108:Core/Src/system_stm32f4xx.c **** #define VECT_TAB_OFFSET 0x00000000U /*!< Vector Table base offset field.
  159. 109:Core/Src/system_stm32f4xx.c **** This value must be a multiple of 0x200. */
  160. 110:Core/Src/system_stm32f4xx.c **** #endif /* VECT_TAB_SRAM */
  161. 111:Core/Src/system_stm32f4xx.c **** #endif /* USER_VECT_TAB_ADDRESS */
  162. 112:Core/Src/system_stm32f4xx.c **** /******************************************************************************/
  163. 113:Core/Src/system_stm32f4xx.c ****
  164. 114:Core/Src/system_stm32f4xx.c **** /**
  165. 115:Core/Src/system_stm32f4xx.c **** * @}
  166. 116:Core/Src/system_stm32f4xx.c **** */
  167. 117:Core/Src/system_stm32f4xx.c ****
  168. 118:Core/Src/system_stm32f4xx.c **** /** @addtogroup STM32F4xx_System_Private_Macros
  169. 119:Core/Src/system_stm32f4xx.c **** * @{
  170. 120:Core/Src/system_stm32f4xx.c **** */
  171. 121:Core/Src/system_stm32f4xx.c ****
  172. 122:Core/Src/system_stm32f4xx.c **** /**
  173. 123:Core/Src/system_stm32f4xx.c **** * @}
  174. 124:Core/Src/system_stm32f4xx.c **** */
  175. ARM GAS C:\Users\10728\AppData\Local\Temp\ccgjYoCB.s page 4
  176. 125:Core/Src/system_stm32f4xx.c ****
  177. 126:Core/Src/system_stm32f4xx.c **** /** @addtogroup STM32F4xx_System_Private_Variables
  178. 127:Core/Src/system_stm32f4xx.c **** * @{
  179. 128:Core/Src/system_stm32f4xx.c **** */
  180. 129:Core/Src/system_stm32f4xx.c **** /* This variable is updated in three ways:
  181. 130:Core/Src/system_stm32f4xx.c **** 1) by calling CMSIS function SystemCoreClockUpdate()
  182. 131:Core/Src/system_stm32f4xx.c **** 2) by calling HAL API function HAL_RCC_GetHCLKFreq()
  183. 132:Core/Src/system_stm32f4xx.c **** 3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency
  184. 133:Core/Src/system_stm32f4xx.c **** Note: If you use this function to configure the system clock; then there
  185. 134:Core/Src/system_stm32f4xx.c **** is no need to call the 2 first functions listed above, since SystemCoreClock
  186. 135:Core/Src/system_stm32f4xx.c **** variable is updated automatically.
  187. 136:Core/Src/system_stm32f4xx.c **** */
  188. 137:Core/Src/system_stm32f4xx.c **** uint32_t SystemCoreClock = 16000000;
  189. 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};
  190. 139:Core/Src/system_stm32f4xx.c **** const uint8_t APBPrescTable[8] = {0, 0, 0, 0, 1, 2, 3, 4};
  191. 140:Core/Src/system_stm32f4xx.c **** /**
  192. 141:Core/Src/system_stm32f4xx.c **** * @}
  193. 142:Core/Src/system_stm32f4xx.c **** */
  194. 143:Core/Src/system_stm32f4xx.c ****
  195. 144:Core/Src/system_stm32f4xx.c **** /** @addtogroup STM32F4xx_System_Private_FunctionPrototypes
  196. 145:Core/Src/system_stm32f4xx.c **** * @{
  197. 146:Core/Src/system_stm32f4xx.c **** */
  198. 147:Core/Src/system_stm32f4xx.c ****
  199. 148:Core/Src/system_stm32f4xx.c **** #if defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM)
  200. 149:Core/Src/system_stm32f4xx.c **** static void SystemInit_ExtMemCtl(void);
  201. 150:Core/Src/system_stm32f4xx.c **** #endif /* DATA_IN_ExtSRAM || DATA_IN_ExtSDRAM */
  202. 151:Core/Src/system_stm32f4xx.c ****
  203. 152:Core/Src/system_stm32f4xx.c **** /**
  204. 153:Core/Src/system_stm32f4xx.c **** * @}
  205. 154:Core/Src/system_stm32f4xx.c **** */
  206. 155:Core/Src/system_stm32f4xx.c ****
  207. 156:Core/Src/system_stm32f4xx.c **** /** @addtogroup STM32F4xx_System_Private_Functions
  208. 157:Core/Src/system_stm32f4xx.c **** * @{
  209. 158:Core/Src/system_stm32f4xx.c **** */
  210. 159:Core/Src/system_stm32f4xx.c ****
  211. 160:Core/Src/system_stm32f4xx.c **** /**
  212. 161:Core/Src/system_stm32f4xx.c **** * @brief Setup the microcontroller system
  213. 162:Core/Src/system_stm32f4xx.c **** * Initialize the FPU setting, vector table location and External memory
  214. 163:Core/Src/system_stm32f4xx.c **** * configuration.
  215. 164:Core/Src/system_stm32f4xx.c **** * @param None
  216. 165:Core/Src/system_stm32f4xx.c **** * @retval None
  217. 166:Core/Src/system_stm32f4xx.c **** */
  218. 167:Core/Src/system_stm32f4xx.c **** void SystemInit(void)
  219. 168:Core/Src/system_stm32f4xx.c **** {
  220. 51 .loc 1 168 1
  221. 52 .cfi_startproc
  222. 53 @ args = 0, pretend = 0, frame = 0
  223. 54 @ frame_needed = 1, uses_anonymous_args = 0
  224. 55 @ link register save eliminated.
  225. 56 0000 80B4 push {r7}
  226. 57 .LCFI0:
  227. 58 .cfi_def_cfa_offset 4
  228. 59 .cfi_offset 7, -4
  229. 60 0002 00AF add r7, sp, #0
  230. 61 .LCFI1:
  231. 62 .cfi_def_cfa_register 7
  232. 169:Core/Src/system_stm32f4xx.c **** /* FPU settings ------------------------------------------------------------*/
  233. ARM GAS C:\Users\10728\AppData\Local\Temp\ccgjYoCB.s page 5
  234. 170:Core/Src/system_stm32f4xx.c **** #if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
  235. 171:Core/Src/system_stm32f4xx.c **** SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */
  236. 63 .loc 1 171 16
  237. 64 0004 064B ldr r3, .L2
  238. 65 0006 D3F88830 ldr r3, [r3, #136]
  239. 66 000a 054A ldr r2, .L2
  240. 67 000c 43F47003 orr r3, r3, #15728640
  241. 68 0010 C2F88830 str r3, [r2, #136]
  242. 172:Core/Src/system_stm32f4xx.c **** #endif
  243. 173:Core/Src/system_stm32f4xx.c ****
  244. 174:Core/Src/system_stm32f4xx.c **** #if defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM)
  245. 175:Core/Src/system_stm32f4xx.c **** SystemInit_ExtMemCtl();
  246. 176:Core/Src/system_stm32f4xx.c **** #endif /* DATA_IN_ExtSRAM || DATA_IN_ExtSDRAM */
  247. 177:Core/Src/system_stm32f4xx.c ****
  248. 178:Core/Src/system_stm32f4xx.c **** /* Configure the Vector Table location -------------------------------------*/
  249. 179:Core/Src/system_stm32f4xx.c **** #if defined(USER_VECT_TAB_ADDRESS)
  250. 180:Core/Src/system_stm32f4xx.c **** SCB->VTOR = VECT_TAB_BASE_ADDRESS | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM
  251. 181:Core/Src/system_stm32f4xx.c **** #endif /* USER_VECT_TAB_ADDRESS */
  252. 182:Core/Src/system_stm32f4xx.c **** }
  253. 69 .loc 1 182 1
  254. 70 0014 00BF nop
  255. 71 0016 BD46 mov sp, r7
  256. 72 .LCFI2:
  257. 73 .cfi_def_cfa_register 13
  258. 74 @ sp needed
  259. 75 0018 5DF8047B ldr r7, [sp], #4
  260. 76 .LCFI3:
  261. 77 .cfi_restore 7
  262. 78 .cfi_def_cfa_offset 0
  263. 79 001c 7047 bx lr
  264. 80 .L3:
  265. 81 001e 00BF .align 2
  266. 82 .L2:
  267. 83 0020 00ED00E0 .word -536810240
  268. 84 .cfi_endproc
  269. 85 .LFE235:
  270. 87 .section .text.SystemCoreClockUpdate,"ax",%progbits
  271. 88 .align 1
  272. 89 .global SystemCoreClockUpdate
  273. 90 .syntax unified
  274. 91 .thumb
  275. 92 .thumb_func
  276. 94 SystemCoreClockUpdate:
  277. 95 .LFB236:
  278. 183:Core/Src/system_stm32f4xx.c ****
  279. 184:Core/Src/system_stm32f4xx.c **** /**
  280. 185:Core/Src/system_stm32f4xx.c **** * @brief Update SystemCoreClock variable according to Clock Register Values.
  281. 186:Core/Src/system_stm32f4xx.c **** * The SystemCoreClock variable contains the core clock (HCLK), it can
  282. 187:Core/Src/system_stm32f4xx.c **** * be used by the user application to setup the SysTick timer or configure
  283. 188:Core/Src/system_stm32f4xx.c **** * other parameters.
  284. 189:Core/Src/system_stm32f4xx.c **** *
  285. 190:Core/Src/system_stm32f4xx.c **** * @note Each time the core clock (HCLK) changes, this function must be called
  286. 191:Core/Src/system_stm32f4xx.c **** * to update SystemCoreClock variable value. Otherwise, any configuration
  287. 192:Core/Src/system_stm32f4xx.c **** * based on this variable will be incorrect.
  288. 193:Core/Src/system_stm32f4xx.c **** *
  289. 194:Core/Src/system_stm32f4xx.c **** * @note - The system frequency computed by this function is not the real
  290. 195:Core/Src/system_stm32f4xx.c **** * frequency in the chip. It is calculated based on the predefined
  291. ARM GAS C:\Users\10728\AppData\Local\Temp\ccgjYoCB.s page 6
  292. 196:Core/Src/system_stm32f4xx.c **** * constant and the selected clock source:
  293. 197:Core/Src/system_stm32f4xx.c **** *
  294. 198:Core/Src/system_stm32f4xx.c **** * - If SYSCLK source is HSI, SystemCoreClock will contain the HSI_VALUE(*)
  295. 199:Core/Src/system_stm32f4xx.c **** *
  296. 200:Core/Src/system_stm32f4xx.c **** * - If SYSCLK source is HSE, SystemCoreClock will contain the HSE_VALUE(**)
  297. 201:Core/Src/system_stm32f4xx.c **** *
  298. 202:Core/Src/system_stm32f4xx.c **** * - If SYSCLK source is PLL, SystemCoreClock will contain the HSE_VALUE(**)
  299. 203:Core/Src/system_stm32f4xx.c **** * or HSI_VALUE(*) multiplied/divided by the PLL factors.
  300. 204:Core/Src/system_stm32f4xx.c **** *
  301. 205:Core/Src/system_stm32f4xx.c **** * (*) HSI_VALUE is a constant defined in stm32f4xx_hal_conf.h file (default value
  302. 206:Core/Src/system_stm32f4xx.c **** * 16 MHz) but the real value may vary depending on the variations
  303. 207:Core/Src/system_stm32f4xx.c **** * in voltage and temperature.
  304. 208:Core/Src/system_stm32f4xx.c **** *
  305. 209:Core/Src/system_stm32f4xx.c **** * (**) HSE_VALUE is a constant defined in stm32f4xx_hal_conf.h file (its value
  306. 210:Core/Src/system_stm32f4xx.c **** * depends on the application requirements), user has to ensure that HSE_VALUE
  307. 211:Core/Src/system_stm32f4xx.c **** * is same as the real frequency of the crystal used. Otherwise, this function
  308. 212:Core/Src/system_stm32f4xx.c **** * may have wrong result.
  309. 213:Core/Src/system_stm32f4xx.c **** *
  310. 214:Core/Src/system_stm32f4xx.c **** * - The result of this function could be not correct when using fractional
  311. 215:Core/Src/system_stm32f4xx.c **** * value for HSE crystal.
  312. 216:Core/Src/system_stm32f4xx.c **** *
  313. 217:Core/Src/system_stm32f4xx.c **** * @param None
  314. 218:Core/Src/system_stm32f4xx.c **** * @retval None
  315. 219:Core/Src/system_stm32f4xx.c **** */
  316. 220:Core/Src/system_stm32f4xx.c **** void SystemCoreClockUpdate(void)
  317. 221:Core/Src/system_stm32f4xx.c **** {
  318. 96 .loc 1 221 1
  319. 97 .cfi_startproc
  320. 98 @ args = 0, pretend = 0, frame = 24
  321. 99 @ frame_needed = 1, uses_anonymous_args = 0
  322. 100 @ link register save eliminated.
  323. 101 0000 80B4 push {r7}
  324. 102 .LCFI4:
  325. 103 .cfi_def_cfa_offset 4
  326. 104 .cfi_offset 7, -4
  327. 105 0002 87B0 sub sp, sp, #28
  328. 106 .LCFI5:
  329. 107 .cfi_def_cfa_offset 32
  330. 108 0004 00AF add r7, sp, #0
  331. 109 .LCFI6:
  332. 110 .cfi_def_cfa_register 7
  333. 222:Core/Src/system_stm32f4xx.c **** uint32_t tmp = 0, pllvco = 0, pllp = 2, pllsource = 0, pllm = 2;
  334. 111 .loc 1 222 12
  335. 112 0006 0023 movs r3, #0
  336. 113 0008 3B61 str r3, [r7, #16]
  337. 114 .loc 1 222 21
  338. 115 000a 0023 movs r3, #0
  339. 116 000c 7B61 str r3, [r7, #20]
  340. 117 .loc 1 222 33
  341. 118 000e 0223 movs r3, #2
  342. 119 0010 FB60 str r3, [r7, #12]
  343. 120 .loc 1 222 43
  344. 121 0012 0023 movs r3, #0
  345. 122 0014 BB60 str r3, [r7, #8]
  346. 123 .loc 1 222 58
  347. 124 0016 0223 movs r3, #2
  348. 125 0018 7B60 str r3, [r7, #4]
  349. ARM GAS C:\Users\10728\AppData\Local\Temp\ccgjYoCB.s page 7
  350. 223:Core/Src/system_stm32f4xx.c ****
  351. 224:Core/Src/system_stm32f4xx.c **** /* Get SYSCLK source -------------------------------------------------------*/
  352. 225:Core/Src/system_stm32f4xx.c **** tmp = RCC->CFGR & RCC_CFGR_SWS;
  353. 126 .loc 1 225 12
  354. 127 001a 344B ldr r3, .L12
  355. 128 001c 9B68 ldr r3, [r3, #8]
  356. 129 .loc 1 225 7
  357. 130 001e 03F00C03 and r3, r3, #12
  358. 131 0022 3B61 str r3, [r7, #16]
  359. 226:Core/Src/system_stm32f4xx.c ****
  360. 227:Core/Src/system_stm32f4xx.c **** switch (tmp)
  361. 132 .loc 1 227 3
  362. 133 0024 3B69 ldr r3, [r7, #16]
  363. 134 0026 082B cmp r3, #8
  364. 135 0028 11D0 beq .L5
  365. 136 002a 3B69 ldr r3, [r7, #16]
  366. 137 002c 082B cmp r3, #8
  367. 138 002e 44D8 bhi .L6
  368. 139 0030 3B69 ldr r3, [r7, #16]
  369. 140 0032 002B cmp r3, #0
  370. 141 0034 03D0 beq .L7
  371. 142 0036 3B69 ldr r3, [r7, #16]
  372. 143 0038 042B cmp r3, #4
  373. 144 003a 04D0 beq .L8
  374. 145 003c 3DE0 b .L6
  375. 146 .L7:
  376. 228:Core/Src/system_stm32f4xx.c **** {
  377. 229:Core/Src/system_stm32f4xx.c **** case 0x00: /* HSI used as system clock source */
  378. 230:Core/Src/system_stm32f4xx.c **** SystemCoreClock = HSI_VALUE;
  379. 147 .loc 1 230 23
  380. 148 003e 2C4B ldr r3, .L12+4
  381. 149 0040 2C4A ldr r2, .L12+8
  382. 150 0042 1A60 str r2, [r3]
  383. 231:Core/Src/system_stm32f4xx.c **** break;
  384. 151 .loc 1 231 7
  385. 152 0044 3DE0 b .L9
  386. 153 .L8:
  387. 232:Core/Src/system_stm32f4xx.c **** case 0x04: /* HSE used as system clock source */
  388. 233:Core/Src/system_stm32f4xx.c **** SystemCoreClock = HSE_VALUE;
  389. 154 .loc 1 233 23
  390. 155 0046 2A4B ldr r3, .L12+4
  391. 156 0048 2B4A ldr r2, .L12+12
  392. 157 004a 1A60 str r2, [r3]
  393. 234:Core/Src/system_stm32f4xx.c **** break;
  394. 158 .loc 1 234 7
  395. 159 004c 39E0 b .L9
  396. 160 .L5:
  397. 235:Core/Src/system_stm32f4xx.c **** case 0x08: /* PLL used as system clock source */
  398. 236:Core/Src/system_stm32f4xx.c ****
  399. 237:Core/Src/system_stm32f4xx.c **** /* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N
  400. 238:Core/Src/system_stm32f4xx.c **** SYSCLK = PLL_VCO / PLL_P
  401. 239:Core/Src/system_stm32f4xx.c **** */
  402. 240:Core/Src/system_stm32f4xx.c **** pllsource = (RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) >> 22;
  403. 161 .loc 1 240 23
  404. 162 004e 274B ldr r3, .L12
  405. 163 0050 5B68 ldr r3, [r3, #4]
  406. 164 .loc 1 240 55
  407. ARM GAS C:\Users\10728\AppData\Local\Temp\ccgjYoCB.s page 8
  408. 165 0052 9B0D lsrs r3, r3, #22
  409. 166 .loc 1 240 17
  410. 167 0054 03F00103 and r3, r3, #1
  411. 168 0058 BB60 str r3, [r7, #8]
  412. 241:Core/Src/system_stm32f4xx.c **** pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM;
  413. 169 .loc 1 241 17
  414. 170 005a 244B ldr r3, .L12
  415. 171 005c 5B68 ldr r3, [r3, #4]
  416. 172 .loc 1 241 12
  417. 173 005e 03F03F03 and r3, r3, #63
  418. 174 0062 7B60 str r3, [r7, #4]
  419. 242:Core/Src/system_stm32f4xx.c ****
  420. 243:Core/Src/system_stm32f4xx.c **** if (pllsource != 0)
  421. 175 .loc 1 243 10
  422. 176 0064 BB68 ldr r3, [r7, #8]
  423. 177 0066 002B cmp r3, #0
  424. 178 0068 0CD0 beq .L10
  425. 244:Core/Src/system_stm32f4xx.c **** {
  426. 245:Core/Src/system_stm32f4xx.c **** /* HSE used as PLL clock source */
  427. 246:Core/Src/system_stm32f4xx.c **** pllvco = (HSE_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6);
  428. 179 .loc 1 246 29
  429. 180 006a 234A ldr r2, .L12+12
  430. 181 006c 7B68 ldr r3, [r7, #4]
  431. 182 006e B2FBF3F3 udiv r3, r2, r3
  432. 183 .loc 1 246 44
  433. 184 0072 1E4A ldr r2, .L12
  434. 185 0074 5268 ldr r2, [r2, #4]
  435. 186 .loc 1 246 74
  436. 187 0076 9209 lsrs r2, r2, #6
  437. 188 0078 C2F30802 ubfx r2, r2, #0, #9
  438. 189 .loc 1 246 16
  439. 190 007c 02FB03F3 mul r3, r2, r3
  440. 191 0080 7B61 str r3, [r7, #20]
  441. 192 0082 0BE0 b .L11
  442. 193 .L10:
  443. 247:Core/Src/system_stm32f4xx.c **** }
  444. 248:Core/Src/system_stm32f4xx.c **** else
  445. 249:Core/Src/system_stm32f4xx.c **** {
  446. 250:Core/Src/system_stm32f4xx.c **** /* HSI used as PLL clock source */
  447. 251:Core/Src/system_stm32f4xx.c **** pllvco = (HSI_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6);
  448. 194 .loc 1 251 29
  449. 195 0084 1B4A ldr r2, .L12+8
  450. 196 0086 7B68 ldr r3, [r7, #4]
  451. 197 0088 B2FBF3F3 udiv r3, r2, r3
  452. 198 .loc 1 251 44
  453. 199 008c 174A ldr r2, .L12
  454. 200 008e 5268 ldr r2, [r2, #4]
  455. 201 .loc 1 251 74
  456. 202 0090 9209 lsrs r2, r2, #6
  457. 203 0092 C2F30802 ubfx r2, r2, #0, #9
  458. 204 .loc 1 251 16
  459. 205 0096 02FB03F3 mul r3, r2, r3
  460. 206 009a 7B61 str r3, [r7, #20]
  461. 207 .L11:
  462. 252:Core/Src/system_stm32f4xx.c **** }
  463. 253:Core/Src/system_stm32f4xx.c ****
  464. 254:Core/Src/system_stm32f4xx.c **** pllp = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >>16) + 1 ) *2;
  465. ARM GAS C:\Users\10728\AppData\Local\Temp\ccgjYoCB.s page 9
  466. 208 .loc 1 254 20
  467. 209 009c 134B ldr r3, .L12
  468. 210 009e 5B68 ldr r3, [r3, #4]
  469. 211 .loc 1 254 50
  470. 212 00a0 1B0C lsrs r3, r3, #16
  471. 213 00a2 03F00303 and r3, r3, #3
  472. 214 .loc 1 254 56
  473. 215 00a6 0133 adds r3, r3, #1
  474. 216 .loc 1 254 12
  475. 217 00a8 5B00 lsls r3, r3, #1
  476. 218 00aa FB60 str r3, [r7, #12]
  477. 255:Core/Src/system_stm32f4xx.c **** SystemCoreClock = pllvco/pllp;
  478. 219 .loc 1 255 31
  479. 220 00ac 7A69 ldr r2, [r7, #20]
  480. 221 00ae FB68 ldr r3, [r7, #12]
  481. 222 00b0 B2FBF3F3 udiv r3, r2, r3
  482. 223 .loc 1 255 23
  483. 224 00b4 0E4A ldr r2, .L12+4
  484. 225 00b6 1360 str r3, [r2]
  485. 256:Core/Src/system_stm32f4xx.c **** break;
  486. 226 .loc 1 256 7
  487. 227 00b8 03E0 b .L9
  488. 228 .L6:
  489. 257:Core/Src/system_stm32f4xx.c **** default:
  490. 258:Core/Src/system_stm32f4xx.c **** SystemCoreClock = HSI_VALUE;
  491. 229 .loc 1 258 23
  492. 230 00ba 0D4B ldr r3, .L12+4
  493. 231 00bc 0D4A ldr r2, .L12+8
  494. 232 00be 1A60 str r2, [r3]
  495. 259:Core/Src/system_stm32f4xx.c **** break;
  496. 233 .loc 1 259 7
  497. 234 00c0 00BF nop
  498. 235 .L9:
  499. 260:Core/Src/system_stm32f4xx.c **** }
  500. 261:Core/Src/system_stm32f4xx.c **** /* Compute HCLK frequency --------------------------------------------------*/
  501. 262:Core/Src/system_stm32f4xx.c **** /* Get HCLK prescaler */
  502. 263:Core/Src/system_stm32f4xx.c **** tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> 4)];
  503. 236 .loc 1 263 28
  504. 237 00c2 0A4B ldr r3, .L12
  505. 238 00c4 9B68 ldr r3, [r3, #8]
  506. 239 .loc 1 263 52
  507. 240 00c6 1B09 lsrs r3, r3, #4
  508. 241 00c8 03F00F03 and r3, r3, #15
  509. 242 .loc 1 263 22
  510. 243 00cc 0B4A ldr r2, .L12+16
  511. 244 00ce D35C ldrb r3, [r2, r3] @ zero_extendqisi2
  512. 245 .loc 1 263 7
  513. 246 00d0 3B61 str r3, [r7, #16]
  514. 264:Core/Src/system_stm32f4xx.c **** /* HCLK frequency */
  515. 265:Core/Src/system_stm32f4xx.c **** SystemCoreClock >>= tmp;
  516. 247 .loc 1 265 19
  517. 248 00d2 074B ldr r3, .L12+4
  518. 249 00d4 1A68 ldr r2, [r3]
  519. 250 00d6 3B69 ldr r3, [r7, #16]
  520. 251 00d8 22FA03F3 lsr r3, r2, r3
  521. 252 00dc 044A ldr r2, .L12+4
  522. 253 00de 1360 str r3, [r2]
  523. ARM GAS C:\Users\10728\AppData\Local\Temp\ccgjYoCB.s page 10
  524. 266:Core/Src/system_stm32f4xx.c **** }
  525. 254 .loc 1 266 1
  526. 255 00e0 00BF nop
  527. 256 00e2 1C37 adds r7, r7, #28
  528. 257 .LCFI7:
  529. 258 .cfi_def_cfa_offset 4
  530. 259 00e4 BD46 mov sp, r7
  531. 260 .LCFI8:
  532. 261 .cfi_def_cfa_register 13
  533. 262 @ sp needed
  534. 263 00e6 5DF8047B ldr r7, [sp], #4
  535. 264 .LCFI9:
  536. 265 .cfi_restore 7
  537. 266 .cfi_def_cfa_offset 0
  538. 267 00ea 7047 bx lr
  539. 268 .L13:
  540. 269 .align 2
  541. 270 .L12:
  542. 271 00ec 00380240 .word 1073887232
  543. 272 00f0 00000000 .word SystemCoreClock
  544. 273 00f4 0024F400 .word 16000000
  545. 274 00f8 00127A00 .word 8000000
  546. 275 00fc 00000000 .word AHBPrescTable
  547. 276 .cfi_endproc
  548. 277 .LFE236:
  549. 279 .text
  550. 280 .Letext0:
  551. 281 .file 2 "d:\\arm-gcc\\arm-none-eabi\\include\\machine\\_default_types.h"
  552. 282 .file 3 "d:\\arm-gcc\\arm-none-eabi\\include\\sys\\_stdint.h"
  553. 283 .file 4 "Drivers/CMSIS/Include/core_cm4.h"
  554. 284 .file 5 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h"
  555. 285 .file 6 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f405xx.h"
  556. ARM GAS C:\Users\10728\AppData\Local\Temp\ccgjYoCB.s page 11
  557. DEFINED SYMBOLS
  558. *ABS*:00000000 system_stm32f4xx.c
  559. C:\Users\10728\AppData\Local\Temp\ccgjYoCB.s:24 .data.SystemCoreClock:00000000 SystemCoreClock
  560. C:\Users\10728\AppData\Local\Temp\ccgjYoCB.s:21 .data.SystemCoreClock:00000000 $d
  561. C:\Users\10728\AppData\Local\Temp\ccgjYoCB.s:31 .rodata.AHBPrescTable:00000000 AHBPrescTable
  562. C:\Users\10728\AppData\Local\Temp\ccgjYoCB.s:28 .rodata.AHBPrescTable:00000000 $d
  563. C:\Users\10728\AppData\Local\Temp\ccgjYoCB.s:39 .rodata.APBPrescTable:00000000 APBPrescTable
  564. C:\Users\10728\AppData\Local\Temp\ccgjYoCB.s:36 .rodata.APBPrescTable:00000000 $d
  565. C:\Users\10728\AppData\Local\Temp\ccgjYoCB.s:42 .text.SystemInit:00000000 $t
  566. C:\Users\10728\AppData\Local\Temp\ccgjYoCB.s:48 .text.SystemInit:00000000 SystemInit
  567. C:\Users\10728\AppData\Local\Temp\ccgjYoCB.s:83 .text.SystemInit:00000020 $d
  568. C:\Users\10728\AppData\Local\Temp\ccgjYoCB.s:88 .text.SystemCoreClockUpdate:00000000 $t
  569. C:\Users\10728\AppData\Local\Temp\ccgjYoCB.s:94 .text.SystemCoreClockUpdate:00000000 SystemCoreClockUpdate
  570. C:\Users\10728\AppData\Local\Temp\ccgjYoCB.s:271 .text.SystemCoreClockUpdate:000000ec $d
  571. NO UNDEFINED SYMBOLS