STM32H7-node-red-CM4.list 75 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014
  1. STM32H7-node-red-CM4.elf: file format elf32-littlearm
  2. Sections:
  3. Idx Name Size VMA LMA File off Algn
  4. 0 .isr_vector 00000298 08100000 08100000 00001000 2**0
  5. CONTENTS, ALLOC, LOAD, READONLY, DATA
  6. 1 .text 00000c30 08100298 08100298 00001298 2**2
  7. CONTENTS, ALLOC, LOAD, READONLY, CODE
  8. 2 .rodata 00000010 08100ec8 08100ec8 00001ec8 2**2
  9. CONTENTS, ALLOC, LOAD, READONLY, DATA
  10. 3 .init_array 00000004 08100ed8 08100ed8 00001ed8 2**2
  11. CONTENTS, ALLOC, LOAD, DATA
  12. 4 .fini_array 00000004 08100edc 08100edc 00001edc 2**2
  13. CONTENTS, ALLOC, LOAD, DATA
  14. 5 .data 00000010 10000000 08100ee0 00002000 2**2
  15. CONTENTS, ALLOC, LOAD, DATA
  16. 6 .bss 00000020 10000010 08100ef0 00002010 2**2
  17. ALLOC
  18. 7 ._user_heap_stack 00000600 10000030 08100ef0 00002030 2**0
  19. ALLOC
  20. 8 .ARM.attributes 00000030 00000000 00000000 00002010 2**0
  21. CONTENTS, READONLY
  22. 9 .debug_info 00005854 00000000 00000000 00002040 2**0
  23. CONTENTS, READONLY, DEBUGGING, OCTETS
  24. 10 .debug_abbrev 00000f2e 00000000 00000000 00007894 2**0
  25. CONTENTS, READONLY, DEBUGGING, OCTETS
  26. 11 .debug_aranges 00000500 00000000 00000000 000087c8 2**3
  27. CONTENTS, READONLY, DEBUGGING, OCTETS
  28. 12 .debug_rnglists 000003a5 00000000 00000000 00008cc8 2**0
  29. CONTENTS, READONLY, DEBUGGING, OCTETS
  30. 13 .debug_macro 00036d4f 00000000 00000000 0000906d 2**0
  31. CONTENTS, READONLY, DEBUGGING, OCTETS
  32. 14 .debug_line 00005e99 00000000 00000000 0003fdbc 2**0
  33. CONTENTS, READONLY, DEBUGGING, OCTETS
  34. 15 .debug_str 0016d99a 00000000 00000000 00045c55 2**0
  35. CONTENTS, READONLY, DEBUGGING, OCTETS
  36. 16 .comment 00000043 00000000 00000000 001b35ef 2**0
  37. CONTENTS, READONLY
  38. 17 .debug_frame 00001270 00000000 00000000 001b3634 2**2
  39. CONTENTS, READONLY, DEBUGGING, OCTETS
  40. 18 .debug_line_str 00000064 00000000 00000000 001b48a4 2**0
  41. CONTENTS, READONLY, DEBUGGING, OCTETS
  42. Disassembly of section .text:
  43. 08100298 <__do_global_dtors_aux>:
  44. 8100298: b510 push {r4, lr}
  45. 810029a: 4c05 ldr r4, [pc, #20] @ (81002b0 <__do_global_dtors_aux+0x18>)
  46. 810029c: 7823 ldrb r3, [r4, #0]
  47. 810029e: b933 cbnz r3, 81002ae <__do_global_dtors_aux+0x16>
  48. 81002a0: 4b04 ldr r3, [pc, #16] @ (81002b4 <__do_global_dtors_aux+0x1c>)
  49. 81002a2: b113 cbz r3, 81002aa <__do_global_dtors_aux+0x12>
  50. 81002a4: 4804 ldr r0, [pc, #16] @ (81002b8 <__do_global_dtors_aux+0x20>)
  51. 81002a6: f3af 8000 nop.w
  52. 81002aa: 2301 movs r3, #1
  53. 81002ac: 7023 strb r3, [r4, #0]
  54. 81002ae: bd10 pop {r4, pc}
  55. 81002b0: 10000010 .word 0x10000010
  56. 81002b4: 00000000 .word 0x00000000
  57. 81002b8: 08100eb0 .word 0x08100eb0
  58. 081002bc <frame_dummy>:
  59. 81002bc: b508 push {r3, lr}
  60. 81002be: 4b03 ldr r3, [pc, #12] @ (81002cc <frame_dummy+0x10>)
  61. 81002c0: b11b cbz r3, 81002ca <frame_dummy+0xe>
  62. 81002c2: 4903 ldr r1, [pc, #12] @ (81002d0 <frame_dummy+0x14>)
  63. 81002c4: 4803 ldr r0, [pc, #12] @ (81002d4 <frame_dummy+0x18>)
  64. 81002c6: f3af 8000 nop.w
  65. 81002ca: bd08 pop {r3, pc}
  66. 81002cc: 00000000 .word 0x00000000
  67. 81002d0: 10000014 .word 0x10000014
  68. 81002d4: 08100eb0 .word 0x08100eb0
  69. 081002d8 <SystemInit>:
  70. * configuration.
  71. * @param None
  72. * @retval None
  73. */
  74. void SystemInit (void)
  75. {
  76. 81002d8: b480 push {r7}
  77. 81002da: af00 add r7, sp, #0
  78. /* FPU settings ------------------------------------------------------------*/
  79. #if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
  80. SCB->CPACR |= ((3UL << (10*2))|(3UL << (11*2))); /* set CP10 and CP11 Full Access */
  81. 81002dc: 4b09 ldr r3, [pc, #36] @ (8100304 <SystemInit+0x2c>)
  82. 81002de: f8d3 3088 ldr.w r3, [r3, #136] @ 0x88
  83. 81002e2: 4a08 ldr r2, [pc, #32] @ (8100304 <SystemInit+0x2c>)
  84. 81002e4: f443 0370 orr.w r3, r3, #15728640 @ 0xf00000
  85. 81002e8: f8c2 3088 str.w r3, [r2, #136] @ 0x88
  86. #endif
  87. /*SEVONPEND enabled so that an interrupt coming from the CPU(n) interrupt signal is
  88. detectable by the CPU after a WFI/WFE instruction.*/
  89. SCB->SCR |= SCB_SCR_SEVONPEND_Msk;
  90. 81002ec: 4b05 ldr r3, [pc, #20] @ (8100304 <SystemInit+0x2c>)
  91. 81002ee: 691b ldr r3, [r3, #16]
  92. 81002f0: 4a04 ldr r2, [pc, #16] @ (8100304 <SystemInit+0x2c>)
  93. 81002f2: f043 0310 orr.w r3, r3, #16
  94. 81002f6: 6113 str r3, [r2, #16]
  95. #endif /* USER_VECT_TAB_ADDRESS */
  96. #else
  97. #error Please #define CORE_CM4 or CORE_CM7
  98. #endif /* CORE_CM4 */
  99. }
  100. 81002f8: bf00 nop
  101. 81002fa: 46bd mov sp, r7
  102. 81002fc: f85d 7b04 ldr.w r7, [sp], #4
  103. 8100300: 4770 bx lr
  104. 8100302: bf00 nop
  105. 8100304: e000ed00 .word 0xe000ed00
  106. 08100308 <main>:
  107. /**
  108. * @brief The application entry point.
  109. * @retval int
  110. */
  111. int main(void)
  112. {
  113. 8100308: b580 push {r7, lr}
  114. 810030a: b082 sub sp, #8
  115. 810030c: af00 add r7, sp, #0
  116. /* USER CODE BEGIN Boot_Mode_Sequence_1 */
  117. /* ETH_CODE: fixed core synchronization
  118. * Busy wait, since entering STOP mode breaks debug session.
  119. */
  120. __HAL_RCC_HSEM_CLK_ENABLE();
  121. 810030e: 4b26 ldr r3, [pc, #152] @ (81003a8 <main+0xa0>)
  122. 8100310: f8d3 30e0 ldr.w r3, [r3, #224] @ 0xe0
  123. 8100314: 4a24 ldr r2, [pc, #144] @ (81003a8 <main+0xa0>)
  124. 8100316: f043 7300 orr.w r3, r3, #33554432 @ 0x2000000
  125. 810031a: f8c2 30e0 str.w r3, [r2, #224] @ 0xe0
  126. 810031e: 4b22 ldr r3, [pc, #136] @ (81003a8 <main+0xa0>)
  127. 8100320: f8d3 30e0 ldr.w r3, [r3, #224] @ 0xe0
  128. 8100324: f003 7300 and.w r3, r3, #33554432 @ 0x2000000
  129. 8100328: 607b str r3, [r7, #4]
  130. 810032a: 687b ldr r3, [r7, #4]
  131. while((__HAL_HSEM_GET_FLAG(__HAL_HSEM_SEMID_TO_MASK(HSEM_ID_0))) == 0);
  132. 810032c: bf00 nop
  133. 810032e: 4b1f ldr r3, [pc, #124] @ (81003ac <main+0xa4>)
  134. 8100330: 681b ldr r3, [r3, #0]
  135. 8100332: 091b lsrs r3, r3, #4
  136. 8100334: f003 030f and.w r3, r3, #15
  137. 8100338: 2b07 cmp r3, #7
  138. 810033a: d10a bne.n 8100352 <main+0x4a>
  139. 810033c: 4b1c ldr r3, [pc, #112] @ (81003b0 <main+0xa8>)
  140. 810033e: f8d3 3108 ldr.w r3, [r3, #264] @ 0x108
  141. 8100342: f003 0301 and.w r3, r3, #1
  142. 8100346: 2b00 cmp r3, #0
  143. 8100348: bf0c ite eq
  144. 810034a: 2301 moveq r3, #1
  145. 810034c: 2300 movne r3, #0
  146. 810034e: b2db uxtb r3, r3
  147. 8100350: e009 b.n 8100366 <main+0x5e>
  148. 8100352: 4b17 ldr r3, [pc, #92] @ (81003b0 <main+0xa8>)
  149. 8100354: f8d3 3118 ldr.w r3, [r3, #280] @ 0x118
  150. 8100358: f003 0301 and.w r3, r3, #1
  151. 810035c: 2b00 cmp r3, #0
  152. 810035e: bf0c ite eq
  153. 8100360: 2301 moveq r3, #1
  154. 8100362: 2300 movne r3, #0
  155. 8100364: b2db uxtb r3, r3
  156. 8100366: 2b00 cmp r3, #0
  157. 8100368: d1e1 bne.n 810032e <main+0x26>
  158. __HAL_HSEM_CLEAR_FLAG(__HAL_HSEM_SEMID_TO_MASK(HSEM_ID_0));
  159. 810036a: 4b10 ldr r3, [pc, #64] @ (81003ac <main+0xa4>)
  160. 810036c: 681b ldr r3, [r3, #0]
  161. 810036e: 091b lsrs r3, r3, #4
  162. 8100370: f003 030f and.w r3, r3, #15
  163. 8100374: 2b07 cmp r3, #7
  164. 8100376: d108 bne.n 810038a <main+0x82>
  165. 8100378: 4b0d ldr r3, [pc, #52] @ (81003b0 <main+0xa8>)
  166. 810037a: f8d3 3104 ldr.w r3, [r3, #260] @ 0x104
  167. 810037e: 4a0c ldr r2, [pc, #48] @ (81003b0 <main+0xa8>)
  168. 8100380: f043 0301 orr.w r3, r3, #1
  169. 8100384: f8c2 3104 str.w r3, [r2, #260] @ 0x104
  170. 8100388: e007 b.n 810039a <main+0x92>
  171. 810038a: 4b09 ldr r3, [pc, #36] @ (81003b0 <main+0xa8>)
  172. 810038c: f8d3 3114 ldr.w r3, [r3, #276] @ 0x114
  173. 8100390: 4a07 ldr r2, [pc, #28] @ (81003b0 <main+0xa8>)
  174. 8100392: f043 0301 orr.w r3, r3, #1
  175. 8100396: f8c2 3114 str.w r3, [r2, #276] @ 0x114
  176. /* USER CODE END Boot_Mode_Sequence_1 */
  177. /* MCU Configuration--------------------------------------------------------*/
  178. /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  179. HAL_Init();
  180. 810039a: f000 f8af bl 81004fc <HAL_Init>
  181. /* USER CODE BEGIN SysInit */
  182. /* USER CODE END SysInit */
  183. /* Initialize all configured peripherals */
  184. MX_GPIO_Init();
  185. 810039e: f000 f809 bl 81003b4 <MX_GPIO_Init>
  186. /* USER CODE END 2 */
  187. /* Infinite loop */
  188. /* USER CODE BEGIN WHILE */
  189. while (1)
  190. 81003a2: bf00 nop
  191. 81003a4: e7fd b.n 81003a2 <main+0x9a>
  192. 81003a6: bf00 nop
  193. 81003a8: 58024400 .word 0x58024400
  194. 81003ac: e000ed00 .word 0xe000ed00
  195. 81003b0: 58026400 .word 0x58026400
  196. 081003b4 <MX_GPIO_Init>:
  197. * @brief GPIO Initialization Function
  198. * @param None
  199. * @retval None
  200. */
  201. static void MX_GPIO_Init(void)
  202. {
  203. 81003b4: b580 push {r7, lr}
  204. 81003b6: b086 sub sp, #24
  205. 81003b8: af00 add r7, sp, #0
  206. GPIO_InitTypeDef GPIO_InitStruct = {0};
  207. 81003ba: 1d3b adds r3, r7, #4
  208. 81003bc: 2200 movs r2, #0
  209. 81003be: 601a str r2, [r3, #0]
  210. 81003c0: 605a str r2, [r3, #4]
  211. 81003c2: 609a str r2, [r3, #8]
  212. 81003c4: 60da str r2, [r3, #12]
  213. 81003c6: 611a str r2, [r3, #16]
  214. /* GPIO Ports Clock Enable */
  215. __HAL_RCC_GPIOE_CLK_ENABLE();
  216. 81003c8: 4b10 ldr r3, [pc, #64] @ (810040c <MX_GPIO_Init+0x58>)
  217. 81003ca: f8d3 30e0 ldr.w r3, [r3, #224] @ 0xe0
  218. 81003ce: 4a0f ldr r2, [pc, #60] @ (810040c <MX_GPIO_Init+0x58>)
  219. 81003d0: f043 0310 orr.w r3, r3, #16
  220. 81003d4: f8c2 30e0 str.w r3, [r2, #224] @ 0xe0
  221. 81003d8: 4b0c ldr r3, [pc, #48] @ (810040c <MX_GPIO_Init+0x58>)
  222. 81003da: f8d3 30e0 ldr.w r3, [r3, #224] @ 0xe0
  223. 81003de: f003 0310 and.w r3, r3, #16
  224. 81003e2: 603b str r3, [r7, #0]
  225. 81003e4: 683b ldr r3, [r7, #0]
  226. /*Configure GPIO pins : PE5 PE4 */
  227. GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_4;
  228. 81003e6: 2330 movs r3, #48 @ 0x30
  229. 81003e8: 607b str r3, [r7, #4]
  230. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  231. 81003ea: 2302 movs r3, #2
  232. 81003ec: 60bb str r3, [r7, #8]
  233. GPIO_InitStruct.Pull = GPIO_NOPULL;
  234. 81003ee: 2300 movs r3, #0
  235. 81003f0: 60fb str r3, [r7, #12]
  236. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  237. 81003f2: 2300 movs r3, #0
  238. 81003f4: 613b str r3, [r7, #16]
  239. GPIO_InitStruct.Alternate = GPIO_AF10_SAI4;
  240. 81003f6: 230a movs r3, #10
  241. 81003f8: 617b str r3, [r7, #20]
  242. HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
  243. 81003fa: 1d3b adds r3, r7, #4
  244. 81003fc: 4619 mov r1, r3
  245. 81003fe: 4804 ldr r0, [pc, #16] @ (8100410 <MX_GPIO_Init+0x5c>)
  246. 8100400: f000 fa08 bl 8100814 <HAL_GPIO_Init>
  247. }
  248. 8100404: bf00 nop
  249. 8100406: 3718 adds r7, #24
  250. 8100408: 46bd mov sp, r7
  251. 810040a: bd80 pop {r7, pc}
  252. 810040c: 58024400 .word 0x58024400
  253. 8100410: 58021000 .word 0x58021000
  254. 08100414 <HAL_MspInit>:
  255. /* USER CODE END 0 */
  256. /**
  257. * Initializes the Global MSP.
  258. */
  259. void HAL_MspInit(void)
  260. {
  261. 8100414: b480 push {r7}
  262. 8100416: b083 sub sp, #12
  263. 8100418: af00 add r7, sp, #0
  264. /* USER CODE BEGIN MspInit 0 */
  265. /* USER CODE END MspInit 0 */
  266. __HAL_RCC_SYSCFG_CLK_ENABLE();
  267. 810041a: 4b0a ldr r3, [pc, #40] @ (8100444 <HAL_MspInit+0x30>)
  268. 810041c: f8d3 30f4 ldr.w r3, [r3, #244] @ 0xf4
  269. 8100420: 4a08 ldr r2, [pc, #32] @ (8100444 <HAL_MspInit+0x30>)
  270. 8100422: f043 0302 orr.w r3, r3, #2
  271. 8100426: f8c2 30f4 str.w r3, [r2, #244] @ 0xf4
  272. 810042a: 4b06 ldr r3, [pc, #24] @ (8100444 <HAL_MspInit+0x30>)
  273. 810042c: f8d3 30f4 ldr.w r3, [r3, #244] @ 0xf4
  274. 8100430: f003 0302 and.w r3, r3, #2
  275. 8100434: 607b str r3, [r7, #4]
  276. 8100436: 687b ldr r3, [r7, #4]
  277. /* System interrupt init*/
  278. /* USER CODE BEGIN MspInit 1 */
  279. /* USER CODE END MspInit 1 */
  280. }
  281. 8100438: bf00 nop
  282. 810043a: 370c adds r7, #12
  283. 810043c: 46bd mov sp, r7
  284. 810043e: f85d 7b04 ldr.w r7, [sp], #4
  285. 8100442: 4770 bx lr
  286. 8100444: 58024400 .word 0x58024400
  287. 08100448 <NMI_Handler>:
  288. /******************************************************************************/
  289. /**
  290. * @brief This function handles Non maskable interrupt.
  291. */
  292. void NMI_Handler(void)
  293. {
  294. 8100448: b480 push {r7}
  295. 810044a: af00 add r7, sp, #0
  296. /* USER CODE BEGIN NonMaskableInt_IRQn 0 */
  297. /* USER CODE END NonMaskableInt_IRQn 0 */
  298. /* USER CODE BEGIN NonMaskableInt_IRQn 1 */
  299. while (1)
  300. 810044c: bf00 nop
  301. 810044e: e7fd b.n 810044c <NMI_Handler+0x4>
  302. 08100450 <HardFault_Handler>:
  303. /**
  304. * @brief This function handles Hard fault interrupt.
  305. */
  306. void HardFault_Handler(void)
  307. {
  308. 8100450: b480 push {r7}
  309. 8100452: af00 add r7, sp, #0
  310. /* USER CODE BEGIN HardFault_IRQn 0 */
  311. /* USER CODE END HardFault_IRQn 0 */
  312. while (1)
  313. 8100454: bf00 nop
  314. 8100456: e7fd b.n 8100454 <HardFault_Handler+0x4>
  315. 08100458 <MemManage_Handler>:
  316. /**
  317. * @brief This function handles Memory management fault.
  318. */
  319. void MemManage_Handler(void)
  320. {
  321. 8100458: b480 push {r7}
  322. 810045a: af00 add r7, sp, #0
  323. /* USER CODE BEGIN MemoryManagement_IRQn 0 */
  324. /* USER CODE END MemoryManagement_IRQn 0 */
  325. while (1)
  326. 810045c: bf00 nop
  327. 810045e: e7fd b.n 810045c <MemManage_Handler+0x4>
  328. 08100460 <BusFault_Handler>:
  329. /**
  330. * @brief This function handles Pre-fetch fault, memory access fault.
  331. */
  332. void BusFault_Handler(void)
  333. {
  334. 8100460: b480 push {r7}
  335. 8100462: af00 add r7, sp, #0
  336. /* USER CODE BEGIN BusFault_IRQn 0 */
  337. /* USER CODE END BusFault_IRQn 0 */
  338. while (1)
  339. 8100464: bf00 nop
  340. 8100466: e7fd b.n 8100464 <BusFault_Handler+0x4>
  341. 08100468 <UsageFault_Handler>:
  342. /**
  343. * @brief This function handles Undefined instruction or illegal state.
  344. */
  345. void UsageFault_Handler(void)
  346. {
  347. 8100468: b480 push {r7}
  348. 810046a: af00 add r7, sp, #0
  349. /* USER CODE BEGIN UsageFault_IRQn 0 */
  350. /* USER CODE END UsageFault_IRQn 0 */
  351. while (1)
  352. 810046c: bf00 nop
  353. 810046e: e7fd b.n 810046c <UsageFault_Handler+0x4>
  354. 08100470 <SVC_Handler>:
  355. /**
  356. * @brief This function handles System service call via SWI instruction.
  357. */
  358. void SVC_Handler(void)
  359. {
  360. 8100470: b480 push {r7}
  361. 8100472: af00 add r7, sp, #0
  362. /* USER CODE END SVCall_IRQn 0 */
  363. /* USER CODE BEGIN SVCall_IRQn 1 */
  364. /* USER CODE END SVCall_IRQn 1 */
  365. }
  366. 8100474: bf00 nop
  367. 8100476: 46bd mov sp, r7
  368. 8100478: f85d 7b04 ldr.w r7, [sp], #4
  369. 810047c: 4770 bx lr
  370. 0810047e <DebugMon_Handler>:
  371. /**
  372. * @brief This function handles Debug monitor.
  373. */
  374. void DebugMon_Handler(void)
  375. {
  376. 810047e: b480 push {r7}
  377. 8100480: af00 add r7, sp, #0
  378. /* USER CODE END DebugMonitor_IRQn 0 */
  379. /* USER CODE BEGIN DebugMonitor_IRQn 1 */
  380. /* USER CODE END DebugMonitor_IRQn 1 */
  381. }
  382. 8100482: bf00 nop
  383. 8100484: 46bd mov sp, r7
  384. 8100486: f85d 7b04 ldr.w r7, [sp], #4
  385. 810048a: 4770 bx lr
  386. 0810048c <PendSV_Handler>:
  387. /**
  388. * @brief This function handles Pendable request for system service.
  389. */
  390. void PendSV_Handler(void)
  391. {
  392. 810048c: b480 push {r7}
  393. 810048e: af00 add r7, sp, #0
  394. /* USER CODE END PendSV_IRQn 0 */
  395. /* USER CODE BEGIN PendSV_IRQn 1 */
  396. /* USER CODE END PendSV_IRQn 1 */
  397. }
  398. 8100490: bf00 nop
  399. 8100492: 46bd mov sp, r7
  400. 8100494: f85d 7b04 ldr.w r7, [sp], #4
  401. 8100498: 4770 bx lr
  402. 0810049a <SysTick_Handler>:
  403. /**
  404. * @brief This function handles System tick timer.
  405. */
  406. void SysTick_Handler(void)
  407. {
  408. 810049a: b580 push {r7, lr}
  409. 810049c: af00 add r7, sp, #0
  410. /* USER CODE BEGIN SysTick_IRQn 0 */
  411. /* USER CODE END SysTick_IRQn 0 */
  412. HAL_IncTick();
  413. 810049e: f000 f8c1 bl 8100624 <HAL_IncTick>
  414. /* USER CODE BEGIN SysTick_IRQn 1 */
  415. /* USER CODE END SysTick_IRQn 1 */
  416. }
  417. 81004a2: bf00 nop
  418. 81004a4: bd80 pop {r7, pc}
  419. ...
  420. 081004a8 <Reset_Handler>:
  421. .section .text.Reset_Handler
  422. .weak Reset_Handler
  423. .type Reset_Handler, %function
  424. Reset_Handler:
  425. ldr sp, =_estack /* set stack pointer */
  426. 81004a8: f8df d034 ldr.w sp, [pc, #52] @ 81004e0 <LoopFillZerobss+0xe>
  427. /* Call the clock system initialization function.*/
  428. bl SystemInit
  429. 81004ac: f7ff ff14 bl 81002d8 <SystemInit>
  430. /* Copy the data segment initializers from flash to SRAM */
  431. ldr r0, =_sdata
  432. 81004b0: 480c ldr r0, [pc, #48] @ (81004e4 <LoopFillZerobss+0x12>)
  433. ldr r1, =_edata
  434. 81004b2: 490d ldr r1, [pc, #52] @ (81004e8 <LoopFillZerobss+0x16>)
  435. ldr r2, =_sidata
  436. 81004b4: 4a0d ldr r2, [pc, #52] @ (81004ec <LoopFillZerobss+0x1a>)
  437. movs r3, #0
  438. 81004b6: 2300 movs r3, #0
  439. b LoopCopyDataInit
  440. 81004b8: e002 b.n 81004c0 <LoopCopyDataInit>
  441. 081004ba <CopyDataInit>:
  442. CopyDataInit:
  443. ldr r4, [r2, r3]
  444. 81004ba: 58d4 ldr r4, [r2, r3]
  445. str r4, [r0, r3]
  446. 81004bc: 50c4 str r4, [r0, r3]
  447. adds r3, r3, #4
  448. 81004be: 3304 adds r3, #4
  449. 081004c0 <LoopCopyDataInit>:
  450. LoopCopyDataInit:
  451. adds r4, r0, r3
  452. 81004c0: 18c4 adds r4, r0, r3
  453. cmp r4, r1
  454. 81004c2: 428c cmp r4, r1
  455. bcc CopyDataInit
  456. 81004c4: d3f9 bcc.n 81004ba <CopyDataInit>
  457. /* Zero fill the bss segment. */
  458. ldr r2, =_sbss
  459. 81004c6: 4a0a ldr r2, [pc, #40] @ (81004f0 <LoopFillZerobss+0x1e>)
  460. ldr r4, =_ebss
  461. 81004c8: 4c0a ldr r4, [pc, #40] @ (81004f4 <LoopFillZerobss+0x22>)
  462. movs r3, #0
  463. 81004ca: 2300 movs r3, #0
  464. b LoopFillZerobss
  465. 81004cc: e001 b.n 81004d2 <LoopFillZerobss>
  466. 081004ce <FillZerobss>:
  467. FillZerobss:
  468. str r3, [r2]
  469. 81004ce: 6013 str r3, [r2, #0]
  470. adds r2, r2, #4
  471. 81004d0: 3204 adds r2, #4
  472. 081004d2 <LoopFillZerobss>:
  473. LoopFillZerobss:
  474. cmp r2, r4
  475. 81004d2: 42a2 cmp r2, r4
  476. bcc FillZerobss
  477. 81004d4: d3fb bcc.n 81004ce <FillZerobss>
  478. /* Call static constructors */
  479. bl __libc_init_array
  480. 81004d6: f000 fcc7 bl 8100e68 <__libc_init_array>
  481. /* Call the application's entry point.*/
  482. bl main
  483. 81004da: f7ff ff15 bl 8100308 <main>
  484. bx lr
  485. 81004de: 4770 bx lr
  486. ldr sp, =_estack /* set stack pointer */
  487. 81004e0: 10020000 .word 0x10020000
  488. ldr r0, =_sdata
  489. 81004e4: 10000000 .word 0x10000000
  490. ldr r1, =_edata
  491. 81004e8: 10000010 .word 0x10000010
  492. ldr r2, =_sidata
  493. 81004ec: 08100ee0 .word 0x08100ee0
  494. ldr r2, =_sbss
  495. 81004f0: 10000010 .word 0x10000010
  496. ldr r4, =_ebss
  497. 81004f4: 10000030 .word 0x10000030
  498. 081004f8 <ADC3_IRQHandler>:
  499. * @retval None
  500. */
  501. .section .text.Default_Handler,"ax",%progbits
  502. Default_Handler:
  503. Infinite_Loop:
  504. b Infinite_Loop
  505. 81004f8: e7fe b.n 81004f8 <ADC3_IRQHandler>
  506. ...
  507. 081004fc <HAL_Init>:
  508. * need to ensure that the SysTick time base is always set to 1 millisecond
  509. * to have correct HAL operation.
  510. * @retval HAL status
  511. */
  512. HAL_StatusTypeDef HAL_Init(void)
  513. {
  514. 81004fc: b580 push {r7, lr}
  515. 81004fe: b082 sub sp, #8
  516. 8100500: af00 add r7, sp, #0
  517. uint32_t common_system_clock;
  518. #if defined(DUAL_CORE) && defined(CORE_CM4)
  519. /* Configure Cortex-M4 Instruction cache through ART accelerator */
  520. __HAL_RCC_ART_CLK_ENABLE(); /* Enable the Cortex-M4 ART Clock */
  521. 8100502: 4b28 ldr r3, [pc, #160] @ (81005a4 <HAL_Init+0xa8>)
  522. 8100504: f8d3 30d8 ldr.w r3, [r3, #216] @ 0xd8
  523. 8100508: 4a26 ldr r2, [pc, #152] @ (81005a4 <HAL_Init+0xa8>)
  524. 810050a: f443 4380 orr.w r3, r3, #16384 @ 0x4000
  525. 810050e: f8c2 30d8 str.w r3, [r2, #216] @ 0xd8
  526. 8100512: 4b24 ldr r3, [pc, #144] @ (81005a4 <HAL_Init+0xa8>)
  527. 8100514: f8d3 30d8 ldr.w r3, [r3, #216] @ 0xd8
  528. 8100518: f403 4380 and.w r3, r3, #16384 @ 0x4000
  529. 810051c: 603b str r3, [r7, #0]
  530. 810051e: 683b ldr r3, [r7, #0]
  531. __HAL_ART_CONFIG_BASE_ADDRESS(0x08100000UL); /* Configure the Cortex-M4 ART Base address to the Flash Bank 2 : */
  532. 8100520: 4b21 ldr r3, [pc, #132] @ (81005a8 <HAL_Init+0xac>)
  533. 8100522: 681b ldr r3, [r3, #0]
  534. 8100524: f423 237f bic.w r3, r3, #1044480 @ 0xff000
  535. 8100528: f423 6370 bic.w r3, r3, #3840 @ 0xf00
  536. 810052c: 4a1e ldr r2, [pc, #120] @ (81005a8 <HAL_Init+0xac>)
  537. 810052e: f443 4301 orr.w r3, r3, #33024 @ 0x8100
  538. 8100532: 6013 str r3, [r2, #0]
  539. __HAL_ART_ENABLE(); /* Enable the Cortex-M4 ART */
  540. 8100534: 4b1c ldr r3, [pc, #112] @ (81005a8 <HAL_Init+0xac>)
  541. 8100536: 681b ldr r3, [r3, #0]
  542. 8100538: 4a1b ldr r2, [pc, #108] @ (81005a8 <HAL_Init+0xac>)
  543. 810053a: f043 0301 orr.w r3, r3, #1
  544. 810053e: 6013 str r3, [r2, #0]
  545. #endif /* DUAL_CORE && CORE_CM4 */
  546. /* Set Interrupt Group Priority */
  547. HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);
  548. 8100540: 2003 movs r0, #3
  549. 8100542: f000 f935 bl 81007b0 <HAL_NVIC_SetPriorityGrouping>
  550. /* Update the SystemCoreClock global variable */
  551. #if defined(RCC_D1CFGR_D1CPRE)
  552. common_system_clock = HAL_RCC_GetSysClockFreq() >> ((D1CorePrescTable[(RCC->D1CFGR & RCC_D1CFGR_D1CPRE)>> RCC_D1CFGR_D1CPRE_Pos]) & 0x1FU);
  553. 8100546: f000 fb15 bl 8100b74 <HAL_RCC_GetSysClockFreq>
  554. 810054a: 4602 mov r2, r0
  555. 810054c: 4b15 ldr r3, [pc, #84] @ (81005a4 <HAL_Init+0xa8>)
  556. 810054e: 699b ldr r3, [r3, #24]
  557. 8100550: 0a1b lsrs r3, r3, #8
  558. 8100552: f003 030f and.w r3, r3, #15
  559. 8100556: 4915 ldr r1, [pc, #84] @ (81005ac <HAL_Init+0xb0>)
  560. 8100558: 5ccb ldrb r3, [r1, r3]
  561. 810055a: f003 031f and.w r3, r3, #31
  562. 810055e: fa22 f303 lsr.w r3, r2, r3
  563. 8100562: 607b str r3, [r7, #4]
  564. common_system_clock = HAL_RCC_GetSysClockFreq() >> ((D1CorePrescTable[(RCC->CDCFGR1 & RCC_CDCFGR1_CDCPRE)>> RCC_CDCFGR1_CDCPRE_Pos]) & 0x1FU);
  565. #endif
  566. /* Update the SystemD2Clock global variable */
  567. #if defined(RCC_D1CFGR_HPRE)
  568. SystemD2Clock = (common_system_clock >> ((D1CorePrescTable[(RCC->D1CFGR & RCC_D1CFGR_HPRE)>> RCC_D1CFGR_HPRE_Pos]) & 0x1FU));
  569. 8100564: 4b0f ldr r3, [pc, #60] @ (81005a4 <HAL_Init+0xa8>)
  570. 8100566: 699b ldr r3, [r3, #24]
  571. 8100568: f003 030f and.w r3, r3, #15
  572. 810056c: 4a0f ldr r2, [pc, #60] @ (81005ac <HAL_Init+0xb0>)
  573. 810056e: 5cd3 ldrb r3, [r2, r3]
  574. 8100570: f003 031f and.w r3, r3, #31
  575. 8100574: 687a ldr r2, [r7, #4]
  576. 8100576: fa22 f303 lsr.w r3, r2, r3
  577. 810057a: 4a0d ldr r2, [pc, #52] @ (81005b0 <HAL_Init+0xb4>)
  578. 810057c: 6013 str r3, [r2, #0]
  579. #else
  580. SystemD2Clock = (common_system_clock >> ((D1CorePrescTable[(RCC->CDCFGR1 & RCC_CDCFGR1_HPRE)>> RCC_CDCFGR1_HPRE_Pos]) & 0x1FU));
  581. #endif
  582. #if defined(DUAL_CORE) && defined(CORE_CM4)
  583. SystemCoreClock = SystemD2Clock;
  584. 810057e: 4b0c ldr r3, [pc, #48] @ (81005b0 <HAL_Init+0xb4>)
  585. 8100580: 681b ldr r3, [r3, #0]
  586. 8100582: 4a0c ldr r2, [pc, #48] @ (81005b4 <HAL_Init+0xb8>)
  587. 8100584: 6013 str r3, [r2, #0]
  588. #else
  589. SystemCoreClock = common_system_clock;
  590. #endif /* DUAL_CORE && CORE_CM4 */
  591. /* Use systick as time base source and configure 1ms tick (default clock after Reset is HSI) */
  592. if(HAL_InitTick(TICK_INT_PRIORITY) != HAL_OK)
  593. 8100586: 2000 movs r0, #0
  594. 8100588: f000 f816 bl 81005b8 <HAL_InitTick>
  595. 810058c: 4603 mov r3, r0
  596. 810058e: 2b00 cmp r3, #0
  597. 8100590: d001 beq.n 8100596 <HAL_Init+0x9a>
  598. {
  599. return HAL_ERROR;
  600. 8100592: 2301 movs r3, #1
  601. 8100594: e002 b.n 810059c <HAL_Init+0xa0>
  602. }
  603. /* Init the low level hardware */
  604. HAL_MspInit();
  605. 8100596: f7ff ff3d bl 8100414 <HAL_MspInit>
  606. /* Return function status */
  607. return HAL_OK;
  608. 810059a: 2300 movs r3, #0
  609. }
  610. 810059c: 4618 mov r0, r3
  611. 810059e: 3708 adds r7, #8
  612. 81005a0: 46bd mov sp, r7
  613. 81005a2: bd80 pop {r7, pc}
  614. 81005a4: 58024400 .word 0x58024400
  615. 81005a8: 40024400 .word 0x40024400
  616. 81005ac: 08100ec8 .word 0x08100ec8
  617. 81005b0: 10000004 .word 0x10000004
  618. 81005b4: 10000000 .word 0x10000000
  619. 081005b8 <HAL_InitTick>:
  620. * implementation in user file.
  621. * @param TickPriority: Tick interrupt priority.
  622. * @retval HAL status
  623. */
  624. __weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority)
  625. {
  626. 81005b8: b580 push {r7, lr}
  627. 81005ba: b082 sub sp, #8
  628. 81005bc: af00 add r7, sp, #0
  629. 81005be: 6078 str r0, [r7, #4]
  630. /* Check uwTickFreq for MisraC 2012 (even if uwTickFreq is a enum type that don't take the value zero)*/
  631. if((uint32_t)uwTickFreq == 0UL)
  632. 81005c0: 4b15 ldr r3, [pc, #84] @ (8100618 <HAL_InitTick+0x60>)
  633. 81005c2: 781b ldrb r3, [r3, #0]
  634. 81005c4: 2b00 cmp r3, #0
  635. 81005c6: d101 bne.n 81005cc <HAL_InitTick+0x14>
  636. {
  637. return HAL_ERROR;
  638. 81005c8: 2301 movs r3, #1
  639. 81005ca: e021 b.n 8100610 <HAL_InitTick+0x58>
  640. }
  641. /* Configure the SysTick to have interrupt in 1ms time basis*/
  642. if (HAL_SYSTICK_Config(SystemCoreClock / (1000UL / (uint32_t)uwTickFreq)) > 0U)
  643. 81005cc: 4b13 ldr r3, [pc, #76] @ (810061c <HAL_InitTick+0x64>)
  644. 81005ce: 681a ldr r2, [r3, #0]
  645. 81005d0: 4b11 ldr r3, [pc, #68] @ (8100618 <HAL_InitTick+0x60>)
  646. 81005d2: 781b ldrb r3, [r3, #0]
  647. 81005d4: 4619 mov r1, r3
  648. 81005d6: f44f 737a mov.w r3, #1000 @ 0x3e8
  649. 81005da: fbb3 f3f1 udiv r3, r3, r1
  650. 81005de: fbb2 f3f3 udiv r3, r2, r3
  651. 81005e2: 4618 mov r0, r3
  652. 81005e4: f000 f909 bl 81007fa <HAL_SYSTICK_Config>
  653. 81005e8: 4603 mov r3, r0
  654. 81005ea: 2b00 cmp r3, #0
  655. 81005ec: d001 beq.n 81005f2 <HAL_InitTick+0x3a>
  656. {
  657. return HAL_ERROR;
  658. 81005ee: 2301 movs r3, #1
  659. 81005f0: e00e b.n 8100610 <HAL_InitTick+0x58>
  660. }
  661. /* Configure the SysTick IRQ priority */
  662. if (TickPriority < (1UL << __NVIC_PRIO_BITS))
  663. 81005f2: 687b ldr r3, [r7, #4]
  664. 81005f4: 2b0f cmp r3, #15
  665. 81005f6: d80a bhi.n 810060e <HAL_InitTick+0x56>
  666. {
  667. HAL_NVIC_SetPriority(SysTick_IRQn, TickPriority, 0U);
  668. 81005f8: 2200 movs r2, #0
  669. 81005fa: 6879 ldr r1, [r7, #4]
  670. 81005fc: f04f 30ff mov.w r0, #4294967295 @ 0xffffffff
  671. 8100600: f000 f8e1 bl 81007c6 <HAL_NVIC_SetPriority>
  672. uwTickPrio = TickPriority;
  673. 8100604: 4a06 ldr r2, [pc, #24] @ (8100620 <HAL_InitTick+0x68>)
  674. 8100606: 687b ldr r3, [r7, #4]
  675. 8100608: 6013 str r3, [r2, #0]
  676. {
  677. return HAL_ERROR;
  678. }
  679. /* Return function status */
  680. return HAL_OK;
  681. 810060a: 2300 movs r3, #0
  682. 810060c: e000 b.n 8100610 <HAL_InitTick+0x58>
  683. return HAL_ERROR;
  684. 810060e: 2301 movs r3, #1
  685. }
  686. 8100610: 4618 mov r0, r3
  687. 8100612: 3708 adds r7, #8
  688. 8100614: 46bd mov sp, r7
  689. 8100616: bd80 pop {r7, pc}
  690. 8100618: 1000000c .word 0x1000000c
  691. 810061c: 10000000 .word 0x10000000
  692. 8100620: 10000008 .word 0x10000008
  693. 08100624 <HAL_IncTick>:
  694. * @note This function is declared as __weak to be overwritten in case of other
  695. * implementations in user file.
  696. * @retval None
  697. */
  698. __weak void HAL_IncTick(void)
  699. {
  700. 8100624: b480 push {r7}
  701. 8100626: af00 add r7, sp, #0
  702. uwTick += (uint32_t)uwTickFreq;
  703. 8100628: 4b06 ldr r3, [pc, #24] @ (8100644 <HAL_IncTick+0x20>)
  704. 810062a: 781b ldrb r3, [r3, #0]
  705. 810062c: 461a mov r2, r3
  706. 810062e: 4b06 ldr r3, [pc, #24] @ (8100648 <HAL_IncTick+0x24>)
  707. 8100630: 681b ldr r3, [r3, #0]
  708. 8100632: 4413 add r3, r2
  709. 8100634: 4a04 ldr r2, [pc, #16] @ (8100648 <HAL_IncTick+0x24>)
  710. 8100636: 6013 str r3, [r2, #0]
  711. }
  712. 8100638: bf00 nop
  713. 810063a: 46bd mov sp, r7
  714. 810063c: f85d 7b04 ldr.w r7, [sp], #4
  715. 8100640: 4770 bx lr
  716. 8100642: bf00 nop
  717. 8100644: 1000000c .word 0x1000000c
  718. 8100648: 1000002c .word 0x1000002c
  719. 0810064c <__NVIC_SetPriorityGrouping>:
  720. In case of a conflict between priority grouping and available
  721. priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set.
  722. \param [in] PriorityGroup Priority grouping field.
  723. */
  724. __STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup)
  725. {
  726. 810064c: b480 push {r7}
  727. 810064e: b085 sub sp, #20
  728. 8100650: af00 add r7, sp, #0
  729. 8100652: 6078 str r0, [r7, #4]
  730. uint32_t reg_value;
  731. uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */
  732. 8100654: 687b ldr r3, [r7, #4]
  733. 8100656: f003 0307 and.w r3, r3, #7
  734. 810065a: 60fb str r3, [r7, #12]
  735. reg_value = SCB->AIRCR; /* read old register configuration */
  736. 810065c: 4b0c ldr r3, [pc, #48] @ (8100690 <__NVIC_SetPriorityGrouping+0x44>)
  737. 810065e: 68db ldr r3, [r3, #12]
  738. 8100660: 60bb str r3, [r7, #8]
  739. reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */
  740. 8100662: 68ba ldr r2, [r7, #8]
  741. 8100664: f64f 03ff movw r3, #63743 @ 0xf8ff
  742. 8100668: 4013 ands r3, r2
  743. 810066a: 60bb str r3, [r7, #8]
  744. reg_value = (reg_value |
  745. ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) |
  746. (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */
  747. 810066c: 68fb ldr r3, [r7, #12]
  748. 810066e: 021a lsls r2, r3, #8
  749. ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) |
  750. 8100670: 68bb ldr r3, [r7, #8]
  751. 8100672: 4313 orrs r3, r2
  752. reg_value = (reg_value |
  753. 8100674: f043 63bf orr.w r3, r3, #100139008 @ 0x5f80000
  754. 8100678: f443 3300 orr.w r3, r3, #131072 @ 0x20000
  755. 810067c: 60bb str r3, [r7, #8]
  756. SCB->AIRCR = reg_value;
  757. 810067e: 4a04 ldr r2, [pc, #16] @ (8100690 <__NVIC_SetPriorityGrouping+0x44>)
  758. 8100680: 68bb ldr r3, [r7, #8]
  759. 8100682: 60d3 str r3, [r2, #12]
  760. }
  761. 8100684: bf00 nop
  762. 8100686: 3714 adds r7, #20
  763. 8100688: 46bd mov sp, r7
  764. 810068a: f85d 7b04 ldr.w r7, [sp], #4
  765. 810068e: 4770 bx lr
  766. 8100690: e000ed00 .word 0xe000ed00
  767. 08100694 <__NVIC_GetPriorityGrouping>:
  768. \brief Get Priority Grouping
  769. \details Reads the priority grouping field from the NVIC Interrupt Controller.
  770. \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field).
  771. */
  772. __STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void)
  773. {
  774. 8100694: b480 push {r7}
  775. 8100696: af00 add r7, sp, #0
  776. return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos));
  777. 8100698: 4b04 ldr r3, [pc, #16] @ (81006ac <__NVIC_GetPriorityGrouping+0x18>)
  778. 810069a: 68db ldr r3, [r3, #12]
  779. 810069c: 0a1b lsrs r3, r3, #8
  780. 810069e: f003 0307 and.w r3, r3, #7
  781. }
  782. 81006a2: 4618 mov r0, r3
  783. 81006a4: 46bd mov sp, r7
  784. 81006a6: f85d 7b04 ldr.w r7, [sp], #4
  785. 81006aa: 4770 bx lr
  786. 81006ac: e000ed00 .word 0xe000ed00
  787. 081006b0 <__NVIC_SetPriority>:
  788. \param [in] IRQn Interrupt number.
  789. \param [in] priority Priority to set.
  790. \note The priority cannot be set for every processor exception.
  791. */
  792. __STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
  793. {
  794. 81006b0: b480 push {r7}
  795. 81006b2: b083 sub sp, #12
  796. 81006b4: af00 add r7, sp, #0
  797. 81006b6: 4603 mov r3, r0
  798. 81006b8: 6039 str r1, [r7, #0]
  799. 81006ba: 80fb strh r3, [r7, #6]
  800. if ((int32_t)(IRQn) >= 0)
  801. 81006bc: f9b7 3006 ldrsh.w r3, [r7, #6]
  802. 81006c0: 2b00 cmp r3, #0
  803. 81006c2: db0a blt.n 81006da <__NVIC_SetPriority+0x2a>
  804. {
  805. NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
  806. 81006c4: 683b ldr r3, [r7, #0]
  807. 81006c6: b2da uxtb r2, r3
  808. 81006c8: 490c ldr r1, [pc, #48] @ (81006fc <__NVIC_SetPriority+0x4c>)
  809. 81006ca: f9b7 3006 ldrsh.w r3, [r7, #6]
  810. 81006ce: 0112 lsls r2, r2, #4
  811. 81006d0: b2d2 uxtb r2, r2
  812. 81006d2: 440b add r3, r1
  813. 81006d4: f883 2300 strb.w r2, [r3, #768] @ 0x300
  814. }
  815. else
  816. {
  817. SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
  818. }
  819. }
  820. 81006d8: e00a b.n 81006f0 <__NVIC_SetPriority+0x40>
  821. SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
  822. 81006da: 683b ldr r3, [r7, #0]
  823. 81006dc: b2da uxtb r2, r3
  824. 81006de: 4908 ldr r1, [pc, #32] @ (8100700 <__NVIC_SetPriority+0x50>)
  825. 81006e0: 88fb ldrh r3, [r7, #6]
  826. 81006e2: f003 030f and.w r3, r3, #15
  827. 81006e6: 3b04 subs r3, #4
  828. 81006e8: 0112 lsls r2, r2, #4
  829. 81006ea: b2d2 uxtb r2, r2
  830. 81006ec: 440b add r3, r1
  831. 81006ee: 761a strb r2, [r3, #24]
  832. }
  833. 81006f0: bf00 nop
  834. 81006f2: 370c adds r7, #12
  835. 81006f4: 46bd mov sp, r7
  836. 81006f6: f85d 7b04 ldr.w r7, [sp], #4
  837. 81006fa: 4770 bx lr
  838. 81006fc: e000e100 .word 0xe000e100
  839. 8100700: e000ed00 .word 0xe000ed00
  840. 08100704 <NVIC_EncodePriority>:
  841. \param [in] PreemptPriority Preemptive priority value (starting from 0).
  842. \param [in] SubPriority Subpriority value (starting from 0).
  843. \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority().
  844. */
  845. __STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority)
  846. {
  847. 8100704: b480 push {r7}
  848. 8100706: b089 sub sp, #36 @ 0x24
  849. 8100708: af00 add r7, sp, #0
  850. 810070a: 60f8 str r0, [r7, #12]
  851. 810070c: 60b9 str r1, [r7, #8]
  852. 810070e: 607a str r2, [r7, #4]
  853. uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */
  854. 8100710: 68fb ldr r3, [r7, #12]
  855. 8100712: f003 0307 and.w r3, r3, #7
  856. 8100716: 61fb str r3, [r7, #28]
  857. uint32_t PreemptPriorityBits;
  858. uint32_t SubPriorityBits;
  859. PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp);
  860. 8100718: 69fb ldr r3, [r7, #28]
  861. 810071a: f1c3 0307 rsb r3, r3, #7
  862. 810071e: 2b04 cmp r3, #4
  863. 8100720: bf28 it cs
  864. 8100722: 2304 movcs r3, #4
  865. 8100724: 61bb str r3, [r7, #24]
  866. SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS));
  867. 8100726: 69fb ldr r3, [r7, #28]
  868. 8100728: 3304 adds r3, #4
  869. 810072a: 2b06 cmp r3, #6
  870. 810072c: d902 bls.n 8100734 <NVIC_EncodePriority+0x30>
  871. 810072e: 69fb ldr r3, [r7, #28]
  872. 8100730: 3b03 subs r3, #3
  873. 8100732: e000 b.n 8100736 <NVIC_EncodePriority+0x32>
  874. 8100734: 2300 movs r3, #0
  875. 8100736: 617b str r3, [r7, #20]
  876. return (
  877. ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) |
  878. 8100738: f04f 32ff mov.w r2, #4294967295 @ 0xffffffff
  879. 810073c: 69bb ldr r3, [r7, #24]
  880. 810073e: fa02 f303 lsl.w r3, r2, r3
  881. 8100742: 43da mvns r2, r3
  882. 8100744: 68bb ldr r3, [r7, #8]
  883. 8100746: 401a ands r2, r3
  884. 8100748: 697b ldr r3, [r7, #20]
  885. 810074a: 409a lsls r2, r3
  886. ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL)))
  887. 810074c: f04f 31ff mov.w r1, #4294967295 @ 0xffffffff
  888. 8100750: 697b ldr r3, [r7, #20]
  889. 8100752: fa01 f303 lsl.w r3, r1, r3
  890. 8100756: 43d9 mvns r1, r3
  891. 8100758: 687b ldr r3, [r7, #4]
  892. 810075a: 400b ands r3, r1
  893. ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) |
  894. 810075c: 4313 orrs r3, r2
  895. );
  896. }
  897. 810075e: 4618 mov r0, r3
  898. 8100760: 3724 adds r7, #36 @ 0x24
  899. 8100762: 46bd mov sp, r7
  900. 8100764: f85d 7b04 ldr.w r7, [sp], #4
  901. 8100768: 4770 bx lr
  902. ...
  903. 0810076c <SysTick_Config>:
  904. \note When the variable <b>__Vendor_SysTickConfig</b> is set to 1, then the
  905. function <b>SysTick_Config</b> is not included. In this case, the file <b><i>device</i>.h</b>
  906. must contain a vendor-specific implementation of this function.
  907. */
  908. __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)
  909. {
  910. 810076c: b580 push {r7, lr}
  911. 810076e: b082 sub sp, #8
  912. 8100770: af00 add r7, sp, #0
  913. 8100772: 6078 str r0, [r7, #4]
  914. if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk)
  915. 8100774: 687b ldr r3, [r7, #4]
  916. 8100776: 3b01 subs r3, #1
  917. 8100778: f1b3 7f80 cmp.w r3, #16777216 @ 0x1000000
  918. 810077c: d301 bcc.n 8100782 <SysTick_Config+0x16>
  919. {
  920. return (1UL); /* Reload value impossible */
  921. 810077e: 2301 movs r3, #1
  922. 8100780: e00f b.n 81007a2 <SysTick_Config+0x36>
  923. }
  924. SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */
  925. 8100782: 4a0a ldr r2, [pc, #40] @ (81007ac <SysTick_Config+0x40>)
  926. 8100784: 687b ldr r3, [r7, #4]
  927. 8100786: 3b01 subs r3, #1
  928. 8100788: 6053 str r3, [r2, #4]
  929. NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */
  930. 810078a: 210f movs r1, #15
  931. 810078c: f04f 30ff mov.w r0, #4294967295 @ 0xffffffff
  932. 8100790: f7ff ff8e bl 81006b0 <__NVIC_SetPriority>
  933. SysTick->VAL = 0UL; /* Load the SysTick Counter Value */
  934. 8100794: 4b05 ldr r3, [pc, #20] @ (81007ac <SysTick_Config+0x40>)
  935. 8100796: 2200 movs r2, #0
  936. 8100798: 609a str r2, [r3, #8]
  937. SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |
  938. 810079a: 4b04 ldr r3, [pc, #16] @ (81007ac <SysTick_Config+0x40>)
  939. 810079c: 2207 movs r2, #7
  940. 810079e: 601a str r2, [r3, #0]
  941. SysTick_CTRL_TICKINT_Msk |
  942. SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */
  943. return (0UL); /* Function successful */
  944. 81007a0: 2300 movs r3, #0
  945. }
  946. 81007a2: 4618 mov r0, r3
  947. 81007a4: 3708 adds r7, #8
  948. 81007a6: 46bd mov sp, r7
  949. 81007a8: bd80 pop {r7, pc}
  950. 81007aa: bf00 nop
  951. 81007ac: e000e010 .word 0xe000e010
  952. 081007b0 <HAL_NVIC_SetPriorityGrouping>:
  953. * @note When the NVIC_PriorityGroup_0 is selected, IRQ preemption is no more possible.
  954. * The pending IRQ priority will be managed only by the subpriority.
  955. * @retval None
  956. */
  957. void HAL_NVIC_SetPriorityGrouping(uint32_t PriorityGroup)
  958. {
  959. 81007b0: b580 push {r7, lr}
  960. 81007b2: b082 sub sp, #8
  961. 81007b4: af00 add r7, sp, #0
  962. 81007b6: 6078 str r0, [r7, #4]
  963. /* Check the parameters */
  964. assert_param(IS_NVIC_PRIORITY_GROUP(PriorityGroup));
  965. /* Set the PRIGROUP[10:8] bits according to the PriorityGroup parameter value */
  966. NVIC_SetPriorityGrouping(PriorityGroup);
  967. 81007b8: 6878 ldr r0, [r7, #4]
  968. 81007ba: f7ff ff47 bl 810064c <__NVIC_SetPriorityGrouping>
  969. }
  970. 81007be: bf00 nop
  971. 81007c0: 3708 adds r7, #8
  972. 81007c2: 46bd mov sp, r7
  973. 81007c4: bd80 pop {r7, pc}
  974. 081007c6 <HAL_NVIC_SetPriority>:
  975. * This parameter can be a value between 0 and 15
  976. * A lower priority value indicates a higher priority.
  977. * @retval None
  978. */
  979. void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority)
  980. {
  981. 81007c6: b580 push {r7, lr}
  982. 81007c8: b086 sub sp, #24
  983. 81007ca: af00 add r7, sp, #0
  984. 81007cc: 4603 mov r3, r0
  985. 81007ce: 60b9 str r1, [r7, #8]
  986. 81007d0: 607a str r2, [r7, #4]
  987. 81007d2: 81fb strh r3, [r7, #14]
  988. /* Check the parameters */
  989. assert_param(IS_NVIC_SUB_PRIORITY(SubPriority));
  990. assert_param(IS_NVIC_PREEMPTION_PRIORITY(PreemptPriority));
  991. prioritygroup = NVIC_GetPriorityGrouping();
  992. 81007d4: f7ff ff5e bl 8100694 <__NVIC_GetPriorityGrouping>
  993. 81007d8: 6178 str r0, [r7, #20]
  994. NVIC_SetPriority(IRQn, NVIC_EncodePriority(prioritygroup, PreemptPriority, SubPriority));
  995. 81007da: 687a ldr r2, [r7, #4]
  996. 81007dc: 68b9 ldr r1, [r7, #8]
  997. 81007de: 6978 ldr r0, [r7, #20]
  998. 81007e0: f7ff ff90 bl 8100704 <NVIC_EncodePriority>
  999. 81007e4: 4602 mov r2, r0
  1000. 81007e6: f9b7 300e ldrsh.w r3, [r7, #14]
  1001. 81007ea: 4611 mov r1, r2
  1002. 81007ec: 4618 mov r0, r3
  1003. 81007ee: f7ff ff5f bl 81006b0 <__NVIC_SetPriority>
  1004. }
  1005. 81007f2: bf00 nop
  1006. 81007f4: 3718 adds r7, #24
  1007. 81007f6: 46bd mov sp, r7
  1008. 81007f8: bd80 pop {r7, pc}
  1009. 081007fa <HAL_SYSTICK_Config>:
  1010. * @param TicksNumb Specifies the ticks Number of ticks between two interrupts.
  1011. * @retval status - 0 Function succeeded.
  1012. * - 1 Function failed.
  1013. */
  1014. uint32_t HAL_SYSTICK_Config(uint32_t TicksNumb)
  1015. {
  1016. 81007fa: b580 push {r7, lr}
  1017. 81007fc: b082 sub sp, #8
  1018. 81007fe: af00 add r7, sp, #0
  1019. 8100800: 6078 str r0, [r7, #4]
  1020. return SysTick_Config(TicksNumb);
  1021. 8100802: 6878 ldr r0, [r7, #4]
  1022. 8100804: f7ff ffb2 bl 810076c <SysTick_Config>
  1023. 8100808: 4603 mov r3, r0
  1024. }
  1025. 810080a: 4618 mov r0, r3
  1026. 810080c: 3708 adds r7, #8
  1027. 810080e: 46bd mov sp, r7
  1028. 8100810: bd80 pop {r7, pc}
  1029. ...
  1030. 08100814 <HAL_GPIO_Init>:
  1031. * @param GPIO_Init: pointer to a GPIO_InitTypeDef structure that contains
  1032. * the configuration information for the specified GPIO peripheral.
  1033. * @retval None
  1034. */
  1035. void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init)
  1036. {
  1037. 8100814: b480 push {r7}
  1038. 8100816: b089 sub sp, #36 @ 0x24
  1039. 8100818: af00 add r7, sp, #0
  1040. 810081a: 6078 str r0, [r7, #4]
  1041. 810081c: 6039 str r1, [r7, #0]
  1042. uint32_t position = 0x00U;
  1043. 810081e: 2300 movs r3, #0
  1044. 8100820: 61fb str r3, [r7, #28]
  1045. uint32_t iocurrent;
  1046. uint32_t temp;
  1047. EXTI_Core_TypeDef *EXTI_CurrentCPU;
  1048. #if defined(DUAL_CORE) && defined(CORE_CM4)
  1049. EXTI_CurrentCPU = EXTI_D2; /* EXTI for CM4 CPU */
  1050. 8100822: 4b89 ldr r3, [pc, #548] @ (8100a48 <HAL_GPIO_Init+0x234>)
  1051. 8100824: 617b str r3, [r7, #20]
  1052. assert_param(IS_GPIO_ALL_INSTANCE(GPIOx));
  1053. assert_param(IS_GPIO_PIN(GPIO_Init->Pin));
  1054. assert_param(IS_GPIO_MODE(GPIO_Init->Mode));
  1055. /* Configure the port pins */
  1056. while (((GPIO_Init->Pin) >> position) != 0x00U)
  1057. 8100826: e194 b.n 8100b52 <HAL_GPIO_Init+0x33e>
  1058. {
  1059. /* Get current io position */
  1060. iocurrent = (GPIO_Init->Pin) & (1UL << position);
  1061. 8100828: 683b ldr r3, [r7, #0]
  1062. 810082a: 681a ldr r2, [r3, #0]
  1063. 810082c: 2101 movs r1, #1
  1064. 810082e: 69fb ldr r3, [r7, #28]
  1065. 8100830: fa01 f303 lsl.w r3, r1, r3
  1066. 8100834: 4013 ands r3, r2
  1067. 8100836: 613b str r3, [r7, #16]
  1068. if (iocurrent != 0x00U)
  1069. 8100838: 693b ldr r3, [r7, #16]
  1070. 810083a: 2b00 cmp r3, #0
  1071. 810083c: f000 8186 beq.w 8100b4c <HAL_GPIO_Init+0x338>
  1072. {
  1073. /*--------------------- GPIO Mode Configuration ------------------------*/
  1074. /* In case of Output or Alternate function mode selection */
  1075. if (((GPIO_Init->Mode & GPIO_MODE) == MODE_OUTPUT) || ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF))
  1076. 8100840: 683b ldr r3, [r7, #0]
  1077. 8100842: 685b ldr r3, [r3, #4]
  1078. 8100844: f003 0303 and.w r3, r3, #3
  1079. 8100848: 2b01 cmp r3, #1
  1080. 810084a: d005 beq.n 8100858 <HAL_GPIO_Init+0x44>
  1081. 810084c: 683b ldr r3, [r7, #0]
  1082. 810084e: 685b ldr r3, [r3, #4]
  1083. 8100850: f003 0303 and.w r3, r3, #3
  1084. 8100854: 2b02 cmp r3, #2
  1085. 8100856: d130 bne.n 81008ba <HAL_GPIO_Init+0xa6>
  1086. {
  1087. /* Check the Speed parameter */
  1088. assert_param(IS_GPIO_SPEED(GPIO_Init->Speed));
  1089. /* Configure the IO Speed */
  1090. temp = GPIOx->OSPEEDR;
  1091. 8100858: 687b ldr r3, [r7, #4]
  1092. 810085a: 689b ldr r3, [r3, #8]
  1093. 810085c: 61bb str r3, [r7, #24]
  1094. temp &= ~(GPIO_OSPEEDR_OSPEED0 << (position * 2U));
  1095. 810085e: 69fb ldr r3, [r7, #28]
  1096. 8100860: 005b lsls r3, r3, #1
  1097. 8100862: 2203 movs r2, #3
  1098. 8100864: fa02 f303 lsl.w r3, r2, r3
  1099. 8100868: 43db mvns r3, r3
  1100. 810086a: 69ba ldr r2, [r7, #24]
  1101. 810086c: 4013 ands r3, r2
  1102. 810086e: 61bb str r3, [r7, #24]
  1103. temp |= (GPIO_Init->Speed << (position * 2U));
  1104. 8100870: 683b ldr r3, [r7, #0]
  1105. 8100872: 68da ldr r2, [r3, #12]
  1106. 8100874: 69fb ldr r3, [r7, #28]
  1107. 8100876: 005b lsls r3, r3, #1
  1108. 8100878: fa02 f303 lsl.w r3, r2, r3
  1109. 810087c: 69ba ldr r2, [r7, #24]
  1110. 810087e: 4313 orrs r3, r2
  1111. 8100880: 61bb str r3, [r7, #24]
  1112. GPIOx->OSPEEDR = temp;
  1113. 8100882: 687b ldr r3, [r7, #4]
  1114. 8100884: 69ba ldr r2, [r7, #24]
  1115. 8100886: 609a str r2, [r3, #8]
  1116. /* Configure the IO Output Type */
  1117. temp = GPIOx->OTYPER;
  1118. 8100888: 687b ldr r3, [r7, #4]
  1119. 810088a: 685b ldr r3, [r3, #4]
  1120. 810088c: 61bb str r3, [r7, #24]
  1121. temp &= ~(GPIO_OTYPER_OT0 << position) ;
  1122. 810088e: 2201 movs r2, #1
  1123. 8100890: 69fb ldr r3, [r7, #28]
  1124. 8100892: fa02 f303 lsl.w r3, r2, r3
  1125. 8100896: 43db mvns r3, r3
  1126. 8100898: 69ba ldr r2, [r7, #24]
  1127. 810089a: 4013 ands r3, r2
  1128. 810089c: 61bb str r3, [r7, #24]
  1129. temp |= (((GPIO_Init->Mode & OUTPUT_TYPE) >> OUTPUT_TYPE_Pos) << position);
  1130. 810089e: 683b ldr r3, [r7, #0]
  1131. 81008a0: 685b ldr r3, [r3, #4]
  1132. 81008a2: 091b lsrs r3, r3, #4
  1133. 81008a4: f003 0201 and.w r2, r3, #1
  1134. 81008a8: 69fb ldr r3, [r7, #28]
  1135. 81008aa: fa02 f303 lsl.w r3, r2, r3
  1136. 81008ae: 69ba ldr r2, [r7, #24]
  1137. 81008b0: 4313 orrs r3, r2
  1138. 81008b2: 61bb str r3, [r7, #24]
  1139. GPIOx->OTYPER = temp;
  1140. 81008b4: 687b ldr r3, [r7, #4]
  1141. 81008b6: 69ba ldr r2, [r7, #24]
  1142. 81008b8: 605a str r2, [r3, #4]
  1143. }
  1144. if ((GPIO_Init->Mode & GPIO_MODE) != MODE_ANALOG)
  1145. 81008ba: 683b ldr r3, [r7, #0]
  1146. 81008bc: 685b ldr r3, [r3, #4]
  1147. 81008be: f003 0303 and.w r3, r3, #3
  1148. 81008c2: 2b03 cmp r3, #3
  1149. 81008c4: d017 beq.n 81008f6 <HAL_GPIO_Init+0xe2>
  1150. {
  1151. /* Check the Pull parameter */
  1152. assert_param(IS_GPIO_PULL(GPIO_Init->Pull));
  1153. /* Activate the Pull-up or Pull down resistor for the current IO */
  1154. temp = GPIOx->PUPDR;
  1155. 81008c6: 687b ldr r3, [r7, #4]
  1156. 81008c8: 68db ldr r3, [r3, #12]
  1157. 81008ca: 61bb str r3, [r7, #24]
  1158. temp &= ~(GPIO_PUPDR_PUPD0 << (position * 2U));
  1159. 81008cc: 69fb ldr r3, [r7, #28]
  1160. 81008ce: 005b lsls r3, r3, #1
  1161. 81008d0: 2203 movs r2, #3
  1162. 81008d2: fa02 f303 lsl.w r3, r2, r3
  1163. 81008d6: 43db mvns r3, r3
  1164. 81008d8: 69ba ldr r2, [r7, #24]
  1165. 81008da: 4013 ands r3, r2
  1166. 81008dc: 61bb str r3, [r7, #24]
  1167. temp |= ((GPIO_Init->Pull) << (position * 2U));
  1168. 81008de: 683b ldr r3, [r7, #0]
  1169. 81008e0: 689a ldr r2, [r3, #8]
  1170. 81008e2: 69fb ldr r3, [r7, #28]
  1171. 81008e4: 005b lsls r3, r3, #1
  1172. 81008e6: fa02 f303 lsl.w r3, r2, r3
  1173. 81008ea: 69ba ldr r2, [r7, #24]
  1174. 81008ec: 4313 orrs r3, r2
  1175. 81008ee: 61bb str r3, [r7, #24]
  1176. GPIOx->PUPDR = temp;
  1177. 81008f0: 687b ldr r3, [r7, #4]
  1178. 81008f2: 69ba ldr r2, [r7, #24]
  1179. 81008f4: 60da str r2, [r3, #12]
  1180. }
  1181. /* In case of Alternate function mode selection */
  1182. if ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF)
  1183. 81008f6: 683b ldr r3, [r7, #0]
  1184. 81008f8: 685b ldr r3, [r3, #4]
  1185. 81008fa: f003 0303 and.w r3, r3, #3
  1186. 81008fe: 2b02 cmp r3, #2
  1187. 8100900: d123 bne.n 810094a <HAL_GPIO_Init+0x136>
  1188. /* Check the Alternate function parameters */
  1189. assert_param(IS_GPIO_AF_INSTANCE(GPIOx));
  1190. assert_param(IS_GPIO_AF(GPIO_Init->Alternate));
  1191. /* Configure Alternate function mapped with the current IO */
  1192. temp = GPIOx->AFR[position >> 3U];
  1193. 8100902: 69fb ldr r3, [r7, #28]
  1194. 8100904: 08da lsrs r2, r3, #3
  1195. 8100906: 687b ldr r3, [r7, #4]
  1196. 8100908: 3208 adds r2, #8
  1197. 810090a: f853 3022 ldr.w r3, [r3, r2, lsl #2]
  1198. 810090e: 61bb str r3, [r7, #24]
  1199. temp &= ~(0xFU << ((position & 0x07U) * 4U));
  1200. 8100910: 69fb ldr r3, [r7, #28]
  1201. 8100912: f003 0307 and.w r3, r3, #7
  1202. 8100916: 009b lsls r3, r3, #2
  1203. 8100918: 220f movs r2, #15
  1204. 810091a: fa02 f303 lsl.w r3, r2, r3
  1205. 810091e: 43db mvns r3, r3
  1206. 8100920: 69ba ldr r2, [r7, #24]
  1207. 8100922: 4013 ands r3, r2
  1208. 8100924: 61bb str r3, [r7, #24]
  1209. temp |= ((GPIO_Init->Alternate) << ((position & 0x07U) * 4U));
  1210. 8100926: 683b ldr r3, [r7, #0]
  1211. 8100928: 691a ldr r2, [r3, #16]
  1212. 810092a: 69fb ldr r3, [r7, #28]
  1213. 810092c: f003 0307 and.w r3, r3, #7
  1214. 8100930: 009b lsls r3, r3, #2
  1215. 8100932: fa02 f303 lsl.w r3, r2, r3
  1216. 8100936: 69ba ldr r2, [r7, #24]
  1217. 8100938: 4313 orrs r3, r2
  1218. 810093a: 61bb str r3, [r7, #24]
  1219. GPIOx->AFR[position >> 3U] = temp;
  1220. 810093c: 69fb ldr r3, [r7, #28]
  1221. 810093e: 08da lsrs r2, r3, #3
  1222. 8100940: 687b ldr r3, [r7, #4]
  1223. 8100942: 3208 adds r2, #8
  1224. 8100944: 69b9 ldr r1, [r7, #24]
  1225. 8100946: f843 1022 str.w r1, [r3, r2, lsl #2]
  1226. }
  1227. /* Configure IO Direction mode (Input, Output, Alternate or Analog) */
  1228. temp = GPIOx->MODER;
  1229. 810094a: 687b ldr r3, [r7, #4]
  1230. 810094c: 681b ldr r3, [r3, #0]
  1231. 810094e: 61bb str r3, [r7, #24]
  1232. temp &= ~(GPIO_MODER_MODE0 << (position * 2U));
  1233. 8100950: 69fb ldr r3, [r7, #28]
  1234. 8100952: 005b lsls r3, r3, #1
  1235. 8100954: 2203 movs r2, #3
  1236. 8100956: fa02 f303 lsl.w r3, r2, r3
  1237. 810095a: 43db mvns r3, r3
  1238. 810095c: 69ba ldr r2, [r7, #24]
  1239. 810095e: 4013 ands r3, r2
  1240. 8100960: 61bb str r3, [r7, #24]
  1241. temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2U));
  1242. 8100962: 683b ldr r3, [r7, #0]
  1243. 8100964: 685b ldr r3, [r3, #4]
  1244. 8100966: f003 0203 and.w r2, r3, #3
  1245. 810096a: 69fb ldr r3, [r7, #28]
  1246. 810096c: 005b lsls r3, r3, #1
  1247. 810096e: fa02 f303 lsl.w r3, r2, r3
  1248. 8100972: 69ba ldr r2, [r7, #24]
  1249. 8100974: 4313 orrs r3, r2
  1250. 8100976: 61bb str r3, [r7, #24]
  1251. GPIOx->MODER = temp;
  1252. 8100978: 687b ldr r3, [r7, #4]
  1253. 810097a: 69ba ldr r2, [r7, #24]
  1254. 810097c: 601a str r2, [r3, #0]
  1255. /*--------------------- EXTI Mode Configuration ------------------------*/
  1256. /* Configure the External Interrupt or event for the current IO */
  1257. if ((GPIO_Init->Mode & EXTI_MODE) != 0x00U)
  1258. 810097e: 683b ldr r3, [r7, #0]
  1259. 8100980: 685b ldr r3, [r3, #4]
  1260. 8100982: f403 3340 and.w r3, r3, #196608 @ 0x30000
  1261. 8100986: 2b00 cmp r3, #0
  1262. 8100988: f000 80e0 beq.w 8100b4c <HAL_GPIO_Init+0x338>
  1263. {
  1264. /* Enable SYSCFG Clock */
  1265. __HAL_RCC_SYSCFG_CLK_ENABLE();
  1266. 810098c: 4b2f ldr r3, [pc, #188] @ (8100a4c <HAL_GPIO_Init+0x238>)
  1267. 810098e: f8d3 30f4 ldr.w r3, [r3, #244] @ 0xf4
  1268. 8100992: 4a2e ldr r2, [pc, #184] @ (8100a4c <HAL_GPIO_Init+0x238>)
  1269. 8100994: f043 0302 orr.w r3, r3, #2
  1270. 8100998: f8c2 30f4 str.w r3, [r2, #244] @ 0xf4
  1271. 810099c: 4b2b ldr r3, [pc, #172] @ (8100a4c <HAL_GPIO_Init+0x238>)
  1272. 810099e: f8d3 30f4 ldr.w r3, [r3, #244] @ 0xf4
  1273. 81009a2: f003 0302 and.w r3, r3, #2
  1274. 81009a6: 60fb str r3, [r7, #12]
  1275. 81009a8: 68fb ldr r3, [r7, #12]
  1276. temp = SYSCFG->EXTICR[position >> 2U];
  1277. 81009aa: 4a29 ldr r2, [pc, #164] @ (8100a50 <HAL_GPIO_Init+0x23c>)
  1278. 81009ac: 69fb ldr r3, [r7, #28]
  1279. 81009ae: 089b lsrs r3, r3, #2
  1280. 81009b0: 3302 adds r3, #2
  1281. 81009b2: f852 3023 ldr.w r3, [r2, r3, lsl #2]
  1282. 81009b6: 61bb str r3, [r7, #24]
  1283. temp &= ~(0x0FUL << (4U * (position & 0x03U)));
  1284. 81009b8: 69fb ldr r3, [r7, #28]
  1285. 81009ba: f003 0303 and.w r3, r3, #3
  1286. 81009be: 009b lsls r3, r3, #2
  1287. 81009c0: 220f movs r2, #15
  1288. 81009c2: fa02 f303 lsl.w r3, r2, r3
  1289. 81009c6: 43db mvns r3, r3
  1290. 81009c8: 69ba ldr r2, [r7, #24]
  1291. 81009ca: 4013 ands r3, r2
  1292. 81009cc: 61bb str r3, [r7, #24]
  1293. temp |= (GPIO_GET_INDEX(GPIOx) << (4U * (position & 0x03U)));
  1294. 81009ce: 687b ldr r3, [r7, #4]
  1295. 81009d0: 4a20 ldr r2, [pc, #128] @ (8100a54 <HAL_GPIO_Init+0x240>)
  1296. 81009d2: 4293 cmp r3, r2
  1297. 81009d4: d052 beq.n 8100a7c <HAL_GPIO_Init+0x268>
  1298. 81009d6: 687b ldr r3, [r7, #4]
  1299. 81009d8: 4a1f ldr r2, [pc, #124] @ (8100a58 <HAL_GPIO_Init+0x244>)
  1300. 81009da: 4293 cmp r3, r2
  1301. 81009dc: d031 beq.n 8100a42 <HAL_GPIO_Init+0x22e>
  1302. 81009de: 687b ldr r3, [r7, #4]
  1303. 81009e0: 4a1e ldr r2, [pc, #120] @ (8100a5c <HAL_GPIO_Init+0x248>)
  1304. 81009e2: 4293 cmp r3, r2
  1305. 81009e4: d02b beq.n 8100a3e <HAL_GPIO_Init+0x22a>
  1306. 81009e6: 687b ldr r3, [r7, #4]
  1307. 81009e8: 4a1d ldr r2, [pc, #116] @ (8100a60 <HAL_GPIO_Init+0x24c>)
  1308. 81009ea: 4293 cmp r3, r2
  1309. 81009ec: d025 beq.n 8100a3a <HAL_GPIO_Init+0x226>
  1310. 81009ee: 687b ldr r3, [r7, #4]
  1311. 81009f0: 4a1c ldr r2, [pc, #112] @ (8100a64 <HAL_GPIO_Init+0x250>)
  1312. 81009f2: 4293 cmp r3, r2
  1313. 81009f4: d01f beq.n 8100a36 <HAL_GPIO_Init+0x222>
  1314. 81009f6: 687b ldr r3, [r7, #4]
  1315. 81009f8: 4a1b ldr r2, [pc, #108] @ (8100a68 <HAL_GPIO_Init+0x254>)
  1316. 81009fa: 4293 cmp r3, r2
  1317. 81009fc: d019 beq.n 8100a32 <HAL_GPIO_Init+0x21e>
  1318. 81009fe: 687b ldr r3, [r7, #4]
  1319. 8100a00: 4a1a ldr r2, [pc, #104] @ (8100a6c <HAL_GPIO_Init+0x258>)
  1320. 8100a02: 4293 cmp r3, r2
  1321. 8100a04: d013 beq.n 8100a2e <HAL_GPIO_Init+0x21a>
  1322. 8100a06: 687b ldr r3, [r7, #4]
  1323. 8100a08: 4a19 ldr r2, [pc, #100] @ (8100a70 <HAL_GPIO_Init+0x25c>)
  1324. 8100a0a: 4293 cmp r3, r2
  1325. 8100a0c: d00d beq.n 8100a2a <HAL_GPIO_Init+0x216>
  1326. 8100a0e: 687b ldr r3, [r7, #4]
  1327. 8100a10: 4a18 ldr r2, [pc, #96] @ (8100a74 <HAL_GPIO_Init+0x260>)
  1328. 8100a12: 4293 cmp r3, r2
  1329. 8100a14: d007 beq.n 8100a26 <HAL_GPIO_Init+0x212>
  1330. 8100a16: 687b ldr r3, [r7, #4]
  1331. 8100a18: 4a17 ldr r2, [pc, #92] @ (8100a78 <HAL_GPIO_Init+0x264>)
  1332. 8100a1a: 4293 cmp r3, r2
  1333. 8100a1c: d101 bne.n 8100a22 <HAL_GPIO_Init+0x20e>
  1334. 8100a1e: 2309 movs r3, #9
  1335. 8100a20: e02d b.n 8100a7e <HAL_GPIO_Init+0x26a>
  1336. 8100a22: 230a movs r3, #10
  1337. 8100a24: e02b b.n 8100a7e <HAL_GPIO_Init+0x26a>
  1338. 8100a26: 2308 movs r3, #8
  1339. 8100a28: e029 b.n 8100a7e <HAL_GPIO_Init+0x26a>
  1340. 8100a2a: 2307 movs r3, #7
  1341. 8100a2c: e027 b.n 8100a7e <HAL_GPIO_Init+0x26a>
  1342. 8100a2e: 2306 movs r3, #6
  1343. 8100a30: e025 b.n 8100a7e <HAL_GPIO_Init+0x26a>
  1344. 8100a32: 2305 movs r3, #5
  1345. 8100a34: e023 b.n 8100a7e <HAL_GPIO_Init+0x26a>
  1346. 8100a36: 2304 movs r3, #4
  1347. 8100a38: e021 b.n 8100a7e <HAL_GPIO_Init+0x26a>
  1348. 8100a3a: 2303 movs r3, #3
  1349. 8100a3c: e01f b.n 8100a7e <HAL_GPIO_Init+0x26a>
  1350. 8100a3e: 2302 movs r3, #2
  1351. 8100a40: e01d b.n 8100a7e <HAL_GPIO_Init+0x26a>
  1352. 8100a42: 2301 movs r3, #1
  1353. 8100a44: e01b b.n 8100a7e <HAL_GPIO_Init+0x26a>
  1354. 8100a46: bf00 nop
  1355. 8100a48: 580000c0 .word 0x580000c0
  1356. 8100a4c: 58024400 .word 0x58024400
  1357. 8100a50: 58000400 .word 0x58000400
  1358. 8100a54: 58020000 .word 0x58020000
  1359. 8100a58: 58020400 .word 0x58020400
  1360. 8100a5c: 58020800 .word 0x58020800
  1361. 8100a60: 58020c00 .word 0x58020c00
  1362. 8100a64: 58021000 .word 0x58021000
  1363. 8100a68: 58021400 .word 0x58021400
  1364. 8100a6c: 58021800 .word 0x58021800
  1365. 8100a70: 58021c00 .word 0x58021c00
  1366. 8100a74: 58022000 .word 0x58022000
  1367. 8100a78: 58022400 .word 0x58022400
  1368. 8100a7c: 2300 movs r3, #0
  1369. 8100a7e: 69fa ldr r2, [r7, #28]
  1370. 8100a80: f002 0203 and.w r2, r2, #3
  1371. 8100a84: 0092 lsls r2, r2, #2
  1372. 8100a86: 4093 lsls r3, r2
  1373. 8100a88: 69ba ldr r2, [r7, #24]
  1374. 8100a8a: 4313 orrs r3, r2
  1375. 8100a8c: 61bb str r3, [r7, #24]
  1376. SYSCFG->EXTICR[position >> 2U] = temp;
  1377. 8100a8e: 4938 ldr r1, [pc, #224] @ (8100b70 <HAL_GPIO_Init+0x35c>)
  1378. 8100a90: 69fb ldr r3, [r7, #28]
  1379. 8100a92: 089b lsrs r3, r3, #2
  1380. 8100a94: 3302 adds r3, #2
  1381. 8100a96: 69ba ldr r2, [r7, #24]
  1382. 8100a98: f841 2023 str.w r2, [r1, r3, lsl #2]
  1383. /* Clear Rising Falling edge configuration */
  1384. temp = EXTI->RTSR1;
  1385. 8100a9c: f04f 43b0 mov.w r3, #1476395008 @ 0x58000000
  1386. 8100aa0: 681b ldr r3, [r3, #0]
  1387. 8100aa2: 61bb str r3, [r7, #24]
  1388. temp &= ~(iocurrent);
  1389. 8100aa4: 693b ldr r3, [r7, #16]
  1390. 8100aa6: 43db mvns r3, r3
  1391. 8100aa8: 69ba ldr r2, [r7, #24]
  1392. 8100aaa: 4013 ands r3, r2
  1393. 8100aac: 61bb str r3, [r7, #24]
  1394. if ((GPIO_Init->Mode & TRIGGER_RISING) != 0x00U)
  1395. 8100aae: 683b ldr r3, [r7, #0]
  1396. 8100ab0: 685b ldr r3, [r3, #4]
  1397. 8100ab2: f403 1380 and.w r3, r3, #1048576 @ 0x100000
  1398. 8100ab6: 2b00 cmp r3, #0
  1399. 8100ab8: d003 beq.n 8100ac2 <HAL_GPIO_Init+0x2ae>
  1400. {
  1401. temp |= iocurrent;
  1402. 8100aba: 69ba ldr r2, [r7, #24]
  1403. 8100abc: 693b ldr r3, [r7, #16]
  1404. 8100abe: 4313 orrs r3, r2
  1405. 8100ac0: 61bb str r3, [r7, #24]
  1406. }
  1407. EXTI->RTSR1 = temp;
  1408. 8100ac2: f04f 42b0 mov.w r2, #1476395008 @ 0x58000000
  1409. 8100ac6: 69bb ldr r3, [r7, #24]
  1410. 8100ac8: 6013 str r3, [r2, #0]
  1411. temp = EXTI->FTSR1;
  1412. 8100aca: f04f 43b0 mov.w r3, #1476395008 @ 0x58000000
  1413. 8100ace: 685b ldr r3, [r3, #4]
  1414. 8100ad0: 61bb str r3, [r7, #24]
  1415. temp &= ~(iocurrent);
  1416. 8100ad2: 693b ldr r3, [r7, #16]
  1417. 8100ad4: 43db mvns r3, r3
  1418. 8100ad6: 69ba ldr r2, [r7, #24]
  1419. 8100ad8: 4013 ands r3, r2
  1420. 8100ada: 61bb str r3, [r7, #24]
  1421. if ((GPIO_Init->Mode & TRIGGER_FALLING) != 0x00U)
  1422. 8100adc: 683b ldr r3, [r7, #0]
  1423. 8100ade: 685b ldr r3, [r3, #4]
  1424. 8100ae0: f403 1300 and.w r3, r3, #2097152 @ 0x200000
  1425. 8100ae4: 2b00 cmp r3, #0
  1426. 8100ae6: d003 beq.n 8100af0 <HAL_GPIO_Init+0x2dc>
  1427. {
  1428. temp |= iocurrent;
  1429. 8100ae8: 69ba ldr r2, [r7, #24]
  1430. 8100aea: 693b ldr r3, [r7, #16]
  1431. 8100aec: 4313 orrs r3, r2
  1432. 8100aee: 61bb str r3, [r7, #24]
  1433. }
  1434. EXTI->FTSR1 = temp;
  1435. 8100af0: f04f 42b0 mov.w r2, #1476395008 @ 0x58000000
  1436. 8100af4: 69bb ldr r3, [r7, #24]
  1437. 8100af6: 6053 str r3, [r2, #4]
  1438. temp = EXTI_CurrentCPU->EMR1;
  1439. 8100af8: 697b ldr r3, [r7, #20]
  1440. 8100afa: 685b ldr r3, [r3, #4]
  1441. 8100afc: 61bb str r3, [r7, #24]
  1442. temp &= ~(iocurrent);
  1443. 8100afe: 693b ldr r3, [r7, #16]
  1444. 8100b00: 43db mvns r3, r3
  1445. 8100b02: 69ba ldr r2, [r7, #24]
  1446. 8100b04: 4013 ands r3, r2
  1447. 8100b06: 61bb str r3, [r7, #24]
  1448. if ((GPIO_Init->Mode & EXTI_EVT) != 0x00U)
  1449. 8100b08: 683b ldr r3, [r7, #0]
  1450. 8100b0a: 685b ldr r3, [r3, #4]
  1451. 8100b0c: f403 3300 and.w r3, r3, #131072 @ 0x20000
  1452. 8100b10: 2b00 cmp r3, #0
  1453. 8100b12: d003 beq.n 8100b1c <HAL_GPIO_Init+0x308>
  1454. {
  1455. temp |= iocurrent;
  1456. 8100b14: 69ba ldr r2, [r7, #24]
  1457. 8100b16: 693b ldr r3, [r7, #16]
  1458. 8100b18: 4313 orrs r3, r2
  1459. 8100b1a: 61bb str r3, [r7, #24]
  1460. }
  1461. EXTI_CurrentCPU->EMR1 = temp;
  1462. 8100b1c: 697b ldr r3, [r7, #20]
  1463. 8100b1e: 69ba ldr r2, [r7, #24]
  1464. 8100b20: 605a str r2, [r3, #4]
  1465. /* Clear EXTI line configuration */
  1466. temp = EXTI_CurrentCPU->IMR1;
  1467. 8100b22: 697b ldr r3, [r7, #20]
  1468. 8100b24: 681b ldr r3, [r3, #0]
  1469. 8100b26: 61bb str r3, [r7, #24]
  1470. temp &= ~(iocurrent);
  1471. 8100b28: 693b ldr r3, [r7, #16]
  1472. 8100b2a: 43db mvns r3, r3
  1473. 8100b2c: 69ba ldr r2, [r7, #24]
  1474. 8100b2e: 4013 ands r3, r2
  1475. 8100b30: 61bb str r3, [r7, #24]
  1476. if ((GPIO_Init->Mode & EXTI_IT) != 0x00U)
  1477. 8100b32: 683b ldr r3, [r7, #0]
  1478. 8100b34: 685b ldr r3, [r3, #4]
  1479. 8100b36: f403 3380 and.w r3, r3, #65536 @ 0x10000
  1480. 8100b3a: 2b00 cmp r3, #0
  1481. 8100b3c: d003 beq.n 8100b46 <HAL_GPIO_Init+0x332>
  1482. {
  1483. temp |= iocurrent;
  1484. 8100b3e: 69ba ldr r2, [r7, #24]
  1485. 8100b40: 693b ldr r3, [r7, #16]
  1486. 8100b42: 4313 orrs r3, r2
  1487. 8100b44: 61bb str r3, [r7, #24]
  1488. }
  1489. EXTI_CurrentCPU->IMR1 = temp;
  1490. 8100b46: 697b ldr r3, [r7, #20]
  1491. 8100b48: 69ba ldr r2, [r7, #24]
  1492. 8100b4a: 601a str r2, [r3, #0]
  1493. }
  1494. }
  1495. position++;
  1496. 8100b4c: 69fb ldr r3, [r7, #28]
  1497. 8100b4e: 3301 adds r3, #1
  1498. 8100b50: 61fb str r3, [r7, #28]
  1499. while (((GPIO_Init->Pin) >> position) != 0x00U)
  1500. 8100b52: 683b ldr r3, [r7, #0]
  1501. 8100b54: 681a ldr r2, [r3, #0]
  1502. 8100b56: 69fb ldr r3, [r7, #28]
  1503. 8100b58: fa22 f303 lsr.w r3, r2, r3
  1504. 8100b5c: 2b00 cmp r3, #0
  1505. 8100b5e: f47f ae63 bne.w 8100828 <HAL_GPIO_Init+0x14>
  1506. }
  1507. }
  1508. 8100b62: bf00 nop
  1509. 8100b64: bf00 nop
  1510. 8100b66: 3724 adds r7, #36 @ 0x24
  1511. 8100b68: 46bd mov sp, r7
  1512. 8100b6a: f85d 7b04 ldr.w r7, [sp], #4
  1513. 8100b6e: 4770 bx lr
  1514. 8100b70: 58000400 .word 0x58000400
  1515. 08100b74 <HAL_RCC_GetSysClockFreq>:
  1516. *
  1517. *
  1518. * @retval SYSCLK frequency
  1519. */
  1520. uint32_t HAL_RCC_GetSysClockFreq(void)
  1521. {
  1522. 8100b74: b480 push {r7}
  1523. 8100b76: b089 sub sp, #36 @ 0x24
  1524. 8100b78: af00 add r7, sp, #0
  1525. float_t fracn1, pllvco;
  1526. uint32_t sysclockfreq;
  1527. /* Get SYSCLK source -------------------------------------------------------*/
  1528. switch (RCC->CFGR & RCC_CFGR_SWS)
  1529. 8100b7a: 4bb3 ldr r3, [pc, #716] @ (8100e48 <HAL_RCC_GetSysClockFreq+0x2d4>)
  1530. 8100b7c: 691b ldr r3, [r3, #16]
  1531. 8100b7e: f003 0338 and.w r3, r3, #56 @ 0x38
  1532. 8100b82: 2b18 cmp r3, #24
  1533. 8100b84: f200 8155 bhi.w 8100e32 <HAL_RCC_GetSysClockFreq+0x2be>
  1534. 8100b88: a201 add r2, pc, #4 @ (adr r2, 8100b90 <HAL_RCC_GetSysClockFreq+0x1c>)
  1535. 8100b8a: f852 f023 ldr.w pc, [r2, r3, lsl #2]
  1536. 8100b8e: bf00 nop
  1537. 8100b90: 08100bf5 .word 0x08100bf5
  1538. 8100b94: 08100e33 .word 0x08100e33
  1539. 8100b98: 08100e33 .word 0x08100e33
  1540. 8100b9c: 08100e33 .word 0x08100e33
  1541. 8100ba0: 08100e33 .word 0x08100e33
  1542. 8100ba4: 08100e33 .word 0x08100e33
  1543. 8100ba8: 08100e33 .word 0x08100e33
  1544. 8100bac: 08100e33 .word 0x08100e33
  1545. 8100bb0: 08100c1b .word 0x08100c1b
  1546. 8100bb4: 08100e33 .word 0x08100e33
  1547. 8100bb8: 08100e33 .word 0x08100e33
  1548. 8100bbc: 08100e33 .word 0x08100e33
  1549. 8100bc0: 08100e33 .word 0x08100e33
  1550. 8100bc4: 08100e33 .word 0x08100e33
  1551. 8100bc8: 08100e33 .word 0x08100e33
  1552. 8100bcc: 08100e33 .word 0x08100e33
  1553. 8100bd0: 08100c21 .word 0x08100c21
  1554. 8100bd4: 08100e33 .word 0x08100e33
  1555. 8100bd8: 08100e33 .word 0x08100e33
  1556. 8100bdc: 08100e33 .word 0x08100e33
  1557. 8100be0: 08100e33 .word 0x08100e33
  1558. 8100be4: 08100e33 .word 0x08100e33
  1559. 8100be8: 08100e33 .word 0x08100e33
  1560. 8100bec: 08100e33 .word 0x08100e33
  1561. 8100bf0: 08100c27 .word 0x08100c27
  1562. {
  1563. case RCC_CFGR_SWS_HSI: /* HSI used as system clock source */
  1564. if (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIDIV) != 0U)
  1565. 8100bf4: 4b94 ldr r3, [pc, #592] @ (8100e48 <HAL_RCC_GetSysClockFreq+0x2d4>)
  1566. 8100bf6: 681b ldr r3, [r3, #0]
  1567. 8100bf8: f003 0320 and.w r3, r3, #32
  1568. 8100bfc: 2b00 cmp r3, #0
  1569. 8100bfe: d009 beq.n 8100c14 <HAL_RCC_GetSysClockFreq+0xa0>
  1570. {
  1571. sysclockfreq = (uint32_t) (HSI_VALUE >> (__HAL_RCC_GET_HSI_DIVIDER()>> 3));
  1572. 8100c00: 4b91 ldr r3, [pc, #580] @ (8100e48 <HAL_RCC_GetSysClockFreq+0x2d4>)
  1573. 8100c02: 681b ldr r3, [r3, #0]
  1574. 8100c04: 08db lsrs r3, r3, #3
  1575. 8100c06: f003 0303 and.w r3, r3, #3
  1576. 8100c0a: 4a90 ldr r2, [pc, #576] @ (8100e4c <HAL_RCC_GetSysClockFreq+0x2d8>)
  1577. 8100c0c: fa22 f303 lsr.w r3, r2, r3
  1578. 8100c10: 61bb str r3, [r7, #24]
  1579. else
  1580. {
  1581. sysclockfreq = (uint32_t) HSI_VALUE;
  1582. }
  1583. break;
  1584. 8100c12: e111 b.n 8100e38 <HAL_RCC_GetSysClockFreq+0x2c4>
  1585. sysclockfreq = (uint32_t) HSI_VALUE;
  1586. 8100c14: 4b8d ldr r3, [pc, #564] @ (8100e4c <HAL_RCC_GetSysClockFreq+0x2d8>)
  1587. 8100c16: 61bb str r3, [r7, #24]
  1588. break;
  1589. 8100c18: e10e b.n 8100e38 <HAL_RCC_GetSysClockFreq+0x2c4>
  1590. case RCC_CFGR_SWS_CSI: /* CSI used as system clock source */
  1591. sysclockfreq = CSI_VALUE;
  1592. 8100c1a: 4b8d ldr r3, [pc, #564] @ (8100e50 <HAL_RCC_GetSysClockFreq+0x2dc>)
  1593. 8100c1c: 61bb str r3, [r7, #24]
  1594. break;
  1595. 8100c1e: e10b b.n 8100e38 <HAL_RCC_GetSysClockFreq+0x2c4>
  1596. case RCC_CFGR_SWS_HSE: /* HSE used as system clock source */
  1597. sysclockfreq = HSE_VALUE;
  1598. 8100c20: 4b8c ldr r3, [pc, #560] @ (8100e54 <HAL_RCC_GetSysClockFreq+0x2e0>)
  1599. 8100c22: 61bb str r3, [r7, #24]
  1600. break;
  1601. 8100c24: e108 b.n 8100e38 <HAL_RCC_GetSysClockFreq+0x2c4>
  1602. case RCC_CFGR_SWS_PLL1: /* PLL1 used as system clock source */
  1603. /* PLL_VCO = (HSE_VALUE or HSI_VALUE or CSI_VALUE/ PLLM) * PLLN
  1604. SYSCLK = PLL_VCO / PLLR
  1605. */
  1606. pllsource = (RCC->PLLCKSELR & RCC_PLLCKSELR_PLLSRC);
  1607. 8100c26: 4b88 ldr r3, [pc, #544] @ (8100e48 <HAL_RCC_GetSysClockFreq+0x2d4>)
  1608. 8100c28: 6a9b ldr r3, [r3, #40] @ 0x28
  1609. 8100c2a: f003 0303 and.w r3, r3, #3
  1610. 8100c2e: 617b str r3, [r7, #20]
  1611. pllm = ((RCC->PLLCKSELR & RCC_PLLCKSELR_DIVM1)>> 4) ;
  1612. 8100c30: 4b85 ldr r3, [pc, #532] @ (8100e48 <HAL_RCC_GetSysClockFreq+0x2d4>)
  1613. 8100c32: 6a9b ldr r3, [r3, #40] @ 0x28
  1614. 8100c34: 091b lsrs r3, r3, #4
  1615. 8100c36: f003 033f and.w r3, r3, #63 @ 0x3f
  1616. 8100c3a: 613b str r3, [r7, #16]
  1617. pllfracen = ((RCC-> PLLCFGR & RCC_PLLCFGR_PLL1FRACEN)>>RCC_PLLCFGR_PLL1FRACEN_Pos);
  1618. 8100c3c: 4b82 ldr r3, [pc, #520] @ (8100e48 <HAL_RCC_GetSysClockFreq+0x2d4>)
  1619. 8100c3e: 6adb ldr r3, [r3, #44] @ 0x2c
  1620. 8100c40: f003 0301 and.w r3, r3, #1
  1621. 8100c44: 60fb str r3, [r7, #12]
  1622. fracn1 = (float_t)(uint32_t)(pllfracen* ((RCC->PLL1FRACR & RCC_PLL1FRACR_FRACN1)>> 3));
  1623. 8100c46: 4b80 ldr r3, [pc, #512] @ (8100e48 <HAL_RCC_GetSysClockFreq+0x2d4>)
  1624. 8100c48: 6b5b ldr r3, [r3, #52] @ 0x34
  1625. 8100c4a: 08db lsrs r3, r3, #3
  1626. 8100c4c: f3c3 030c ubfx r3, r3, #0, #13
  1627. 8100c50: 68fa ldr r2, [r7, #12]
  1628. 8100c52: fb02 f303 mul.w r3, r2, r3
  1629. 8100c56: ee07 3a90 vmov s15, r3
  1630. 8100c5a: eef8 7a67 vcvt.f32.u32 s15, s15
  1631. 8100c5e: edc7 7a02 vstr s15, [r7, #8]
  1632. if (pllm != 0U)
  1633. 8100c62: 693b ldr r3, [r7, #16]
  1634. 8100c64: 2b00 cmp r3, #0
  1635. 8100c66: f000 80e1 beq.w 8100e2c <HAL_RCC_GetSysClockFreq+0x2b8>
  1636. 8100c6a: 697b ldr r3, [r7, #20]
  1637. 8100c6c: 2b02 cmp r3, #2
  1638. 8100c6e: f000 8083 beq.w 8100d78 <HAL_RCC_GetSysClockFreq+0x204>
  1639. 8100c72: 697b ldr r3, [r7, #20]
  1640. 8100c74: 2b02 cmp r3, #2
  1641. 8100c76: f200 80a1 bhi.w 8100dbc <HAL_RCC_GetSysClockFreq+0x248>
  1642. 8100c7a: 697b ldr r3, [r7, #20]
  1643. 8100c7c: 2b00 cmp r3, #0
  1644. 8100c7e: d003 beq.n 8100c88 <HAL_RCC_GetSysClockFreq+0x114>
  1645. 8100c80: 697b ldr r3, [r7, #20]
  1646. 8100c82: 2b01 cmp r3, #1
  1647. 8100c84: d056 beq.n 8100d34 <HAL_RCC_GetSysClockFreq+0x1c0>
  1648. 8100c86: e099 b.n 8100dbc <HAL_RCC_GetSysClockFreq+0x248>
  1649. {
  1650. switch (pllsource)
  1651. {
  1652. case RCC_PLLSOURCE_HSI: /* HSI used as PLL clock source */
  1653. if (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIDIV) != 0U)
  1654. 8100c88: 4b6f ldr r3, [pc, #444] @ (8100e48 <HAL_RCC_GetSysClockFreq+0x2d4>)
  1655. 8100c8a: 681b ldr r3, [r3, #0]
  1656. 8100c8c: f003 0320 and.w r3, r3, #32
  1657. 8100c90: 2b00 cmp r3, #0
  1658. 8100c92: d02d beq.n 8100cf0 <HAL_RCC_GetSysClockFreq+0x17c>
  1659. {
  1660. hsivalue= (HSI_VALUE >> (__HAL_RCC_GET_HSI_DIVIDER()>> 3));
  1661. 8100c94: 4b6c ldr r3, [pc, #432] @ (8100e48 <HAL_RCC_GetSysClockFreq+0x2d4>)
  1662. 8100c96: 681b ldr r3, [r3, #0]
  1663. 8100c98: 08db lsrs r3, r3, #3
  1664. 8100c9a: f003 0303 and.w r3, r3, #3
  1665. 8100c9e: 4a6b ldr r2, [pc, #428] @ (8100e4c <HAL_RCC_GetSysClockFreq+0x2d8>)
  1666. 8100ca0: fa22 f303 lsr.w r3, r2, r3
  1667. 8100ca4: 607b str r3, [r7, #4]
  1668. pllvco = ( (float_t)hsivalue / (float_t)pllm) * ((float_t)(uint32_t)(RCC->PLL1DIVR & RCC_PLL1DIVR_N1) + (fracn1/(float_t)0x2000) +(float_t)1 );
  1669. 8100ca6: 687b ldr r3, [r7, #4]
  1670. 8100ca8: ee07 3a90 vmov s15, r3
  1671. 8100cac: eef8 6a67 vcvt.f32.u32 s13, s15
  1672. 8100cb0: 693b ldr r3, [r7, #16]
  1673. 8100cb2: ee07 3a90 vmov s15, r3
  1674. 8100cb6: eef8 7a67 vcvt.f32.u32 s15, s15
  1675. 8100cba: ee86 7aa7 vdiv.f32 s14, s13, s15
  1676. 8100cbe: 4b62 ldr r3, [pc, #392] @ (8100e48 <HAL_RCC_GetSysClockFreq+0x2d4>)
  1677. 8100cc0: 6b1b ldr r3, [r3, #48] @ 0x30
  1678. 8100cc2: f3c3 0308 ubfx r3, r3, #0, #9
  1679. 8100cc6: ee07 3a90 vmov s15, r3
  1680. 8100cca: eef8 6a67 vcvt.f32.u32 s13, s15
  1681. 8100cce: ed97 6a02 vldr s12, [r7, #8]
  1682. 8100cd2: eddf 5a61 vldr s11, [pc, #388] @ 8100e58 <HAL_RCC_GetSysClockFreq+0x2e4>
  1683. 8100cd6: eec6 7a25 vdiv.f32 s15, s12, s11
  1684. 8100cda: ee76 7aa7 vadd.f32 s15, s13, s15
  1685. 8100cde: eef7 6a00 vmov.f32 s13, #112 @ 0x3f800000 1.0
  1686. 8100ce2: ee77 7aa6 vadd.f32 s15, s15, s13
  1687. 8100ce6: ee67 7a27 vmul.f32 s15, s14, s15
  1688. 8100cea: edc7 7a07 vstr s15, [r7, #28]
  1689. }
  1690. else
  1691. {
  1692. pllvco = ((float_t)HSI_VALUE / (float_t)pllm) * ((float_t)(uint32_t)(RCC->PLL1DIVR & RCC_PLL1DIVR_N1) + (fracn1/(float_t)0x2000) +(float_t)1 );
  1693. }
  1694. break;
  1695. 8100cee: e087 b.n 8100e00 <HAL_RCC_GetSysClockFreq+0x28c>
  1696. pllvco = ((float_t)HSI_VALUE / (float_t)pllm) * ((float_t)(uint32_t)(RCC->PLL1DIVR & RCC_PLL1DIVR_N1) + (fracn1/(float_t)0x2000) +(float_t)1 );
  1697. 8100cf0: 693b ldr r3, [r7, #16]
  1698. 8100cf2: ee07 3a90 vmov s15, r3
  1699. 8100cf6: eef8 7a67 vcvt.f32.u32 s15, s15
  1700. 8100cfa: eddf 6a58 vldr s13, [pc, #352] @ 8100e5c <HAL_RCC_GetSysClockFreq+0x2e8>
  1701. 8100cfe: ee86 7aa7 vdiv.f32 s14, s13, s15
  1702. 8100d02: 4b51 ldr r3, [pc, #324] @ (8100e48 <HAL_RCC_GetSysClockFreq+0x2d4>)
  1703. 8100d04: 6b1b ldr r3, [r3, #48] @ 0x30
  1704. 8100d06: f3c3 0308 ubfx r3, r3, #0, #9
  1705. 8100d0a: ee07 3a90 vmov s15, r3
  1706. 8100d0e: eef8 6a67 vcvt.f32.u32 s13, s15
  1707. 8100d12: ed97 6a02 vldr s12, [r7, #8]
  1708. 8100d16: eddf 5a50 vldr s11, [pc, #320] @ 8100e58 <HAL_RCC_GetSysClockFreq+0x2e4>
  1709. 8100d1a: eec6 7a25 vdiv.f32 s15, s12, s11
  1710. 8100d1e: ee76 7aa7 vadd.f32 s15, s13, s15
  1711. 8100d22: eef7 6a00 vmov.f32 s13, #112 @ 0x3f800000 1.0
  1712. 8100d26: ee77 7aa6 vadd.f32 s15, s15, s13
  1713. 8100d2a: ee67 7a27 vmul.f32 s15, s14, s15
  1714. 8100d2e: edc7 7a07 vstr s15, [r7, #28]
  1715. break;
  1716. 8100d32: e065 b.n 8100e00 <HAL_RCC_GetSysClockFreq+0x28c>
  1717. case RCC_PLLSOURCE_CSI: /* CSI used as PLL clock source */
  1718. pllvco = ((float_t)CSI_VALUE / (float_t)pllm) * ((float_t)(uint32_t)(RCC->PLL1DIVR & RCC_PLL1DIVR_N1) + (fracn1/(float_t)0x2000) +(float_t)1 );
  1719. 8100d34: 693b ldr r3, [r7, #16]
  1720. 8100d36: ee07 3a90 vmov s15, r3
  1721. 8100d3a: eef8 7a67 vcvt.f32.u32 s15, s15
  1722. 8100d3e: eddf 6a48 vldr s13, [pc, #288] @ 8100e60 <HAL_RCC_GetSysClockFreq+0x2ec>
  1723. 8100d42: ee86 7aa7 vdiv.f32 s14, s13, s15
  1724. 8100d46: 4b40 ldr r3, [pc, #256] @ (8100e48 <HAL_RCC_GetSysClockFreq+0x2d4>)
  1725. 8100d48: 6b1b ldr r3, [r3, #48] @ 0x30
  1726. 8100d4a: f3c3 0308 ubfx r3, r3, #0, #9
  1727. 8100d4e: ee07 3a90 vmov s15, r3
  1728. 8100d52: eef8 6a67 vcvt.f32.u32 s13, s15
  1729. 8100d56: ed97 6a02 vldr s12, [r7, #8]
  1730. 8100d5a: eddf 5a3f vldr s11, [pc, #252] @ 8100e58 <HAL_RCC_GetSysClockFreq+0x2e4>
  1731. 8100d5e: eec6 7a25 vdiv.f32 s15, s12, s11
  1732. 8100d62: ee76 7aa7 vadd.f32 s15, s13, s15
  1733. 8100d66: eef7 6a00 vmov.f32 s13, #112 @ 0x3f800000 1.0
  1734. 8100d6a: ee77 7aa6 vadd.f32 s15, s15, s13
  1735. 8100d6e: ee67 7a27 vmul.f32 s15, s14, s15
  1736. 8100d72: edc7 7a07 vstr s15, [r7, #28]
  1737. break;
  1738. 8100d76: e043 b.n 8100e00 <HAL_RCC_GetSysClockFreq+0x28c>
  1739. case RCC_PLLSOURCE_HSE: /* HSE used as PLL clock source */
  1740. pllvco = ((float_t)HSE_VALUE / (float_t)pllm) * ((float_t)(uint32_t)(RCC->PLL1DIVR & RCC_PLL1DIVR_N1) + (fracn1/(float_t)0x2000) +(float_t)1 );
  1741. 8100d78: 693b ldr r3, [r7, #16]
  1742. 8100d7a: ee07 3a90 vmov s15, r3
  1743. 8100d7e: eef8 7a67 vcvt.f32.u32 s15, s15
  1744. 8100d82: eddf 6a38 vldr s13, [pc, #224] @ 8100e64 <HAL_RCC_GetSysClockFreq+0x2f0>
  1745. 8100d86: ee86 7aa7 vdiv.f32 s14, s13, s15
  1746. 8100d8a: 4b2f ldr r3, [pc, #188] @ (8100e48 <HAL_RCC_GetSysClockFreq+0x2d4>)
  1747. 8100d8c: 6b1b ldr r3, [r3, #48] @ 0x30
  1748. 8100d8e: f3c3 0308 ubfx r3, r3, #0, #9
  1749. 8100d92: ee07 3a90 vmov s15, r3
  1750. 8100d96: eef8 6a67 vcvt.f32.u32 s13, s15
  1751. 8100d9a: ed97 6a02 vldr s12, [r7, #8]
  1752. 8100d9e: eddf 5a2e vldr s11, [pc, #184] @ 8100e58 <HAL_RCC_GetSysClockFreq+0x2e4>
  1753. 8100da2: eec6 7a25 vdiv.f32 s15, s12, s11
  1754. 8100da6: ee76 7aa7 vadd.f32 s15, s13, s15
  1755. 8100daa: eef7 6a00 vmov.f32 s13, #112 @ 0x3f800000 1.0
  1756. 8100dae: ee77 7aa6 vadd.f32 s15, s15, s13
  1757. 8100db2: ee67 7a27 vmul.f32 s15, s14, s15
  1758. 8100db6: edc7 7a07 vstr s15, [r7, #28]
  1759. break;
  1760. 8100dba: e021 b.n 8100e00 <HAL_RCC_GetSysClockFreq+0x28c>
  1761. default:
  1762. pllvco = ((float_t)CSI_VALUE / (float_t)pllm) * ((float_t)(uint32_t)(RCC->PLL1DIVR & RCC_PLL1DIVR_N1) + (fracn1/(float_t)0x2000) +(float_t)1 );
  1763. 8100dbc: 693b ldr r3, [r7, #16]
  1764. 8100dbe: ee07 3a90 vmov s15, r3
  1765. 8100dc2: eef8 7a67 vcvt.f32.u32 s15, s15
  1766. 8100dc6: eddf 6a26 vldr s13, [pc, #152] @ 8100e60 <HAL_RCC_GetSysClockFreq+0x2ec>
  1767. 8100dca: ee86 7aa7 vdiv.f32 s14, s13, s15
  1768. 8100dce: 4b1e ldr r3, [pc, #120] @ (8100e48 <HAL_RCC_GetSysClockFreq+0x2d4>)
  1769. 8100dd0: 6b1b ldr r3, [r3, #48] @ 0x30
  1770. 8100dd2: f3c3 0308 ubfx r3, r3, #0, #9
  1771. 8100dd6: ee07 3a90 vmov s15, r3
  1772. 8100dda: eef8 6a67 vcvt.f32.u32 s13, s15
  1773. 8100dde: ed97 6a02 vldr s12, [r7, #8]
  1774. 8100de2: eddf 5a1d vldr s11, [pc, #116] @ 8100e58 <HAL_RCC_GetSysClockFreq+0x2e4>
  1775. 8100de6: eec6 7a25 vdiv.f32 s15, s12, s11
  1776. 8100dea: ee76 7aa7 vadd.f32 s15, s13, s15
  1777. 8100dee: eef7 6a00 vmov.f32 s13, #112 @ 0x3f800000 1.0
  1778. 8100df2: ee77 7aa6 vadd.f32 s15, s15, s13
  1779. 8100df6: ee67 7a27 vmul.f32 s15, s14, s15
  1780. 8100dfa: edc7 7a07 vstr s15, [r7, #28]
  1781. break;
  1782. 8100dfe: bf00 nop
  1783. }
  1784. pllp = (((RCC->PLL1DIVR & RCC_PLL1DIVR_P1) >>9) + 1U ) ;
  1785. 8100e00: 4b11 ldr r3, [pc, #68] @ (8100e48 <HAL_RCC_GetSysClockFreq+0x2d4>)
  1786. 8100e02: 6b1b ldr r3, [r3, #48] @ 0x30
  1787. 8100e04: 0a5b lsrs r3, r3, #9
  1788. 8100e06: f003 037f and.w r3, r3, #127 @ 0x7f
  1789. 8100e0a: 3301 adds r3, #1
  1790. 8100e0c: 603b str r3, [r7, #0]
  1791. sysclockfreq = (uint32_t)(float_t)(pllvco/(float_t)pllp);
  1792. 8100e0e: 683b ldr r3, [r7, #0]
  1793. 8100e10: ee07 3a90 vmov s15, r3
  1794. 8100e14: eeb8 7a67 vcvt.f32.u32 s14, s15
  1795. 8100e18: edd7 6a07 vldr s13, [r7, #28]
  1796. 8100e1c: eec6 7a87 vdiv.f32 s15, s13, s14
  1797. 8100e20: eefc 7ae7 vcvt.u32.f32 s15, s15
  1798. 8100e24: ee17 3a90 vmov r3, s15
  1799. 8100e28: 61bb str r3, [r7, #24]
  1800. }
  1801. else
  1802. {
  1803. sysclockfreq = 0U;
  1804. }
  1805. break;
  1806. 8100e2a: e005 b.n 8100e38 <HAL_RCC_GetSysClockFreq+0x2c4>
  1807. sysclockfreq = 0U;
  1808. 8100e2c: 2300 movs r3, #0
  1809. 8100e2e: 61bb str r3, [r7, #24]
  1810. break;
  1811. 8100e30: e002 b.n 8100e38 <HAL_RCC_GetSysClockFreq+0x2c4>
  1812. default:
  1813. sysclockfreq = CSI_VALUE;
  1814. 8100e32: 4b07 ldr r3, [pc, #28] @ (8100e50 <HAL_RCC_GetSysClockFreq+0x2dc>)
  1815. 8100e34: 61bb str r3, [r7, #24]
  1816. break;
  1817. 8100e36: bf00 nop
  1818. }
  1819. return sysclockfreq;
  1820. 8100e38: 69bb ldr r3, [r7, #24]
  1821. }
  1822. 8100e3a: 4618 mov r0, r3
  1823. 8100e3c: 3724 adds r7, #36 @ 0x24
  1824. 8100e3e: 46bd mov sp, r7
  1825. 8100e40: f85d 7b04 ldr.w r7, [sp], #4
  1826. 8100e44: 4770 bx lr
  1827. 8100e46: bf00 nop
  1828. 8100e48: 58024400 .word 0x58024400
  1829. 8100e4c: 03d09000 .word 0x03d09000
  1830. 8100e50: 003d0900 .word 0x003d0900
  1831. 8100e54: 017d7840 .word 0x017d7840
  1832. 8100e58: 46000000 .word 0x46000000
  1833. 8100e5c: 4c742400 .word 0x4c742400
  1834. 8100e60: 4a742400 .word 0x4a742400
  1835. 8100e64: 4bbebc20 .word 0x4bbebc20
  1836. 08100e68 <__libc_init_array>:
  1837. 8100e68: b570 push {r4, r5, r6, lr}
  1838. 8100e6a: 4d0d ldr r5, [pc, #52] @ (8100ea0 <__libc_init_array+0x38>)
  1839. 8100e6c: 4c0d ldr r4, [pc, #52] @ (8100ea4 <__libc_init_array+0x3c>)
  1840. 8100e6e: 1b64 subs r4, r4, r5
  1841. 8100e70: 10a4 asrs r4, r4, #2
  1842. 8100e72: 2600 movs r6, #0
  1843. 8100e74: 42a6 cmp r6, r4
  1844. 8100e76: d109 bne.n 8100e8c <__libc_init_array+0x24>
  1845. 8100e78: 4d0b ldr r5, [pc, #44] @ (8100ea8 <__libc_init_array+0x40>)
  1846. 8100e7a: 4c0c ldr r4, [pc, #48] @ (8100eac <__libc_init_array+0x44>)
  1847. 8100e7c: f000 f818 bl 8100eb0 <_init>
  1848. 8100e80: 1b64 subs r4, r4, r5
  1849. 8100e82: 10a4 asrs r4, r4, #2
  1850. 8100e84: 2600 movs r6, #0
  1851. 8100e86: 42a6 cmp r6, r4
  1852. 8100e88: d105 bne.n 8100e96 <__libc_init_array+0x2e>
  1853. 8100e8a: bd70 pop {r4, r5, r6, pc}
  1854. 8100e8c: f855 3b04 ldr.w r3, [r5], #4
  1855. 8100e90: 4798 blx r3
  1856. 8100e92: 3601 adds r6, #1
  1857. 8100e94: e7ee b.n 8100e74 <__libc_init_array+0xc>
  1858. 8100e96: f855 3b04 ldr.w r3, [r5], #4
  1859. 8100e9a: 4798 blx r3
  1860. 8100e9c: 3601 adds r6, #1
  1861. 8100e9e: e7f2 b.n 8100e86 <__libc_init_array+0x1e>
  1862. 8100ea0: 08100ed8 .word 0x08100ed8
  1863. 8100ea4: 08100ed8 .word 0x08100ed8
  1864. 8100ea8: 08100ed8 .word 0x08100ed8
  1865. 8100eac: 08100edc .word 0x08100edc
  1866. 08100eb0 <_init>:
  1867. 8100eb0: b5f8 push {r3, r4, r5, r6, r7, lr}
  1868. 8100eb2: bf00 nop
  1869. 8100eb4: bcf8 pop {r3, r4, r5, r6, r7}
  1870. 8100eb6: bc08 pop {r3}
  1871. 8100eb8: 469e mov lr, r3
  1872. 8100eba: 4770 bx lr
  1873. 08100ebc <_fini>:
  1874. 8100ebc: b5f8 push {r3, r4, r5, r6, r7, lr}
  1875. 8100ebe: bf00 nop
  1876. 8100ec0: bcf8 pop {r3, r4, r5, r6, r7}
  1877. 8100ec2: bc08 pop {r3}
  1878. 8100ec4: 469e mov lr, r3
  1879. 8100ec6: 4770 bx lr