system_stm32f3xx.lst 32 KB

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