system_stm32f4xx.lst 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647
  1. ARM GAS /tmp/cc8x624m.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, 1
  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 .section .text.SystemInit,"ax",%progbits
  21. 20 .align 1
  22. 21 .global SystemInit
  23. 22 .syntax unified
  24. 23 .thumb
  25. 24 .thumb_func
  26. 26 SystemInit:
  27. 27 .LFB130:
  28. 28 .file 1 "Src/system_stm32f4xx.c"
  29. 1:Src/system_stm32f4xx.c **** /**
  30. 2:Src/system_stm32f4xx.c **** ******************************************************************************
  31. 3:Src/system_stm32f4xx.c **** * @file system_stm32f4xx.c
  32. 4:Src/system_stm32f4xx.c **** * @author MCD Application Team
  33. 5:Src/system_stm32f4xx.c **** * @brief CMSIS Cortex-M4 Device Peripheral Access Layer System Source File.
  34. 6:Src/system_stm32f4xx.c **** *
  35. 7:Src/system_stm32f4xx.c **** * This file provides two functions and one global variable to be called from
  36. 8:Src/system_stm32f4xx.c **** * user application:
  37. 9:Src/system_stm32f4xx.c **** * - SystemInit(): This function is called at startup just after reset and
  38. 10:Src/system_stm32f4xx.c **** * before branch to main program. This call is made inside
  39. 11:Src/system_stm32f4xx.c **** * the "startup_stm32f4xx.s" file.
  40. 12:Src/system_stm32f4xx.c **** *
  41. 13:Src/system_stm32f4xx.c **** * - SystemCoreClock variable: Contains the core clock (HCLK), it can be used
  42. 14:Src/system_stm32f4xx.c **** * by the user application to setup the SysTick
  43. 15:Src/system_stm32f4xx.c **** * timer or configure other parameters.
  44. 16:Src/system_stm32f4xx.c **** *
  45. 17:Src/system_stm32f4xx.c **** * - SystemCoreClockUpdate(): Updates the variable SystemCoreClock and must
  46. 18:Src/system_stm32f4xx.c **** * be called whenever the core clock is changed
  47. 19:Src/system_stm32f4xx.c **** * during program execution.
  48. 20:Src/system_stm32f4xx.c **** *
  49. 21:Src/system_stm32f4xx.c **** *
  50. 22:Src/system_stm32f4xx.c **** ******************************************************************************
  51. 23:Src/system_stm32f4xx.c **** * @attention
  52. 24:Src/system_stm32f4xx.c **** *
  53. 25:Src/system_stm32f4xx.c **** * <h2><center>&copy; COPYRIGHT 2017 STMicroelectronics</center></h2>
  54. 26:Src/system_stm32f4xx.c **** *
  55. 27:Src/system_stm32f4xx.c **** * Redistribution and use in source and binary forms, with or without modification,
  56. 28:Src/system_stm32f4xx.c **** * are permitted provided that the following conditions are met:
  57. 29:Src/system_stm32f4xx.c **** * 1. Redistributions of source code must retain the above copyright notice,
  58. 30:Src/system_stm32f4xx.c **** * this list of conditions and the following disclaimer.
  59. ARM GAS /tmp/cc8x624m.s page 2
  60. 31:Src/system_stm32f4xx.c **** * 2. Redistributions in binary form must reproduce the above copyright notice,
  61. 32:Src/system_stm32f4xx.c **** * this list of conditions and the following disclaimer in the documentation
  62. 33:Src/system_stm32f4xx.c **** * and/or other materials provided with the distribution.
  63. 34:Src/system_stm32f4xx.c **** * 3. Neither the name of STMicroelectronics nor the names of its contributors
  64. 35:Src/system_stm32f4xx.c **** * may be used to endorse or promote products derived from this software
  65. 36:Src/system_stm32f4xx.c **** * without specific prior written permission.
  66. 37:Src/system_stm32f4xx.c **** *
  67. 38:Src/system_stm32f4xx.c **** * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  68. 39:Src/system_stm32f4xx.c **** * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  69. 40:Src/system_stm32f4xx.c **** * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  70. 41:Src/system_stm32f4xx.c **** * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
  71. 42:Src/system_stm32f4xx.c **** * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  72. 43:Src/system_stm32f4xx.c **** * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  73. 44:Src/system_stm32f4xx.c **** * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  74. 45:Src/system_stm32f4xx.c **** * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  75. 46:Src/system_stm32f4xx.c **** * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  76. 47:Src/system_stm32f4xx.c **** * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  77. 48:Src/system_stm32f4xx.c **** *
  78. 49:Src/system_stm32f4xx.c **** ******************************************************************************
  79. 50:Src/system_stm32f4xx.c **** */
  80. 51:Src/system_stm32f4xx.c ****
  81. 52:Src/system_stm32f4xx.c **** /** @addtogroup CMSIS
  82. 53:Src/system_stm32f4xx.c **** * @{
  83. 54:Src/system_stm32f4xx.c **** */
  84. 55:Src/system_stm32f4xx.c ****
  85. 56:Src/system_stm32f4xx.c **** /** @addtogroup stm32f4xx_system
  86. 57:Src/system_stm32f4xx.c **** * @{
  87. 58:Src/system_stm32f4xx.c **** */
  88. 59:Src/system_stm32f4xx.c ****
  89. 60:Src/system_stm32f4xx.c **** /** @addtogroup STM32F4xx_System_Private_Includes
  90. 61:Src/system_stm32f4xx.c **** * @{
  91. 62:Src/system_stm32f4xx.c **** */
  92. 63:Src/system_stm32f4xx.c ****
  93. 64:Src/system_stm32f4xx.c ****
  94. 65:Src/system_stm32f4xx.c **** #include "stm32f4xx.h"
  95. 66:Src/system_stm32f4xx.c ****
  96. 67:Src/system_stm32f4xx.c **** #if !defined (HSE_VALUE)
  97. 68:Src/system_stm32f4xx.c **** #define HSE_VALUE ((uint32_t)25000000) /*!< Default value of the External oscillator in Hz */
  98. 69:Src/system_stm32f4xx.c **** #endif /* HSE_VALUE */
  99. 70:Src/system_stm32f4xx.c ****
  100. 71:Src/system_stm32f4xx.c **** #if !defined (HSI_VALUE)
  101. 72:Src/system_stm32f4xx.c **** #define HSI_VALUE ((uint32_t)16000000) /*!< Value of the Internal oscillator in Hz*/
  102. 73:Src/system_stm32f4xx.c **** #endif /* HSI_VALUE */
  103. 74:Src/system_stm32f4xx.c ****
  104. 75:Src/system_stm32f4xx.c **** /**
  105. 76:Src/system_stm32f4xx.c **** * @}
  106. 77:Src/system_stm32f4xx.c **** */
  107. 78:Src/system_stm32f4xx.c ****
  108. 79:Src/system_stm32f4xx.c **** /** @addtogroup STM32F4xx_System_Private_TypesDefinitions
  109. 80:Src/system_stm32f4xx.c **** * @{
  110. 81:Src/system_stm32f4xx.c **** */
  111. 82:Src/system_stm32f4xx.c ****
  112. 83:Src/system_stm32f4xx.c **** /**
  113. 84:Src/system_stm32f4xx.c **** * @}
  114. 85:Src/system_stm32f4xx.c **** */
  115. 86:Src/system_stm32f4xx.c ****
  116. 87:Src/system_stm32f4xx.c **** /** @addtogroup STM32F4xx_System_Private_Defines
  117. ARM GAS /tmp/cc8x624m.s page 3
  118. 88:Src/system_stm32f4xx.c **** * @{
  119. 89:Src/system_stm32f4xx.c **** */
  120. 90:Src/system_stm32f4xx.c ****
  121. 91:Src/system_stm32f4xx.c **** /************************* Miscellaneous Configuration ************************/
  122. 92:Src/system_stm32f4xx.c **** /*!< Uncomment the following line if you need to use external SRAM or SDRAM as data memory */
  123. 93:Src/system_stm32f4xx.c **** #if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx)\
  124. 94:Src/system_stm32f4xx.c **** || defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\
  125. 95:Src/system_stm32f4xx.c **** || defined(STM32F469xx) || defined(STM32F479xx) || defined(STM32F412Zx) || defined(STM32F412Vx)
  126. 96:Src/system_stm32f4xx.c **** /* #define DATA_IN_ExtSRAM */
  127. 97:Src/system_stm32f4xx.c **** #endif /* STM32F40xxx || STM32F41xxx || STM32F42xxx || STM32F43xxx || STM32F469xx || STM32F479xx ||
  128. 98:Src/system_stm32f4xx.c **** STM32F412Zx || STM32F412Vx */
  129. 99:Src/system_stm32f4xx.c ****
  130. 100:Src/system_stm32f4xx.c **** #if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\
  131. 101:Src/system_stm32f4xx.c **** || defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
  132. 102:Src/system_stm32f4xx.c **** /* #define DATA_IN_ExtSDRAM */
  133. 103:Src/system_stm32f4xx.c **** #endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx ||
  134. 104:Src/system_stm32f4xx.c **** STM32F479xx */
  135. 105:Src/system_stm32f4xx.c ****
  136. 106:Src/system_stm32f4xx.c **** /*!< Uncomment the following line if you need to relocate your vector Table in
  137. 107:Src/system_stm32f4xx.c **** Internal SRAM. */
  138. 108:Src/system_stm32f4xx.c **** /* #define VECT_TAB_SRAM */
  139. 109:Src/system_stm32f4xx.c **** #define VECT_TAB_OFFSET 0x00 /*!< Vector Table base offset field.
  140. 110:Src/system_stm32f4xx.c **** This value must be a multiple of 0x200. */
  141. 111:Src/system_stm32f4xx.c **** /******************************************************************************/
  142. 112:Src/system_stm32f4xx.c ****
  143. 113:Src/system_stm32f4xx.c **** /**
  144. 114:Src/system_stm32f4xx.c **** * @}
  145. 115:Src/system_stm32f4xx.c **** */
  146. 116:Src/system_stm32f4xx.c ****
  147. 117:Src/system_stm32f4xx.c **** /** @addtogroup STM32F4xx_System_Private_Macros
  148. 118:Src/system_stm32f4xx.c **** * @{
  149. 119:Src/system_stm32f4xx.c **** */
  150. 120:Src/system_stm32f4xx.c ****
  151. 121:Src/system_stm32f4xx.c **** /**
  152. 122:Src/system_stm32f4xx.c **** * @}
  153. 123:Src/system_stm32f4xx.c **** */
  154. 124:Src/system_stm32f4xx.c ****
  155. 125:Src/system_stm32f4xx.c **** /** @addtogroup STM32F4xx_System_Private_Variables
  156. 126:Src/system_stm32f4xx.c **** * @{
  157. 127:Src/system_stm32f4xx.c **** */
  158. 128:Src/system_stm32f4xx.c **** /* This variable is updated in three ways:
  159. 129:Src/system_stm32f4xx.c **** 1) by calling CMSIS function SystemCoreClockUpdate()
  160. 130:Src/system_stm32f4xx.c **** 2) by calling HAL API function HAL_RCC_GetHCLKFreq()
  161. 131:Src/system_stm32f4xx.c **** 3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency
  162. 132:Src/system_stm32f4xx.c **** Note: If you use this function to configure the system clock; then there
  163. 133:Src/system_stm32f4xx.c **** is no need to call the 2 first functions listed above, since SystemCoreClock
  164. 134:Src/system_stm32f4xx.c **** variable is updated automatically.
  165. 135:Src/system_stm32f4xx.c **** */
  166. 136:Src/system_stm32f4xx.c **** uint32_t SystemCoreClock = 16000000;
  167. 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};
  168. 138:Src/system_stm32f4xx.c **** const uint8_t APBPrescTable[8] = {0, 0, 0, 0, 1, 2, 3, 4};
  169. 139:Src/system_stm32f4xx.c **** /**
  170. 140:Src/system_stm32f4xx.c **** * @}
  171. 141:Src/system_stm32f4xx.c **** */
  172. 142:Src/system_stm32f4xx.c ****
  173. 143:Src/system_stm32f4xx.c **** /** @addtogroup STM32F4xx_System_Private_FunctionPrototypes
  174. 144:Src/system_stm32f4xx.c **** * @{
  175. ARM GAS /tmp/cc8x624m.s page 4
  176. 145:Src/system_stm32f4xx.c **** */
  177. 146:Src/system_stm32f4xx.c ****
  178. 147:Src/system_stm32f4xx.c **** #if defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM)
  179. 148:Src/system_stm32f4xx.c **** static void SystemInit_ExtMemCtl(void);
  180. 149:Src/system_stm32f4xx.c **** #endif /* DATA_IN_ExtSRAM || DATA_IN_ExtSDRAM */
  181. 150:Src/system_stm32f4xx.c ****
  182. 151:Src/system_stm32f4xx.c **** /**
  183. 152:Src/system_stm32f4xx.c **** * @}
  184. 153:Src/system_stm32f4xx.c **** */
  185. 154:Src/system_stm32f4xx.c ****
  186. 155:Src/system_stm32f4xx.c **** /** @addtogroup STM32F4xx_System_Private_Functions
  187. 156:Src/system_stm32f4xx.c **** * @{
  188. 157:Src/system_stm32f4xx.c **** */
  189. 158:Src/system_stm32f4xx.c ****
  190. 159:Src/system_stm32f4xx.c **** /**
  191. 160:Src/system_stm32f4xx.c **** * @brief Setup the microcontroller system
  192. 161:Src/system_stm32f4xx.c **** * Initialize the FPU setting, vector table location and External memory
  193. 162:Src/system_stm32f4xx.c **** * configuration.
  194. 163:Src/system_stm32f4xx.c **** * @param None
  195. 164:Src/system_stm32f4xx.c **** * @retval None
  196. 165:Src/system_stm32f4xx.c **** */
  197. 166:Src/system_stm32f4xx.c **** void SystemInit(void)
  198. 167:Src/system_stm32f4xx.c **** {
  199. 29 .loc 1 167 1 view -0
  200. 30 .cfi_startproc
  201. 31 @ args = 0, pretend = 0, frame = 0
  202. 32 @ frame_needed = 0, uses_anonymous_args = 0
  203. 33 @ link register save eliminated.
  204. 168:Src/system_stm32f4xx.c **** /* FPU settings ------------------------------------------------------------*/
  205. 169:Src/system_stm32f4xx.c **** #if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
  206. 170:Src/system_stm32f4xx.c **** SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */
  207. 34 .loc 1 170 5 view .LVU1
  208. 35 .loc 1 170 16 is_stmt 0 view .LVU2
  209. 36 0000 0F49 ldr r1, .L2
  210. 37 0002 D1F88830 ldr r3, [r1, #136]
  211. 38 0006 43F47003 orr r3, r3, #15728640
  212. 39 000a C1F88830 str r3, [r1, #136]
  213. 171:Src/system_stm32f4xx.c **** #endif
  214. 172:Src/system_stm32f4xx.c **** /* Reset the RCC clock configuration to the default reset state ------------*/
  215. 173:Src/system_stm32f4xx.c **** /* Set HSION bit */
  216. 174:Src/system_stm32f4xx.c **** RCC->CR |= (uint32_t)0x00000001;
  217. 40 .loc 1 174 3 is_stmt 1 view .LVU3
  218. 41 .loc 1 174 11 is_stmt 0 view .LVU4
  219. 42 000e 0D4B ldr r3, .L2+4
  220. 43 0010 1A68 ldr r2, [r3]
  221. 44 0012 42F00102 orr r2, r2, #1
  222. 45 0016 1A60 str r2, [r3]
  223. 175:Src/system_stm32f4xx.c ****
  224. 176:Src/system_stm32f4xx.c **** /* Reset CFGR register */
  225. 177:Src/system_stm32f4xx.c **** RCC->CFGR = 0x00000000;
  226. 46 .loc 1 177 3 is_stmt 1 view .LVU5
  227. 47 .loc 1 177 13 is_stmt 0 view .LVU6
  228. 48 0018 0020 movs r0, #0
  229. 49 001a 9860 str r0, [r3, #8]
  230. 178:Src/system_stm32f4xx.c ****
  231. 179:Src/system_stm32f4xx.c **** /* Reset HSEON, CSSON and PLLON bits */
  232. 180:Src/system_stm32f4xx.c **** RCC->CR &= (uint32_t)0xFEF6FFFF;
  233. ARM GAS /tmp/cc8x624m.s page 5
  234. 50 .loc 1 180 3 is_stmt 1 view .LVU7
  235. 51 .loc 1 180 11 is_stmt 0 view .LVU8
  236. 52 001c 1A68 ldr r2, [r3]
  237. 53 001e 22F08472 bic r2, r2, #17301504
  238. 54 0022 22F48032 bic r2, r2, #65536
  239. 55 0026 1A60 str r2, [r3]
  240. 181:Src/system_stm32f4xx.c ****
  241. 182:Src/system_stm32f4xx.c **** /* Reset PLLCFGR register */
  242. 183:Src/system_stm32f4xx.c **** RCC->PLLCFGR = 0x24003010;
  243. 56 .loc 1 183 3 is_stmt 1 view .LVU9
  244. 57 .loc 1 183 16 is_stmt 0 view .LVU10
  245. 58 0028 074A ldr r2, .L2+8
  246. 59 002a 5A60 str r2, [r3, #4]
  247. 184:Src/system_stm32f4xx.c ****
  248. 185:Src/system_stm32f4xx.c **** /* Reset HSEBYP bit */
  249. 186:Src/system_stm32f4xx.c **** RCC->CR &= (uint32_t)0xFFFBFFFF;
  250. 60 .loc 1 186 3 is_stmt 1 view .LVU11
  251. 61 .loc 1 186 11 is_stmt 0 view .LVU12
  252. 62 002c 1A68 ldr r2, [r3]
  253. 63 002e 22F48022 bic r2, r2, #262144
  254. 64 0032 1A60 str r2, [r3]
  255. 187:Src/system_stm32f4xx.c ****
  256. 188:Src/system_stm32f4xx.c **** /* Disable all interrupts */
  257. 189:Src/system_stm32f4xx.c **** RCC->CIR = 0x00000000;
  258. 65 .loc 1 189 3 is_stmt 1 view .LVU13
  259. 66 .loc 1 189 12 is_stmt 0 view .LVU14
  260. 67 0034 D860 str r0, [r3, #12]
  261. 190:Src/system_stm32f4xx.c ****
  262. 191:Src/system_stm32f4xx.c **** #if defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM)
  263. 192:Src/system_stm32f4xx.c **** SystemInit_ExtMemCtl();
  264. 193:Src/system_stm32f4xx.c **** #endif /* DATA_IN_ExtSRAM || DATA_IN_ExtSDRAM */
  265. 194:Src/system_stm32f4xx.c ****
  266. 195:Src/system_stm32f4xx.c **** /* Configure the Vector Table location add offset address ------------------*/
  267. 196:Src/system_stm32f4xx.c **** #ifdef VECT_TAB_SRAM
  268. 197:Src/system_stm32f4xx.c **** SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */
  269. 198:Src/system_stm32f4xx.c **** #else
  270. 199:Src/system_stm32f4xx.c **** SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH */
  271. 68 .loc 1 199 3 is_stmt 1 view .LVU15
  272. 69 .loc 1 199 13 is_stmt 0 view .LVU16
  273. 70 0036 4FF00063 mov r3, #134217728
  274. 71 003a 8B60 str r3, [r1, #8]
  275. 200:Src/system_stm32f4xx.c **** #endif
  276. 201:Src/system_stm32f4xx.c **** }
  277. 72 .loc 1 201 1 view .LVU17
  278. 73 003c 7047 bx lr
  279. 74 .L3:
  280. 75 003e 00BF .align 2
  281. 76 .L2:
  282. 77 0040 00ED00E0 .word -536810240
  283. 78 0044 00380240 .word 1073887232
  284. 79 0048 10300024 .word 603992080
  285. 80 .cfi_endproc
  286. 81 .LFE130:
  287. 83 .section .text.SystemCoreClockUpdate,"ax",%progbits
  288. 84 .align 1
  289. 85 .global SystemCoreClockUpdate
  290. 86 .syntax unified
  291. ARM GAS /tmp/cc8x624m.s page 6
  292. 87 .thumb
  293. 88 .thumb_func
  294. 90 SystemCoreClockUpdate:
  295. 91 .LFB131:
  296. 202:Src/system_stm32f4xx.c ****
  297. 203:Src/system_stm32f4xx.c **** /**
  298. 204:Src/system_stm32f4xx.c **** * @brief Update SystemCoreClock variable according to Clock Register Values.
  299. 205:Src/system_stm32f4xx.c **** * The SystemCoreClock variable contains the core clock (HCLK), it can
  300. 206:Src/system_stm32f4xx.c **** * be used by the user application to setup the SysTick timer or configure
  301. 207:Src/system_stm32f4xx.c **** * other parameters.
  302. 208:Src/system_stm32f4xx.c **** *
  303. 209:Src/system_stm32f4xx.c **** * @note Each time the core clock (HCLK) changes, this function must be called
  304. 210:Src/system_stm32f4xx.c **** * to update SystemCoreClock variable value. Otherwise, any configuration
  305. 211:Src/system_stm32f4xx.c **** * based on this variable will be incorrect.
  306. 212:Src/system_stm32f4xx.c **** *
  307. 213:Src/system_stm32f4xx.c **** * @note - The system frequency computed by this function is not the real
  308. 214:Src/system_stm32f4xx.c **** * frequency in the chip. It is calculated based on the predefined
  309. 215:Src/system_stm32f4xx.c **** * constant and the selected clock source:
  310. 216:Src/system_stm32f4xx.c **** *
  311. 217:Src/system_stm32f4xx.c **** * - If SYSCLK source is HSI, SystemCoreClock will contain the HSI_VALUE(*)
  312. 218:Src/system_stm32f4xx.c **** *
  313. 219:Src/system_stm32f4xx.c **** * - If SYSCLK source is HSE, SystemCoreClock will contain the HSE_VALUE(**)
  314. 220:Src/system_stm32f4xx.c **** *
  315. 221:Src/system_stm32f4xx.c **** * - If SYSCLK source is PLL, SystemCoreClock will contain the HSE_VALUE(**)
  316. 222:Src/system_stm32f4xx.c **** * or HSI_VALUE(*) multiplied/divided by the PLL factors.
  317. 223:Src/system_stm32f4xx.c **** *
  318. 224:Src/system_stm32f4xx.c **** * (*) HSI_VALUE is a constant defined in stm32f4xx_hal_conf.h file (default value
  319. 225:Src/system_stm32f4xx.c **** * 16 MHz) but the real value may vary depending on the variations
  320. 226:Src/system_stm32f4xx.c **** * in voltage and temperature.
  321. 227:Src/system_stm32f4xx.c **** *
  322. 228:Src/system_stm32f4xx.c **** * (**) HSE_VALUE is a constant defined in stm32f4xx_hal_conf.h file (its value
  323. 229:Src/system_stm32f4xx.c **** * depends on the application requirements), user has to ensure that HSE_VALUE
  324. 230:Src/system_stm32f4xx.c **** * is same as the real frequency of the crystal used. Otherwise, this function
  325. 231:Src/system_stm32f4xx.c **** * may have wrong result.
  326. 232:Src/system_stm32f4xx.c **** *
  327. 233:Src/system_stm32f4xx.c **** * - The result of this function could be not correct when using fractional
  328. 234:Src/system_stm32f4xx.c **** * value for HSE crystal.
  329. 235:Src/system_stm32f4xx.c **** *
  330. 236:Src/system_stm32f4xx.c **** * @param None
  331. 237:Src/system_stm32f4xx.c **** * @retval None
  332. 238:Src/system_stm32f4xx.c **** */
  333. 239:Src/system_stm32f4xx.c **** void SystemCoreClockUpdate(void)
  334. 240:Src/system_stm32f4xx.c **** {
  335. 92 .loc 1 240 1 is_stmt 1 view -0
  336. 93 .cfi_startproc
  337. 94 @ args = 0, pretend = 0, frame = 0
  338. 95 @ frame_needed = 0, uses_anonymous_args = 0
  339. 96 @ link register save eliminated.
  340. 241:Src/system_stm32f4xx.c **** uint32_t tmp = 0, pllvco = 0, pllp = 2, pllsource = 0, pllm = 2;
  341. 97 .loc 1 241 3 view .LVU19
  342. 98 .LVL0:
  343. 242:Src/system_stm32f4xx.c ****
  344. 243:Src/system_stm32f4xx.c **** /* Get SYSCLK source -------------------------------------------------------*/
  345. 244:Src/system_stm32f4xx.c **** tmp = RCC->CFGR & RCC_CFGR_SWS;
  346. 99 .loc 1 244 3 view .LVU20
  347. 100 .loc 1 244 12 is_stmt 0 view .LVU21
  348. 101 0000 224B ldr r3, .L12
  349. ARM GAS /tmp/cc8x624m.s page 7
  350. 102 0002 9B68 ldr r3, [r3, #8]
  351. 103 .loc 1 244 7 view .LVU22
  352. 104 0004 03F00C03 and r3, r3, #12
  353. 105 .LVL1:
  354. 245:Src/system_stm32f4xx.c ****
  355. 246:Src/system_stm32f4xx.c **** switch (tmp)
  356. 106 .loc 1 246 3 is_stmt 1 view .LVU23
  357. 107 0008 042B cmp r3, #4
  358. 108 000a 14D0 beq .L5
  359. 109 000c 082B cmp r3, #8
  360. 110 000e 16D0 beq .L6
  361. 111 0010 1BB1 cbz r3, .L11
  362. 247:Src/system_stm32f4xx.c **** {
  363. 248:Src/system_stm32f4xx.c **** case 0x00: /* HSI used as system clock source */
  364. 249:Src/system_stm32f4xx.c **** SystemCoreClock = HSI_VALUE;
  365. 250:Src/system_stm32f4xx.c **** break;
  366. 251:Src/system_stm32f4xx.c **** case 0x04: /* HSE used as system clock source */
  367. 252:Src/system_stm32f4xx.c **** SystemCoreClock = HSE_VALUE;
  368. 253:Src/system_stm32f4xx.c **** break;
  369. 254:Src/system_stm32f4xx.c **** case 0x08: /* PLL used as system clock source */
  370. 255:Src/system_stm32f4xx.c ****
  371. 256:Src/system_stm32f4xx.c **** /* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N
  372. 257:Src/system_stm32f4xx.c **** SYSCLK = PLL_VCO / PLL_P
  373. 258:Src/system_stm32f4xx.c **** */
  374. 259:Src/system_stm32f4xx.c **** pllsource = (RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) >> 22;
  375. 260:Src/system_stm32f4xx.c **** pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM;
  376. 261:Src/system_stm32f4xx.c ****
  377. 262:Src/system_stm32f4xx.c **** if (pllsource != 0)
  378. 263:Src/system_stm32f4xx.c **** {
  379. 264:Src/system_stm32f4xx.c **** /* HSE used as PLL clock source */
  380. 265:Src/system_stm32f4xx.c **** pllvco = (HSE_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6);
  381. 266:Src/system_stm32f4xx.c **** }
  382. 267:Src/system_stm32f4xx.c **** else
  383. 268:Src/system_stm32f4xx.c **** {
  384. 269:Src/system_stm32f4xx.c **** /* HSI used as PLL clock source */
  385. 270:Src/system_stm32f4xx.c **** pllvco = (HSI_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6);
  386. 271:Src/system_stm32f4xx.c **** }
  387. 272:Src/system_stm32f4xx.c ****
  388. 273:Src/system_stm32f4xx.c **** pllp = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >>16) + 1 ) *2;
  389. 274:Src/system_stm32f4xx.c **** SystemCoreClock = pllvco/pllp;
  390. 275:Src/system_stm32f4xx.c **** break;
  391. 276:Src/system_stm32f4xx.c **** default:
  392. 277:Src/system_stm32f4xx.c **** SystemCoreClock = HSI_VALUE;
  393. 112 .loc 1 277 7 view .LVU24
  394. 113 .loc 1 277 23 is_stmt 0 view .LVU25
  395. 114 0012 1F4B ldr r3, .L12+4
  396. 115 .LVL2:
  397. 116 .loc 1 277 23 view .LVU26
  398. 117 0014 1F4A ldr r2, .L12+8
  399. 118 0016 1A60 str r2, [r3]
  400. 278:Src/system_stm32f4xx.c **** break;
  401. 119 .loc 1 278 7 is_stmt 1 view .LVU27
  402. 120 0018 02E0 b .L8
  403. 121 .LVL3:
  404. 122 .L11:
  405. 249:Src/system_stm32f4xx.c **** break;
  406. 123 .loc 1 249 7 view .LVU28
  407. ARM GAS /tmp/cc8x624m.s page 8
  408. 249:Src/system_stm32f4xx.c **** break;
  409. 124 .loc 1 249 23 is_stmt 0 view .LVU29
  410. 125 001a 1D4B ldr r3, .L12+4
  411. 126 .LVL4:
  412. 249:Src/system_stm32f4xx.c **** break;
  413. 127 .loc 1 249 23 view .LVU30
  414. 128 001c 1D4A ldr r2, .L12+8
  415. 129 001e 1A60 str r2, [r3]
  416. 250:Src/system_stm32f4xx.c **** case 0x04: /* HSE used as system clock source */
  417. 130 .loc 1 250 7 is_stmt 1 view .LVU31
  418. 131 .LVL5:
  419. 132 .L8:
  420. 279:Src/system_stm32f4xx.c **** }
  421. 280:Src/system_stm32f4xx.c **** /* Compute HCLK frequency --------------------------------------------------*/
  422. 281:Src/system_stm32f4xx.c **** /* Get HCLK prescaler */
  423. 282:Src/system_stm32f4xx.c **** tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> 4)];
  424. 133 .loc 1 282 3 view .LVU32
  425. 134 .loc 1 282 28 is_stmt 0 view .LVU33
  426. 135 0020 1A4B ldr r3, .L12
  427. 136 0022 9B68 ldr r3, [r3, #8]
  428. 137 .loc 1 282 52 view .LVU34
  429. 138 0024 C3F30313 ubfx r3, r3, #4, #4
  430. 139 .loc 1 282 22 view .LVU35
  431. 140 0028 1B4A ldr r2, .L12+12
  432. 141 002a D15C ldrb r1, [r2, r3] @ zero_extendqisi2
  433. 142 .LVL6:
  434. 283:Src/system_stm32f4xx.c **** /* HCLK frequency */
  435. 284:Src/system_stm32f4xx.c **** SystemCoreClock >>= tmp;
  436. 143 .loc 1 284 3 is_stmt 1 view .LVU36
  437. 144 .loc 1 284 19 is_stmt 0 view .LVU37
  438. 145 002c 184A ldr r2, .L12+4
  439. 146 002e 1368 ldr r3, [r2]
  440. 147 0030 CB40 lsrs r3, r3, r1
  441. 148 0032 1360 str r3, [r2]
  442. 285:Src/system_stm32f4xx.c **** }
  443. 149 .loc 1 285 1 view .LVU38
  444. 150 0034 7047 bx lr
  445. 151 .LVL7:
  446. 152 .L5:
  447. 252:Src/system_stm32f4xx.c **** break;
  448. 153 .loc 1 252 7 is_stmt 1 view .LVU39
  449. 252:Src/system_stm32f4xx.c **** break;
  450. 154 .loc 1 252 23 is_stmt 0 view .LVU40
  451. 155 0036 164B ldr r3, .L12+4
  452. 156 .LVL8:
  453. 252:Src/system_stm32f4xx.c **** break;
  454. 157 .loc 1 252 23 view .LVU41
  455. 158 0038 184A ldr r2, .L12+16
  456. 159 003a 1A60 str r2, [r3]
  457. 253:Src/system_stm32f4xx.c **** case 0x08: /* PLL used as system clock source */
  458. 160 .loc 1 253 7 is_stmt 1 view .LVU42
  459. 161 003c F0E7 b .L8
  460. 162 .LVL9:
  461. 163 .L6:
  462. 259:Src/system_stm32f4xx.c **** pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM;
  463. 164 .loc 1 259 7 view .LVU43
  464. 259:Src/system_stm32f4xx.c **** pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM;
  465. ARM GAS /tmp/cc8x624m.s page 9
  466. 165 .loc 1 259 23 is_stmt 0 view .LVU44
  467. 166 003e 134B ldr r3, .L12
  468. 167 .LVL10:
  469. 259:Src/system_stm32f4xx.c **** pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM;
  470. 168 .loc 1 259 23 view .LVU45
  471. 169 0040 5968 ldr r1, [r3, #4]
  472. 170 .LVL11:
  473. 260:Src/system_stm32f4xx.c ****
  474. 171 .loc 1 260 7 is_stmt 1 view .LVU46
  475. 260:Src/system_stm32f4xx.c ****
  476. 172 .loc 1 260 17 is_stmt 0 view .LVU47
  477. 173 0042 5A68 ldr r2, [r3, #4]
  478. 260:Src/system_stm32f4xx.c ****
  479. 174 .loc 1 260 12 view .LVU48
  480. 175 0044 02F03F02 and r2, r2, #63
  481. 176 .LVL12:
  482. 262:Src/system_stm32f4xx.c **** {
  483. 177 .loc 1 262 7 is_stmt 1 view .LVU49
  484. 262:Src/system_stm32f4xx.c **** {
  485. 178 .loc 1 262 10 is_stmt 0 view .LVU50
  486. 179 0048 11F4800F tst r1, #4194304
  487. 180 004c 13D0 beq .L9
  488. 265:Src/system_stm32f4xx.c **** }
  489. 181 .loc 1 265 9 is_stmt 1 view .LVU51
  490. 265:Src/system_stm32f4xx.c **** }
  491. 182 .loc 1 265 29 is_stmt 0 view .LVU52
  492. 183 004e 134B ldr r3, .L12+16
  493. 184 0050 B3FBF2F3 udiv r3, r3, r2
  494. 265:Src/system_stm32f4xx.c **** }
  495. 185 .loc 1 265 44 view .LVU53
  496. 186 0054 0D4A ldr r2, .L12
  497. 187 .LVL13:
  498. 265:Src/system_stm32f4xx.c **** }
  499. 188 .loc 1 265 44 view .LVU54
  500. 189 0056 5268 ldr r2, [r2, #4]
  501. 265:Src/system_stm32f4xx.c **** }
  502. 190 .loc 1 265 74 view .LVU55
  503. 191 0058 C2F38812 ubfx r2, r2, #6, #9
  504. 265:Src/system_stm32f4xx.c **** }
  505. 192 .loc 1 265 16 view .LVU56
  506. 193 005c 02FB03F3 mul r3, r2, r3
  507. 194 .LVL14:
  508. 195 .L10:
  509. 273:Src/system_stm32f4xx.c **** SystemCoreClock = pllvco/pllp;
  510. 196 .loc 1 273 7 is_stmt 1 view .LVU57
  511. 273:Src/system_stm32f4xx.c **** SystemCoreClock = pllvco/pllp;
  512. 197 .loc 1 273 20 is_stmt 0 view .LVU58
  513. 198 0060 0A4A ldr r2, .L12
  514. 199 0062 5268 ldr r2, [r2, #4]
  515. 273:Src/system_stm32f4xx.c **** SystemCoreClock = pllvco/pllp;
  516. 200 .loc 1 273 50 view .LVU59
  517. 201 0064 C2F30142 ubfx r2, r2, #16, #2
  518. 273:Src/system_stm32f4xx.c **** SystemCoreClock = pllvco/pllp;
  519. 202 .loc 1 273 56 view .LVU60
  520. 203 0068 0132 adds r2, r2, #1
  521. 273:Src/system_stm32f4xx.c **** SystemCoreClock = pllvco/pllp;
  522. 204 .loc 1 273 12 view .LVU61
  523. ARM GAS /tmp/cc8x624m.s page 10
  524. 205 006a 5200 lsls r2, r2, #1
  525. 206 .LVL15:
  526. 274:Src/system_stm32f4xx.c **** break;
  527. 207 .loc 1 274 7 is_stmt 1 view .LVU62
  528. 274:Src/system_stm32f4xx.c **** break;
  529. 208 .loc 1 274 31 is_stmt 0 view .LVU63
  530. 209 006c B3FBF2F3 udiv r3, r3, r2
  531. 210 .LVL16:
  532. 274:Src/system_stm32f4xx.c **** break;
  533. 211 .loc 1 274 23 view .LVU64
  534. 212 0070 074A ldr r2, .L12+4
  535. 213 .LVL17:
  536. 274:Src/system_stm32f4xx.c **** break;
  537. 214 .loc 1 274 23 view .LVU65
  538. 215 0072 1360 str r3, [r2]
  539. 275:Src/system_stm32f4xx.c **** default:
  540. 216 .loc 1 275 7 is_stmt 1 view .LVU66
  541. 217 0074 D4E7 b .L8
  542. 218 .LVL18:
  543. 219 .L9:
  544. 270:Src/system_stm32f4xx.c **** }
  545. 220 .loc 1 270 9 view .LVU67
  546. 270:Src/system_stm32f4xx.c **** }
  547. 221 .loc 1 270 29 is_stmt 0 view .LVU68
  548. 222 0076 074B ldr r3, .L12+8
  549. 223 0078 B3FBF2F3 udiv r3, r3, r2
  550. 270:Src/system_stm32f4xx.c **** }
  551. 224 .loc 1 270 44 view .LVU69
  552. 225 007c 034A ldr r2, .L12
  553. 226 .LVL19:
  554. 270:Src/system_stm32f4xx.c **** }
  555. 227 .loc 1 270 44 view .LVU70
  556. 228 007e 5268 ldr r2, [r2, #4]
  557. 270:Src/system_stm32f4xx.c **** }
  558. 229 .loc 1 270 74 view .LVU71
  559. 230 0080 C2F38812 ubfx r2, r2, #6, #9
  560. 270:Src/system_stm32f4xx.c **** }
  561. 231 .loc 1 270 16 view .LVU72
  562. 232 0084 02FB03F3 mul r3, r2, r3
  563. 233 .LVL20:
  564. 270:Src/system_stm32f4xx.c **** }
  565. 234 .loc 1 270 16 view .LVU73
  566. 235 0088 EAE7 b .L10
  567. 236 .L13:
  568. 237 008a 00BF .align 2
  569. 238 .L12:
  570. 239 008c 00380240 .word 1073887232
  571. 240 0090 00000000 .word .LANCHOR0
  572. 241 0094 0024F400 .word 16000000
  573. 242 0098 00000000 .word .LANCHOR1
  574. 243 009c 40787D01 .word 25000000
  575. 244 .cfi_endproc
  576. 245 .LFE131:
  577. 247 .global APBPrescTable
  578. 248 .global AHBPrescTable
  579. 249 .global SystemCoreClock
  580. 250 .section .data.SystemCoreClock,"aw"
  581. ARM GAS /tmp/cc8x624m.s page 11
  582. 251 .align 2
  583. 252 .set .LANCHOR0,. + 0
  584. 255 SystemCoreClock:
  585. 256 0000 0024F400 .word 16000000
  586. 257 .section .rodata.AHBPrescTable,"a"
  587. 258 .align 2
  588. 259 .set .LANCHOR1,. + 0
  589. 262 AHBPrescTable:
  590. 263 0000 00000000 .ascii "\000\000\000\000\000\000\000\000\001\002\003\004\006"
  591. 263 00000000
  592. 263 01020304
  593. 263 06
  594. 264 000d 070809 .ascii "\007\010\011"
  595. 265 .section .rodata.APBPrescTable,"a"
  596. 266 .align 2
  597. 269 APBPrescTable:
  598. 270 0000 00000000 .ascii "\000\000\000\000\001\002\003\004"
  599. 270 01020304
  600. 271 .text
  601. 272 .Letext0:
  602. 273 .file 2 "/home/gitc/\346\241\214\351\235\242/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/
  603. 274 .file 3 "/home/gitc/\346\241\214\351\235\242/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/
  604. 275 .file 4 "Drivers/CMSIS/Include/core_cm4.h"
  605. 276 .file 5 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h"
  606. 277 .file 6 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f407xx.h"
  607. ARM GAS /tmp/cc8x624m.s page 12
  608. DEFINED SYMBOLS
  609. *ABS*:0000000000000000 system_stm32f4xx.c
  610. /tmp/cc8x624m.s:20 .text.SystemInit:0000000000000000 $t
  611. /tmp/cc8x624m.s:26 .text.SystemInit:0000000000000000 SystemInit
  612. /tmp/cc8x624m.s:77 .text.SystemInit:0000000000000040 $d
  613. /tmp/cc8x624m.s:84 .text.SystemCoreClockUpdate:0000000000000000 $t
  614. /tmp/cc8x624m.s:90 .text.SystemCoreClockUpdate:0000000000000000 SystemCoreClockUpdate
  615. /tmp/cc8x624m.s:239 .text.SystemCoreClockUpdate:000000000000008c $d
  616. /tmp/cc8x624m.s:269 .rodata.APBPrescTable:0000000000000000 APBPrescTable
  617. /tmp/cc8x624m.s:262 .rodata.AHBPrescTable:0000000000000000 AHBPrescTable
  618. /tmp/cc8x624m.s:255 .data.SystemCoreClock:0000000000000000 SystemCoreClock
  619. /tmp/cc8x624m.s:251 .data.SystemCoreClock:0000000000000000 $d
  620. /tmp/cc8x624m.s:258 .rodata.AHBPrescTable:0000000000000000 $d
  621. /tmp/cc8x624m.s:266 .rodata.APBPrescTable:0000000000000000 $d
  622. NO UNDEFINED SYMBOLS