stm32f1xx_hal_pwr.lst 164 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524
  1. ARM GAS /tmp/ccn8JwAK.s page 1
  2. 1 .cpu cortex-m3
  3. 2 .arch armv7-m
  4. 3 .fpu softvfp
  5. 4 .eabi_attribute 20, 1
  6. 5 .eabi_attribute 21, 1
  7. 6 .eabi_attribute 23, 3
  8. 7 .eabi_attribute 24, 1
  9. 8 .eabi_attribute 25, 1
  10. 9 .eabi_attribute 26, 1
  11. 10 .eabi_attribute 30, 1
  12. 11 .eabi_attribute 34, 1
  13. 12 .eabi_attribute 18, 4
  14. 13 .file "stm32f1xx_hal_pwr.c"
  15. 14 .text
  16. 15 .Ltext0:
  17. 16 .cfi_sections .debug_frame
  18. 17 .section .text.PWR_OverloadWfe,"ax",%progbits
  19. 18 .align 1
  20. 19 .syntax unified
  21. 20 .thumb
  22. 21 .thumb_func
  23. 23 PWR_OverloadWfe:
  24. 24 .LFB65:
  25. 25 .file 1 "Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c"
  26. 1:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /**
  27. 2:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** ******************************************************************************
  28. 3:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @file stm32f1xx_hal_pwr.c
  29. 4:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @author MCD Application Team
  30. 5:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @brief PWR HAL module driver.
  31. 6:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** *
  32. 7:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * This file provides firmware functions to manage the following
  33. 8:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * functionalities of the Power Controller (PWR) peripheral:
  34. 9:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * + Initialization/de-initialization functions
  35. 10:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * + Peripheral Control functions
  36. 11:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** *
  37. 12:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** ******************************************************************************
  38. 13:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @attention
  39. 14:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** *
  40. 15:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * Copyright (c) 2016 STMicroelectronics.
  41. 16:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * All rights reserved.
  42. 17:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** *
  43. 18:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * This software is licensed under terms that can be found in the LICENSE file
  44. 19:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * in the root directory of this software component.
  45. 20:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * If no LICENSE file comes with this software, it is provided AS-IS.
  46. 21:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** *
  47. 22:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** ******************************************************************************
  48. 23:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** */
  49. 24:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  50. 25:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Includes ------------------------------------------------------------------*/
  51. 26:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** #include "stm32f1xx_hal.h"
  52. 27:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  53. 28:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /** @addtogroup STM32F1xx_HAL_Driver
  54. 29:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @{
  55. 30:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** */
  56. 31:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  57. 32:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /** @defgroup PWR PWR
  58. 33:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @brief PWR HAL module driver
  59. ARM GAS /tmp/ccn8JwAK.s page 2
  60. 34:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @{
  61. 35:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** */
  62. 36:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  63. 37:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** #ifdef HAL_PWR_MODULE_ENABLED
  64. 38:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  65. 39:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Private typedef -----------------------------------------------------------*/
  66. 40:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Private define ------------------------------------------------------------*/
  67. 41:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  68. 42:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /** @defgroup PWR_Private_Constants PWR Private Constants
  69. 43:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @{
  70. 44:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** */
  71. 45:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  72. 46:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /** @defgroup PWR_PVD_Mode_Mask PWR PVD Mode Mask
  73. 47:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @{
  74. 48:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** */
  75. 49:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** #define PVD_MODE_IT 0x00010000U
  76. 50:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** #define PVD_MODE_EVT 0x00020000U
  77. 51:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** #define PVD_RISING_EDGE 0x00000001U
  78. 52:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** #define PVD_FALLING_EDGE 0x00000002U
  79. 53:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /**
  80. 54:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @}
  81. 55:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** */
  82. 56:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  83. 57:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  84. 58:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /** @defgroup PWR_register_alias_address PWR Register alias address
  85. 59:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @{
  86. 60:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** */
  87. 61:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* ------------- PWR registers bit address in the alias region ---------------*/
  88. 62:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** #define PWR_OFFSET (PWR_BASE - PERIPH_BASE)
  89. 63:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** #define PWR_CR_OFFSET 0x00U
  90. 64:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** #define PWR_CSR_OFFSET 0x04U
  91. 65:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** #define PWR_CR_OFFSET_BB (PWR_OFFSET + PWR_CR_OFFSET)
  92. 66:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** #define PWR_CSR_OFFSET_BB (PWR_OFFSET + PWR_CSR_OFFSET)
  93. 67:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /**
  94. 68:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @}
  95. 69:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** */
  96. 70:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  97. 71:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /** @defgroup PWR_CR_register_alias PWR CR Register alias address
  98. 72:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @{
  99. 73:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** */
  100. 74:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* --- CR Register ---*/
  101. 75:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Alias word address of LPSDSR bit */
  102. 76:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** #define LPSDSR_BIT_NUMBER PWR_CR_LPDS_Pos
  103. 77:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** #define CR_LPSDSR_BB ((uint32_t)(PERIPH_BB_BASE + (PWR_CR_OFFSET_BB * 32U) + (LPSDSR_BI
  104. 78:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  105. 79:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Alias word address of DBP bit */
  106. 80:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** #define DBP_BIT_NUMBER PWR_CR_DBP_Pos
  107. 81:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** #define CR_DBP_BB ((uint32_t)(PERIPH_BB_BASE + (PWR_CR_OFFSET_BB * 32U) + (DBP_BIT_N
  108. 82:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  109. 83:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Alias word address of PVDE bit */
  110. 84:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** #define PVDE_BIT_NUMBER PWR_CR_PVDE_Pos
  111. 85:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** #define CR_PVDE_BB ((uint32_t)(PERIPH_BB_BASE + (PWR_CR_OFFSET_BB * 32U) + (PVDE_BIT_
  112. 86:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  113. 87:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /**
  114. 88:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @}
  115. 89:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** */
  116. 90:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  117. ARM GAS /tmp/ccn8JwAK.s page 3
  118. 91:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /** @defgroup PWR_CSR_register_alias PWR CSR Register alias address
  119. 92:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @{
  120. 93:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** */
  121. 94:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  122. 95:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* --- CSR Register ---*/
  123. 96:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Alias word address of EWUP1 bit */
  124. 97:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** #define CSR_EWUP_BB(VAL) ((uint32_t)(PERIPH_BB_BASE + (PWR_CSR_OFFSET_BB * 32U) + (POSITION
  125. 98:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /**
  126. 99:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @}
  127. 100:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** */
  128. 101:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  129. 102:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /**
  130. 103:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @}
  131. 104:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** */
  132. 105:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  133. 106:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Private variables ---------------------------------------------------------*/
  134. 107:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Private function prototypes -----------------------------------------------*/
  135. 108:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /** @defgroup PWR_Private_Functions PWR Private Functions
  136. 109:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * brief WFE cortex command overloaded for HAL_PWR_EnterSTOPMode usage only (see Workaround secti
  137. 110:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @{
  138. 111:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** */
  139. 112:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** static void PWR_OverloadWfe(void);
  140. 113:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  141. 114:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Private functions ---------------------------------------------------------*/
  142. 115:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** __NOINLINE
  143. 116:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** static void PWR_OverloadWfe(void)
  144. 117:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** {
  145. 26 .loc 1 117 1 view -0
  146. 27 .cfi_startproc
  147. 28 @ args = 0, pretend = 0, frame = 0
  148. 29 @ frame_needed = 0, uses_anonymous_args = 0
  149. 30 @ link register save eliminated.
  150. 118:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** __asm volatile( "wfe" );
  151. 31 .loc 1 118 3 view .LVU1
  152. 32 .syntax unified
  153. 33 @ 118 "Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c" 1
  154. 34 0000 20BF wfe
  155. 35 @ 0 "" 2
  156. 119:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** __asm volatile( "nop" );
  157. 36 .loc 1 119 3 view .LVU2
  158. 37 @ 119 "Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c" 1
  159. 38 0002 00BF nop
  160. 39 @ 0 "" 2
  161. 120:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** }
  162. 40 .loc 1 120 1 is_stmt 0 view .LVU3
  163. 41 .thumb
  164. 42 .syntax unified
  165. 43 0004 7047 bx lr
  166. 44 .cfi_endproc
  167. 45 .LFE65:
  168. 47 .section .text.HAL_PWR_DeInit,"ax",%progbits
  169. 48 .align 1
  170. 49 .global HAL_PWR_DeInit
  171. 50 .syntax unified
  172. 51 .thumb
  173. 52 .thumb_func
  174. 54 HAL_PWR_DeInit:
  175. ARM GAS /tmp/ccn8JwAK.s page 4
  176. 55 .LFB66:
  177. 121:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  178. 122:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /**
  179. 123:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @}
  180. 124:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** */
  181. 125:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  182. 126:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  183. 127:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /** @defgroup PWR_Exported_Functions PWR Exported Functions
  184. 128:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @{
  185. 129:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** */
  186. 130:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  187. 131:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /** @defgroup PWR_Exported_Functions_Group1 Initialization and de-initialization functions
  188. 132:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @brief Initialization and de-initialization functions
  189. 133:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** *
  190. 134:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** @verbatim
  191. 135:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** ===============================================================================
  192. 136:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** ##### Initialization and de-initialization functions #####
  193. 137:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** ===============================================================================
  194. 138:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** [..]
  195. 139:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** After reset, the backup domain (RTC registers, RTC backup data
  196. 140:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** registers) is protected against possible unwanted
  197. 141:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** write accesses.
  198. 142:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** To enable access to the RTC Domain and RTC registers, proceed as follows:
  199. 143:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** (+) Enable the Power Controller (PWR) APB1 interface clock using the
  200. 144:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** __HAL_RCC_PWR_CLK_ENABLE() macro.
  201. 145:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** (+) Enable access to RTC domain using the HAL_PWR_EnableBkUpAccess() function.
  202. 146:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  203. 147:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** @endverbatim
  204. 148:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @{
  205. 149:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** */
  206. 150:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  207. 151:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /**
  208. 152:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @brief Deinitializes the PWR peripheral registers to their default reset values.
  209. 153:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @retval None
  210. 154:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** */
  211. 155:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** void HAL_PWR_DeInit(void)
  212. 156:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** {
  213. 56 .loc 1 156 1 is_stmt 1 view -0
  214. 57 .cfi_startproc
  215. 58 @ args = 0, pretend = 0, frame = 0
  216. 59 @ frame_needed = 0, uses_anonymous_args = 0
  217. 60 @ link register save eliminated.
  218. 157:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** __HAL_RCC_PWR_FORCE_RESET();
  219. 61 .loc 1 157 3 view .LVU5
  220. 62 0000 044B ldr r3, .L3
  221. 63 0002 1A69 ldr r2, [r3, #16]
  222. 64 0004 42F08052 orr r2, r2, #268435456
  223. 65 0008 1A61 str r2, [r3, #16]
  224. 158:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** __HAL_RCC_PWR_RELEASE_RESET();
  225. 66 .loc 1 158 3 view .LVU6
  226. 67 000a 1A69 ldr r2, [r3, #16]
  227. 68 000c 22F08052 bic r2, r2, #268435456
  228. 69 0010 1A61 str r2, [r3, #16]
  229. 159:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** }
  230. 70 .loc 1 159 1 is_stmt 0 view .LVU7
  231. 71 0012 7047 bx lr
  232. 72 .L4:
  233. ARM GAS /tmp/ccn8JwAK.s page 5
  234. 73 .align 2
  235. 74 .L3:
  236. 75 0014 00100240 .word 1073876992
  237. 76 .cfi_endproc
  238. 77 .LFE66:
  239. 79 .section .text.HAL_PWR_EnableBkUpAccess,"ax",%progbits
  240. 80 .align 1
  241. 81 .global HAL_PWR_EnableBkUpAccess
  242. 82 .syntax unified
  243. 83 .thumb
  244. 84 .thumb_func
  245. 86 HAL_PWR_EnableBkUpAccess:
  246. 87 .LFB67:
  247. 160:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  248. 161:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /**
  249. 162:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @brief Enables access to the backup domain (RTC registers, RTC
  250. 163:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * backup data registers ).
  251. 164:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @note If the HSE divided by 128 is used as the RTC clock, the
  252. 165:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * Backup Domain Access should be kept enabled.
  253. 166:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @retval None
  254. 167:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** */
  255. 168:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** void HAL_PWR_EnableBkUpAccess(void)
  256. 169:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** {
  257. 88 .loc 1 169 1 is_stmt 1 view -0
  258. 89 .cfi_startproc
  259. 90 @ args = 0, pretend = 0, frame = 0
  260. 91 @ frame_needed = 0, uses_anonymous_args = 0
  261. 92 @ link register save eliminated.
  262. 170:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Enable access to RTC and backup registers */
  263. 171:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** *(__IO uint32_t *) CR_DBP_BB = (uint32_t)ENABLE;
  264. 93 .loc 1 171 3 view .LVU9
  265. 94 .loc 1 171 32 is_stmt 0 view .LVU10
  266. 95 0000 014B ldr r3, .L6
  267. 96 0002 0122 movs r2, #1
  268. 97 0004 1A62 str r2, [r3, #32]
  269. 172:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** }
  270. 98 .loc 1 172 1 view .LVU11
  271. 99 0006 7047 bx lr
  272. 100 .L7:
  273. 101 .align 2
  274. 102 .L6:
  275. 103 0008 00000E42 .word 1108213760
  276. 104 .cfi_endproc
  277. 105 .LFE67:
  278. 107 .section .text.HAL_PWR_DisableBkUpAccess,"ax",%progbits
  279. 108 .align 1
  280. 109 .global HAL_PWR_DisableBkUpAccess
  281. 110 .syntax unified
  282. 111 .thumb
  283. 112 .thumb_func
  284. 114 HAL_PWR_DisableBkUpAccess:
  285. 115 .LFB68:
  286. 173:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  287. 174:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /**
  288. 175:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @brief Disables access to the backup domain (RTC registers, RTC
  289. 176:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * backup data registers).
  290. 177:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @note If the HSE divided by 128 is used as the RTC clock, the
  291. ARM GAS /tmp/ccn8JwAK.s page 6
  292. 178:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * Backup Domain Access should be kept enabled.
  293. 179:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @retval None
  294. 180:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** */
  295. 181:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** void HAL_PWR_DisableBkUpAccess(void)
  296. 182:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** {
  297. 116 .loc 1 182 1 is_stmt 1 view -0
  298. 117 .cfi_startproc
  299. 118 @ args = 0, pretend = 0, frame = 0
  300. 119 @ frame_needed = 0, uses_anonymous_args = 0
  301. 120 @ link register save eliminated.
  302. 183:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Disable access to RTC and backup registers */
  303. 184:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** *(__IO uint32_t *) CR_DBP_BB = (uint32_t)DISABLE;
  304. 121 .loc 1 184 3 view .LVU13
  305. 122 .loc 1 184 32 is_stmt 0 view .LVU14
  306. 123 0000 014B ldr r3, .L9
  307. 124 0002 0022 movs r2, #0
  308. 125 0004 1A62 str r2, [r3, #32]
  309. 185:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** }
  310. 126 .loc 1 185 1 view .LVU15
  311. 127 0006 7047 bx lr
  312. 128 .L10:
  313. 129 .align 2
  314. 130 .L9:
  315. 131 0008 00000E42 .word 1108213760
  316. 132 .cfi_endproc
  317. 133 .LFE68:
  318. 135 .section .text.HAL_PWR_ConfigPVD,"ax",%progbits
  319. 136 .align 1
  320. 137 .global HAL_PWR_ConfigPVD
  321. 138 .syntax unified
  322. 139 .thumb
  323. 140 .thumb_func
  324. 142 HAL_PWR_ConfigPVD:
  325. 143 .LVL0:
  326. 144 .LFB69:
  327. 186:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  328. 187:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /**
  329. 188:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @}
  330. 189:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** */
  331. 190:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  332. 191:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /** @defgroup PWR_Exported_Functions_Group2 Peripheral Control functions
  333. 192:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @brief Low Power modes configuration functions
  334. 193:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** *
  335. 194:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** @verbatim
  336. 195:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** ===============================================================================
  337. 196:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** ##### Peripheral Control functions #####
  338. 197:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** ===============================================================================
  339. 198:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  340. 199:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** *** PVD configuration ***
  341. 200:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** =========================
  342. 201:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** [..]
  343. 202:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** (+) The PVD is used to monitor the VDD power supply by comparing it to a
  344. 203:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** threshold selected by the PVD Level (PLS[2:0] bits in the PWR_CR).
  345. 204:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  346. 205:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** (+) A PVDO flag is available to indicate if VDD/VDDA is higher or lower
  347. 206:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** than the PVD threshold. This event is internally connected to the EXTI
  348. 207:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** line16 and can generate an interrupt if enabled. This is done through
  349. ARM GAS /tmp/ccn8JwAK.s page 7
  350. 208:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** __HAL_PVD_EXTI_ENABLE_IT() macro.
  351. 209:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** (+) The PVD is stopped in Standby mode.
  352. 210:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  353. 211:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** *** WakeUp pin configuration ***
  354. 212:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** ================================
  355. 213:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** [..]
  356. 214:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** (+) WakeUp pin is used to wake up the system from Standby mode. This pin is
  357. 215:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** forced in input pull-down configuration and is active on rising edges.
  358. 216:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** (+) There is one WakeUp pin:
  359. 217:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** WakeUp Pin 1 on PA.00.
  360. 218:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  361. 219:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** [..]
  362. 220:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  363. 221:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** *** Low Power modes configuration ***
  364. 222:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** =====================================
  365. 223:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** [..]
  366. 224:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** The device features 3 low-power modes:
  367. 225:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** (+) Sleep mode: CPU clock off, all peripherals including Cortex-M3 core peripherals like
  368. 226:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** NVIC, SysTick, etc. are kept running
  369. 227:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** (+) Stop mode: All clocks are stopped
  370. 228:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** (+) Standby mode: 1.8V domain powered off
  371. 229:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  372. 230:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  373. 231:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** *** Sleep mode ***
  374. 232:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** ==================
  375. 233:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** [..]
  376. 234:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** (+) Entry:
  377. 235:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** The Sleep mode is entered by using the HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON, PWR_S
  378. 236:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** functions with
  379. 237:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** (++) PWR_SLEEPENTRY_WFI: enter SLEEP mode with WFI instruction
  380. 238:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** (++) PWR_SLEEPENTRY_WFE: enter SLEEP mode with WFE instruction
  381. 239:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  382. 240:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** (+) Exit:
  383. 241:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** (++) WFI entry mode, Any peripheral interrupt acknowledged by the nested vectored interrupt
  384. 242:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** controller (NVIC) can wake up the device from Sleep mode.
  385. 243:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** (++) WFE entry mode, Any wakeup event can wake up the device from Sleep mode.
  386. 244:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** (+++) Any peripheral interrupt w/o NVIC configuration & SEVONPEND bit set in the Cortex
  387. 245:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** (+++) Any EXTI Line (Internal or External) configured in Event mode
  388. 246:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  389. 247:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** *** Stop mode ***
  390. 248:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** =================
  391. 249:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** [..]
  392. 250:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** The Stop mode is based on the Cortex-M3 deepsleep mode combined with peripheral
  393. 251:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** clock gating. The voltage regulator can be configured either in normal or low-power mode.
  394. 252:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** In Stop mode, all clocks in the 1.8 V domain are stopped, the PLL, the HSI and the HSE RC
  395. 253:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** oscillators are disabled. SRAM and register contents are preserved.
  396. 254:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** In Stop mode, all I/O pins keep the same state as in Run mode.
  397. 255:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  398. 256:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** (+) Entry:
  399. 257:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** The Stop mode is entered using the HAL_PWR_EnterSTOPMode(PWR_REGULATOR_VALUE, PWR_SLEEPE
  400. 258:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** function with:
  401. 259:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** (++) PWR_REGULATOR_VALUE= PWR_MAINREGULATOR_ON: Main regulator ON.
  402. 260:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** (++) PWR_REGULATOR_VALUE= PWR_LOWPOWERREGULATOR_ON: Low Power regulator ON.
  403. 261:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** (++) PWR_SLEEPENTRY_WFx= PWR_SLEEPENTRY_WFI: enter STOP mode with WFI instruction
  404. 262:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** (++) PWR_SLEEPENTRY_WFx= PWR_SLEEPENTRY_WFE: enter STOP mode with WFE instruction
  405. 263:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** (+) Exit:
  406. 264:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** (++) WFI entry mode, Any EXTI Line (Internal or External) configured in Interrupt mode wi
  407. ARM GAS /tmp/ccn8JwAK.s page 8
  408. 265:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** (++) WFE entry mode, Any EXTI Line (Internal or External) configured in Event mode.
  409. 266:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  410. 267:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** *** Standby mode ***
  411. 268:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** ====================
  412. 269:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** [..]
  413. 270:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** The Standby mode allows to achieve the lowest power consumption. It is based on the
  414. 271:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** Cortex-M3 deepsleep mode, with the voltage regulator disabled. The 1.8 V domain is
  415. 272:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** consequently powered off. The PLL, the HSI oscillator and the HSE oscillator are also
  416. 273:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** switched off. SRAM and register contents are lost except for registers in the Backup domain
  417. 274:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** and Standby circuitry
  418. 275:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  419. 276:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** (+) Entry:
  420. 277:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** (++) The Standby mode is entered using the HAL_PWR_EnterSTANDBYMode() function.
  421. 278:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** (+) Exit:
  422. 279:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** (++) WKUP pin rising edge, RTC alarm event rising edge, external Reset in
  423. 280:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** NRSTpin, IWDG Reset
  424. 281:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  425. 282:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** *** Auto-wakeup (AWU) from low-power mode ***
  426. 283:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** =============================================
  427. 284:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** [..]
  428. 285:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  429. 286:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** (+) The MCU can be woken up from low-power mode by an RTC Alarm event,
  430. 287:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** without depending on an external interrupt (Auto-wakeup mode).
  431. 288:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  432. 289:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** (+) RTC auto-wakeup (AWU) from the Stop and Standby modes
  433. 290:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  434. 291:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** (++) To wake up from the Stop mode with an RTC alarm event, it is necessary to
  435. 292:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** configure the RTC to generate the RTC alarm using the HAL_RTC_SetAlarm_IT() functio
  436. 293:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  437. 294:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** *** PWR Workarounds linked to Silicon Limitation ***
  438. 295:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** ====================================================
  439. 296:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** [..]
  440. 297:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** Below the list of all silicon limitations known on STM32F1xx prouct.
  441. 298:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  442. 299:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** (#)Workarounds Implemented inside PWR HAL Driver
  443. 300:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** (##)Debugging Stop mode with WFE entry - overloaded the WFE by an internal function
  444. 301:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  445. 302:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** @endverbatim
  446. 303:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @{
  447. 304:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** */
  448. 305:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  449. 306:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /**
  450. 307:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @brief Configures the voltage threshold detected by the Power Voltage Detector(PVD).
  451. 308:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @param sConfigPVD: pointer to an PWR_PVDTypeDef structure that contains the configuration
  452. 309:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * information for the PVD.
  453. 310:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @note Refer to the electrical characteristics of your device datasheet for
  454. 311:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * more details about the voltage threshold corresponding to each
  455. 312:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * detection level.
  456. 313:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @retval None
  457. 314:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** */
  458. 315:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** void HAL_PWR_ConfigPVD(PWR_PVDTypeDef *sConfigPVD)
  459. 316:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** {
  460. 145 .loc 1 316 1 is_stmt 1 view -0
  461. 146 .cfi_startproc
  462. 147 @ args = 0, pretend = 0, frame = 0
  463. 148 @ frame_needed = 0, uses_anonymous_args = 0
  464. 149 @ link register save eliminated.
  465. ARM GAS /tmp/ccn8JwAK.s page 9
  466. 317:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Check the parameters */
  467. 318:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** assert_param(IS_PWR_PVD_LEVEL(sConfigPVD->PVDLevel));
  468. 150 .loc 1 318 3 view .LVU17
  469. 319:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** assert_param(IS_PWR_PVD_MODE(sConfigPVD->Mode));
  470. 151 .loc 1 319 3 view .LVU18
  471. 320:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  472. 321:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Set PLS[7:5] bits according to PVDLevel value */
  473. 322:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** MODIFY_REG(PWR->CR, PWR_CR_PLS, sConfigPVD->PVDLevel);
  474. 152 .loc 1 322 3 view .LVU19
  475. 153 0000 1E4A ldr r2, .L16
  476. 154 0002 1368 ldr r3, [r2]
  477. 155 0004 23F0E003 bic r3, r3, #224
  478. 156 0008 0168 ldr r1, [r0]
  479. 157 000a 0B43 orrs r3, r3, r1
  480. 158 000c 1360 str r3, [r2]
  481. 323:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  482. 324:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Clear any previous config. Keep it clear if no event or IT mode is selected */
  483. 325:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** __HAL_PWR_PVD_EXTI_DISABLE_EVENT();
  484. 159 .loc 1 325 3 view .LVU20
  485. 160 000e 1C4B ldr r3, .L16+4
  486. 161 0010 5A68 ldr r2, [r3, #4]
  487. 162 0012 22F48032 bic r2, r2, #65536
  488. 163 0016 5A60 str r2, [r3, #4]
  489. 326:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** __HAL_PWR_PVD_EXTI_DISABLE_IT();
  490. 164 .loc 1 326 3 view .LVU21
  491. 165 0018 1A68 ldr r2, [r3]
  492. 166 001a 22F48032 bic r2, r2, #65536
  493. 167 001e 1A60 str r2, [r3]
  494. 327:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** __HAL_PWR_PVD_EXTI_DISABLE_FALLING_EDGE();
  495. 168 .loc 1 327 3 view .LVU22
  496. 169 0020 DA68 ldr r2, [r3, #12]
  497. 170 0022 22F48032 bic r2, r2, #65536
  498. 171 0026 DA60 str r2, [r3, #12]
  499. 328:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** __HAL_PWR_PVD_EXTI_DISABLE_RISING_EDGE();
  500. 172 .loc 1 328 3 view .LVU23
  501. 173 0028 9A68 ldr r2, [r3, #8]
  502. 174 002a 22F48032 bic r2, r2, #65536
  503. 175 002e 9A60 str r2, [r3, #8]
  504. 329:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  505. 330:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Configure interrupt mode */
  506. 331:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** if((sConfigPVD->Mode & PVD_MODE_IT) == PVD_MODE_IT)
  507. 176 .loc 1 331 3 view .LVU24
  508. 177 .loc 1 331 17 is_stmt 0 view .LVU25
  509. 178 0030 4368 ldr r3, [r0, #4]
  510. 179 .loc 1 331 5 view .LVU26
  511. 180 0032 13F4803F tst r3, #65536
  512. 181 0036 04D0 beq .L12
  513. 332:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** {
  514. 333:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** __HAL_PWR_PVD_EXTI_ENABLE_IT();
  515. 182 .loc 1 333 5 is_stmt 1 view .LVU27
  516. 183 0038 114A ldr r2, .L16+4
  517. 184 003a 1368 ldr r3, [r2]
  518. 185 003c 43F48033 orr r3, r3, #65536
  519. 186 0040 1360 str r3, [r2]
  520. 187 .L12:
  521. 334:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** }
  522. 335:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  523. ARM GAS /tmp/ccn8JwAK.s page 10
  524. 336:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Configure event mode */
  525. 337:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** if((sConfigPVD->Mode & PVD_MODE_EVT) == PVD_MODE_EVT)
  526. 188 .loc 1 337 3 view .LVU28
  527. 189 .loc 1 337 17 is_stmt 0 view .LVU29
  528. 190 0042 4368 ldr r3, [r0, #4]
  529. 191 .loc 1 337 5 view .LVU30
  530. 192 0044 13F4003F tst r3, #131072
  531. 193 0048 04D0 beq .L13
  532. 338:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** {
  533. 339:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** __HAL_PWR_PVD_EXTI_ENABLE_EVENT();
  534. 194 .loc 1 339 5 is_stmt 1 view .LVU31
  535. 195 004a 0D4A ldr r2, .L16+4
  536. 196 004c 5368 ldr r3, [r2, #4]
  537. 197 004e 43F48033 orr r3, r3, #65536
  538. 198 0052 5360 str r3, [r2, #4]
  539. 199 .L13:
  540. 340:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** }
  541. 341:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  542. 342:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Configure the edge */
  543. 343:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** if((sConfigPVD->Mode & PVD_RISING_EDGE) == PVD_RISING_EDGE)
  544. 200 .loc 1 343 3 view .LVU32
  545. 201 .loc 1 343 17 is_stmt 0 view .LVU33
  546. 202 0054 4368 ldr r3, [r0, #4]
  547. 203 .loc 1 343 5 view .LVU34
  548. 204 0056 13F0010F tst r3, #1
  549. 205 005a 04D0 beq .L14
  550. 344:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** {
  551. 345:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** __HAL_PWR_PVD_EXTI_ENABLE_RISING_EDGE();
  552. 206 .loc 1 345 5 is_stmt 1 view .LVU35
  553. 207 005c 084A ldr r2, .L16+4
  554. 208 005e 9368 ldr r3, [r2, #8]
  555. 209 0060 43F48033 orr r3, r3, #65536
  556. 210 0064 9360 str r3, [r2, #8]
  557. 211 .L14:
  558. 346:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** }
  559. 347:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  560. 348:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** if((sConfigPVD->Mode & PVD_FALLING_EDGE) == PVD_FALLING_EDGE)
  561. 212 .loc 1 348 3 view .LVU36
  562. 213 .loc 1 348 17 is_stmt 0 view .LVU37
  563. 214 0066 4368 ldr r3, [r0, #4]
  564. 215 .loc 1 348 5 view .LVU38
  565. 216 0068 13F0020F tst r3, #2
  566. 217 006c 04D0 beq .L11
  567. 349:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** {
  568. 350:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** __HAL_PWR_PVD_EXTI_ENABLE_FALLING_EDGE();
  569. 218 .loc 1 350 5 is_stmt 1 view .LVU39
  570. 219 006e 044A ldr r2, .L16+4
  571. 220 0070 D368 ldr r3, [r2, #12]
  572. 221 0072 43F48033 orr r3, r3, #65536
  573. 222 0076 D360 str r3, [r2, #12]
  574. 223 .L11:
  575. 351:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** }
  576. 352:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** }
  577. 224 .loc 1 352 1 is_stmt 0 view .LVU40
  578. 225 0078 7047 bx lr
  579. 226 .L17:
  580. 227 007a 00BF .align 2
  581. ARM GAS /tmp/ccn8JwAK.s page 11
  582. 228 .L16:
  583. 229 007c 00700040 .word 1073770496
  584. 230 0080 00040140 .word 1073808384
  585. 231 .cfi_endproc
  586. 232 .LFE69:
  587. 234 .section .text.HAL_PWR_EnablePVD,"ax",%progbits
  588. 235 .align 1
  589. 236 .global HAL_PWR_EnablePVD
  590. 237 .syntax unified
  591. 238 .thumb
  592. 239 .thumb_func
  593. 241 HAL_PWR_EnablePVD:
  594. 242 .LFB70:
  595. 353:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  596. 354:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /**
  597. 355:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @brief Enables the Power Voltage Detector(PVD).
  598. 356:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @retval None
  599. 357:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** */
  600. 358:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** void HAL_PWR_EnablePVD(void)
  601. 359:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** {
  602. 243 .loc 1 359 1 is_stmt 1 view -0
  603. 244 .cfi_startproc
  604. 245 @ args = 0, pretend = 0, frame = 0
  605. 246 @ frame_needed = 0, uses_anonymous_args = 0
  606. 247 @ link register save eliminated.
  607. 360:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Enable the power voltage detector */
  608. 361:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** *(__IO uint32_t *) CR_PVDE_BB = (uint32_t)ENABLE;
  609. 248 .loc 1 361 3 view .LVU42
  610. 249 .loc 1 361 33 is_stmt 0 view .LVU43
  611. 250 0000 014B ldr r3, .L19
  612. 251 0002 0122 movs r2, #1
  613. 252 0004 1A61 str r2, [r3, #16]
  614. 362:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** }
  615. 253 .loc 1 362 1 view .LVU44
  616. 254 0006 7047 bx lr
  617. 255 .L20:
  618. 256 .align 2
  619. 257 .L19:
  620. 258 0008 00000E42 .word 1108213760
  621. 259 .cfi_endproc
  622. 260 .LFE70:
  623. 262 .section .text.HAL_PWR_DisablePVD,"ax",%progbits
  624. 263 .align 1
  625. 264 .global HAL_PWR_DisablePVD
  626. 265 .syntax unified
  627. 266 .thumb
  628. 267 .thumb_func
  629. 269 HAL_PWR_DisablePVD:
  630. 270 .LFB71:
  631. 363:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  632. 364:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /**
  633. 365:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @brief Disables the Power Voltage Detector(PVD).
  634. 366:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @retval None
  635. 367:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** */
  636. 368:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** void HAL_PWR_DisablePVD(void)
  637. 369:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** {
  638. 271 .loc 1 369 1 is_stmt 1 view -0
  639. ARM GAS /tmp/ccn8JwAK.s page 12
  640. 272 .cfi_startproc
  641. 273 @ args = 0, pretend = 0, frame = 0
  642. 274 @ frame_needed = 0, uses_anonymous_args = 0
  643. 275 @ link register save eliminated.
  644. 370:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Disable the power voltage detector */
  645. 371:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** *(__IO uint32_t *) CR_PVDE_BB = (uint32_t)DISABLE;
  646. 276 .loc 1 371 3 view .LVU46
  647. 277 .loc 1 371 33 is_stmt 0 view .LVU47
  648. 278 0000 014B ldr r3, .L22
  649. 279 0002 0022 movs r2, #0
  650. 280 0004 1A61 str r2, [r3, #16]
  651. 372:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** }
  652. 281 .loc 1 372 1 view .LVU48
  653. 282 0006 7047 bx lr
  654. 283 .L23:
  655. 284 .align 2
  656. 285 .L22:
  657. 286 0008 00000E42 .word 1108213760
  658. 287 .cfi_endproc
  659. 288 .LFE71:
  660. 290 .section .text.HAL_PWR_EnableWakeUpPin,"ax",%progbits
  661. 291 .align 1
  662. 292 .global HAL_PWR_EnableWakeUpPin
  663. 293 .syntax unified
  664. 294 .thumb
  665. 295 .thumb_func
  666. 297 HAL_PWR_EnableWakeUpPin:
  667. 298 .LVL1:
  668. 299 .LFB72:
  669. 373:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  670. 374:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /**
  671. 375:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @brief Enables the WakeUp PINx functionality.
  672. 376:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @param WakeUpPinx: Specifies the Power Wake-Up pin to enable.
  673. 377:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * This parameter can be one of the following values:
  674. 378:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @arg PWR_WAKEUP_PIN1
  675. 379:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @retval None
  676. 380:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** */
  677. 381:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** void HAL_PWR_EnableWakeUpPin(uint32_t WakeUpPinx)
  678. 382:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** {
  679. 300 .loc 1 382 1 is_stmt 1 view -0
  680. 301 .cfi_startproc
  681. 302 @ args = 0, pretend = 0, frame = 0
  682. 303 @ frame_needed = 0, uses_anonymous_args = 0
  683. 304 @ link register save eliminated.
  684. 383:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Check the parameter */
  685. 384:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** assert_param(IS_PWR_WAKEUP_PIN(WakeUpPinx));
  686. 305 .loc 1 384 3 view .LVU50
  687. 385:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Enable the EWUPx pin */
  688. 386:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** *(__IO uint32_t *) CSR_EWUP_BB(WakeUpPinx) = (uint32_t)ENABLE;
  689. 306 .loc 1 386 3 view .LVU51
  690. 307 .LBB6:
  691. 308 .LBI6:
  692. 309 .file 2 "Drivers/CMSIS/Include/cmsis_gcc.h"
  693. 1:Drivers/CMSIS/Include/cmsis_gcc.h **** /**************************************************************************//**
  694. 2:Drivers/CMSIS/Include/cmsis_gcc.h **** * @file cmsis_gcc.h
  695. 3:Drivers/CMSIS/Include/cmsis_gcc.h **** * @brief CMSIS compiler GCC header file
  696. 4:Drivers/CMSIS/Include/cmsis_gcc.h **** * @version V5.0.4
  697. ARM GAS /tmp/ccn8JwAK.s page 13
  698. 5:Drivers/CMSIS/Include/cmsis_gcc.h **** * @date 09. April 2018
  699. 6:Drivers/CMSIS/Include/cmsis_gcc.h **** ******************************************************************************/
  700. 7:Drivers/CMSIS/Include/cmsis_gcc.h **** /*
  701. 8:Drivers/CMSIS/Include/cmsis_gcc.h **** * Copyright (c) 2009-2018 Arm Limited. All rights reserved.
  702. 9:Drivers/CMSIS/Include/cmsis_gcc.h **** *
  703. 10:Drivers/CMSIS/Include/cmsis_gcc.h **** * SPDX-License-Identifier: Apache-2.0
  704. 11:Drivers/CMSIS/Include/cmsis_gcc.h **** *
  705. 12:Drivers/CMSIS/Include/cmsis_gcc.h **** * Licensed under the Apache License, Version 2.0 (the License); you may
  706. 13:Drivers/CMSIS/Include/cmsis_gcc.h **** * not use this file except in compliance with the License.
  707. 14:Drivers/CMSIS/Include/cmsis_gcc.h **** * You may obtain a copy of the License at
  708. 15:Drivers/CMSIS/Include/cmsis_gcc.h **** *
  709. 16:Drivers/CMSIS/Include/cmsis_gcc.h **** * www.apache.org/licenses/LICENSE-2.0
  710. 17:Drivers/CMSIS/Include/cmsis_gcc.h **** *
  711. 18:Drivers/CMSIS/Include/cmsis_gcc.h **** * Unless required by applicable law or agreed to in writing, software
  712. 19:Drivers/CMSIS/Include/cmsis_gcc.h **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT
  713. 20:Drivers/CMSIS/Include/cmsis_gcc.h **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  714. 21:Drivers/CMSIS/Include/cmsis_gcc.h **** * See the License for the specific language governing permissions and
  715. 22:Drivers/CMSIS/Include/cmsis_gcc.h **** * limitations under the License.
  716. 23:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  717. 24:Drivers/CMSIS/Include/cmsis_gcc.h ****
  718. 25:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __CMSIS_GCC_H
  719. 26:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_H
  720. 27:Drivers/CMSIS/Include/cmsis_gcc.h ****
  721. 28:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ignore some GCC warnings */
  722. 29:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
  723. 30:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wsign-conversion"
  724. 31:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wconversion"
  725. 32:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wunused-parameter"
  726. 33:Drivers/CMSIS/Include/cmsis_gcc.h ****
  727. 34:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Fallback for __has_builtin */
  728. 35:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __has_builtin
  729. 36:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __has_builtin(x) (0)
  730. 37:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  731. 38:Drivers/CMSIS/Include/cmsis_gcc.h ****
  732. 39:Drivers/CMSIS/Include/cmsis_gcc.h **** /* CMSIS compiler specific defines */
  733. 40:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ASM
  734. 41:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ASM __asm
  735. 42:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  736. 43:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __INLINE
  737. 44:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __INLINE inline
  738. 45:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  739. 46:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_INLINE
  740. 47:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_INLINE static inline
  741. 48:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  742. 49:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_FORCEINLINE
  743. 50:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_FORCEINLINE __attribute__((always_inline)) static inline
  744. 51:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  745. 52:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __NO_RETURN
  746. 53:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NO_RETURN __attribute__((__noreturn__))
  747. 54:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  748. 55:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __USED
  749. 56:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __USED __attribute__((used))
  750. 57:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  751. 58:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __WEAK
  752. 59:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WEAK __attribute__((weak))
  753. 60:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  754. 61:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED
  755. ARM GAS /tmp/ccn8JwAK.s page 14
  756. 62:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED __attribute__((packed, aligned(1)))
  757. 63:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  758. 64:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_STRUCT
  759. 65:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_STRUCT struct __attribute__((packed, aligned(1)))
  760. 66:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  761. 67:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_UNION
  762. 68:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_UNION union __attribute__((packed, aligned(1)))
  763. 69:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  764. 70:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32 /* deprecated */
  765. 71:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
  766. 72:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked"
  767. 73:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes"
  768. 74:Drivers/CMSIS/Include/cmsis_gcc.h **** struct __attribute__((packed)) T_UINT32 { uint32_t v; };
  769. 75:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop
  770. 76:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v)
  771. 77:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  772. 78:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_WRITE
  773. 79:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
  774. 80:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked"
  775. 81:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes"
  776. 82:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; };
  777. 83:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop
  778. 84:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))-
  779. 85:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  780. 86:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_READ
  781. 87:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
  782. 88:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked"
  783. 89:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes"
  784. 90:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_READ { uint16_t v; };
  785. 91:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop
  786. 92:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(add
  787. 93:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  788. 94:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_WRITE
  789. 95:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
  790. 96:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked"
  791. 97:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes"
  792. 98:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; };
  793. 99:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop
  794. 100:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))-
  795. 101:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  796. 102:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_READ
  797. 103:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
  798. 104:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked"
  799. 105:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes"
  800. 106:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_READ { uint32_t v; };
  801. 107:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop
  802. 108:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(add
  803. 109:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  804. 110:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ALIGNED
  805. 111:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ALIGNED(x) __attribute__((aligned(x)))
  806. 112:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  807. 113:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __RESTRICT
  808. 114:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __RESTRICT __restrict
  809. 115:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  810. 116:Drivers/CMSIS/Include/cmsis_gcc.h ****
  811. 117:Drivers/CMSIS/Include/cmsis_gcc.h ****
  812. 118:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################### Core Function Access ########################### */
  813. ARM GAS /tmp/ccn8JwAK.s page 15
  814. 119:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \ingroup CMSIS_Core_FunctionInterface
  815. 120:Drivers/CMSIS/Include/cmsis_gcc.h **** \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions
  816. 121:Drivers/CMSIS/Include/cmsis_gcc.h **** @{
  817. 122:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  818. 123:Drivers/CMSIS/Include/cmsis_gcc.h ****
  819. 124:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  820. 125:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable IRQ Interrupts
  821. 126:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables IRQ interrupts by clearing the I-bit in the CPSR.
  822. 127:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes.
  823. 128:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  824. 129:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_irq(void)
  825. 130:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  826. 131:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie i" : : : "memory");
  827. 132:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  828. 133:Drivers/CMSIS/Include/cmsis_gcc.h ****
  829. 134:Drivers/CMSIS/Include/cmsis_gcc.h ****
  830. 135:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  831. 136:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable IRQ Interrupts
  832. 137:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables IRQ interrupts by setting the I-bit in the CPSR.
  833. 138:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes.
  834. 139:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  835. 140:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_irq(void)
  836. 141:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  837. 142:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid i" : : : "memory");
  838. 143:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  839. 144:Drivers/CMSIS/Include/cmsis_gcc.h ****
  840. 145:Drivers/CMSIS/Include/cmsis_gcc.h ****
  841. 146:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  842. 147:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register
  843. 148:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the Control Register.
  844. 149:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Control Register value
  845. 150:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  846. 151:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_CONTROL(void)
  847. 152:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  848. 153:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  849. 154:Drivers/CMSIS/Include/cmsis_gcc.h ****
  850. 155:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, control" : "=r" (result) );
  851. 156:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  852. 157:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  853. 158:Drivers/CMSIS/Include/cmsis_gcc.h ****
  854. 159:Drivers/CMSIS/Include/cmsis_gcc.h ****
  855. 160:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  856. 161:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  857. 162:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register (non-secure)
  858. 163:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the non-secure Control Register when in secure mode.
  859. 164:Drivers/CMSIS/Include/cmsis_gcc.h **** \return non-secure Control Register value
  860. 165:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  861. 166:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void)
  862. 167:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  863. 168:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  864. 169:Drivers/CMSIS/Include/cmsis_gcc.h ****
  865. 170:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, control_ns" : "=r" (result) );
  866. 171:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  867. 172:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  868. 173:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  869. 174:Drivers/CMSIS/Include/cmsis_gcc.h ****
  870. 175:Drivers/CMSIS/Include/cmsis_gcc.h ****
  871. ARM GAS /tmp/ccn8JwAK.s page 16
  872. 176:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  873. 177:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register
  874. 178:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the Control Register.
  875. 179:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set
  876. 180:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  877. 181:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_CONTROL(uint32_t control)
  878. 182:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  879. 183:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control, %0" : : "r" (control) : "memory");
  880. 184:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  881. 185:Drivers/CMSIS/Include/cmsis_gcc.h ****
  882. 186:Drivers/CMSIS/Include/cmsis_gcc.h ****
  883. 187:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  884. 188:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  885. 189:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register (non-secure)
  886. 190:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the non-secure Control Register when in secure state.
  887. 191:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set
  888. 192:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  889. 193:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control)
  890. 194:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  891. 195:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory");
  892. 196:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  893. 197:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  894. 198:Drivers/CMSIS/Include/cmsis_gcc.h ****
  895. 199:Drivers/CMSIS/Include/cmsis_gcc.h ****
  896. 200:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  897. 201:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get IPSR Register
  898. 202:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the IPSR Register.
  899. 203:Drivers/CMSIS/Include/cmsis_gcc.h **** \return IPSR Register value
  900. 204:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  901. 205:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_IPSR(void)
  902. 206:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  903. 207:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  904. 208:Drivers/CMSIS/Include/cmsis_gcc.h ****
  905. 209:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, ipsr" : "=r" (result) );
  906. 210:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  907. 211:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  908. 212:Drivers/CMSIS/Include/cmsis_gcc.h ****
  909. 213:Drivers/CMSIS/Include/cmsis_gcc.h ****
  910. 214:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  911. 215:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get APSR Register
  912. 216:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the APSR Register.
  913. 217:Drivers/CMSIS/Include/cmsis_gcc.h **** \return APSR Register value
  914. 218:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  915. 219:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_APSR(void)
  916. 220:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  917. 221:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  918. 222:Drivers/CMSIS/Include/cmsis_gcc.h ****
  919. 223:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, apsr" : "=r" (result) );
  920. 224:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  921. 225:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  922. 226:Drivers/CMSIS/Include/cmsis_gcc.h ****
  923. 227:Drivers/CMSIS/Include/cmsis_gcc.h ****
  924. 228:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  925. 229:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get xPSR Register
  926. 230:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the xPSR Register.
  927. 231:Drivers/CMSIS/Include/cmsis_gcc.h **** \return xPSR Register value
  928. 232:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  929. ARM GAS /tmp/ccn8JwAK.s page 17
  930. 233:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_xPSR(void)
  931. 234:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  932. 235:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  933. 236:Drivers/CMSIS/Include/cmsis_gcc.h ****
  934. 237:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, xpsr" : "=r" (result) );
  935. 238:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  936. 239:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  937. 240:Drivers/CMSIS/Include/cmsis_gcc.h ****
  938. 241:Drivers/CMSIS/Include/cmsis_gcc.h ****
  939. 242:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  940. 243:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer
  941. 244:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer (PSP).
  942. 245:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value
  943. 246:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  944. 247:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSP(void)
  945. 248:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  946. 249:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  947. 250:Drivers/CMSIS/Include/cmsis_gcc.h ****
  948. 251:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psp" : "=r" (result) );
  949. 252:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  950. 253:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  951. 254:Drivers/CMSIS/Include/cmsis_gcc.h ****
  952. 255:Drivers/CMSIS/Include/cmsis_gcc.h ****
  953. 256:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  954. 257:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  955. 258:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer (non-secure)
  956. 259:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure s
  957. 260:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value
  958. 261:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  959. 262:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void)
  960. 263:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  961. 264:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  962. 265:Drivers/CMSIS/Include/cmsis_gcc.h ****
  963. 266:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psp_ns" : "=r" (result) );
  964. 267:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  965. 268:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  966. 269:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  967. 270:Drivers/CMSIS/Include/cmsis_gcc.h ****
  968. 271:Drivers/CMSIS/Include/cmsis_gcc.h ****
  969. 272:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  970. 273:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer
  971. 274:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer (PSP).
  972. 275:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set
  973. 276:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  974. 277:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack)
  975. 278:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  976. 279:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : );
  977. 280:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  978. 281:Drivers/CMSIS/Include/cmsis_gcc.h ****
  979. 282:Drivers/CMSIS/Include/cmsis_gcc.h ****
  980. 283:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  981. 284:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  982. 285:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer (non-secure)
  983. 286:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure sta
  984. 287:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set
  985. 288:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  986. 289:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack)
  987. ARM GAS /tmp/ccn8JwAK.s page 18
  988. 290:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  989. 291:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : );
  990. 292:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  991. 293:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  992. 294:Drivers/CMSIS/Include/cmsis_gcc.h ****
  993. 295:Drivers/CMSIS/Include/cmsis_gcc.h ****
  994. 296:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  995. 297:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer
  996. 298:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer (MSP).
  997. 299:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value
  998. 300:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  999. 301:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSP(void)
  1000. 302:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1001. 303:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1002. 304:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1003. 305:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msp" : "=r" (result) );
  1004. 306:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1005. 307:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1006. 308:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1007. 309:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1008. 310:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1009. 311:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1010. 312:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer (non-secure)
  1011. 313:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure stat
  1012. 314:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value
  1013. 315:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1014. 316:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void)
  1015. 317:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1016. 318:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1017. 319:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1018. 320:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msp_ns" : "=r" (result) );
  1019. 321:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1020. 322:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1021. 323:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1022. 324:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1023. 325:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1024. 326:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1025. 327:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer
  1026. 328:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Main Stack Pointer (MSP).
  1027. 329:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set
  1028. 330:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1029. 331:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack)
  1030. 332:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1031. 333:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : );
  1032. 334:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1033. 335:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1034. 336:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1035. 337:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1036. 338:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1037. 339:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer (non-secure)
  1038. 340:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state.
  1039. 341:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set
  1040. 342:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1041. 343:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack)
  1042. 344:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1043. 345:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : );
  1044. 346:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1045. ARM GAS /tmp/ccn8JwAK.s page 19
  1046. 347:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1047. 348:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1048. 349:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1049. 350:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1050. 351:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1051. 352:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Stack Pointer (non-secure)
  1052. 353:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state.
  1053. 354:Drivers/CMSIS/Include/cmsis_gcc.h **** \return SP Register value
  1054. 355:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1055. 356:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void)
  1056. 357:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1057. 358:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1058. 359:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1059. 360:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, sp_ns" : "=r" (result) );
  1060. 361:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1061. 362:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1062. 363:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1063. 364:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1064. 365:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1065. 366:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Stack Pointer (non-secure)
  1066. 367:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state.
  1067. 368:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfStack Stack Pointer value to set
  1068. 369:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1069. 370:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack)
  1070. 371:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1071. 372:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : );
  1072. 373:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1073. 374:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1074. 375:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1075. 376:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1076. 377:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1077. 378:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Priority Mask
  1078. 379:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current state of the priority mask bit from the Priority Mask Register.
  1079. 380:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Priority Mask value
  1080. 381:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1081. 382:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PRIMASK(void)
  1082. 383:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1083. 384:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1084. 385:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1085. 386:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
  1086. 387:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1087. 388:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1088. 389:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1089. 390:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1090. 391:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1091. 392:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1092. 393:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Priority Mask (non-secure)
  1093. 394:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current state of the non-secure priority mask bit from the Priority Mask Reg
  1094. 395:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Priority Mask value
  1095. 396:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1096. 397:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void)
  1097. 398:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1098. 399:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1099. 400:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1100. 401:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, primask_ns" : "=r" (result) :: "memory");
  1101. 402:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1102. 403:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1103. ARM GAS /tmp/ccn8JwAK.s page 20
  1104. 404:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1105. 405:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1106. 406:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1107. 407:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1108. 408:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Priority Mask
  1109. 409:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Priority Mask Register.
  1110. 410:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] priMask Priority Mask
  1111. 411:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1112. 412:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask)
  1113. 413:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1114. 414:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
  1115. 415:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1116. 416:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1117. 417:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1118. 418:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1119. 419:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1120. 420:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Priority Mask (non-secure)
  1121. 421:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Priority Mask Register when in secure state.
  1122. 422:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] priMask Priority Mask
  1123. 423:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1124. 424:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask)
  1125. 425:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1126. 426:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory");
  1127. 427:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1128. 428:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1129. 429:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1130. 430:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1131. 431:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \
  1132. 432:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \
  1133. 433:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) )
  1134. 434:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1135. 435:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable FIQ
  1136. 436:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables FIQ interrupts by clearing the F-bit in the CPSR.
  1137. 437:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes.
  1138. 438:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1139. 439:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_fault_irq(void)
  1140. 440:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1141. 441:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie f" : : : "memory");
  1142. 442:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1143. 443:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1144. 444:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1145. 445:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1146. 446:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable FIQ
  1147. 447:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables FIQ interrupts by setting the F-bit in the CPSR.
  1148. 448:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes.
  1149. 449:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1150. 450:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_fault_irq(void)
  1151. 451:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1152. 452:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid f" : : : "memory");
  1153. 453:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1154. 454:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1155. 455:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1156. 456:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1157. 457:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Base Priority
  1158. 458:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Base Priority register.
  1159. 459:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Base Priority register value
  1160. 460:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1161. ARM GAS /tmp/ccn8JwAK.s page 21
  1162. 461:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_BASEPRI(void)
  1163. 462:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1164. 463:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1165. 464:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1166. 465:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, basepri" : "=r" (result) );
  1167. 466:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1168. 467:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1169. 468:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1170. 469:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1171. 470:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1172. 471:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1173. 472:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Base Priority (non-secure)
  1174. 473:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Base Priority register when in secure state.
  1175. 474:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Base Priority register value
  1176. 475:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1177. 476:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void)
  1178. 477:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1179. 478:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1180. 479:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1181. 480:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) );
  1182. 481:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1183. 482:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1184. 483:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1185. 484:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1186. 485:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1187. 486:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1188. 487:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority
  1189. 488:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Base Priority register.
  1190. 489:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set
  1191. 490:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1192. 491:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri)
  1193. 492:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1194. 493:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory");
  1195. 494:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1196. 495:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1197. 496:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1198. 497:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1199. 498:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1200. 499:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority (non-secure)
  1201. 500:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Base Priority register when in secure state.
  1202. 501:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set
  1203. 502:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1204. 503:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri)
  1205. 504:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1206. 505:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory");
  1207. 506:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1208. 507:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1209. 508:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1210. 509:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1211. 510:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1212. 511:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority with condition
  1213. 512:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Base Priority register only if BASEPRI masking is disable
  1214. 513:Drivers/CMSIS/Include/cmsis_gcc.h **** or the new value increases the BASEPRI priority level.
  1215. 514:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set
  1216. 515:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1217. 516:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri)
  1218. 517:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1219. ARM GAS /tmp/ccn8JwAK.s page 22
  1220. 518:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory");
  1221. 519:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1222. 520:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1223. 521:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1224. 522:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1225. 523:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Fault Mask
  1226. 524:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Fault Mask register.
  1227. 525:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Fault Mask register value
  1228. 526:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1229. 527:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void)
  1230. 528:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1231. 529:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1232. 530:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1233. 531:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, faultmask" : "=r" (result) );
  1234. 532:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1235. 533:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1236. 534:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1237. 535:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1238. 536:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1239. 537:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1240. 538:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Fault Mask (non-secure)
  1241. 539:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Fault Mask register when in secure state.
  1242. 540:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Fault Mask register value
  1243. 541:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1244. 542:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void)
  1245. 543:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1246. 544:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1247. 545:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1248. 546:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) );
  1249. 547:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1250. 548:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1251. 549:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1252. 550:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1253. 551:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1254. 552:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1255. 553:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Fault Mask
  1256. 554:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Fault Mask register.
  1257. 555:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] faultMask Fault Mask value to set
  1258. 556:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1259. 557:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask)
  1260. 558:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1261. 559:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory");
  1262. 560:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1263. 561:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1264. 562:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1265. 563:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1266. 564:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1267. 565:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Fault Mask (non-secure)
  1268. 566:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Fault Mask register when in secure state.
  1269. 567:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] faultMask Fault Mask value to set
  1270. 568:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1271. 569:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask)
  1272. 570:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1273. 571:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory");
  1274. 572:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1275. 573:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1276. 574:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1277. ARM GAS /tmp/ccn8JwAK.s page 23
  1278. 575:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \
  1279. 576:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \
  1280. 577:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */
  1281. 578:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1282. 579:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1283. 580:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \
  1284. 581:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) )
  1285. 582:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1286. 583:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1287. 584:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer Limit
  1288. 585:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
  1289. 586:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always in non-secure
  1290. 587:Drivers/CMSIS/Include/cmsis_gcc.h **** mode.
  1291. 588:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1292. 589:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer Limit (PSPLIM).
  1293. 590:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSPLIM Register value
  1294. 591:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1295. 592:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSPLIM(void)
  1296. 593:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1297. 594:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \
  1298. 595:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3)))
  1299. 596:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI
  1300. 597:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U;
  1301. 598:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  1302. 599:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1303. 600:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psplim" : "=r" (result) );
  1304. 601:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
  1305. 602:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1306. 603:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1307. 604:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1308. 605:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3))
  1309. 606:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1310. 607:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer Limit (non-secure)
  1311. 608:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
  1312. 609:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always.
  1313. 610:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1314. 611:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Process Stack Pointer Limit (PSPLIM) when in
  1315. 612:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSPLIM Register value
  1316. 613:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1317. 614:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void)
  1318. 615:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1319. 616:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)))
  1320. 617:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI
  1321. 618:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U;
  1322. 619:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  1323. 620:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1324. 621:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) );
  1325. 622:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
  1326. 623:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1327. 624:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1328. 625:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1329. 626:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1330. 627:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1331. 628:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1332. 629:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer Limit
  1333. 630:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
  1334. 631:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored in non-secure
  1335. ARM GAS /tmp/ccn8JwAK.s page 24
  1336. 632:Drivers/CMSIS/Include/cmsis_gcc.h **** mode.
  1337. 633:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1338. 634:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM).
  1339. 635:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set
  1340. 636:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1341. 637:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit)
  1342. 638:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1343. 639:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \
  1344. 640:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3)))
  1345. 641:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI
  1346. 642:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)ProcStackPtrLimit;
  1347. 643:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  1348. 644:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit));
  1349. 645:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1350. 646:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1351. 647:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1352. 648:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1353. 649:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1354. 650:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1355. 651:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer (non-secure)
  1356. 652:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
  1357. 653:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored.
  1358. 654:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1359. 655:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in s
  1360. 656:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set
  1361. 657:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1362. 658:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit)
  1363. 659:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1364. 660:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)))
  1365. 661:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI
  1366. 662:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)ProcStackPtrLimit;
  1367. 663:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  1368. 664:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit));
  1369. 665:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1370. 666:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1371. 667:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1372. 668:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1373. 669:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1374. 670:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1375. 671:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer Limit
  1376. 672:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
  1377. 673:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always in non-secure
  1378. 674:Drivers/CMSIS/Include/cmsis_gcc.h **** mode.
  1379. 675:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1380. 676:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer Limit (MSPLIM).
  1381. 677:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSPLIM Register value
  1382. 678:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1383. 679:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSPLIM(void)
  1384. 680:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1385. 681:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \
  1386. 682:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3)))
  1387. 683:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI
  1388. 684:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U;
  1389. 685:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  1390. 686:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1391. 687:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msplim" : "=r" (result) );
  1392. 688:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
  1393. ARM GAS /tmp/ccn8JwAK.s page 25
  1394. 689:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1395. 690:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1396. 691:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1397. 692:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1398. 693:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1399. 694:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1400. 695:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer Limit (non-secure)
  1401. 696:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
  1402. 697:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always.
  1403. 698:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1404. 699:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in sec
  1405. 700:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSPLIM Register value
  1406. 701:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1407. 702:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void)
  1408. 703:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1409. 704:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)))
  1410. 705:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI
  1411. 706:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U;
  1412. 707:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  1413. 708:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1414. 709:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) );
  1415. 710:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
  1416. 711:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1417. 712:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1418. 713:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1419. 714:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1420. 715:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1421. 716:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1422. 717:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer Limit
  1423. 718:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
  1424. 719:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored in non-secure
  1425. 720:Drivers/CMSIS/Include/cmsis_gcc.h **** mode.
  1426. 721:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1427. 722:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM).
  1428. 723:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] MainStackPtrLimit Main Stack Pointer Limit value to set
  1429. 724:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1430. 725:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit)
  1431. 726:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1432. 727:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \
  1433. 728:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3)))
  1434. 729:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI
  1435. 730:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)MainStackPtrLimit;
  1436. 731:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  1437. 732:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit));
  1438. 733:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1439. 734:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1440. 735:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1441. 736:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1442. 737:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1443. 738:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1444. 739:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer Limit (non-secure)
  1445. 740:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
  1446. 741:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored.
  1447. 742:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1448. 743:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secu
  1449. 744:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] MainStackPtrLimit Main Stack Pointer value to set
  1450. 745:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1451. ARM GAS /tmp/ccn8JwAK.s page 26
  1452. 746:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit)
  1453. 747:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1454. 748:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)))
  1455. 749:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI
  1456. 750:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)MainStackPtrLimit;
  1457. 751:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  1458. 752:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit));
  1459. 753:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1460. 754:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1461. 755:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1462. 756:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1463. 757:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \
  1464. 758:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */
  1465. 759:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1466. 760:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1467. 761:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1468. 762:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get FPSCR
  1469. 763:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Floating Point Status/Control register.
  1470. 764:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Floating Point Status/Control register value
  1471. 765:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1472. 766:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FPSCR(void)
  1473. 767:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1474. 768:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \
  1475. 769:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__FPU_USED ) && (__FPU_USED == 1U)) )
  1476. 770:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_get_fpscr)
  1477. 771:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed
  1478. 772:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2)
  1479. 773:Drivers/CMSIS/Include/cmsis_gcc.h **** /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */
  1480. 774:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_arm_get_fpscr();
  1481. 775:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  1482. 776:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1483. 777:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1484. 778:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("VMRS %0, fpscr" : "=r" (result) );
  1485. 779:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1486. 780:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1487. 781:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  1488. 782:Drivers/CMSIS/Include/cmsis_gcc.h **** return(0U);
  1489. 783:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1490. 784:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1491. 785:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1492. 786:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1493. 787:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1494. 788:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set FPSCR
  1495. 789:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Floating Point Status/Control register.
  1496. 790:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] fpscr Floating Point Status/Control value to set
  1497. 791:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1498. 792:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FPSCR(uint32_t fpscr)
  1499. 793:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1500. 794:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \
  1501. 795:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__FPU_USED ) && (__FPU_USED == 1U)) )
  1502. 796:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_set_fpscr)
  1503. 797:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed
  1504. 798:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2)
  1505. 799:Drivers/CMSIS/Include/cmsis_gcc.h **** /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */
  1506. 800:Drivers/CMSIS/Include/cmsis_gcc.h **** __builtin_arm_set_fpscr(fpscr);
  1507. 801:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  1508. 802:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc", "memory");
  1509. ARM GAS /tmp/ccn8JwAK.s page 27
  1510. 803:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1511. 804:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  1512. 805:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)fpscr;
  1513. 806:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1514. 807:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1515. 808:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1516. 809:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1517. 810:Drivers/CMSIS/Include/cmsis_gcc.h **** /*@} end of CMSIS_Core_RegAccFunctions */
  1518. 811:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1519. 812:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1520. 813:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################## Core Instruction Access ######################### */
  1521. 814:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface
  1522. 815:Drivers/CMSIS/Include/cmsis_gcc.h **** Access to dedicated instructions
  1523. 816:Drivers/CMSIS/Include/cmsis_gcc.h **** @{
  1524. 817:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1525. 818:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1526. 819:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Define macros for porting to both thumb1 and thumb2.
  1527. 820:Drivers/CMSIS/Include/cmsis_gcc.h **** * For thumb1, use low register (r0-r7), specified by constraint "l"
  1528. 821:Drivers/CMSIS/Include/cmsis_gcc.h **** * Otherwise, use general registers, specified by constraint "r" */
  1529. 822:Drivers/CMSIS/Include/cmsis_gcc.h **** #if defined (__thumb__) && !defined (__thumb2__)
  1530. 823:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=l" (r)
  1531. 824:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+l" (r)
  1532. 825:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "l" (r)
  1533. 826:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  1534. 827:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=r" (r)
  1535. 828:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+r" (r)
  1536. 829:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "r" (r)
  1537. 830:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1538. 831:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1539. 832:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1540. 833:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief No Operation
  1541. 834:Drivers/CMSIS/Include/cmsis_gcc.h **** \details No Operation does nothing. This instruction can be used for code alignment purposes.
  1542. 835:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1543. 836:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NOP() __ASM volatile ("nop")
  1544. 837:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1545. 838:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1546. 839:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Interrupt
  1547. 840:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Interrupt is a hint instruction that suspends execution until one of a number o
  1548. 841:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1549. 842:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFI() __ASM volatile ("wfi")
  1550. 843:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1551. 844:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1552. 845:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1553. 846:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Event
  1554. 847:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Event is a hint instruction that permits the processor to enter
  1555. 848:Drivers/CMSIS/Include/cmsis_gcc.h **** a low-power state until one of a number of events occurs.
  1556. 849:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1557. 850:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFE() __ASM volatile ("wfe")
  1558. 851:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1559. 852:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1560. 853:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1561. 854:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Send Event
  1562. 855:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Send Event is a hint instruction. It causes an event to be signaled to the CPU.
  1563. 856:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1564. 857:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __SEV() __ASM volatile ("sev")
  1565. 858:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1566. 859:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1567. ARM GAS /tmp/ccn8JwAK.s page 28
  1568. 860:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1569. 861:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Instruction Synchronization Barrier
  1570. 862:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Instruction Synchronization Barrier flushes the pipeline in the processor,
  1571. 863:Drivers/CMSIS/Include/cmsis_gcc.h **** so that all instructions following the ISB are fetched from cache or memory,
  1572. 864:Drivers/CMSIS/Include/cmsis_gcc.h **** after the instruction has been completed.
  1573. 865:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1574. 866:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __ISB(void)
  1575. 867:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1576. 868:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("isb 0xF":::"memory");
  1577. 869:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1578. 870:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1579. 871:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1580. 872:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1581. 873:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Data Synchronization Barrier
  1582. 874:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Acts as a special kind of Data Memory Barrier.
  1583. 875:Drivers/CMSIS/Include/cmsis_gcc.h **** It completes when all explicit memory accesses before this instruction complete.
  1584. 876:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1585. 877:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __DSB(void)
  1586. 878:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1587. 879:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("dsb 0xF":::"memory");
  1588. 880:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1589. 881:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1590. 882:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1591. 883:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1592. 884:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Data Memory Barrier
  1593. 885:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Ensures the apparent order of the explicit memory operations before
  1594. 886:Drivers/CMSIS/Include/cmsis_gcc.h **** and after the instruction, without ensuring their completion.
  1595. 887:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1596. 888:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __DMB(void)
  1597. 889:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1598. 890:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("dmb 0xF":::"memory");
  1599. 891:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1600. 892:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1601. 893:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1602. 894:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1603. 895:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (32 bit)
  1604. 896:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x785
  1605. 897:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse
  1606. 898:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value
  1607. 899:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1608. 900:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __REV(uint32_t value)
  1609. 901:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1610. 902:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
  1611. 903:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_bswap32(value);
  1612. 904:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  1613. 905:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1614. 906:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1615. 907:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rev %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) );
  1616. 908:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
  1617. 909:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1618. 910:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1619. 911:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1620. 912:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1621. 913:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1622. 914:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (16 bit)
  1623. 915:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes
  1624. 916:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse
  1625. ARM GAS /tmp/ccn8JwAK.s page 29
  1626. 917:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value
  1627. 918:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1628. 919:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __REV16(uint32_t value)
  1629. 920:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1630. 921:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1631. 922:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1632. 923:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rev16 %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) );
  1633. 924:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
  1634. 925:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1635. 926:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1636. 927:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1637. 928:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1638. 929:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (16 bit)
  1639. 930:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For exam
  1640. 931:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse
  1641. 932:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value
  1642. 933:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1643. 934:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE int16_t __REVSH(int16_t value)
  1644. 935:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1645. 936:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)
  1646. 937:Drivers/CMSIS/Include/cmsis_gcc.h **** return (int16_t)__builtin_bswap16(value);
  1647. 938:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  1648. 939:Drivers/CMSIS/Include/cmsis_gcc.h **** int16_t result;
  1649. 940:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1650. 941:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("revsh %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) );
  1651. 942:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
  1652. 943:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1653. 944:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1654. 945:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1655. 946:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1656. 947:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1657. 948:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Rotate Right in unsigned value (32 bit)
  1658. 949:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Rotate Right (immediate) provides the value of the contents of a register rotated by a v
  1659. 950:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] op1 Value to rotate
  1660. 951:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] op2 Number of Bits to rotate
  1661. 952:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Rotated value
  1662. 953:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1663. 954:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2)
  1664. 955:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1665. 956:Drivers/CMSIS/Include/cmsis_gcc.h **** op2 %= 32U;
  1666. 957:Drivers/CMSIS/Include/cmsis_gcc.h **** if (op2 == 0U)
  1667. 958:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1668. 959:Drivers/CMSIS/Include/cmsis_gcc.h **** return op1;
  1669. 960:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1670. 961:Drivers/CMSIS/Include/cmsis_gcc.h **** return (op1 >> op2) | (op1 << (32U - op2));
  1671. 962:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1672. 963:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1673. 964:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1674. 965:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1675. 966:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Breakpoint
  1676. 967:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Causes the processor to enter Debug state.
  1677. 968:Drivers/CMSIS/Include/cmsis_gcc.h **** Debug tools can use this to investigate system state when the instruction at a particula
  1678. 969:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value is ignored by the processor.
  1679. 970:Drivers/CMSIS/Include/cmsis_gcc.h **** If required, a debugger can use it to store additional information about the break
  1680. 971:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1681. 972:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __BKPT(value) __ASM volatile ("bkpt "#value)
  1682. 973:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1683. ARM GAS /tmp/ccn8JwAK.s page 30
  1684. 974:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1685. 975:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1686. 976:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse bit order of value
  1687. 977:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the bit order of the given value.
  1688. 978:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse
  1689. 979:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value
  1690. 980:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1691. 981:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __RBIT(uint32_t value)
  1692. 310 .loc 2 981 31 view .LVU52
  1693. 311 .LBB7:
  1694. 982:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1695. 983:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1696. 312 .loc 2 983 3 view .LVU53
  1697. 984:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1698. 985:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \
  1699. 986:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \
  1700. 987:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) )
  1701. 988:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) );
  1702. 313 .loc 2 988 4 view .LVU54
  1703. 314 .syntax unified
  1704. 315 @ 988 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
  1705. 316 0000 90FAA0F0 rbit r0, r0
  1706. 317 @ 0 "" 2
  1707. 318 .LVL2:
  1708. 989:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  1709. 990:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t s = (4U /*sizeof(v)*/ * 8U) - 1U; /* extra shift needed at end */
  1710. 991:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1711. 992:Drivers/CMSIS/Include/cmsis_gcc.h **** result = value; /* r will be reversed bits of v; first get LSB of v */
  1712. 993:Drivers/CMSIS/Include/cmsis_gcc.h **** for (value >>= 1U; value != 0U; value >>= 1U)
  1713. 994:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1714. 995:Drivers/CMSIS/Include/cmsis_gcc.h **** result <<= 1U;
  1715. 996:Drivers/CMSIS/Include/cmsis_gcc.h **** result |= value & 1U;
  1716. 997:Drivers/CMSIS/Include/cmsis_gcc.h **** s--;
  1717. 998:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1718. 999:Drivers/CMSIS/Include/cmsis_gcc.h **** result <<= s; /* shift when v's highest bits are zero */
  1719. 1000:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1720. 1001:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
  1721. 319 .loc 2 1001 3 view .LVU55
  1722. 320 .loc 2 1001 3 is_stmt 0 view .LVU56
  1723. 321 .thumb
  1724. 322 .syntax unified
  1725. 323 .LBE7:
  1726. 324 .LBE6:
  1727. 325 .loc 1 386 22 view .LVU57
  1728. 326 0004 B0FA80F0 clz r0, r0
  1729. 327 0008 024B ldr r3, .L25
  1730. 328 000a 0344 add r3, r3, r0
  1731. 329 000c 9B00 lsls r3, r3, #2
  1732. 330 .loc 1 386 46 view .LVU58
  1733. 331 000e 0122 movs r2, #1
  1734. 332 0010 1A60 str r2, [r3]
  1735. 387:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** }
  1736. 333 .loc 1 387 1 view .LVU59
  1737. 334 0012 7047 bx lr
  1738. 335 .L26:
  1739. 336 .align 2
  1740. 337 .L25:
  1741. ARM GAS /tmp/ccn8JwAK.s page 31
  1742. 338 0014 20808310 .word 277053472
  1743. 339 .cfi_endproc
  1744. 340 .LFE72:
  1745. 342 .section .text.HAL_PWR_DisableWakeUpPin,"ax",%progbits
  1746. 343 .align 1
  1747. 344 .global HAL_PWR_DisableWakeUpPin
  1748. 345 .syntax unified
  1749. 346 .thumb
  1750. 347 .thumb_func
  1751. 349 HAL_PWR_DisableWakeUpPin:
  1752. 350 .LVL3:
  1753. 351 .LFB73:
  1754. 388:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  1755. 389:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /**
  1756. 390:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @brief Disables the WakeUp PINx functionality.
  1757. 391:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @param WakeUpPinx: Specifies the Power Wake-Up pin to disable.
  1758. 392:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * This parameter can be one of the following values:
  1759. 393:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @arg PWR_WAKEUP_PIN1
  1760. 394:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @retval None
  1761. 395:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** */
  1762. 396:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** void HAL_PWR_DisableWakeUpPin(uint32_t WakeUpPinx)
  1763. 397:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** {
  1764. 352 .loc 1 397 1 is_stmt 1 view -0
  1765. 353 .cfi_startproc
  1766. 354 @ args = 0, pretend = 0, frame = 0
  1767. 355 @ frame_needed = 0, uses_anonymous_args = 0
  1768. 356 @ link register save eliminated.
  1769. 398:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Check the parameter */
  1770. 399:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** assert_param(IS_PWR_WAKEUP_PIN(WakeUpPinx));
  1771. 357 .loc 1 399 3 view .LVU61
  1772. 400:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Disable the EWUPx pin */
  1773. 401:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** *(__IO uint32_t *) CSR_EWUP_BB(WakeUpPinx) = (uint32_t)DISABLE;
  1774. 358 .loc 1 401 3 view .LVU62
  1775. 359 .LBB8:
  1776. 360 .LBI8:
  1777. 981:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1778. 361 .loc 2 981 31 view .LVU63
  1779. 362 .LBB9:
  1780. 983:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1781. 363 .loc 2 983 3 view .LVU64
  1782. 988:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  1783. 364 .loc 2 988 4 view .LVU65
  1784. 365 .syntax unified
  1785. 366 @ 988 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
  1786. 367 0000 90FAA0F0 rbit r0, r0
  1787. 368 @ 0 "" 2
  1788. 369 .LVL4:
  1789. 370 .loc 2 1001 3 view .LVU66
  1790. 371 .loc 2 1001 3 is_stmt 0 view .LVU67
  1791. 372 .thumb
  1792. 373 .syntax unified
  1793. 374 .LBE9:
  1794. 375 .LBE8:
  1795. 376 .loc 1 401 22 view .LVU68
  1796. 377 0004 B0FA80F0 clz r0, r0
  1797. 378 0008 024B ldr r3, .L28
  1798. 379 000a 0344 add r3, r3, r0
  1799. ARM GAS /tmp/ccn8JwAK.s page 32
  1800. 380 000c 9B00 lsls r3, r3, #2
  1801. 381 .loc 1 401 46 view .LVU69
  1802. 382 000e 0022 movs r2, #0
  1803. 383 0010 1A60 str r2, [r3]
  1804. 402:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** }
  1805. 384 .loc 1 402 1 view .LVU70
  1806. 385 0012 7047 bx lr
  1807. 386 .L29:
  1808. 387 .align 2
  1809. 388 .L28:
  1810. 389 0014 20808310 .word 277053472
  1811. 390 .cfi_endproc
  1812. 391 .LFE73:
  1813. 393 .section .text.HAL_PWR_EnterSLEEPMode,"ax",%progbits
  1814. 394 .align 1
  1815. 395 .global HAL_PWR_EnterSLEEPMode
  1816. 396 .syntax unified
  1817. 397 .thumb
  1818. 398 .thumb_func
  1819. 400 HAL_PWR_EnterSLEEPMode:
  1820. 401 .LVL5:
  1821. 402 .LFB74:
  1822. 403:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  1823. 404:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /**
  1824. 405:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @brief Enters Sleep mode.
  1825. 406:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @note In Sleep mode, all I/O pins keep the same state as in Run mode.
  1826. 407:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @param Regulator: Regulator state as no effect in SLEEP mode - allows to support portability f
  1827. 408:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @param SLEEPEntry: Specifies if SLEEP mode is entered with WFI or WFE instruction.
  1828. 409:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * When WFI entry is used, tick interrupt have to be disabled if not desired as
  1829. 410:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * the interrupt wake up source.
  1830. 411:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * This parameter can be one of the following values:
  1831. 412:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @arg PWR_SLEEPENTRY_WFI: enter SLEEP mode with WFI instruction
  1832. 413:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @arg PWR_SLEEPENTRY_WFE: enter SLEEP mode with WFE instruction
  1833. 414:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @retval None
  1834. 415:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** */
  1835. 416:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** void HAL_PWR_EnterSLEEPMode(uint32_t Regulator, uint8_t SLEEPEntry)
  1836. 417:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** {
  1837. 403 .loc 1 417 1 is_stmt 1 view -0
  1838. 404 .cfi_startproc
  1839. 405 @ args = 0, pretend = 0, frame = 0
  1840. 406 @ frame_needed = 0, uses_anonymous_args = 0
  1841. 407 @ link register save eliminated.
  1842. 418:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Check the parameters */
  1843. 419:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* No check on Regulator because parameter not used in SLEEP mode */
  1844. 420:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Prevent unused argument(s) compilation warning */
  1845. 421:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** UNUSED(Regulator);
  1846. 408 .loc 1 421 3 view .LVU72
  1847. 422:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  1848. 423:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** assert_param(IS_PWR_SLEEP_ENTRY(SLEEPEntry));
  1849. 409 .loc 1 423 3 view .LVU73
  1850. 424:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  1851. 425:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Clear SLEEPDEEP bit of Cortex System Control Register */
  1852. 426:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** CLEAR_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPDEEP_Msk));
  1853. 410 .loc 1 426 3 view .LVU74
  1854. 411 0000 064A ldr r2, .L34
  1855. 412 0002 1369 ldr r3, [r2, #16]
  1856. 413 0004 23F00403 bic r3, r3, #4
  1857. ARM GAS /tmp/ccn8JwAK.s page 33
  1858. 414 0008 1361 str r3, [r2, #16]
  1859. 427:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  1860. 428:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Select SLEEP mode entry -------------------------------------------------*/
  1861. 429:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** if(SLEEPEntry == PWR_SLEEPENTRY_WFI)
  1862. 415 .loc 1 429 3 view .LVU75
  1863. 416 .loc 1 429 5 is_stmt 0 view .LVU76
  1864. 417 000a 0129 cmp r1, #1
  1865. 418 000c 03D0 beq .L33
  1866. 430:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** {
  1867. 431:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Request Wait For Interrupt */
  1868. 432:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** __WFI();
  1869. 433:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** }
  1870. 434:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** else
  1871. 435:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** {
  1872. 436:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Request Wait For Event */
  1873. 437:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** __SEV();
  1874. 419 .loc 1 437 5 is_stmt 1 view .LVU77
  1875. 420 .syntax unified
  1876. 421 @ 437 "Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c" 1
  1877. 422 000e 40BF sev
  1878. 423 @ 0 "" 2
  1879. 438:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** __WFE();
  1880. 424 .loc 1 438 5 view .LVU78
  1881. 425 @ 438 "Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c" 1
  1882. 426 0010 20BF wfe
  1883. 427 @ 0 "" 2
  1884. 439:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** __WFE();
  1885. 428 .loc 1 439 5 view .LVU79
  1886. 429 @ 439 "Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c" 1
  1887. 430 0012 20BF wfe
  1888. 431 @ 0 "" 2
  1889. 440:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** }
  1890. 441:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** }
  1891. 432 .loc 1 441 1 is_stmt 0 view .LVU80
  1892. 433 .thumb
  1893. 434 .syntax unified
  1894. 435 0014 7047 bx lr
  1895. 436 .L33:
  1896. 432:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** }
  1897. 437 .loc 1 432 5 is_stmt 1 view .LVU81
  1898. 438 .syntax unified
  1899. 439 @ 432 "Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c" 1
  1900. 440 0016 30BF wfi
  1901. 441 @ 0 "" 2
  1902. 442 .thumb
  1903. 443 .syntax unified
  1904. 444 0018 7047 bx lr
  1905. 445 .L35:
  1906. 446 001a 00BF .align 2
  1907. 447 .L34:
  1908. 448 001c 00ED00E0 .word -536810240
  1909. 449 .cfi_endproc
  1910. 450 .LFE74:
  1911. 452 .section .text.HAL_PWR_EnterSTOPMode,"ax",%progbits
  1912. 453 .align 1
  1913. 454 .global HAL_PWR_EnterSTOPMode
  1914. 455 .syntax unified
  1915. ARM GAS /tmp/ccn8JwAK.s page 34
  1916. 456 .thumb
  1917. 457 .thumb_func
  1918. 459 HAL_PWR_EnterSTOPMode:
  1919. 460 .LVL6:
  1920. 461 .LFB75:
  1921. 442:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  1922. 443:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /**
  1923. 444:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @brief Enters Stop mode.
  1924. 445:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @note In Stop mode, all I/O pins keep the same state as in Run mode.
  1925. 446:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @note When exiting Stop mode by using an interrupt or a wakeup event,
  1926. 447:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * HSI RC oscillator is selected as system clock.
  1927. 448:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @note When the voltage regulator operates in low power mode, an additional
  1928. 449:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * startup delay is incurred when waking up from Stop mode.
  1929. 450:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * By keeping the internal regulator ON during Stop mode, the consumption
  1930. 451:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * is higher although the startup time is reduced.
  1931. 452:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @param Regulator: Specifies the regulator state in Stop mode.
  1932. 453:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * This parameter can be one of the following values:
  1933. 454:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @arg PWR_MAINREGULATOR_ON: Stop mode with regulator ON
  1934. 455:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @arg PWR_LOWPOWERREGULATOR_ON: Stop mode with low power regulator ON
  1935. 456:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @param STOPEntry: Specifies if Stop mode in entered with WFI or WFE instruction.
  1936. 457:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * This parameter can be one of the following values:
  1937. 458:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @arg PWR_STOPENTRY_WFI: Enter Stop mode with WFI instruction
  1938. 459:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @arg PWR_STOPENTRY_WFE: Enter Stop mode with WFE instruction
  1939. 460:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @retval None
  1940. 461:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** */
  1941. 462:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** void HAL_PWR_EnterSTOPMode(uint32_t Regulator, uint8_t STOPEntry)
  1942. 463:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** {
  1943. 462 .loc 1 463 1 view -0
  1944. 463 .cfi_startproc
  1945. 464 @ args = 0, pretend = 0, frame = 0
  1946. 465 @ frame_needed = 0, uses_anonymous_args = 0
  1947. 466 .loc 1 463 1 is_stmt 0 view .LVU83
  1948. 467 0000 10B5 push {r4, lr}
  1949. 468 .LCFI0:
  1950. 469 .cfi_def_cfa_offset 8
  1951. 470 .cfi_offset 4, -8
  1952. 471 .cfi_offset 14, -4
  1953. 464:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Check the parameters */
  1954. 465:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** assert_param(IS_PWR_REGULATOR(Regulator));
  1955. 472 .loc 1 465 3 is_stmt 1 view .LVU84
  1956. 466:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** assert_param(IS_PWR_STOP_ENTRY(STOPEntry));
  1957. 473 .loc 1 466 3 view .LVU85
  1958. 467:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  1959. 468:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Clear PDDS bit in PWR register to specify entering in STOP mode when CPU enter in Deepsleep */
  1960. 469:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** CLEAR_BIT(PWR->CR, PWR_CR_PDDS);
  1961. 474 .loc 1 469 3 view .LVU86
  1962. 475 0002 0F4A ldr r2, .L40
  1963. 476 0004 1468 ldr r4, [r2]
  1964. 477 0006 24F00204 bic r4, r4, #2
  1965. 478 000a 1460 str r4, [r2]
  1966. 470:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  1967. 471:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Select the voltage regulator mode by setting LPDS bit in PWR register according to Regulator p
  1968. 472:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** MODIFY_REG(PWR->CR, PWR_CR_LPDS, Regulator);
  1969. 479 .loc 1 472 3 view .LVU87
  1970. 480 000c 1368 ldr r3, [r2]
  1971. 481 000e 23F00103 bic r3, r3, #1
  1972. 482 0012 0343 orrs r3, r3, r0
  1973. ARM GAS /tmp/ccn8JwAK.s page 35
  1974. 483 0014 1360 str r3, [r2]
  1975. 473:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  1976. 474:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Set SLEEPDEEP bit of Cortex System Control Register */
  1977. 475:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** SET_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPDEEP_Msk));
  1978. 484 .loc 1 475 3 view .LVU88
  1979. 485 0016 0B4A ldr r2, .L40+4
  1980. 486 0018 1369 ldr r3, [r2, #16]
  1981. 487 001a 43F00403 orr r3, r3, #4
  1982. 488 001e 1361 str r3, [r2, #16]
  1983. 476:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  1984. 477:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Select Stop mode entry --------------------------------------------------*/
  1985. 478:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** if(STOPEntry == PWR_STOPENTRY_WFI)
  1986. 489 .loc 1 478 3 view .LVU89
  1987. 490 .loc 1 478 5 is_stmt 0 view .LVU90
  1988. 491 0020 0129 cmp r1, #1
  1989. 492 0022 06D1 bne .L37
  1990. 479:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** {
  1991. 480:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Request Wait For Interrupt */
  1992. 481:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** __WFI();
  1993. 493 .loc 1 481 5 is_stmt 1 view .LVU91
  1994. 494 .syntax unified
  1995. 495 @ 481 "Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c" 1
  1996. 496 0024 30BF wfi
  1997. 497 @ 0 "" 2
  1998. 498 .LVL7:
  1999. 499 .thumb
  2000. 500 .syntax unified
  2001. 501 .L38:
  2002. 482:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** }
  2003. 483:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** else
  2004. 484:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** {
  2005. 485:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Request Wait For Event */
  2006. 486:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** __SEV();
  2007. 487:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** PWR_OverloadWfe(); /* WFE redefine locally */
  2008. 488:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** PWR_OverloadWfe(); /* WFE redefine locally */
  2009. 489:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** }
  2010. 490:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Reset SLEEPDEEP bit of Cortex System Control Register */
  2011. 491:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** CLEAR_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPDEEP_Msk));
  2012. 502 .loc 1 491 3 view .LVU92
  2013. 503 0026 074A ldr r2, .L40+4
  2014. 504 0028 1369 ldr r3, [r2, #16]
  2015. 505 002a 23F00403 bic r3, r3, #4
  2016. 506 002e 1361 str r3, [r2, #16]
  2017. 492:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** }
  2018. 507 .loc 1 492 1 is_stmt 0 view .LVU93
  2019. 508 0030 10BD pop {r4, pc}
  2020. 509 .LVL8:
  2021. 510 .L37:
  2022. 486:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** PWR_OverloadWfe(); /* WFE redefine locally */
  2023. 511 .loc 1 486 5 is_stmt 1 view .LVU94
  2024. 512 .syntax unified
  2025. 513 @ 486 "Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c" 1
  2026. 514 0032 40BF sev
  2027. 515 @ 0 "" 2
  2028. 487:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** PWR_OverloadWfe(); /* WFE redefine locally */
  2029. 516 .loc 1 487 5 view .LVU95
  2030. 517 .thumb
  2031. ARM GAS /tmp/ccn8JwAK.s page 36
  2032. 518 .syntax unified
  2033. 519 0034 FFF7FEFF bl PWR_OverloadWfe
  2034. 520 .LVL9:
  2035. 488:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** }
  2036. 521 .loc 1 488 5 view .LVU96
  2037. 522 0038 FFF7FEFF bl PWR_OverloadWfe
  2038. 523 .LVL10:
  2039. 524 003c F3E7 b .L38
  2040. 525 .L41:
  2041. 526 003e 00BF .align 2
  2042. 527 .L40:
  2043. 528 0040 00700040 .word 1073770496
  2044. 529 0044 00ED00E0 .word -536810240
  2045. 530 .cfi_endproc
  2046. 531 .LFE75:
  2047. 533 .section .text.HAL_PWR_EnterSTANDBYMode,"ax",%progbits
  2048. 534 .align 1
  2049. 535 .global HAL_PWR_EnterSTANDBYMode
  2050. 536 .syntax unified
  2051. 537 .thumb
  2052. 538 .thumb_func
  2053. 540 HAL_PWR_EnterSTANDBYMode:
  2054. 541 .LFB76:
  2055. 493:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  2056. 494:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /**
  2057. 495:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @brief Enters Standby mode.
  2058. 496:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @note In Standby mode, all I/O pins are high impedance except for:
  2059. 497:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * - Reset pad (still available)
  2060. 498:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * - TAMPER pin if configured for tamper or calibration out.
  2061. 499:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * - WKUP pin (PA0) if enabled.
  2062. 500:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @retval None
  2063. 501:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** */
  2064. 502:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** void HAL_PWR_EnterSTANDBYMode(void)
  2065. 503:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** {
  2066. 542 .loc 1 503 1 view -0
  2067. 543 .cfi_startproc
  2068. 544 @ args = 0, pretend = 0, frame = 0
  2069. 545 @ frame_needed = 0, uses_anonymous_args = 0
  2070. 546 @ link register save eliminated.
  2071. 504:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Select Standby mode */
  2072. 505:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** SET_BIT(PWR->CR, PWR_CR_PDDS);
  2073. 547 .loc 1 505 3 view .LVU98
  2074. 548 0000 054A ldr r2, .L43
  2075. 549 0002 1368 ldr r3, [r2]
  2076. 550 0004 43F00203 orr r3, r3, #2
  2077. 551 0008 1360 str r3, [r2]
  2078. 506:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  2079. 507:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Set SLEEPDEEP bit of Cortex System Control Register */
  2080. 508:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** SET_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPDEEP_Msk));
  2081. 552 .loc 1 508 3 view .LVU99
  2082. 553 000a 044A ldr r2, .L43+4
  2083. 554 000c 1369 ldr r3, [r2, #16]
  2084. 555 000e 43F00403 orr r3, r3, #4
  2085. 556 0012 1361 str r3, [r2, #16]
  2086. 509:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  2087. 510:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* This option is used to ensure that store operations are completed */
  2088. 511:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** #if defined ( __CC_ARM)
  2089. ARM GAS /tmp/ccn8JwAK.s page 37
  2090. 512:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** __force_stores();
  2091. 513:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** #endif
  2092. 514:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Request Wait For Interrupt */
  2093. 515:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** __WFI();
  2094. 557 .loc 1 515 3 view .LVU100
  2095. 558 .syntax unified
  2096. 559 @ 515 "Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c" 1
  2097. 560 0014 30BF wfi
  2098. 561 @ 0 "" 2
  2099. 516:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** }
  2100. 562 .loc 1 516 1 is_stmt 0 view .LVU101
  2101. 563 .thumb
  2102. 564 .syntax unified
  2103. 565 0016 7047 bx lr
  2104. 566 .L44:
  2105. 567 .align 2
  2106. 568 .L43:
  2107. 569 0018 00700040 .word 1073770496
  2108. 570 001c 00ED00E0 .word -536810240
  2109. 571 .cfi_endproc
  2110. 572 .LFE76:
  2111. 574 .section .text.HAL_PWR_EnableSleepOnExit,"ax",%progbits
  2112. 575 .align 1
  2113. 576 .global HAL_PWR_EnableSleepOnExit
  2114. 577 .syntax unified
  2115. 578 .thumb
  2116. 579 .thumb_func
  2117. 581 HAL_PWR_EnableSleepOnExit:
  2118. 582 .LFB77:
  2119. 517:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  2120. 518:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  2121. 519:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /**
  2122. 520:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @brief Indicates Sleep-On-Exit when returning from Handler mode to Thread mode.
  2123. 521:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @note Set SLEEPONEXIT bit of SCR register. When this bit is set, the processor
  2124. 522:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * re-enters SLEEP mode when an interruption handling is over.
  2125. 523:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * Setting this bit is useful when the processor is expected to run only on
  2126. 524:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * interruptions handling.
  2127. 525:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @retval None
  2128. 526:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** */
  2129. 527:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** void HAL_PWR_EnableSleepOnExit(void)
  2130. 528:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** {
  2131. 583 .loc 1 528 1 is_stmt 1 view -0
  2132. 584 .cfi_startproc
  2133. 585 @ args = 0, pretend = 0, frame = 0
  2134. 586 @ frame_needed = 0, uses_anonymous_args = 0
  2135. 587 @ link register save eliminated.
  2136. 529:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Set SLEEPONEXIT bit of Cortex System Control Register */
  2137. 530:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** SET_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPONEXIT_Msk));
  2138. 588 .loc 1 530 3 view .LVU103
  2139. 589 0000 024A ldr r2, .L46
  2140. 590 0002 1369 ldr r3, [r2, #16]
  2141. 591 0004 43F00203 orr r3, r3, #2
  2142. 592 0008 1361 str r3, [r2, #16]
  2143. 531:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** }
  2144. 593 .loc 1 531 1 is_stmt 0 view .LVU104
  2145. 594 000a 7047 bx lr
  2146. 595 .L47:
  2147. ARM GAS /tmp/ccn8JwAK.s page 38
  2148. 596 .align 2
  2149. 597 .L46:
  2150. 598 000c 00ED00E0 .word -536810240
  2151. 599 .cfi_endproc
  2152. 600 .LFE77:
  2153. 602 .section .text.HAL_PWR_DisableSleepOnExit,"ax",%progbits
  2154. 603 .align 1
  2155. 604 .global HAL_PWR_DisableSleepOnExit
  2156. 605 .syntax unified
  2157. 606 .thumb
  2158. 607 .thumb_func
  2159. 609 HAL_PWR_DisableSleepOnExit:
  2160. 610 .LFB78:
  2161. 532:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  2162. 533:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  2163. 534:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /**
  2164. 535:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @brief Disables Sleep-On-Exit feature when returning from Handler mode to Thread mode.
  2165. 536:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @note Clears SLEEPONEXIT bit of SCR register. When this bit is set, the processor
  2166. 537:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * re-enters SLEEP mode when an interruption handling is over.
  2167. 538:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @retval None
  2168. 539:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** */
  2169. 540:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** void HAL_PWR_DisableSleepOnExit(void)
  2170. 541:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** {
  2171. 611 .loc 1 541 1 is_stmt 1 view -0
  2172. 612 .cfi_startproc
  2173. 613 @ args = 0, pretend = 0, frame = 0
  2174. 614 @ frame_needed = 0, uses_anonymous_args = 0
  2175. 615 @ link register save eliminated.
  2176. 542:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Clear SLEEPONEXIT bit of Cortex System Control Register */
  2177. 543:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** CLEAR_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPONEXIT_Msk));
  2178. 616 .loc 1 543 3 view .LVU106
  2179. 617 0000 024A ldr r2, .L49
  2180. 618 0002 1369 ldr r3, [r2, #16]
  2181. 619 0004 23F00203 bic r3, r3, #2
  2182. 620 0008 1361 str r3, [r2, #16]
  2183. 544:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** }
  2184. 621 .loc 1 544 1 is_stmt 0 view .LVU107
  2185. 622 000a 7047 bx lr
  2186. 623 .L50:
  2187. 624 .align 2
  2188. 625 .L49:
  2189. 626 000c 00ED00E0 .word -536810240
  2190. 627 .cfi_endproc
  2191. 628 .LFE78:
  2192. 630 .section .text.HAL_PWR_EnableSEVOnPend,"ax",%progbits
  2193. 631 .align 1
  2194. 632 .global HAL_PWR_EnableSEVOnPend
  2195. 633 .syntax unified
  2196. 634 .thumb
  2197. 635 .thumb_func
  2198. 637 HAL_PWR_EnableSEVOnPend:
  2199. 638 .LFB79:
  2200. 545:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  2201. 546:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  2202. 547:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /**
  2203. 548:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @brief Enables CORTEX M3 SEVONPEND bit.
  2204. 549:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @note Sets SEVONPEND bit of SCR register. When this bit is set, this causes
  2205. ARM GAS /tmp/ccn8JwAK.s page 39
  2206. 550:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * WFE to wake up when an interrupt moves from inactive to pended.
  2207. 551:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @retval None
  2208. 552:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** */
  2209. 553:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** void HAL_PWR_EnableSEVOnPend(void)
  2210. 554:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** {
  2211. 639 .loc 1 554 1 is_stmt 1 view -0
  2212. 640 .cfi_startproc
  2213. 641 @ args = 0, pretend = 0, frame = 0
  2214. 642 @ frame_needed = 0, uses_anonymous_args = 0
  2215. 643 @ link register save eliminated.
  2216. 555:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Set SEVONPEND bit of Cortex System Control Register */
  2217. 556:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** SET_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SEVONPEND_Msk));
  2218. 644 .loc 1 556 3 view .LVU109
  2219. 645 0000 024A ldr r2, .L52
  2220. 646 0002 1369 ldr r3, [r2, #16]
  2221. 647 0004 43F01003 orr r3, r3, #16
  2222. 648 0008 1361 str r3, [r2, #16]
  2223. 557:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** }
  2224. 649 .loc 1 557 1 is_stmt 0 view .LVU110
  2225. 650 000a 7047 bx lr
  2226. 651 .L53:
  2227. 652 .align 2
  2228. 653 .L52:
  2229. 654 000c 00ED00E0 .word -536810240
  2230. 655 .cfi_endproc
  2231. 656 .LFE79:
  2232. 658 .section .text.HAL_PWR_DisableSEVOnPend,"ax",%progbits
  2233. 659 .align 1
  2234. 660 .global HAL_PWR_DisableSEVOnPend
  2235. 661 .syntax unified
  2236. 662 .thumb
  2237. 663 .thumb_func
  2238. 665 HAL_PWR_DisableSEVOnPend:
  2239. 666 .LFB80:
  2240. 558:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  2241. 559:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  2242. 560:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /**
  2243. 561:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @brief Disables CORTEX M3 SEVONPEND bit.
  2244. 562:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @note Clears SEVONPEND bit of SCR register. When this bit is set, this causes
  2245. 563:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * WFE to wake up when an interrupt moves from inactive to pended.
  2246. 564:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @retval None
  2247. 565:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** */
  2248. 566:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** void HAL_PWR_DisableSEVOnPend(void)
  2249. 567:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** {
  2250. 667 .loc 1 567 1 is_stmt 1 view -0
  2251. 668 .cfi_startproc
  2252. 669 @ args = 0, pretend = 0, frame = 0
  2253. 670 @ frame_needed = 0, uses_anonymous_args = 0
  2254. 671 @ link register save eliminated.
  2255. 568:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Clear SEVONPEND bit of Cortex System Control Register */
  2256. 569:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** CLEAR_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SEVONPEND_Msk));
  2257. 672 .loc 1 569 3 view .LVU112
  2258. 673 0000 024A ldr r2, .L55
  2259. 674 0002 1369 ldr r3, [r2, #16]
  2260. 675 0004 23F01003 bic r3, r3, #16
  2261. 676 0008 1361 str r3, [r2, #16]
  2262. 570:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** }
  2263. ARM GAS /tmp/ccn8JwAK.s page 40
  2264. 677 .loc 1 570 1 is_stmt 0 view .LVU113
  2265. 678 000a 7047 bx lr
  2266. 679 .L56:
  2267. 680 .align 2
  2268. 681 .L55:
  2269. 682 000c 00ED00E0 .word -536810240
  2270. 683 .cfi_endproc
  2271. 684 .LFE80:
  2272. 686 .section .text.HAL_PWR_PVDCallback,"ax",%progbits
  2273. 687 .align 1
  2274. 688 .weak HAL_PWR_PVDCallback
  2275. 689 .syntax unified
  2276. 690 .thumb
  2277. 691 .thumb_func
  2278. 693 HAL_PWR_PVDCallback:
  2279. 694 .LFB82:
  2280. 571:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  2281. 572:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  2282. 573:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  2283. 574:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /**
  2284. 575:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @brief This function handles the PWR PVD interrupt request.
  2285. 576:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @note This API should be called under the PVD_IRQHandler().
  2286. 577:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @retval None
  2287. 578:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** */
  2288. 579:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** void HAL_PWR_PVD_IRQHandler(void)
  2289. 580:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** {
  2290. 581:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Check PWR exti flag */
  2291. 582:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** if(__HAL_PWR_PVD_EXTI_GET_FLAG() != RESET)
  2292. 583:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** {
  2293. 584:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* PWR PVD interrupt user callback */
  2294. 585:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** HAL_PWR_PVDCallback();
  2295. 586:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  2296. 587:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Clear PWR Exti pending bit */
  2297. 588:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** __HAL_PWR_PVD_EXTI_CLEAR_FLAG();
  2298. 589:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** }
  2299. 590:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** }
  2300. 591:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  2301. 592:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /**
  2302. 593:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @brief PWR PVD interrupt callback
  2303. 594:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** * @retval None
  2304. 595:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** */
  2305. 596:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** __weak void HAL_PWR_PVDCallback(void)
  2306. 597:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** {
  2307. 695 .loc 1 597 1 is_stmt 1 view -0
  2308. 696 .cfi_startproc
  2309. 697 @ args = 0, pretend = 0, frame = 0
  2310. 698 @ frame_needed = 0, uses_anonymous_args = 0
  2311. 699 @ link register save eliminated.
  2312. 598:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* NOTE : This function Should not be modified, when the callback is needed,
  2313. 599:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** the HAL_PWR_PVDCallback could be implemented in the user file
  2314. 600:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** */
  2315. 601:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** }
  2316. 700 .loc 1 601 1 view .LVU115
  2317. 701 0000 7047 bx lr
  2318. 702 .cfi_endproc
  2319. 703 .LFE82:
  2320. 705 .section .text.HAL_PWR_PVD_IRQHandler,"ax",%progbits
  2321. ARM GAS /tmp/ccn8JwAK.s page 41
  2322. 706 .align 1
  2323. 707 .global HAL_PWR_PVD_IRQHandler
  2324. 708 .syntax unified
  2325. 709 .thumb
  2326. 710 .thumb_func
  2327. 712 HAL_PWR_PVD_IRQHandler:
  2328. 713 .LFB81:
  2329. 580:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** /* Check PWR exti flag */
  2330. 714 .loc 1 580 1 view -0
  2331. 715 .cfi_startproc
  2332. 716 @ args = 0, pretend = 0, frame = 0
  2333. 717 @ frame_needed = 0, uses_anonymous_args = 0
  2334. 718 0000 08B5 push {r3, lr}
  2335. 719 .LCFI1:
  2336. 720 .cfi_def_cfa_offset 8
  2337. 721 .cfi_offset 3, -8
  2338. 722 .cfi_offset 14, -4
  2339. 582:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** {
  2340. 723 .loc 1 582 3 view .LVU117
  2341. 582:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** {
  2342. 724 .loc 1 582 6 is_stmt 0 view .LVU118
  2343. 725 0002 064B ldr r3, .L62
  2344. 726 0004 5B69 ldr r3, [r3, #20]
  2345. 582:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** {
  2346. 727 .loc 1 582 5 view .LVU119
  2347. 728 0006 13F4803F tst r3, #65536
  2348. 729 000a 00D1 bne .L61
  2349. 730 .L58:
  2350. 590:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  2351. 731 .loc 1 590 1 view .LVU120
  2352. 732 000c 08BD pop {r3, pc}
  2353. 733 .L61:
  2354. 585:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  2355. 734 .loc 1 585 5 is_stmt 1 view .LVU121
  2356. 735 000e FFF7FEFF bl HAL_PWR_PVDCallback
  2357. 736 .LVL11:
  2358. 588:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c **** }
  2359. 737 .loc 1 588 5 view .LVU122
  2360. 738 0012 024B ldr r3, .L62
  2361. 739 0014 4FF48032 mov r2, #65536
  2362. 740 0018 5A61 str r2, [r3, #20]
  2363. 590:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c ****
  2364. 741 .loc 1 590 1 is_stmt 0 view .LVU123
  2365. 742 001a F7E7 b .L58
  2366. 743 .L63:
  2367. 744 .align 2
  2368. 745 .L62:
  2369. 746 001c 00040140 .word 1073808384
  2370. 747 .cfi_endproc
  2371. 748 .LFE81:
  2372. 750 .text
  2373. 751 .Letext0:
  2374. 752 .file 3 "/opt/gcc-arm/arm-none-eabi/include/machine/_default_types.h"
  2375. 753 .file 4 "/opt/gcc-arm/arm-none-eabi/include/sys/_stdint.h"
  2376. 754 .file 5 "Drivers/CMSIS/Include/core_cm3.h"
  2377. 755 .file 6 "Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h"
  2378. 756 .file 7 "Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h"
  2379. ARM GAS /tmp/ccn8JwAK.s page 42
  2380. 757 .file 8 "Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h"
  2381. ARM GAS /tmp/ccn8JwAK.s page 43
  2382. DEFINED SYMBOLS
  2383. *ABS*:0000000000000000 stm32f1xx_hal_pwr.c
  2384. /tmp/ccn8JwAK.s:18 .text.PWR_OverloadWfe:0000000000000000 $t
  2385. /tmp/ccn8JwAK.s:23 .text.PWR_OverloadWfe:0000000000000000 PWR_OverloadWfe
  2386. /tmp/ccn8JwAK.s:48 .text.HAL_PWR_DeInit:0000000000000000 $t
  2387. /tmp/ccn8JwAK.s:54 .text.HAL_PWR_DeInit:0000000000000000 HAL_PWR_DeInit
  2388. /tmp/ccn8JwAK.s:75 .text.HAL_PWR_DeInit:0000000000000014 $d
  2389. /tmp/ccn8JwAK.s:80 .text.HAL_PWR_EnableBkUpAccess:0000000000000000 $t
  2390. /tmp/ccn8JwAK.s:86 .text.HAL_PWR_EnableBkUpAccess:0000000000000000 HAL_PWR_EnableBkUpAccess
  2391. /tmp/ccn8JwAK.s:103 .text.HAL_PWR_EnableBkUpAccess:0000000000000008 $d
  2392. /tmp/ccn8JwAK.s:108 .text.HAL_PWR_DisableBkUpAccess:0000000000000000 $t
  2393. /tmp/ccn8JwAK.s:114 .text.HAL_PWR_DisableBkUpAccess:0000000000000000 HAL_PWR_DisableBkUpAccess
  2394. /tmp/ccn8JwAK.s:131 .text.HAL_PWR_DisableBkUpAccess:0000000000000008 $d
  2395. /tmp/ccn8JwAK.s:136 .text.HAL_PWR_ConfigPVD:0000000000000000 $t
  2396. /tmp/ccn8JwAK.s:142 .text.HAL_PWR_ConfigPVD:0000000000000000 HAL_PWR_ConfigPVD
  2397. /tmp/ccn8JwAK.s:229 .text.HAL_PWR_ConfigPVD:000000000000007c $d
  2398. /tmp/ccn8JwAK.s:235 .text.HAL_PWR_EnablePVD:0000000000000000 $t
  2399. /tmp/ccn8JwAK.s:241 .text.HAL_PWR_EnablePVD:0000000000000000 HAL_PWR_EnablePVD
  2400. /tmp/ccn8JwAK.s:258 .text.HAL_PWR_EnablePVD:0000000000000008 $d
  2401. /tmp/ccn8JwAK.s:263 .text.HAL_PWR_DisablePVD:0000000000000000 $t
  2402. /tmp/ccn8JwAK.s:269 .text.HAL_PWR_DisablePVD:0000000000000000 HAL_PWR_DisablePVD
  2403. /tmp/ccn8JwAK.s:286 .text.HAL_PWR_DisablePVD:0000000000000008 $d
  2404. /tmp/ccn8JwAK.s:291 .text.HAL_PWR_EnableWakeUpPin:0000000000000000 $t
  2405. /tmp/ccn8JwAK.s:297 .text.HAL_PWR_EnableWakeUpPin:0000000000000000 HAL_PWR_EnableWakeUpPin
  2406. /tmp/ccn8JwAK.s:338 .text.HAL_PWR_EnableWakeUpPin:0000000000000014 $d
  2407. /tmp/ccn8JwAK.s:343 .text.HAL_PWR_DisableWakeUpPin:0000000000000000 $t
  2408. /tmp/ccn8JwAK.s:349 .text.HAL_PWR_DisableWakeUpPin:0000000000000000 HAL_PWR_DisableWakeUpPin
  2409. /tmp/ccn8JwAK.s:389 .text.HAL_PWR_DisableWakeUpPin:0000000000000014 $d
  2410. /tmp/ccn8JwAK.s:394 .text.HAL_PWR_EnterSLEEPMode:0000000000000000 $t
  2411. /tmp/ccn8JwAK.s:400 .text.HAL_PWR_EnterSLEEPMode:0000000000000000 HAL_PWR_EnterSLEEPMode
  2412. /tmp/ccn8JwAK.s:448 .text.HAL_PWR_EnterSLEEPMode:000000000000001c $d
  2413. /tmp/ccn8JwAK.s:453 .text.HAL_PWR_EnterSTOPMode:0000000000000000 $t
  2414. /tmp/ccn8JwAK.s:459 .text.HAL_PWR_EnterSTOPMode:0000000000000000 HAL_PWR_EnterSTOPMode
  2415. /tmp/ccn8JwAK.s:528 .text.HAL_PWR_EnterSTOPMode:0000000000000040 $d
  2416. /tmp/ccn8JwAK.s:534 .text.HAL_PWR_EnterSTANDBYMode:0000000000000000 $t
  2417. /tmp/ccn8JwAK.s:540 .text.HAL_PWR_EnterSTANDBYMode:0000000000000000 HAL_PWR_EnterSTANDBYMode
  2418. /tmp/ccn8JwAK.s:569 .text.HAL_PWR_EnterSTANDBYMode:0000000000000018 $d
  2419. /tmp/ccn8JwAK.s:575 .text.HAL_PWR_EnableSleepOnExit:0000000000000000 $t
  2420. /tmp/ccn8JwAK.s:581 .text.HAL_PWR_EnableSleepOnExit:0000000000000000 HAL_PWR_EnableSleepOnExit
  2421. /tmp/ccn8JwAK.s:598 .text.HAL_PWR_EnableSleepOnExit:000000000000000c $d
  2422. /tmp/ccn8JwAK.s:603 .text.HAL_PWR_DisableSleepOnExit:0000000000000000 $t
  2423. /tmp/ccn8JwAK.s:609 .text.HAL_PWR_DisableSleepOnExit:0000000000000000 HAL_PWR_DisableSleepOnExit
  2424. /tmp/ccn8JwAK.s:626 .text.HAL_PWR_DisableSleepOnExit:000000000000000c $d
  2425. /tmp/ccn8JwAK.s:631 .text.HAL_PWR_EnableSEVOnPend:0000000000000000 $t
  2426. /tmp/ccn8JwAK.s:637 .text.HAL_PWR_EnableSEVOnPend:0000000000000000 HAL_PWR_EnableSEVOnPend
  2427. /tmp/ccn8JwAK.s:654 .text.HAL_PWR_EnableSEVOnPend:000000000000000c $d
  2428. /tmp/ccn8JwAK.s:659 .text.HAL_PWR_DisableSEVOnPend:0000000000000000 $t
  2429. /tmp/ccn8JwAK.s:665 .text.HAL_PWR_DisableSEVOnPend:0000000000000000 HAL_PWR_DisableSEVOnPend
  2430. /tmp/ccn8JwAK.s:682 .text.HAL_PWR_DisableSEVOnPend:000000000000000c $d
  2431. /tmp/ccn8JwAK.s:687 .text.HAL_PWR_PVDCallback:0000000000000000 $t
  2432. /tmp/ccn8JwAK.s:693 .text.HAL_PWR_PVDCallback:0000000000000000 HAL_PWR_PVDCallback
  2433. /tmp/ccn8JwAK.s:706 .text.HAL_PWR_PVD_IRQHandler:0000000000000000 $t
  2434. /tmp/ccn8JwAK.s:712 .text.HAL_PWR_PVD_IRQHandler:0000000000000000 HAL_PWR_PVD_IRQHandler
  2435. /tmp/ccn8JwAK.s:746 .text.HAL_PWR_PVD_IRQHandler:000000000000001c $d
  2436. NO UNDEFINED SYMBOLS