stm32f3xx_hal_uart_ex.lst 223 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664
  1. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 1
  2. 1 .cpu cortex-m4
  3. 2 .arch armv7e-m
  4. 3 .fpu fpv4-sp-d16
  5. 4 .eabi_attribute 27, 1
  6. 5 .eabi_attribute 28, 1
  7. 6 .eabi_attribute 20, 1
  8. 7 .eabi_attribute 21, 1
  9. 8 .eabi_attribute 23, 3
  10. 9 .eabi_attribute 24, 1
  11. 10 .eabi_attribute 25, 1
  12. 11 .eabi_attribute 26, 1
  13. 12 .eabi_attribute 30, 6
  14. 13 .eabi_attribute 34, 1
  15. 14 .eabi_attribute 18, 4
  16. 15 .file "stm32f3xx_hal_uart_ex.c"
  17. 16 .text
  18. 17 .Ltext0:
  19. 18 .cfi_sections .debug_frame
  20. 19 .section .rodata
  21. 20 .align 2
  22. 21 .LC0:
  23. 22 0000 44726976 .ascii "Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart"
  24. 22 6572732F
  25. 22 53544D33
  26. 22 32463378
  27. 22 785F4841
  28. 23 0033 5F65782E .ascii "_ex.c\000"
  29. 23 6300
  30. 24 .section .text.HAL_RS485Ex_Init,"ax",%progbits
  31. 25 .align 1
  32. 26 .global HAL_RS485Ex_Init
  33. 27 .syntax unified
  34. 28 .thumb
  35. 29 .thumb_func
  36. 31 HAL_RS485Ex_Init:
  37. 32 .LFB130:
  38. 33 .file 1 "Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c"
  39. 1:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /**
  40. 2:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** ******************************************************************************
  41. 3:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @file stm32f3xx_hal_uart_ex.c
  42. 4:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @author MCD Application Team
  43. 5:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @brief Extended UART HAL module driver.
  44. 6:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * This file provides firmware functions to manage the following extended
  45. 7:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * functionalities of the Universal Asynchronous Receiver Transmitter Peripheral (UART).
  46. 8:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * + Initialization and de-initialization functions
  47. 9:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * + Peripheral Control functions
  48. 10:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** *
  49. 11:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** *
  50. 12:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** ******************************************************************************
  51. 13:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @attention
  52. 14:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** *
  53. 15:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * Copyright (c) 2016 STMicroelectronics.
  54. 16:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * All rights reserved.
  55. 17:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** *
  56. 18:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * This software is licensed under terms that can be found in the LICENSE file
  57. 19:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * in the root directory of this software component.
  58. 20:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * If no LICENSE file comes with this software, it is provided AS-IS.
  59. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 2
  60. 21:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** *
  61. 22:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** ******************************************************************************
  62. 23:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** @verbatim
  63. 24:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** ==============================================================================
  64. 25:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** ##### UART peripheral extended features #####
  65. 26:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** ==============================================================================
  66. 27:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  67. 28:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (#) Declare a UART_HandleTypeDef handle structure.
  68. 29:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  69. 30:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (#) For the UART RS485 Driver Enable mode, initialize the UART registers
  70. 31:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** by calling the HAL_RS485Ex_Init() API.
  71. 32:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  72. 33:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** @endverbatim
  73. 34:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** ******************************************************************************
  74. 35:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** */
  75. 36:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  76. 37:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Includes ------------------------------------------------------------------*/
  77. 38:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** #include "stm32f3xx_hal.h"
  78. 39:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  79. 40:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /** @addtogroup STM32F3xx_HAL_Driver
  80. 41:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @{
  81. 42:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** */
  82. 43:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  83. 44:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /** @defgroup UARTEx UARTEx
  84. 45:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @brief UART Extended HAL module driver
  85. 46:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @{
  86. 47:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** */
  87. 48:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  88. 49:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** #ifdef HAL_UART_MODULE_ENABLED
  89. 50:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  90. 51:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Private typedef -----------------------------------------------------------*/
  91. 52:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Private define ------------------------------------------------------------*/
  92. 53:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  93. 54:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Private macros ------------------------------------------------------------*/
  94. 55:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Private variables ---------------------------------------------------------*/
  95. 56:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Private function prototypes -----------------------------------------------*/
  96. 57:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /** @defgroup UARTEx_Private_Functions UARTEx Private Functions
  97. 58:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @{
  98. 59:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** */
  99. 60:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** static void UARTEx_Wakeup_AddressConfig(UART_HandleTypeDef *huart, UART_WakeUpTypeDef WakeUpSelecti
  100. 61:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /**
  101. 62:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @}
  102. 63:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** */
  103. 64:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  104. 65:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Exported functions --------------------------------------------------------*/
  105. 66:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  106. 67:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /** @defgroup UARTEx_Exported_Functions UARTEx Exported Functions
  107. 68:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @{
  108. 69:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** */
  109. 70:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  110. 71:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /** @defgroup UARTEx_Exported_Functions_Group1 Initialization and de-initialization functions
  111. 72:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @brief Extended Initialization and Configuration Functions
  112. 73:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** *
  113. 74:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** @verbatim
  114. 75:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** ===============================================================================
  115. 76:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** ##### Initialization and Configuration functions #####
  116. 77:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** ===============================================================================
  117. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 3
  118. 78:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** [..]
  119. 79:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** This subsection provides a set of functions allowing to initialize the USARTx or the UARTy
  120. 80:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** in asynchronous mode.
  121. 81:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (+) For the asynchronous mode the parameters below can be configured:
  122. 82:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (++) Baud Rate
  123. 83:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (++) Word Length
  124. 84:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (++) Stop Bit
  125. 85:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (++) Parity: If the parity is enabled, then the MSB bit of the data written
  126. 86:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** in the data register is transmitted but is changed by the parity bit.
  127. 87:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (++) Hardware flow control
  128. 88:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (++) Receiver/transmitter modes
  129. 89:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (++) Over Sampling Method
  130. 90:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (++) One-Bit Sampling Method
  131. 91:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (+) For the asynchronous mode, the following advanced features can be configured as well:
  132. 92:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (++) TX and/or RX pin level inversion
  133. 93:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (++) data logical level inversion
  134. 94:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (++) RX and TX pins swap
  135. 95:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (++) RX overrun detection disabling
  136. 96:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (++) DMA disabling on RX error
  137. 97:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (++) MSB first on communication line
  138. 98:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (++) auto Baud rate detection
  139. 99:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** [..]
  140. 100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** The HAL_RS485Ex_Init() API follows the UART RS485 mode configuration
  141. 101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** procedures (details for the procedures are available in reference manual).
  142. 102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  143. 103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** @endverbatim
  144. 104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  145. 105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** Depending on the frame length defined by the M1 and M0 bits (7-bit,
  146. 106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** 8-bit or 9-bit), the possible UART formats are listed in the
  147. 107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** following table.
  148. 108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  149. 109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** Table 1. UART frame format.
  150. 110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** +-----------------------------------------------------------------------+
  151. 111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** | M1 bit | M0 bit | PCE bit | UART frame |
  152. 112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** |---------|---------|-----------|---------------------------------------|
  153. 113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** | 0 | 0 | 0 | | SB | 8 bit data | STB | |
  154. 114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** |---------|---------|-----------|---------------------------------------|
  155. 115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** | 0 | 0 | 1 | | SB | 7 bit data | PB | STB | |
  156. 116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** |---------|---------|-----------|---------------------------------------|
  157. 117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** | 0 | 1 | 0 | | SB | 9 bit data | STB | |
  158. 118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** |---------|---------|-----------|---------------------------------------|
  159. 119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** | 0 | 1 | 1 | | SB | 8 bit data | PB | STB | |
  160. 120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** |---------|---------|-----------|---------------------------------------|
  161. 121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** | 1 | 0 | 0 | | SB | 7 bit data | STB | |
  162. 122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** |---------|---------|-----------|---------------------------------------|
  163. 123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** | 1 | 0 | 1 | | SB | 6 bit data | PB | STB | |
  164. 124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** +-----------------------------------------------------------------------+
  165. 125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  166. 126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @{
  167. 127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** */
  168. 128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  169. 129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /**
  170. 130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @brief Initialize the RS485 Driver enable feature according to the specified
  171. 131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * parameters in the UART_InitTypeDef and creates the associated handle.
  172. 132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @param huart UART handle.
  173. 133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @param Polarity Select the driver enable polarity.
  174. 134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * This parameter can be one of the following values:
  175. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 4
  176. 135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @arg @ref UART_DE_POLARITY_HIGH DE signal is active high
  177. 136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @arg @ref UART_DE_POLARITY_LOW DE signal is active low
  178. 137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @param AssertionTime Driver Enable assertion time:
  179. 138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * 5-bit value defining the time between the activation of the DE (Driver Enable)
  180. 139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * signal and the beginning of the start bit. It is expressed in sample time
  181. 140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * units (1/8 or 1/16 bit time, depending on the oversampling rate)
  182. 141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @param DeassertionTime Driver Enable deassertion time:
  183. 142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * 5-bit value defining the time between the end of the last stop bit, in a
  184. 143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * transmitted message, and the de-activation of the DE (Driver Enable) signal.
  185. 144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * It is expressed in sample time units (1/8 or 1/16 bit time, depending on the
  186. 145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * oversampling rate).
  187. 146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @retval HAL status
  188. 147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** */
  189. 148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** HAL_StatusTypeDef HAL_RS485Ex_Init(UART_HandleTypeDef *huart, uint32_t Polarity, uint32_t Assertion
  190. 149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** uint32_t DeassertionTime)
  191. 150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  192. 34 .loc 1 150 1
  193. 35 .cfi_startproc
  194. 36 @ args = 0, pretend = 0, frame = 24
  195. 37 @ frame_needed = 1, uses_anonymous_args = 0
  196. 38 0000 80B5 push {r7, lr}
  197. 39 .LCFI0:
  198. 40 .cfi_def_cfa_offset 8
  199. 41 .cfi_offset 7, -8
  200. 42 .cfi_offset 14, -4
  201. 43 0002 86B0 sub sp, sp, #24
  202. 44 .LCFI1:
  203. 45 .cfi_def_cfa_offset 32
  204. 46 0004 00AF add r7, sp, #0
  205. 47 .LCFI2:
  206. 48 .cfi_def_cfa_register 7
  207. 49 0006 F860 str r0, [r7, #12]
  208. 50 0008 B960 str r1, [r7, #8]
  209. 51 000a 7A60 str r2, [r7, #4]
  210. 52 000c 3B60 str r3, [r7]
  211. 151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** uint32_t temp;
  212. 152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  213. 153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Check the UART handle allocation */
  214. 154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** if (huart == NULL)
  215. 53 .loc 1 154 6
  216. 54 000e FB68 ldr r3, [r7, #12]
  217. 55 0010 002B cmp r3, #0
  218. 56 0012 01D1 bne .L2
  219. 155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  220. 156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** return HAL_ERROR;
  221. 57 .loc 1 156 12
  222. 58 0014 0123 movs r3, #1
  223. 59 0016 82E0 b .L3
  224. 60 .L2:
  225. 157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  226. 158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Check the Driver Enable UART instance */
  227. 159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** assert_param(IS_UART_DRIVER_ENABLE_INSTANCE(huart->Instance));
  228. 61 .loc 1 159 3
  229. 62 0018 FB68 ldr r3, [r7, #12]
  230. 63 001a 1B68 ldr r3, [r3]
  231. 64 001c 424A ldr r2, .L11
  232. 65 001e 9342 cmp r3, r2
  233. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 5
  234. 66 0020 0DD0 beq .L4
  235. 67 .loc 1 159 3 is_stmt 0 discriminator 1
  236. 68 0022 FB68 ldr r3, [r7, #12]
  237. 69 0024 1B68 ldr r3, [r3]
  238. 70 0026 414A ldr r2, .L11+4
  239. 71 0028 9342 cmp r3, r2
  240. 72 002a 08D0 beq .L4
  241. 73 .loc 1 159 3 discriminator 2
  242. 74 002c FB68 ldr r3, [r7, #12]
  243. 75 002e 1B68 ldr r3, [r3]
  244. 76 0030 3F4A ldr r2, .L11+8
  245. 77 0032 9342 cmp r3, r2
  246. 78 0034 03D0 beq .L4
  247. 79 .loc 1 159 3 discriminator 3
  248. 80 0036 9F21 movs r1, #159
  249. 81 0038 3E48 ldr r0, .L11+12
  250. 82 003a FFF7FEFF bl assert_failed
  251. 83 .L4:
  252. 160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  253. 161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Check the Driver Enable polarity */
  254. 162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** assert_param(IS_UART_DE_POLARITY(Polarity));
  255. 84 .loc 1 162 3 is_stmt 1
  256. 85 003e BB68 ldr r3, [r7, #8]
  257. 86 0040 002B cmp r3, #0
  258. 87 0042 07D0 beq .L5
  259. 88 .loc 1 162 3 is_stmt 0 discriminator 1
  260. 89 0044 BB68 ldr r3, [r7, #8]
  261. 90 0046 B3F5004F cmp r3, #32768
  262. 91 004a 03D0 beq .L5
  263. 92 .loc 1 162 3 discriminator 2
  264. 93 004c A221 movs r1, #162
  265. 94 004e 3948 ldr r0, .L11+12
  266. 95 0050 FFF7FEFF bl assert_failed
  267. 96 .L5:
  268. 163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  269. 164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Check the Driver Enable assertion time */
  270. 165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** assert_param(IS_UART_ASSERTIONTIME(AssertionTime));
  271. 97 .loc 1 165 3 is_stmt 1
  272. 98 0054 7B68 ldr r3, [r7, #4]
  273. 99 0056 1F2B cmp r3, #31
  274. 100 0058 03D9 bls .L6
  275. 101 .loc 1 165 3 is_stmt 0 discriminator 1
  276. 102 005a A521 movs r1, #165
  277. 103 005c 3548 ldr r0, .L11+12
  278. 104 005e FFF7FEFF bl assert_failed
  279. 105 .L6:
  280. 166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  281. 167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Check the Driver Enable deassertion time */
  282. 168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** assert_param(IS_UART_DEASSERTIONTIME(DeassertionTime));
  283. 106 .loc 1 168 3 is_stmt 1
  284. 107 0062 3B68 ldr r3, [r7]
  285. 108 0064 1F2B cmp r3, #31
  286. 109 0066 03D9 bls .L7
  287. 110 .loc 1 168 3 is_stmt 0 discriminator 1
  288. 111 0068 A821 movs r1, #168
  289. 112 006a 3248 ldr r0, .L11+12
  290. 113 006c FFF7FEFF bl assert_failed
  291. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 6
  292. 114 .L7:
  293. 169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  294. 170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** if (huart->gState == HAL_UART_STATE_RESET)
  295. 115 .loc 1 170 12 is_stmt 1
  296. 116 0070 FB68 ldr r3, [r7, #12]
  297. 117 0072 DB6F ldr r3, [r3, #124]
  298. 118 .loc 1 170 6
  299. 119 0074 002B cmp r3, #0
  300. 120 0076 06D1 bne .L8
  301. 171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  302. 172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Allocate lock resource and initialize it */
  303. 173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** huart->Lock = HAL_UNLOCKED;
  304. 121 .loc 1 173 17
  305. 122 0078 FB68 ldr r3, [r7, #12]
  306. 123 007a 0022 movs r2, #0
  307. 124 007c 83F87820 strb r2, [r3, #120]
  308. 174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  309. 175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
  310. 176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** UART_InitCallbacksToDefault(huart);
  311. 177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  312. 178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** if (huart->MspInitCallback == NULL)
  313. 179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  314. 180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** huart->MspInitCallback = HAL_UART_MspInit;
  315. 181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  316. 182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  317. 183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Init the low level hardware */
  318. 184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** huart->MspInitCallback(huart);
  319. 185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** #else
  320. 186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX */
  321. 187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** HAL_UART_MspInit(huart);
  322. 125 .loc 1 187 5
  323. 126 0080 F868 ldr r0, [r7, #12]
  324. 127 0082 FFF7FEFF bl HAL_UART_MspInit
  325. 128 .L8:
  326. 188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */
  327. 189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  328. 190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  329. 191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** huart->gState = HAL_UART_STATE_BUSY;
  330. 129 .loc 1 191 17
  331. 130 0086 FB68 ldr r3, [r7, #12]
  332. 131 0088 2422 movs r2, #36
  333. 132 008a DA67 str r2, [r3, #124]
  334. 192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  335. 193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Disable the Peripheral */
  336. 194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** __HAL_UART_DISABLE(huart);
  337. 133 .loc 1 194 3
  338. 134 008c FB68 ldr r3, [r7, #12]
  339. 135 008e 1B68 ldr r3, [r3]
  340. 136 0090 1A68 ldr r2, [r3]
  341. 137 0092 FB68 ldr r3, [r7, #12]
  342. 138 0094 1B68 ldr r3, [r3]
  343. 139 0096 22F00102 bic r2, r2, #1
  344. 140 009a 1A60 str r2, [r3]
  345. 195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  346. 196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Perform advanced settings configuration */
  347. 197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* For some items, configuration requires to be done prior TE and RE bits are set */
  348. 198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT)
  349. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 7
  350. 141 .loc 1 198 26
  351. 142 009c FB68 ldr r3, [r7, #12]
  352. 143 009e 5B6A ldr r3, [r3, #36]
  353. 144 .loc 1 198 6
  354. 145 00a0 002B cmp r3, #0
  355. 146 00a2 02D0 beq .L9
  356. 199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  357. 200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** UART_AdvFeatureConfig(huart);
  358. 147 .loc 1 200 5
  359. 148 00a4 F868 ldr r0, [r7, #12]
  360. 149 00a6 FFF7FEFF bl UART_AdvFeatureConfig
  361. 150 .L9:
  362. 201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  363. 202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  364. 203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Set the UART Communication parameters */
  365. 204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** if (UART_SetConfig(huart) == HAL_ERROR)
  366. 151 .loc 1 204 7
  367. 152 00aa F868 ldr r0, [r7, #12]
  368. 153 00ac FFF7FEFF bl UART_SetConfig
  369. 154 00b0 0346 mov r3, r0
  370. 155 .loc 1 204 6
  371. 156 00b2 012B cmp r3, #1
  372. 157 00b4 01D1 bne .L10
  373. 205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  374. 206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** return HAL_ERROR;
  375. 158 .loc 1 206 12
  376. 159 00b6 0123 movs r3, #1
  377. 160 00b8 31E0 b .L3
  378. 161 .L10:
  379. 207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  380. 208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  381. 209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Enable the Driver Enable mode by setting the DEM bit in the CR3 register */
  382. 210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** SET_BIT(huart->Instance->CR3, USART_CR3_DEM);
  383. 162 .loc 1 210 3
  384. 163 00ba FB68 ldr r3, [r7, #12]
  385. 164 00bc 1B68 ldr r3, [r3]
  386. 165 00be 9A68 ldr r2, [r3, #8]
  387. 166 00c0 FB68 ldr r3, [r7, #12]
  388. 167 00c2 1B68 ldr r3, [r3]
  389. 168 00c4 42F48042 orr r2, r2, #16384
  390. 169 00c8 9A60 str r2, [r3, #8]
  391. 211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  392. 212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Set the Driver Enable polarity */
  393. 213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** MODIFY_REG(huart->Instance->CR3, USART_CR3_DEP, Polarity);
  394. 170 .loc 1 213 3
  395. 171 00ca FB68 ldr r3, [r7, #12]
  396. 172 00cc 1B68 ldr r3, [r3]
  397. 173 00ce 9B68 ldr r3, [r3, #8]
  398. 174 00d0 23F40041 bic r1, r3, #32768
  399. 175 00d4 FB68 ldr r3, [r7, #12]
  400. 176 00d6 1B68 ldr r3, [r3]
  401. 177 00d8 BA68 ldr r2, [r7, #8]
  402. 178 00da 0A43 orrs r2, r2, r1
  403. 179 00dc 9A60 str r2, [r3, #8]
  404. 214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  405. 215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Set the Driver Enable assertion and deassertion times */
  406. 216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** temp = (AssertionTime << UART_CR1_DEAT_ADDRESS_LSB_POS);
  407. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 8
  408. 180 .loc 1 216 8
  409. 181 00de 7B68 ldr r3, [r7, #4]
  410. 182 00e0 5B05 lsls r3, r3, #21
  411. 183 00e2 7B61 str r3, [r7, #20]
  412. 217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** temp |= (DeassertionTime << UART_CR1_DEDT_ADDRESS_LSB_POS);
  413. 184 .loc 1 217 28
  414. 185 00e4 3B68 ldr r3, [r7]
  415. 186 00e6 1B04 lsls r3, r3, #16
  416. 187 .loc 1 217 8
  417. 188 00e8 7A69 ldr r2, [r7, #20]
  418. 189 00ea 1343 orrs r3, r3, r2
  419. 190 00ec 7B61 str r3, [r7, #20]
  420. 218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** MODIFY_REG(huart->Instance->CR1, (USART_CR1_DEDT | USART_CR1_DEAT), temp);
  421. 191 .loc 1 218 3
  422. 192 00ee FB68 ldr r3, [r7, #12]
  423. 193 00f0 1B68 ldr r3, [r3]
  424. 194 00f2 1B68 ldr r3, [r3]
  425. 195 00f4 23F07F73 bic r3, r3, #66846720
  426. 196 00f8 23F44033 bic r3, r3, #196608
  427. 197 00fc FA68 ldr r2, [r7, #12]
  428. 198 00fe 1268 ldr r2, [r2]
  429. 199 0100 7969 ldr r1, [r7, #20]
  430. 200 0102 0B43 orrs r3, r3, r1
  431. 201 0104 1360 str r3, [r2]
  432. 219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  433. 220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Enable the Peripheral */
  434. 221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** __HAL_UART_ENABLE(huart);
  435. 202 .loc 1 221 3
  436. 203 0106 FB68 ldr r3, [r7, #12]
  437. 204 0108 1B68 ldr r3, [r3]
  438. 205 010a 1A68 ldr r2, [r3]
  439. 206 010c FB68 ldr r3, [r7, #12]
  440. 207 010e 1B68 ldr r3, [r3]
  441. 208 0110 42F00102 orr r2, r2, #1
  442. 209 0114 1A60 str r2, [r3]
  443. 222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  444. 223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* TEACK and/or REACK to check before moving huart->gState and huart->RxState to Ready */
  445. 224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** return (UART_CheckIdleState(huart));
  446. 210 .loc 1 224 11
  447. 211 0116 F868 ldr r0, [r7, #12]
  448. 212 0118 FFF7FEFF bl UART_CheckIdleState
  449. 213 011c 0346 mov r3, r0
  450. 214 .L3:
  451. 225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  452. 215 .loc 1 225 1
  453. 216 011e 1846 mov r0, r3
  454. 217 0120 1837 adds r7, r7, #24
  455. 218 .LCFI3:
  456. 219 .cfi_def_cfa_offset 8
  457. 220 0122 BD46 mov sp, r7
  458. 221 .LCFI4:
  459. 222 .cfi_def_cfa_register 13
  460. 223 @ sp needed
  461. 224 0124 80BD pop {r7, pc}
  462. 225 .L12:
  463. 226 0126 00BF .align 2
  464. 227 .L11:
  465. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 9
  466. 228 0128 00380140 .word 1073821696
  467. 229 012c 00440040 .word 1073759232
  468. 230 0130 00480040 .word 1073760256
  469. 231 0134 00000000 .word .LC0
  470. 232 .cfi_endproc
  471. 233 .LFE130:
  472. 235 .section .text.HAL_UARTEx_WakeupCallback,"ax",%progbits
  473. 236 .align 1
  474. 237 .weak HAL_UARTEx_WakeupCallback
  475. 238 .syntax unified
  476. 239 .thumb
  477. 240 .thumb_func
  478. 242 HAL_UARTEx_WakeupCallback:
  479. 243 .LFB131:
  480. 226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  481. 227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /**
  482. 228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @}
  483. 229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** */
  484. 230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  485. 231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /** @defgroup UARTEx_Exported_Functions_Group2 IO operation functions
  486. 232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @brief Extended functions
  487. 233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** *
  488. 234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** @verbatim
  489. 235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** ===============================================================================
  490. 236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** ##### IO operation functions #####
  491. 237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** ===============================================================================
  492. 238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** This subsection provides a set of Wakeup and FIFO mode related callback functions.
  493. 239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  494. 240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (#) Wakeup from Stop mode Callback:
  495. 241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (+) HAL_UARTEx_WakeupCallback()
  496. 242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  497. 243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** @endverbatim
  498. 244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @{
  499. 245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** */
  500. 246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  501. 247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /**
  502. 248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @brief UART wakeup from Stop mode callback.
  503. 249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @param huart UART handle.
  504. 250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @retval None
  505. 251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** */
  506. 252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** __weak void HAL_UARTEx_WakeupCallback(UART_HandleTypeDef *huart)
  507. 253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  508. 244 .loc 1 253 1
  509. 245 .cfi_startproc
  510. 246 @ args = 0, pretend = 0, frame = 8
  511. 247 @ frame_needed = 1, uses_anonymous_args = 0
  512. 248 @ link register save eliminated.
  513. 249 0000 80B4 push {r7}
  514. 250 .LCFI5:
  515. 251 .cfi_def_cfa_offset 4
  516. 252 .cfi_offset 7, -4
  517. 253 0002 83B0 sub sp, sp, #12
  518. 254 .LCFI6:
  519. 255 .cfi_def_cfa_offset 16
  520. 256 0004 00AF add r7, sp, #0
  521. 257 .LCFI7:
  522. 258 .cfi_def_cfa_register 7
  523. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 10
  524. 259 0006 7860 str r0, [r7, #4]
  525. 254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Prevent unused argument(s) compilation warning */
  526. 255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** UNUSED(huart);
  527. 256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  528. 257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* NOTE : This function should not be modified, when the callback is needed,
  529. 258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** the HAL_UARTEx_WakeupCallback can be implemented in the user file.
  530. 259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** */
  531. 260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  532. 260 .loc 1 260 1
  533. 261 0008 00BF nop
  534. 262 000a 0C37 adds r7, r7, #12
  535. 263 .LCFI8:
  536. 264 .cfi_def_cfa_offset 4
  537. 265 000c BD46 mov sp, r7
  538. 266 .LCFI9:
  539. 267 .cfi_def_cfa_register 13
  540. 268 @ sp needed
  541. 269 000e 5DF8047B ldr r7, [sp], #4
  542. 270 .LCFI10:
  543. 271 .cfi_restore 7
  544. 272 .cfi_def_cfa_offset 0
  545. 273 0012 7047 bx lr
  546. 274 .cfi_endproc
  547. 275 .LFE131:
  548. 277 .section .text.HAL_MultiProcessorEx_AddressLength_Set,"ax",%progbits
  549. 278 .align 1
  550. 279 .global HAL_MultiProcessorEx_AddressLength_Set
  551. 280 .syntax unified
  552. 281 .thumb
  553. 282 .thumb_func
  554. 284 HAL_MultiProcessorEx_AddressLength_Set:
  555. 285 .LFB132:
  556. 261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  557. 262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  558. 263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /**
  559. 264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @}
  560. 265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** */
  561. 266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  562. 267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /** @defgroup UARTEx_Exported_Functions_Group3 Peripheral Control functions
  563. 268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @brief Extended Peripheral Control functions
  564. 269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** *
  565. 270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** @verbatim
  566. 271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** ===============================================================================
  567. 272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** ##### Peripheral Control functions #####
  568. 273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** ===============================================================================
  569. 274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** [..] This section provides the following functions:
  570. 275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (+) HAL_MultiProcessorEx_AddressLength_Set() API optionally sets the UART node address
  571. 276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** detection length to more than 4 bits for multiprocessor address mark wake up.
  572. 277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (+) HAL_UARTEx_StopModeWakeUpSourceConfig() API defines the wake-up from stop mode
  573. 278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** trigger: address match, Start Bit detection or RXNE bit status.
  574. 279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (+) HAL_UARTEx_EnableStopMode() API enables the UART to wake up the MCU from stop mode
  575. 280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (+) HAL_UARTEx_DisableStopMode() API disables the above functionality
  576. 281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  577. 282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** [..] This subsection also provides a set of additional functions providing enhanced reception
  578. 283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** services to user. (For example, these functions allow application to handle use cases
  579. 284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** where number of data to be received is unknown).
  580. 285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  581. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 11
  582. 286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (#) Compared to standard reception services which only consider number of received
  583. 287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** data elements as reception completion criteria, these functions also consider additional ev
  584. 288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** as triggers for updating reception status to caller :
  585. 289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (+) Detection of inactivity period (RX line has not been active for a given period).
  586. 290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (++) RX inactivity detected by IDLE event, i.e. RX line has been in idle state (normally
  587. 291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** for 1 frame time, after last received byte.
  588. 292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (++) RX inactivity detected by RTO, i.e. line has been in idle state
  589. 293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** for a programmable time, after last received byte.
  590. 294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (+) Detection that a specific character has been received.
  591. 295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  592. 296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (#) There are two mode of transfer:
  593. 297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (+) Blocking mode: The reception is performed in polling mode, until either expected number
  594. 298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** or till IDLE event occurs. Reception is handled only during function execution.
  595. 299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** When function exits, no data reception could occur. HAL status and number of actually re
  596. 300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** are returned by function after finishing transfer.
  597. 301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (+) Non-Blocking mode: The reception is performed using Interrupts or DMA.
  598. 302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** These API's return the HAL status.
  599. 303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** The end of the data processing will be indicated through the
  600. 304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** dedicated UART IRQ when using Interrupt mode or the DMA IRQ when using DMA mode.
  601. 305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** The HAL_UARTEx_RxEventCallback() user callback will be executed during Receive process
  602. 306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** The HAL_UART_ErrorCallback()user callback will be executed when a reception error is det
  603. 307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  604. 308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (#) Blocking mode API:
  605. 309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (+) HAL_UARTEx_ReceiveToIdle()
  606. 310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  607. 311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (#) Non-Blocking mode API with Interrupt:
  608. 312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (+) HAL_UARTEx_ReceiveToIdle_IT()
  609. 313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  610. 314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (#) Non-Blocking mode API with DMA:
  611. 315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (+) HAL_UARTEx_ReceiveToIdle_DMA()
  612. 316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  613. 317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** @endverbatim
  614. 318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @{
  615. 319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** */
  616. 320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  617. 321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /**
  618. 322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @brief By default in multiprocessor mode, when the wake up method is set
  619. 323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * to address mark, the UART handles only 4-bit long addresses detection;
  620. 324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * this API allows to enable longer addresses detection (6-, 7- or 8-bit
  621. 325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * long).
  622. 326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @note Addresses detection lengths are: 6-bit address detection in 7-bit data mode,
  623. 327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * 7-bit address detection in 8-bit data mode, 8-bit address detection in 9-bit data mode.
  624. 328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @param huart UART handle.
  625. 329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @param AddressLength This parameter can be one of the following values:
  626. 330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @arg @ref UART_ADDRESS_DETECT_4B 4-bit long address
  627. 331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @arg @ref UART_ADDRESS_DETECT_7B 6-, 7- or 8-bit long address
  628. 332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @retval HAL status
  629. 333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** */
  630. 334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** HAL_StatusTypeDef HAL_MultiProcessorEx_AddressLength_Set(UART_HandleTypeDef *huart, uint32_t Addres
  631. 335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  632. 286 .loc 1 335 1
  633. 287 .cfi_startproc
  634. 288 @ args = 0, pretend = 0, frame = 8
  635. 289 @ frame_needed = 1, uses_anonymous_args = 0
  636. 290 0000 80B5 push {r7, lr}
  637. 291 .LCFI11:
  638. 292 .cfi_def_cfa_offset 8
  639. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 12
  640. 293 .cfi_offset 7, -8
  641. 294 .cfi_offset 14, -4
  642. 295 0002 82B0 sub sp, sp, #8
  643. 296 .LCFI12:
  644. 297 .cfi_def_cfa_offset 16
  645. 298 0004 00AF add r7, sp, #0
  646. 299 .LCFI13:
  647. 300 .cfi_def_cfa_register 7
  648. 301 0006 7860 str r0, [r7, #4]
  649. 302 0008 3960 str r1, [r7]
  650. 336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Check the UART handle allocation */
  651. 337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** if (huart == NULL)
  652. 303 .loc 1 337 6
  653. 304 000a 7B68 ldr r3, [r7, #4]
  654. 305 000c 002B cmp r3, #0
  655. 306 000e 01D1 bne .L15
  656. 338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  657. 339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** return HAL_ERROR;
  658. 307 .loc 1 339 12
  659. 308 0010 0123 movs r3, #1
  660. 309 0012 2BE0 b .L16
  661. 310 .L15:
  662. 340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  663. 341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  664. 342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Check the address length parameter */
  665. 343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** assert_param(IS_UART_ADDRESSLENGTH_DETECT(AddressLength));
  666. 311 .loc 1 343 3
  667. 312 0014 3B68 ldr r3, [r7]
  668. 313 0016 002B cmp r3, #0
  669. 314 0018 07D0 beq .L17
  670. 315 .loc 1 343 3 is_stmt 0 discriminator 1
  671. 316 001a 3B68 ldr r3, [r7]
  672. 317 001c 102B cmp r3, #16
  673. 318 001e 04D0 beq .L17
  674. 319 .loc 1 343 3 discriminator 2
  675. 320 0020 40F25711 movw r1, #343
  676. 321 0024 1348 ldr r0, .L18
  677. 322 0026 FFF7FEFF bl assert_failed
  678. 323 .L17:
  679. 344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  680. 345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** huart->gState = HAL_UART_STATE_BUSY;
  681. 324 .loc 1 345 17 is_stmt 1
  682. 325 002a 7B68 ldr r3, [r7, #4]
  683. 326 002c 2422 movs r2, #36
  684. 327 002e DA67 str r2, [r3, #124]
  685. 346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  686. 347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Disable the Peripheral */
  687. 348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** __HAL_UART_DISABLE(huart);
  688. 328 .loc 1 348 3
  689. 329 0030 7B68 ldr r3, [r7, #4]
  690. 330 0032 1B68 ldr r3, [r3]
  691. 331 0034 1A68 ldr r2, [r3]
  692. 332 0036 7B68 ldr r3, [r7, #4]
  693. 333 0038 1B68 ldr r3, [r3]
  694. 334 003a 22F00102 bic r2, r2, #1
  695. 335 003e 1A60 str r2, [r3]
  696. 349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  697. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 13
  698. 350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Set the address length */
  699. 351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_ADDM7, AddressLength);
  700. 336 .loc 1 351 3
  701. 337 0040 7B68 ldr r3, [r7, #4]
  702. 338 0042 1B68 ldr r3, [r3]
  703. 339 0044 5B68 ldr r3, [r3, #4]
  704. 340 0046 23F01001 bic r1, r3, #16
  705. 341 004a 7B68 ldr r3, [r7, #4]
  706. 342 004c 1B68 ldr r3, [r3]
  707. 343 004e 3A68 ldr r2, [r7]
  708. 344 0050 0A43 orrs r2, r2, r1
  709. 345 0052 5A60 str r2, [r3, #4]
  710. 352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  711. 353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Enable the Peripheral */
  712. 354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** __HAL_UART_ENABLE(huart);
  713. 346 .loc 1 354 3
  714. 347 0054 7B68 ldr r3, [r7, #4]
  715. 348 0056 1B68 ldr r3, [r3]
  716. 349 0058 1A68 ldr r2, [r3]
  717. 350 005a 7B68 ldr r3, [r7, #4]
  718. 351 005c 1B68 ldr r3, [r3]
  719. 352 005e 42F00102 orr r2, r2, #1
  720. 353 0062 1A60 str r2, [r3]
  721. 355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  722. 356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* TEACK and/or REACK to check before moving huart->gState to Ready */
  723. 357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** return (UART_CheckIdleState(huart));
  724. 354 .loc 1 357 11
  725. 355 0064 7868 ldr r0, [r7, #4]
  726. 356 0066 FFF7FEFF bl UART_CheckIdleState
  727. 357 006a 0346 mov r3, r0
  728. 358 .L16:
  729. 358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  730. 359 .loc 1 358 1
  731. 360 006c 1846 mov r0, r3
  732. 361 006e 0837 adds r7, r7, #8
  733. 362 .LCFI14:
  734. 363 .cfi_def_cfa_offset 8
  735. 364 0070 BD46 mov sp, r7
  736. 365 .LCFI15:
  737. 366 .cfi_def_cfa_register 13
  738. 367 @ sp needed
  739. 368 0072 80BD pop {r7, pc}
  740. 369 .L19:
  741. 370 .align 2
  742. 371 .L18:
  743. 372 0074 00000000 .word .LC0
  744. 373 .cfi_endproc
  745. 374 .LFE132:
  746. 376 .section .text.HAL_UARTEx_StopModeWakeUpSourceConfig,"ax",%progbits
  747. 377 .align 1
  748. 378 .global HAL_UARTEx_StopModeWakeUpSourceConfig
  749. 379 .syntax unified
  750. 380 .thumb
  751. 381 .thumb_func
  752. 383 HAL_UARTEx_StopModeWakeUpSourceConfig:
  753. 384 .LFB133:
  754. 359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  755. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 14
  756. 360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /**
  757. 361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @brief Set Wakeup from Stop mode interrupt flag selection.
  758. 362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @note It is the application responsibility to enable the interrupt used as
  759. 363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * usart_wkup interrupt source before entering low-power mode.
  760. 364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @param huart UART handle.
  761. 365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @param WakeUpSelection Address match, Start Bit detection or RXNE/RXFNE bit status.
  762. 366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * This parameter can be one of the following values:
  763. 367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @arg @ref UART_WAKEUP_ON_ADDRESS
  764. 368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @arg @ref UART_WAKEUP_ON_STARTBIT
  765. 369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @arg @ref UART_WAKEUP_ON_READDATA_NONEMPTY
  766. 370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @retval HAL status
  767. 371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** */
  768. 372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** HAL_StatusTypeDef HAL_UARTEx_StopModeWakeUpSourceConfig(UART_HandleTypeDef *huart, UART_WakeUpTypeD
  769. 373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  770. 385 .loc 1 373 1
  771. 386 .cfi_startproc
  772. 387 @ args = 0, pretend = 0, frame = 24
  773. 388 @ frame_needed = 1, uses_anonymous_args = 0
  774. 389 0000 80B5 push {r7, lr}
  775. 390 .LCFI16:
  776. 391 .cfi_def_cfa_offset 8
  777. 392 .cfi_offset 7, -8
  778. 393 .cfi_offset 14, -4
  779. 394 0002 88B0 sub sp, sp, #32
  780. 395 .LCFI17:
  781. 396 .cfi_def_cfa_offset 40
  782. 397 0004 02AF add r7, sp, #8
  783. 398 .LCFI18:
  784. 399 .cfi_def_cfa 7, 32
  785. 400 0006 F860 str r0, [r7, #12]
  786. 401 0008 3B1D adds r3, r7, #4
  787. 402 000a 83E80600 stm r3, {r1, r2}
  788. 374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** HAL_StatusTypeDef status = HAL_OK;
  789. 403 .loc 1 374 21
  790. 404 000e 0023 movs r3, #0
  791. 405 0010 FB75 strb r3, [r7, #23]
  792. 375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** uint32_t tickstart;
  793. 376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  794. 377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* check the wake-up from stop mode UART instance */
  795. 378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** assert_param(IS_UART_WAKEUP_FROMSTOP_INSTANCE(huart->Instance));
  796. 406 .loc 1 378 3
  797. 407 0012 FB68 ldr r3, [r7, #12]
  798. 408 0014 1B68 ldr r3, [r3]
  799. 409 0016 3E4A ldr r2, .L28
  800. 410 0018 9342 cmp r3, r2
  801. 411 001a 18D0 beq .L21
  802. 412 .loc 1 378 3 is_stmt 0 discriminator 1
  803. 413 001c FB68 ldr r3, [r7, #12]
  804. 414 001e 1B68 ldr r3, [r3]
  805. 415 0020 3C4A ldr r2, .L28+4
  806. 416 0022 9342 cmp r3, r2
  807. 417 0024 13D0 beq .L21
  808. 418 .loc 1 378 3 discriminator 2
  809. 419 0026 FB68 ldr r3, [r7, #12]
  810. 420 0028 1B68 ldr r3, [r3]
  811. 421 002a 3B4A ldr r2, .L28+8
  812. 422 002c 9342 cmp r3, r2
  813. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 15
  814. 423 002e 0ED0 beq .L21
  815. 424 .loc 1 378 3 discriminator 3
  816. 425 0030 FB68 ldr r3, [r7, #12]
  817. 426 0032 1B68 ldr r3, [r3]
  818. 427 0034 394A ldr r2, .L28+12
  819. 428 0036 9342 cmp r3, r2
  820. 429 0038 09D0 beq .L21
  821. 430 .loc 1 378 3 discriminator 4
  822. 431 003a FB68 ldr r3, [r7, #12]
  823. 432 003c 1B68 ldr r3, [r3]
  824. 433 003e 384A ldr r2, .L28+16
  825. 434 0040 9342 cmp r3, r2
  826. 435 0042 04D0 beq .L21
  827. 436 .loc 1 378 3 discriminator 5
  828. 437 0044 4FF4BD71 mov r1, #378
  829. 438 0048 3648 ldr r0, .L28+20
  830. 439 004a FFF7FEFF bl assert_failed
  831. 440 .L21:
  832. 379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* check the wake-up selection parameter */
  833. 380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** assert_param(IS_UART_WAKEUP_SELECTION(WakeUpSelection.WakeUpEvent));
  834. 441 .loc 1 380 3 is_stmt 1
  835. 442 004e 7B68 ldr r3, [r7, #4]
  836. 443 0050 002B cmp r3, #0
  837. 444 0052 0CD0 beq .L22
  838. 445 .loc 1 380 3 is_stmt 0 discriminator 1
  839. 446 0054 7B68 ldr r3, [r7, #4]
  840. 447 0056 B3F5001F cmp r3, #2097152
  841. 448 005a 08D0 beq .L22
  842. 449 .loc 1 380 3 discriminator 2
  843. 450 005c 7B68 ldr r3, [r7, #4]
  844. 451 005e B3F5401F cmp r3, #3145728
  845. 452 0062 04D0 beq .L22
  846. 453 .loc 1 380 3 discriminator 3
  847. 454 0064 4FF4BE71 mov r1, #380
  848. 455 0068 2E48 ldr r0, .L28+20
  849. 456 006a FFF7FEFF bl assert_failed
  850. 457 .L22:
  851. 381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  852. 382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Process Locked */
  853. 383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** __HAL_LOCK(huart);
  854. 458 .loc 1 383 3 is_stmt 1
  855. 459 006e FB68 ldr r3, [r7, #12]
  856. 460 0070 93F87830 ldrb r3, [r3, #120] @ zero_extendqisi2
  857. 461 0074 012B cmp r3, #1
  858. 462 0076 01D1 bne .L23
  859. 463 .loc 1 383 3 is_stmt 0 discriminator 1
  860. 464 0078 0223 movs r3, #2
  861. 465 007a 44E0 b .L24
  862. 466 .L23:
  863. 467 .loc 1 383 3 discriminator 2
  864. 468 007c FB68 ldr r3, [r7, #12]
  865. 469 007e 0122 movs r2, #1
  866. 470 0080 83F87820 strb r2, [r3, #120]
  867. 384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  868. 385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** huart->gState = HAL_UART_STATE_BUSY;
  869. 471 .loc 1 385 17 is_stmt 1 discriminator 2
  870. 472 0084 FB68 ldr r3, [r7, #12]
  871. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 16
  872. 473 0086 2422 movs r2, #36
  873. 474 0088 DA67 str r2, [r3, #124]
  874. 386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  875. 387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Disable the Peripheral */
  876. 388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** __HAL_UART_DISABLE(huart);
  877. 475 .loc 1 388 3 discriminator 2
  878. 476 008a FB68 ldr r3, [r7, #12]
  879. 477 008c 1B68 ldr r3, [r3]
  880. 478 008e 1A68 ldr r2, [r3]
  881. 479 0090 FB68 ldr r3, [r7, #12]
  882. 480 0092 1B68 ldr r3, [r3]
  883. 481 0094 22F00102 bic r2, r2, #1
  884. 482 0098 1A60 str r2, [r3]
  885. 389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  886. 390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Set the wake-up selection scheme */
  887. 391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** MODIFY_REG(huart->Instance->CR3, USART_CR3_WUS, WakeUpSelection.WakeUpEvent);
  888. 483 .loc 1 391 3 discriminator 2
  889. 484 009a FB68 ldr r3, [r7, #12]
  890. 485 009c 1B68 ldr r3, [r3]
  891. 486 009e 9B68 ldr r3, [r3, #8]
  892. 487 00a0 23F44011 bic r1, r3, #3145728
  893. 488 00a4 7A68 ldr r2, [r7, #4]
  894. 489 00a6 FB68 ldr r3, [r7, #12]
  895. 490 00a8 1B68 ldr r3, [r3]
  896. 491 00aa 0A43 orrs r2, r2, r1
  897. 492 00ac 9A60 str r2, [r3, #8]
  898. 392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  899. 393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** if (WakeUpSelection.WakeUpEvent == UART_WAKEUP_ON_ADDRESS)
  900. 493 .loc 1 393 22 discriminator 2
  901. 494 00ae 7B68 ldr r3, [r7, #4]
  902. 495 .loc 1 393 6 discriminator 2
  903. 496 00b0 002B cmp r3, #0
  904. 497 00b2 05D1 bne .L25
  905. 394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  906. 395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** UARTEx_Wakeup_AddressConfig(huart, WakeUpSelection);
  907. 498 .loc 1 395 5
  908. 499 00b4 3B1D adds r3, r7, #4
  909. 500 00b6 93E80600 ldm r3, {r1, r2}
  910. 501 00ba F868 ldr r0, [r7, #12]
  911. 502 00bc FFF7FEFF bl UARTEx_Wakeup_AddressConfig
  912. 503 .L25:
  913. 396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  914. 397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  915. 398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Enable the Peripheral */
  916. 399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** __HAL_UART_ENABLE(huart);
  917. 504 .loc 1 399 3
  918. 505 00c0 FB68 ldr r3, [r7, #12]
  919. 506 00c2 1B68 ldr r3, [r3]
  920. 507 00c4 1A68 ldr r2, [r3]
  921. 508 00c6 FB68 ldr r3, [r7, #12]
  922. 509 00c8 1B68 ldr r3, [r3]
  923. 510 00ca 42F00102 orr r2, r2, #1
  924. 511 00ce 1A60 str r2, [r3]
  925. 400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  926. 401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Init tickstart for timeout management */
  927. 402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** tickstart = HAL_GetTick();
  928. 512 .loc 1 402 15
  929. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 17
  930. 513 00d0 FFF7FEFF bl HAL_GetTick
  931. 514 00d4 3861 str r0, [r7, #16]
  932. 403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  933. 404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Wait until REACK flag is set */
  934. 405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_REACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE)
  935. 515 .loc 1 405 7
  936. 516 00d6 6FF07E43 mvn r3, #-33554432
  937. 517 00da 0093 str r3, [sp]
  938. 518 00dc 3B69 ldr r3, [r7, #16]
  939. 519 00de 0022 movs r2, #0
  940. 520 00e0 4FF48001 mov r1, #4194304
  941. 521 00e4 F868 ldr r0, [r7, #12]
  942. 522 00e6 FFF7FEFF bl UART_WaitOnFlagUntilTimeout
  943. 523 00ea 0346 mov r3, r0
  944. 524 .loc 1 405 6
  945. 525 00ec 002B cmp r3, #0
  946. 526 00ee 02D0 beq .L26
  947. 406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  948. 407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** status = HAL_TIMEOUT;
  949. 527 .loc 1 407 12
  950. 528 00f0 0323 movs r3, #3
  951. 529 00f2 FB75 strb r3, [r7, #23]
  952. 530 00f4 02E0 b .L27
  953. 531 .L26:
  954. 408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  955. 409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** else
  956. 410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  957. 411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Initialize the UART State */
  958. 412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** huart->gState = HAL_UART_STATE_READY;
  959. 532 .loc 1 412 19
  960. 533 00f6 FB68 ldr r3, [r7, #12]
  961. 534 00f8 2022 movs r2, #32
  962. 535 00fa DA67 str r2, [r3, #124]
  963. 536 .L27:
  964. 413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  965. 414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  966. 415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Process Unlocked */
  967. 416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** __HAL_UNLOCK(huart);
  968. 537 .loc 1 416 3
  969. 538 00fc FB68 ldr r3, [r7, #12]
  970. 539 00fe 0022 movs r2, #0
  971. 540 0100 83F87820 strb r2, [r3, #120]
  972. 417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  973. 418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** return status;
  974. 541 .loc 1 418 10
  975. 542 0104 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
  976. 543 .L24:
  977. 419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  978. 544 .loc 1 419 1
  979. 545 0106 1846 mov r0, r3
  980. 546 0108 1837 adds r7, r7, #24
  981. 547 .LCFI19:
  982. 548 .cfi_def_cfa_offset 8
  983. 549 010a BD46 mov sp, r7
  984. 550 .LCFI20:
  985. 551 .cfi_def_cfa_register 13
  986. 552 @ sp needed
  987. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 18
  988. 553 010c 80BD pop {r7, pc}
  989. 554 .L29:
  990. 555 010e 00BF .align 2
  991. 556 .L28:
  992. 557 0110 00380140 .word 1073821696
  993. 558 0114 00440040 .word 1073759232
  994. 559 0118 00480040 .word 1073760256
  995. 560 011c 004C0040 .word 1073761280
  996. 561 0120 00500040 .word 1073762304
  997. 562 0124 00000000 .word .LC0
  998. 563 .cfi_endproc
  999. 564 .LFE133:
  1000. 566 .section .text.HAL_UARTEx_EnableStopMode,"ax",%progbits
  1001. 567 .align 1
  1002. 568 .global HAL_UARTEx_EnableStopMode
  1003. 569 .syntax unified
  1004. 570 .thumb
  1005. 571 .thumb_func
  1006. 573 HAL_UARTEx_EnableStopMode:
  1007. 574 .LFB134:
  1008. 420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  1009. 421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /**
  1010. 422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @brief Enable UART Stop Mode.
  1011. 423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @note The UART is able to wake up the MCU from Stop 1 mode as long as UART clock is HSI or LSE.
  1012. 424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @param huart UART handle.
  1013. 425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @retval HAL status
  1014. 426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** */
  1015. 427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** HAL_StatusTypeDef HAL_UARTEx_EnableStopMode(UART_HandleTypeDef *huart)
  1016. 428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  1017. 575 .loc 1 428 1
  1018. 576 .cfi_startproc
  1019. 577 @ args = 0, pretend = 0, frame = 32
  1020. 578 @ frame_needed = 1, uses_anonymous_args = 0
  1021. 579 @ link register save eliminated.
  1022. 580 0000 80B4 push {r7}
  1023. 581 .LCFI21:
  1024. 582 .cfi_def_cfa_offset 4
  1025. 583 .cfi_offset 7, -4
  1026. 584 0002 89B0 sub sp, sp, #36
  1027. 585 .LCFI22:
  1028. 586 .cfi_def_cfa_offset 40
  1029. 587 0004 00AF add r7, sp, #0
  1030. 588 .LCFI23:
  1031. 589 .cfi_def_cfa_register 7
  1032. 590 0006 7860 str r0, [r7, #4]
  1033. 429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Process Locked */
  1034. 430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** __HAL_LOCK(huart);
  1035. 591 .loc 1 430 3
  1036. 592 0008 7B68 ldr r3, [r7, #4]
  1037. 593 000a 93F87830 ldrb r3, [r3, #120] @ zero_extendqisi2
  1038. 594 000e 012B cmp r3, #1
  1039. 595 0010 01D1 bne .L31
  1040. 596 .loc 1 430 3 is_stmt 0 discriminator 1
  1041. 597 0012 0223 movs r3, #2
  1042. 598 0014 21E0 b .L32
  1043. 599 .L31:
  1044. 600 .loc 1 430 3 discriminator 2
  1045. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 19
  1046. 601 0016 7B68 ldr r3, [r7, #4]
  1047. 602 0018 0122 movs r2, #1
  1048. 603 001a 83F87820 strb r2, [r3, #120]
  1049. 604 .L35:
  1050. 605 .LBB22:
  1051. 431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  1052. 432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Set UESM bit */
  1053. 433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_UESM);
  1054. 606 .loc 1 433 3 is_stmt 1 discriminator 1
  1055. 607 001e 7B68 ldr r3, [r7, #4]
  1056. 608 0020 1B68 ldr r3, [r3]
  1057. 609 0022 FB60 str r3, [r7, #12]
  1058. 610 .LBB23:
  1059. 611 .LBB24:
  1060. 612 .file 2 "Drivers/CMSIS/Include/cmsis_gcc.h"
  1061. 1:Drivers/CMSIS/Include/cmsis_gcc.h **** /**************************************************************************//**
  1062. 2:Drivers/CMSIS/Include/cmsis_gcc.h **** * @file cmsis_gcc.h
  1063. 3:Drivers/CMSIS/Include/cmsis_gcc.h **** * @brief CMSIS compiler GCC header file
  1064. 4:Drivers/CMSIS/Include/cmsis_gcc.h **** * @version V5.0.4
  1065. 5:Drivers/CMSIS/Include/cmsis_gcc.h **** * @date 09. April 2018
  1066. 6:Drivers/CMSIS/Include/cmsis_gcc.h **** ******************************************************************************/
  1067. 7:Drivers/CMSIS/Include/cmsis_gcc.h **** /*
  1068. 8:Drivers/CMSIS/Include/cmsis_gcc.h **** * Copyright (c) 2009-2018 Arm Limited. All rights reserved.
  1069. 9:Drivers/CMSIS/Include/cmsis_gcc.h **** *
  1070. 10:Drivers/CMSIS/Include/cmsis_gcc.h **** * SPDX-License-Identifier: Apache-2.0
  1071. 11:Drivers/CMSIS/Include/cmsis_gcc.h **** *
  1072. 12:Drivers/CMSIS/Include/cmsis_gcc.h **** * Licensed under the Apache License, Version 2.0 (the License); you may
  1073. 13:Drivers/CMSIS/Include/cmsis_gcc.h **** * not use this file except in compliance with the License.
  1074. 14:Drivers/CMSIS/Include/cmsis_gcc.h **** * You may obtain a copy of the License at
  1075. 15:Drivers/CMSIS/Include/cmsis_gcc.h **** *
  1076. 16:Drivers/CMSIS/Include/cmsis_gcc.h **** * www.apache.org/licenses/LICENSE-2.0
  1077. 17:Drivers/CMSIS/Include/cmsis_gcc.h **** *
  1078. 18:Drivers/CMSIS/Include/cmsis_gcc.h **** * Unless required by applicable law or agreed to in writing, software
  1079. 19:Drivers/CMSIS/Include/cmsis_gcc.h **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT
  1080. 20:Drivers/CMSIS/Include/cmsis_gcc.h **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  1081. 21:Drivers/CMSIS/Include/cmsis_gcc.h **** * See the License for the specific language governing permissions and
  1082. 22:Drivers/CMSIS/Include/cmsis_gcc.h **** * limitations under the License.
  1083. 23:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1084. 24:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1085. 25:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __CMSIS_GCC_H
  1086. 26:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_H
  1087. 27:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1088. 28:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ignore some GCC warnings */
  1089. 29:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
  1090. 30:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wsign-conversion"
  1091. 31:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wconversion"
  1092. 32:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wunused-parameter"
  1093. 33:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1094. 34:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Fallback for __has_builtin */
  1095. 35:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __has_builtin
  1096. 36:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __has_builtin(x) (0)
  1097. 37:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1098. 38:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1099. 39:Drivers/CMSIS/Include/cmsis_gcc.h **** /* CMSIS compiler specific defines */
  1100. 40:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ASM
  1101. 41:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ASM __asm
  1102. 42:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1103. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 20
  1104. 43:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __INLINE
  1105. 44:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __INLINE inline
  1106. 45:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1107. 46:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_INLINE
  1108. 47:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_INLINE static inline
  1109. 48:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1110. 49:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_FORCEINLINE
  1111. 50:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_FORCEINLINE __attribute__((always_inline)) static inline
  1112. 51:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1113. 52:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __NO_RETURN
  1114. 53:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NO_RETURN __attribute__((__noreturn__))
  1115. 54:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1116. 55:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __USED
  1117. 56:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __USED __attribute__((used))
  1118. 57:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1119. 58:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __WEAK
  1120. 59:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WEAK __attribute__((weak))
  1121. 60:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1122. 61:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED
  1123. 62:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED __attribute__((packed, aligned(1)))
  1124. 63:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1125. 64:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_STRUCT
  1126. 65:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_STRUCT struct __attribute__((packed, aligned(1)))
  1127. 66:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1128. 67:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_UNION
  1129. 68:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_UNION union __attribute__((packed, aligned(1)))
  1130. 69:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1131. 70:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32 /* deprecated */
  1132. 71:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
  1133. 72:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked"
  1134. 73:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes"
  1135. 74:Drivers/CMSIS/Include/cmsis_gcc.h **** struct __attribute__((packed)) T_UINT32 { uint32_t v; };
  1136. 75:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop
  1137. 76:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v)
  1138. 77:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1139. 78:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_WRITE
  1140. 79:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
  1141. 80:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked"
  1142. 81:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes"
  1143. 82:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; };
  1144. 83:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop
  1145. 84:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))-
  1146. 85:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1147. 86:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_READ
  1148. 87:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
  1149. 88:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked"
  1150. 89:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes"
  1151. 90:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_READ { uint16_t v; };
  1152. 91:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop
  1153. 92:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(add
  1154. 93:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1155. 94:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_WRITE
  1156. 95:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
  1157. 96:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked"
  1158. 97:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes"
  1159. 98:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; };
  1160. 99:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop
  1161. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 21
  1162. 100:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))-
  1163. 101:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1164. 102:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_READ
  1165. 103:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
  1166. 104:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked"
  1167. 105:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes"
  1168. 106:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_READ { uint32_t v; };
  1169. 107:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop
  1170. 108:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(add
  1171. 109:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1172. 110:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ALIGNED
  1173. 111:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ALIGNED(x) __attribute__((aligned(x)))
  1174. 112:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1175. 113:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __RESTRICT
  1176. 114:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __RESTRICT __restrict
  1177. 115:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1178. 116:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1179. 117:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1180. 118:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################### Core Function Access ########################### */
  1181. 119:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \ingroup CMSIS_Core_FunctionInterface
  1182. 120:Drivers/CMSIS/Include/cmsis_gcc.h **** \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions
  1183. 121:Drivers/CMSIS/Include/cmsis_gcc.h **** @{
  1184. 122:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1185. 123:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1186. 124:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1187. 125:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable IRQ Interrupts
  1188. 126:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables IRQ interrupts by clearing the I-bit in the CPSR.
  1189. 127:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes.
  1190. 128:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1191. 129:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_irq(void)
  1192. 130:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1193. 131:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie i" : : : "memory");
  1194. 132:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1195. 133:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1196. 134:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1197. 135:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1198. 136:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable IRQ Interrupts
  1199. 137:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables IRQ interrupts by setting the I-bit in the CPSR.
  1200. 138:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes.
  1201. 139:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1202. 140:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_irq(void)
  1203. 141:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1204. 142:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid i" : : : "memory");
  1205. 143:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1206. 144:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1207. 145:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1208. 146:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1209. 147:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register
  1210. 148:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the Control Register.
  1211. 149:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Control Register value
  1212. 150:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1213. 151:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_CONTROL(void)
  1214. 152:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1215. 153:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1216. 154:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1217. 155:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, control" : "=r" (result) );
  1218. 156:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1219. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 22
  1220. 157:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1221. 158:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1222. 159:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1223. 160:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1224. 161:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1225. 162:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register (non-secure)
  1226. 163:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the non-secure Control Register when in secure mode.
  1227. 164:Drivers/CMSIS/Include/cmsis_gcc.h **** \return non-secure Control Register value
  1228. 165:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1229. 166:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void)
  1230. 167:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1231. 168:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1232. 169:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1233. 170:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, control_ns" : "=r" (result) );
  1234. 171:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1235. 172:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1236. 173:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1237. 174:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1238. 175:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1239. 176:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1240. 177:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register
  1241. 178:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the Control Register.
  1242. 179:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set
  1243. 180:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1244. 181:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_CONTROL(uint32_t control)
  1245. 182:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1246. 183:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control, %0" : : "r" (control) : "memory");
  1247. 184:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1248. 185:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1249. 186:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1250. 187:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1251. 188:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1252. 189:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register (non-secure)
  1253. 190:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the non-secure Control Register when in secure state.
  1254. 191:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set
  1255. 192:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1256. 193:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control)
  1257. 194:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1258. 195:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory");
  1259. 196:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1260. 197:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1261. 198:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1262. 199:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1263. 200:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1264. 201:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get IPSR Register
  1265. 202:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the IPSR Register.
  1266. 203:Drivers/CMSIS/Include/cmsis_gcc.h **** \return IPSR Register value
  1267. 204:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1268. 205:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_IPSR(void)
  1269. 206:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1270. 207:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1271. 208:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1272. 209:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, ipsr" : "=r" (result) );
  1273. 210:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1274. 211:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1275. 212:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1276. 213:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1277. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 23
  1278. 214:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1279. 215:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get APSR Register
  1280. 216:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the APSR Register.
  1281. 217:Drivers/CMSIS/Include/cmsis_gcc.h **** \return APSR Register value
  1282. 218:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1283. 219:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_APSR(void)
  1284. 220:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1285. 221:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1286. 222:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1287. 223:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, apsr" : "=r" (result) );
  1288. 224:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1289. 225:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1290. 226:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1291. 227:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1292. 228:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1293. 229:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get xPSR Register
  1294. 230:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the xPSR Register.
  1295. 231:Drivers/CMSIS/Include/cmsis_gcc.h **** \return xPSR Register value
  1296. 232:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1297. 233:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_xPSR(void)
  1298. 234:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1299. 235:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1300. 236:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1301. 237:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, xpsr" : "=r" (result) );
  1302. 238:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1303. 239:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1304. 240:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1305. 241:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1306. 242:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1307. 243:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer
  1308. 244:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer (PSP).
  1309. 245:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value
  1310. 246:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1311. 247:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSP(void)
  1312. 248:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1313. 249:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1314. 250:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1315. 251:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psp" : "=r" (result) );
  1316. 252:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1317. 253:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1318. 254:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1319. 255:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1320. 256:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1321. 257:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1322. 258:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer (non-secure)
  1323. 259:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure s
  1324. 260:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value
  1325. 261:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1326. 262:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void)
  1327. 263:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1328. 264:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1329. 265:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1330. 266:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psp_ns" : "=r" (result) );
  1331. 267:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1332. 268:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1333. 269:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1334. 270:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1335. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 24
  1336. 271:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1337. 272:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1338. 273:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer
  1339. 274:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer (PSP).
  1340. 275:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set
  1341. 276:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1342. 277:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack)
  1343. 278:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1344. 279:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : );
  1345. 280:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1346. 281:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1347. 282:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1348. 283:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1349. 284:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1350. 285:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer (non-secure)
  1351. 286:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure sta
  1352. 287:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set
  1353. 288:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1354. 289:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack)
  1355. 290:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1356. 291:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : );
  1357. 292:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1358. 293:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1359. 294:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1360. 295:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1361. 296:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1362. 297:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer
  1363. 298:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer (MSP).
  1364. 299:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value
  1365. 300:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1366. 301:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSP(void)
  1367. 302:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1368. 303:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1369. 304:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1370. 305:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msp" : "=r" (result) );
  1371. 306:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1372. 307:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1373. 308:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1374. 309:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1375. 310:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1376. 311:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1377. 312:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer (non-secure)
  1378. 313:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure stat
  1379. 314:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value
  1380. 315:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1381. 316:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void)
  1382. 317:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1383. 318:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1384. 319:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1385. 320:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msp_ns" : "=r" (result) );
  1386. 321:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1387. 322:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1388. 323:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1389. 324:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1390. 325:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1391. 326:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1392. 327:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer
  1393. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 25
  1394. 328:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Main Stack Pointer (MSP).
  1395. 329:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set
  1396. 330:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1397. 331:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack)
  1398. 332:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1399. 333:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : );
  1400. 334:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1401. 335:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1402. 336:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1403. 337:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1404. 338:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1405. 339:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer (non-secure)
  1406. 340:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state.
  1407. 341:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set
  1408. 342:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1409. 343:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack)
  1410. 344:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1411. 345:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : );
  1412. 346:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1413. 347:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1414. 348:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1415. 349:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1416. 350:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1417. 351:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1418. 352:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Stack Pointer (non-secure)
  1419. 353:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state.
  1420. 354:Drivers/CMSIS/Include/cmsis_gcc.h **** \return SP Register value
  1421. 355:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1422. 356:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void)
  1423. 357:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1424. 358:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1425. 359:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1426. 360:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, sp_ns" : "=r" (result) );
  1427. 361:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1428. 362:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1429. 363:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1430. 364:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1431. 365:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1432. 366:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Stack Pointer (non-secure)
  1433. 367:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state.
  1434. 368:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfStack Stack Pointer value to set
  1435. 369:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1436. 370:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack)
  1437. 371:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1438. 372:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : );
  1439. 373:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1440. 374:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1441. 375:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1442. 376:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1443. 377:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1444. 378:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Priority Mask
  1445. 379:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current state of the priority mask bit from the Priority Mask Register.
  1446. 380:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Priority Mask value
  1447. 381:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1448. 382:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PRIMASK(void)
  1449. 383:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1450. 384:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1451. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 26
  1452. 385:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1453. 386:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
  1454. 387:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1455. 388:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1456. 389:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1457. 390:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1458. 391:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1459. 392:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1460. 393:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Priority Mask (non-secure)
  1461. 394:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current state of the non-secure priority mask bit from the Priority Mask Reg
  1462. 395:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Priority Mask value
  1463. 396:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1464. 397:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void)
  1465. 398:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1466. 399:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1467. 400:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1468. 401:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, primask_ns" : "=r" (result) :: "memory");
  1469. 402:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1470. 403:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1471. 404:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1472. 405:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1473. 406:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1474. 407:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1475. 408:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Priority Mask
  1476. 409:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Priority Mask Register.
  1477. 410:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] priMask Priority Mask
  1478. 411:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1479. 412:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask)
  1480. 413:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1481. 414:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
  1482. 415:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1483. 416:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1484. 417:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1485. 418:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1486. 419:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1487. 420:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Priority Mask (non-secure)
  1488. 421:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Priority Mask Register when in secure state.
  1489. 422:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] priMask Priority Mask
  1490. 423:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1491. 424:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask)
  1492. 425:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1493. 426:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory");
  1494. 427:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1495. 428:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1496. 429:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1497. 430:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1498. 431:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \
  1499. 432:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \
  1500. 433:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) )
  1501. 434:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1502. 435:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable FIQ
  1503. 436:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables FIQ interrupts by clearing the F-bit in the CPSR.
  1504. 437:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes.
  1505. 438:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1506. 439:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_fault_irq(void)
  1507. 440:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1508. 441:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie f" : : : "memory");
  1509. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 27
  1510. 442:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1511. 443:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1512. 444:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1513. 445:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1514. 446:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable FIQ
  1515. 447:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables FIQ interrupts by setting the F-bit in the CPSR.
  1516. 448:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes.
  1517. 449:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1518. 450:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_fault_irq(void)
  1519. 451:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1520. 452:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid f" : : : "memory");
  1521. 453:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1522. 454:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1523. 455:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1524. 456:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1525. 457:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Base Priority
  1526. 458:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Base Priority register.
  1527. 459:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Base Priority register value
  1528. 460:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1529. 461:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_BASEPRI(void)
  1530. 462:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1531. 463:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1532. 464:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1533. 465:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, basepri" : "=r" (result) );
  1534. 466:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1535. 467:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1536. 468:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1537. 469:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1538. 470:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1539. 471:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1540. 472:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Base Priority (non-secure)
  1541. 473:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Base Priority register when in secure state.
  1542. 474:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Base Priority register value
  1543. 475:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1544. 476:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void)
  1545. 477:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1546. 478:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1547. 479:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1548. 480:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) );
  1549. 481:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1550. 482:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1551. 483:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1552. 484:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1553. 485:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1554. 486:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1555. 487:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority
  1556. 488:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Base Priority register.
  1557. 489:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set
  1558. 490:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1559. 491:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri)
  1560. 492:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1561. 493:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory");
  1562. 494:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1563. 495:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1564. 496:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1565. 497:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1566. 498:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1567. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 28
  1568. 499:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority (non-secure)
  1569. 500:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Base Priority register when in secure state.
  1570. 501:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set
  1571. 502:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1572. 503:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri)
  1573. 504:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1574. 505:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory");
  1575. 506:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1576. 507:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1577. 508:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1578. 509:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1579. 510:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1580. 511:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority with condition
  1581. 512:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Base Priority register only if BASEPRI masking is disable
  1582. 513:Drivers/CMSIS/Include/cmsis_gcc.h **** or the new value increases the BASEPRI priority level.
  1583. 514:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set
  1584. 515:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1585. 516:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri)
  1586. 517:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1587. 518:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory");
  1588. 519:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1589. 520:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1590. 521:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1591. 522:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1592. 523:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Fault Mask
  1593. 524:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Fault Mask register.
  1594. 525:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Fault Mask register value
  1595. 526:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1596. 527:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void)
  1597. 528:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1598. 529:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1599. 530:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1600. 531:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, faultmask" : "=r" (result) );
  1601. 532:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1602. 533:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1603. 534:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1604. 535:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1605. 536:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1606. 537:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1607. 538:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Fault Mask (non-secure)
  1608. 539:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Fault Mask register when in secure state.
  1609. 540:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Fault Mask register value
  1610. 541:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1611. 542:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void)
  1612. 543:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1613. 544:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1614. 545:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1615. 546:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) );
  1616. 547:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1617. 548:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1618. 549:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1619. 550:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1620. 551:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1621. 552:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1622. 553:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Fault Mask
  1623. 554:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Fault Mask register.
  1624. 555:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] faultMask Fault Mask value to set
  1625. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 29
  1626. 556:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1627. 557:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask)
  1628. 558:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1629. 559:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory");
  1630. 560:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1631. 561:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1632. 562:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1633. 563:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1634. 564:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1635. 565:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Fault Mask (non-secure)
  1636. 566:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Fault Mask register when in secure state.
  1637. 567:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] faultMask Fault Mask value to set
  1638. 568:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1639. 569:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask)
  1640. 570:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1641. 571:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory");
  1642. 572:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1643. 573:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1644. 574:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1645. 575:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \
  1646. 576:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \
  1647. 577:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */
  1648. 578:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1649. 579:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1650. 580:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \
  1651. 581:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) )
  1652. 582:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1653. 583:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1654. 584:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer Limit
  1655. 585:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
  1656. 586:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always in non-secure
  1657. 587:Drivers/CMSIS/Include/cmsis_gcc.h **** mode.
  1658. 588:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1659. 589:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer Limit (PSPLIM).
  1660. 590:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSPLIM Register value
  1661. 591:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1662. 592:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSPLIM(void)
  1663. 593:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1664. 594:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \
  1665. 595:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3)))
  1666. 596:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI
  1667. 597:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U;
  1668. 598:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  1669. 599:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1670. 600:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psplim" : "=r" (result) );
  1671. 601:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
  1672. 602:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1673. 603:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1674. 604:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1675. 605:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3))
  1676. 606:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1677. 607:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer Limit (non-secure)
  1678. 608:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
  1679. 609:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always.
  1680. 610:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1681. 611:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Process Stack Pointer Limit (PSPLIM) when in
  1682. 612:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSPLIM Register value
  1683. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 30
  1684. 613:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1685. 614:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void)
  1686. 615:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1687. 616:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)))
  1688. 617:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI
  1689. 618:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U;
  1690. 619:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  1691. 620:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1692. 621:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) );
  1693. 622:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
  1694. 623:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1695. 624:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1696. 625:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1697. 626:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1698. 627:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1699. 628:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1700. 629:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer Limit
  1701. 630:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
  1702. 631:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored in non-secure
  1703. 632:Drivers/CMSIS/Include/cmsis_gcc.h **** mode.
  1704. 633:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1705. 634:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM).
  1706. 635:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set
  1707. 636:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1708. 637:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit)
  1709. 638:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1710. 639:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \
  1711. 640:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3)))
  1712. 641:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI
  1713. 642:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)ProcStackPtrLimit;
  1714. 643:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  1715. 644:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit));
  1716. 645:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1717. 646:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1718. 647:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1719. 648:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1720. 649:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1721. 650:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1722. 651:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer (non-secure)
  1723. 652:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
  1724. 653:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored.
  1725. 654:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1726. 655:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in s
  1727. 656:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set
  1728. 657:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1729. 658:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit)
  1730. 659:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1731. 660:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)))
  1732. 661:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI
  1733. 662:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)ProcStackPtrLimit;
  1734. 663:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  1735. 664:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit));
  1736. 665:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1737. 666:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1738. 667:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1739. 668:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1740. 669:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1741. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 31
  1742. 670:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1743. 671:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer Limit
  1744. 672:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
  1745. 673:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always in non-secure
  1746. 674:Drivers/CMSIS/Include/cmsis_gcc.h **** mode.
  1747. 675:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1748. 676:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer Limit (MSPLIM).
  1749. 677:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSPLIM Register value
  1750. 678:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1751. 679:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSPLIM(void)
  1752. 680:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1753. 681:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \
  1754. 682:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3)))
  1755. 683:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI
  1756. 684:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U;
  1757. 685:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  1758. 686:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1759. 687:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msplim" : "=r" (result) );
  1760. 688:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
  1761. 689:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1762. 690:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1763. 691:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1764. 692:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1765. 693:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1766. 694:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1767. 695:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer Limit (non-secure)
  1768. 696:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
  1769. 697:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always.
  1770. 698:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1771. 699:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in sec
  1772. 700:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSPLIM Register value
  1773. 701:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1774. 702:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void)
  1775. 703:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1776. 704:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)))
  1777. 705:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI
  1778. 706:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U;
  1779. 707:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  1780. 708:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1781. 709:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) );
  1782. 710:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
  1783. 711:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1784. 712:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1785. 713:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1786. 714:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1787. 715:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1788. 716:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1789. 717:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer Limit
  1790. 718:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
  1791. 719:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored in non-secure
  1792. 720:Drivers/CMSIS/Include/cmsis_gcc.h **** mode.
  1793. 721:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1794. 722:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM).
  1795. 723:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] MainStackPtrLimit Main Stack Pointer Limit value to set
  1796. 724:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1797. 725:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit)
  1798. 726:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1799. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 32
  1800. 727:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \
  1801. 728:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3)))
  1802. 729:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI
  1803. 730:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)MainStackPtrLimit;
  1804. 731:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  1805. 732:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit));
  1806. 733:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1807. 734:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1808. 735:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1809. 736:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1810. 737:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
  1811. 738:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1812. 739:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer Limit (non-secure)
  1813. 740:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
  1814. 741:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored.
  1815. 742:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1816. 743:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secu
  1817. 744:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] MainStackPtrLimit Main Stack Pointer value to set
  1818. 745:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1819. 746:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit)
  1820. 747:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1821. 748:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)))
  1822. 749:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI
  1823. 750:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)MainStackPtrLimit;
  1824. 751:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  1825. 752:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit));
  1826. 753:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1827. 754:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1828. 755:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1829. 756:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1830. 757:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \
  1831. 758:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */
  1832. 759:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1833. 760:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1834. 761:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1835. 762:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get FPSCR
  1836. 763:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Floating Point Status/Control register.
  1837. 764:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Floating Point Status/Control register value
  1838. 765:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1839. 766:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FPSCR(void)
  1840. 767:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1841. 768:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \
  1842. 769:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__FPU_USED ) && (__FPU_USED == 1U)) )
  1843. 770:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_get_fpscr)
  1844. 771:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed
  1845. 772:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2)
  1846. 773:Drivers/CMSIS/Include/cmsis_gcc.h **** /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */
  1847. 774:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_arm_get_fpscr();
  1848. 775:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  1849. 776:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1850. 777:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1851. 778:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("VMRS %0, fpscr" : "=r" (result) );
  1852. 779:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  1853. 780:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1854. 781:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  1855. 782:Drivers/CMSIS/Include/cmsis_gcc.h **** return(0U);
  1856. 783:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1857. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 33
  1858. 784:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1859. 785:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1860. 786:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1861. 787:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1862. 788:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set FPSCR
  1863. 789:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Floating Point Status/Control register.
  1864. 790:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] fpscr Floating Point Status/Control value to set
  1865. 791:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1866. 792:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FPSCR(uint32_t fpscr)
  1867. 793:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1868. 794:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \
  1869. 795:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__FPU_USED ) && (__FPU_USED == 1U)) )
  1870. 796:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_set_fpscr)
  1871. 797:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed
  1872. 798:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2)
  1873. 799:Drivers/CMSIS/Include/cmsis_gcc.h **** /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */
  1874. 800:Drivers/CMSIS/Include/cmsis_gcc.h **** __builtin_arm_set_fpscr(fpscr);
  1875. 801:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  1876. 802:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc", "memory");
  1877. 803:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1878. 804:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  1879. 805:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)fpscr;
  1880. 806:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1881. 807:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1882. 808:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1883. 809:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1884. 810:Drivers/CMSIS/Include/cmsis_gcc.h **** /*@} end of CMSIS_Core_RegAccFunctions */
  1885. 811:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1886. 812:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1887. 813:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################## Core Instruction Access ######################### */
  1888. 814:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface
  1889. 815:Drivers/CMSIS/Include/cmsis_gcc.h **** Access to dedicated instructions
  1890. 816:Drivers/CMSIS/Include/cmsis_gcc.h **** @{
  1891. 817:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1892. 818:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1893. 819:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Define macros for porting to both thumb1 and thumb2.
  1894. 820:Drivers/CMSIS/Include/cmsis_gcc.h **** * For thumb1, use low register (r0-r7), specified by constraint "l"
  1895. 821:Drivers/CMSIS/Include/cmsis_gcc.h **** * Otherwise, use general registers, specified by constraint "r" */
  1896. 822:Drivers/CMSIS/Include/cmsis_gcc.h **** #if defined (__thumb__) && !defined (__thumb2__)
  1897. 823:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=l" (r)
  1898. 824:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+l" (r)
  1899. 825:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "l" (r)
  1900. 826:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  1901. 827:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=r" (r)
  1902. 828:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+r" (r)
  1903. 829:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "r" (r)
  1904. 830:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1905. 831:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1906. 832:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1907. 833:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief No Operation
  1908. 834:Drivers/CMSIS/Include/cmsis_gcc.h **** \details No Operation does nothing. This instruction can be used for code alignment purposes.
  1909. 835:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1910. 836:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NOP() __ASM volatile ("nop")
  1911. 837:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1912. 838:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1913. 839:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Interrupt
  1914. 840:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Interrupt is a hint instruction that suspends execution until one of a number o
  1915. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 34
  1916. 841:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1917. 842:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFI() __ASM volatile ("wfi")
  1918. 843:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1919. 844:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1920. 845:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1921. 846:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Event
  1922. 847:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Event is a hint instruction that permits the processor to enter
  1923. 848:Drivers/CMSIS/Include/cmsis_gcc.h **** a low-power state until one of a number of events occurs.
  1924. 849:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1925. 850:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFE() __ASM volatile ("wfe")
  1926. 851:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1927. 852:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1928. 853:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1929. 854:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Send Event
  1930. 855:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Send Event is a hint instruction. It causes an event to be signaled to the CPU.
  1931. 856:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1932. 857:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __SEV() __ASM volatile ("sev")
  1933. 858:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1934. 859:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1935. 860:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1936. 861:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Instruction Synchronization Barrier
  1937. 862:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Instruction Synchronization Barrier flushes the pipeline in the processor,
  1938. 863:Drivers/CMSIS/Include/cmsis_gcc.h **** so that all instructions following the ISB are fetched from cache or memory,
  1939. 864:Drivers/CMSIS/Include/cmsis_gcc.h **** after the instruction has been completed.
  1940. 865:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1941. 866:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __ISB(void)
  1942. 867:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1943. 868:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("isb 0xF":::"memory");
  1944. 869:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1945. 870:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1946. 871:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1947. 872:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1948. 873:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Data Synchronization Barrier
  1949. 874:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Acts as a special kind of Data Memory Barrier.
  1950. 875:Drivers/CMSIS/Include/cmsis_gcc.h **** It completes when all explicit memory accesses before this instruction complete.
  1951. 876:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1952. 877:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __DSB(void)
  1953. 878:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1954. 879:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("dsb 0xF":::"memory");
  1955. 880:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1956. 881:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1957. 882:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1958. 883:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1959. 884:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Data Memory Barrier
  1960. 885:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Ensures the apparent order of the explicit memory operations before
  1961. 886:Drivers/CMSIS/Include/cmsis_gcc.h **** and after the instruction, without ensuring their completion.
  1962. 887:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1963. 888:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __DMB(void)
  1964. 889:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1965. 890:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("dmb 0xF":::"memory");
  1966. 891:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1967. 892:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1968. 893:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1969. 894:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1970. 895:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (32 bit)
  1971. 896:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x785
  1972. 897:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse
  1973. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 35
  1974. 898:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value
  1975. 899:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1976. 900:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __REV(uint32_t value)
  1977. 901:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1978. 902:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
  1979. 903:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_bswap32(value);
  1980. 904:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  1981. 905:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1982. 906:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1983. 907:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rev %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) );
  1984. 908:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
  1985. 909:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  1986. 910:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  1987. 911:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1988. 912:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1989. 913:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  1990. 914:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (16 bit)
  1991. 915:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes
  1992. 916:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse
  1993. 917:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value
  1994. 918:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  1995. 919:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __REV16(uint32_t value)
  1996. 920:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  1997. 921:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  1998. 922:Drivers/CMSIS/Include/cmsis_gcc.h ****
  1999. 923:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rev16 %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) );
  2000. 924:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
  2001. 925:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  2002. 926:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2003. 927:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2004. 928:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2005. 929:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (16 bit)
  2006. 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
  2007. 931:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse
  2008. 932:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value
  2009. 933:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2010. 934:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE int16_t __REVSH(int16_t value)
  2011. 935:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  2012. 936:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)
  2013. 937:Drivers/CMSIS/Include/cmsis_gcc.h **** return (int16_t)__builtin_bswap16(value);
  2014. 938:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  2015. 939:Drivers/CMSIS/Include/cmsis_gcc.h **** int16_t result;
  2016. 940:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2017. 941:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("revsh %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) );
  2018. 942:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
  2019. 943:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  2020. 944:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  2021. 945:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2022. 946:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2023. 947:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2024. 948:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Rotate Right in unsigned value (32 bit)
  2025. 949:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Rotate Right (immediate) provides the value of the contents of a register rotated by a v
  2026. 950:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] op1 Value to rotate
  2027. 951:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] op2 Number of Bits to rotate
  2028. 952:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Rotated value
  2029. 953:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2030. 954:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2)
  2031. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 36
  2032. 955:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  2033. 956:Drivers/CMSIS/Include/cmsis_gcc.h **** op2 %= 32U;
  2034. 957:Drivers/CMSIS/Include/cmsis_gcc.h **** if (op2 == 0U)
  2035. 958:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  2036. 959:Drivers/CMSIS/Include/cmsis_gcc.h **** return op1;
  2037. 960:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  2038. 961:Drivers/CMSIS/Include/cmsis_gcc.h **** return (op1 >> op2) | (op1 << (32U - op2));
  2039. 962:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  2040. 963:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2041. 964:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2042. 965:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2043. 966:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Breakpoint
  2044. 967:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Causes the processor to enter Debug state.
  2045. 968:Drivers/CMSIS/Include/cmsis_gcc.h **** Debug tools can use this to investigate system state when the instruction at a particula
  2046. 969:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value is ignored by the processor.
  2047. 970:Drivers/CMSIS/Include/cmsis_gcc.h **** If required, a debugger can use it to store additional information about the break
  2048. 971:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2049. 972:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __BKPT(value) __ASM volatile ("bkpt "#value)
  2050. 973:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2051. 974:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2052. 975:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2053. 976:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse bit order of value
  2054. 977:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the bit order of the given value.
  2055. 978:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse
  2056. 979:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value
  2057. 980:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2058. 981:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __RBIT(uint32_t value)
  2059. 982:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  2060. 983:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  2061. 984:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2062. 985:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \
  2063. 986:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \
  2064. 987:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) )
  2065. 988:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) );
  2066. 989:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  2067. 990:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t s = (4U /*sizeof(v)*/ * 8U) - 1U; /* extra shift needed at end */
  2068. 991:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2069. 992:Drivers/CMSIS/Include/cmsis_gcc.h **** result = value; /* r will be reversed bits of v; first get LSB of v */
  2070. 993:Drivers/CMSIS/Include/cmsis_gcc.h **** for (value >>= 1U; value != 0U; value >>= 1U)
  2071. 994:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  2072. 995:Drivers/CMSIS/Include/cmsis_gcc.h **** result <<= 1U;
  2073. 996:Drivers/CMSIS/Include/cmsis_gcc.h **** result |= value & 1U;
  2074. 997:Drivers/CMSIS/Include/cmsis_gcc.h **** s--;
  2075. 998:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  2076. 999:Drivers/CMSIS/Include/cmsis_gcc.h **** result <<= s; /* shift when v's highest bits are zero */
  2077. 1000:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  2078. 1001:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
  2079. 1002:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  2080. 1003:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2081. 1004:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2082. 1005:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2083. 1006:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Count leading zeros
  2084. 1007:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Counts the number of leading zeros of a data value.
  2085. 1008:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to count the leading zeros
  2086. 1009:Drivers/CMSIS/Include/cmsis_gcc.h **** \return number of leading zeros in value
  2087. 1010:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2088. 1011:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CLZ (uint8_t)__builtin_clz
  2089. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 37
  2090. 1012:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2091. 1013:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2092. 1014:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \
  2093. 1015:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \
  2094. 1016:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \
  2095. 1017:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) )
  2096. 1018:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2097. 1019:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief LDR Exclusive (8 bit)
  2098. 1020:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Executes a exclusive LDR instruction for 8 bit value.
  2099. 1021:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ptr Pointer to data
  2100. 1022:Drivers/CMSIS/Include/cmsis_gcc.h **** \return value of type uint8_t at (*ptr)
  2101. 1023:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2102. 1024:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint8_t __LDREXB(volatile uint8_t *addr)
  2103. 1025:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  2104. 1026:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  2105. 1027:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2106. 1028:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)
  2107. 1029:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("ldrexb %0, %1" : "=r" (result) : "Q" (*addr) );
  2108. 1030:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  2109. 1031:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not
  2110. 1032:Drivers/CMSIS/Include/cmsis_gcc.h **** accepted by assembler. So has to use following less efficient pattern.
  2111. 1033:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2112. 1034:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("ldrexb %0, [%1]" : "=r" (result) : "r" (addr) : "memory" );
  2113. 1035:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  2114. 1036:Drivers/CMSIS/Include/cmsis_gcc.h **** return ((uint8_t) result); /* Add explicit type cast here */
  2115. 1037:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  2116. 1038:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2117. 1039:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2118. 1040:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2119. 1041:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief LDR Exclusive (16 bit)
  2120. 1042:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Executes a exclusive LDR instruction for 16 bit values.
  2121. 1043:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ptr Pointer to data
  2122. 1044:Drivers/CMSIS/Include/cmsis_gcc.h **** \return value of type uint16_t at (*ptr)
  2123. 1045:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2124. 1046:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint16_t __LDREXH(volatile uint16_t *addr)
  2125. 1047:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  2126. 1048:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  2127. 1049:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2128. 1050:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)
  2129. 1051:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("ldrexh %0, %1" : "=r" (result) : "Q" (*addr) );
  2130. 1052:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
  2131. 1053:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not
  2132. 1054:Drivers/CMSIS/Include/cmsis_gcc.h **** accepted by assembler. So has to use following less efficient pattern.
  2133. 1055:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2134. 1056:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("ldrexh %0, [%1]" : "=r" (result) : "r" (addr) : "memory" );
  2135. 1057:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  2136. 1058:Drivers/CMSIS/Include/cmsis_gcc.h **** return ((uint16_t) result); /* Add explicit type cast here */
  2137. 1059:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  2138. 1060:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2139. 1061:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2140. 1062:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2141. 1063:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief LDR Exclusive (32 bit)
  2142. 1064:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Executes a exclusive LDR instruction for 32 bit values.
  2143. 1065:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ptr Pointer to data
  2144. 1066:Drivers/CMSIS/Include/cmsis_gcc.h **** \return value of type uint32_t at (*ptr)
  2145. 1067:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2146. 1068:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __LDREXW(volatile uint32_t *addr)
  2147. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 38
  2148. 1069:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  2149. 1070:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  2150. 1071:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2151. 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
  2152. 613 .loc 2 1072 4 discriminator 1
  2153. 614 0024 FB68 ldr r3, [r7, #12]
  2154. 615 .syntax unified
  2155. 616 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
  2156. 617 0026 53E8003F ldrex r3, [r3]
  2157. 618 @ 0 "" 2
  2158. 619 .thumb
  2159. 620 .syntax unified
  2160. 621 002a BB60 str r3, [r7, #8]
  2161. 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  2162. 622 .loc 2 1073 10 discriminator 1
  2163. 623 002c BB68 ldr r3, [r7, #8]
  2164. 624 .LBE24:
  2165. 625 .LBE23:
  2166. 626 .loc 1 433 3 discriminator 1
  2167. 627 002e 43F00203 orr r3, r3, #2
  2168. 628 0032 FB61 str r3, [r7, #28]
  2169. 629 0034 7B68 ldr r3, [r7, #4]
  2170. 630 0036 1B68 ldr r3, [r3]
  2171. 631 0038 1A46 mov r2, r3
  2172. 632 003a FB69 ldr r3, [r7, #28]
  2173. 633 003c BB61 str r3, [r7, #24]
  2174. 634 003e 7A61 str r2, [r7, #20]
  2175. 635 .LBB25:
  2176. 636 .LBB26:
  2177. 1074:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  2178. 1075:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2179. 1076:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2180. 1077:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2181. 1078:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief STR Exclusive (8 bit)
  2182. 1079:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Executes a exclusive STR instruction for 8 bit values.
  2183. 1080:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to store
  2184. 1081:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ptr Pointer to location
  2185. 1082:Drivers/CMSIS/Include/cmsis_gcc.h **** \return 0 Function succeeded
  2186. 1083:Drivers/CMSIS/Include/cmsis_gcc.h **** \return 1 Function failed
  2187. 1084:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2188. 1085:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __STREXB(uint8_t value, volatile uint8_t *addr)
  2189. 1086:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  2190. 1087:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  2191. 1088:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2192. 1089:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("strexb %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" ((uint32_t)value) );
  2193. 1090:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  2194. 1091:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  2195. 1092:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2196. 1093:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2197. 1094:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2198. 1095:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief STR Exclusive (16 bit)
  2199. 1096:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Executes a exclusive STR instruction for 16 bit values.
  2200. 1097:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to store
  2201. 1098:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ptr Pointer to location
  2202. 1099:Drivers/CMSIS/Include/cmsis_gcc.h **** \return 0 Function succeeded
  2203. 1100:Drivers/CMSIS/Include/cmsis_gcc.h **** \return 1 Function failed
  2204. 1101:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2205. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 39
  2206. 1102:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __STREXH(uint16_t value, volatile uint16_t *addr)
  2207. 1103:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  2208. 1104:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  2209. 1105:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2210. 1106:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("strexh %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" ((uint32_t)value) );
  2211. 1107:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  2212. 1108:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  2213. 1109:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2214. 1110:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2215. 1111:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
  2216. 1112:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief STR Exclusive (32 bit)
  2217. 1113:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Executes a exclusive STR instruction for 32 bit values.
  2218. 1114:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to store
  2219. 1115:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ptr Pointer to location
  2220. 1116:Drivers/CMSIS/Include/cmsis_gcc.h **** \return 0 Function succeeded
  2221. 1117:Drivers/CMSIS/Include/cmsis_gcc.h **** \return 1 Function failed
  2222. 1118:Drivers/CMSIS/Include/cmsis_gcc.h **** */
  2223. 1119:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __STREXW(uint32_t value, volatile uint32_t *addr)
  2224. 1120:Drivers/CMSIS/Include/cmsis_gcc.h **** {
  2225. 1121:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
  2226. 1122:Drivers/CMSIS/Include/cmsis_gcc.h ****
  2227. 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
  2228. 637 .loc 2 1123 4 discriminator 1
  2229. 638 0040 7969 ldr r1, [r7, #20]
  2230. 639 0042 BA69 ldr r2, [r7, #24]
  2231. 640 .syntax unified
  2232. 641 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
  2233. 642 0044 41E80023 strex r3, r2, [r1]
  2234. 643 @ 0 "" 2
  2235. 644 .thumb
  2236. 645 .syntax unified
  2237. 646 0048 3B61 str r3, [r7, #16]
  2238. 1124:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  2239. 647 .loc 2 1124 10 discriminator 1
  2240. 648 004a 3B69 ldr r3, [r7, #16]
  2241. 649 .LBE26:
  2242. 650 .LBE25:
  2243. 651 .loc 1 433 3 discriminator 1
  2244. 652 004c 002B cmp r3, #0
  2245. 653 004e E6D1 bne .L35
  2246. 654 .LBE22:
  2247. 434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  2248. 435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Process Unlocked */
  2249. 436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** __HAL_UNLOCK(huart);
  2250. 655 .loc 1 436 3
  2251. 656 0050 7B68 ldr r3, [r7, #4]
  2252. 657 0052 0022 movs r2, #0
  2253. 658 0054 83F87820 strb r2, [r3, #120]
  2254. 437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  2255. 438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** return HAL_OK;
  2256. 659 .loc 1 438 10
  2257. 660 0058 0023 movs r3, #0
  2258. 661 .L32:
  2259. 439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  2260. 662 .loc 1 439 1
  2261. 663 005a 1846 mov r0, r3
  2262. 664 005c 2437 adds r7, r7, #36
  2263. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 40
  2264. 665 .LCFI24:
  2265. 666 .cfi_def_cfa_offset 4
  2266. 667 005e BD46 mov sp, r7
  2267. 668 .LCFI25:
  2268. 669 .cfi_def_cfa_register 13
  2269. 670 @ sp needed
  2270. 671 0060 5DF8047B ldr r7, [sp], #4
  2271. 672 .LCFI26:
  2272. 673 .cfi_restore 7
  2273. 674 .cfi_def_cfa_offset 0
  2274. 675 0064 7047 bx lr
  2275. 676 .cfi_endproc
  2276. 677 .LFE134:
  2277. 679 .section .text.HAL_UARTEx_DisableStopMode,"ax",%progbits
  2278. 680 .align 1
  2279. 681 .global HAL_UARTEx_DisableStopMode
  2280. 682 .syntax unified
  2281. 683 .thumb
  2282. 684 .thumb_func
  2283. 686 HAL_UARTEx_DisableStopMode:
  2284. 687 .LFB135:
  2285. 440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  2286. 441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /**
  2287. 442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @brief Disable UART Stop Mode.
  2288. 443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @param huart UART handle.
  2289. 444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @retval HAL status
  2290. 445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** */
  2291. 446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** HAL_StatusTypeDef HAL_UARTEx_DisableStopMode(UART_HandleTypeDef *huart)
  2292. 447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  2293. 688 .loc 1 447 1
  2294. 689 .cfi_startproc
  2295. 690 @ args = 0, pretend = 0, frame = 32
  2296. 691 @ frame_needed = 1, uses_anonymous_args = 0
  2297. 692 @ link register save eliminated.
  2298. 693 0000 80B4 push {r7}
  2299. 694 .LCFI27:
  2300. 695 .cfi_def_cfa_offset 4
  2301. 696 .cfi_offset 7, -4
  2302. 697 0002 89B0 sub sp, sp, #36
  2303. 698 .LCFI28:
  2304. 699 .cfi_def_cfa_offset 40
  2305. 700 0004 00AF add r7, sp, #0
  2306. 701 .LCFI29:
  2307. 702 .cfi_def_cfa_register 7
  2308. 703 0006 7860 str r0, [r7, #4]
  2309. 448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Process Locked */
  2310. 449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** __HAL_LOCK(huart);
  2311. 704 .loc 1 449 3
  2312. 705 0008 7B68 ldr r3, [r7, #4]
  2313. 706 000a 93F87830 ldrb r3, [r3, #120] @ zero_extendqisi2
  2314. 707 000e 012B cmp r3, #1
  2315. 708 0010 01D1 bne .L37
  2316. 709 .loc 1 449 3 is_stmt 0 discriminator 1
  2317. 710 0012 0223 movs r3, #2
  2318. 711 0014 21E0 b .L38
  2319. 712 .L37:
  2320. 713 .loc 1 449 3 discriminator 2
  2321. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 41
  2322. 714 0016 7B68 ldr r3, [r7, #4]
  2323. 715 0018 0122 movs r2, #1
  2324. 716 001a 83F87820 strb r2, [r3, #120]
  2325. 717 .L41:
  2326. 718 .LBB27:
  2327. 450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  2328. 451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Clear UESM bit */
  2329. 452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_UESM);
  2330. 719 .loc 1 452 3 is_stmt 1 discriminator 1
  2331. 720 001e 7B68 ldr r3, [r7, #4]
  2332. 721 0020 1B68 ldr r3, [r3]
  2333. 722 0022 FB60 str r3, [r7, #12]
  2334. 723 .LBB28:
  2335. 724 .LBB29:
  2336. 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  2337. 725 .loc 2 1072 4 discriminator 1
  2338. 726 0024 FB68 ldr r3, [r7, #12]
  2339. 727 .syntax unified
  2340. 728 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
  2341. 729 0026 53E8003F ldrex r3, [r3]
  2342. 730 @ 0 "" 2
  2343. 731 .thumb
  2344. 732 .syntax unified
  2345. 733 002a BB60 str r3, [r7, #8]
  2346. 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  2347. 734 .loc 2 1073 10 discriminator 1
  2348. 735 002c BB68 ldr r3, [r7, #8]
  2349. 736 .LBE29:
  2350. 737 .LBE28:
  2351. 738 .loc 1 452 3 discriminator 1
  2352. 739 002e 23F00203 bic r3, r3, #2
  2353. 740 0032 FB61 str r3, [r7, #28]
  2354. 741 0034 7B68 ldr r3, [r7, #4]
  2355. 742 0036 1B68 ldr r3, [r3]
  2356. 743 0038 1A46 mov r2, r3
  2357. 744 003a FB69 ldr r3, [r7, #28]
  2358. 745 003c BB61 str r3, [r7, #24]
  2359. 746 003e 7A61 str r2, [r7, #20]
  2360. 747 .LBB30:
  2361. 748 .LBB31:
  2362. 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  2363. 749 .loc 2 1123 4 discriminator 1
  2364. 750 0040 7969 ldr r1, [r7, #20]
  2365. 751 0042 BA69 ldr r2, [r7, #24]
  2366. 752 .syntax unified
  2367. 753 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
  2368. 754 0044 41E80023 strex r3, r2, [r1]
  2369. 755 @ 0 "" 2
  2370. 756 .thumb
  2371. 757 .syntax unified
  2372. 758 0048 3B61 str r3, [r7, #16]
  2373. 759 .loc 2 1124 10 discriminator 1
  2374. 760 004a 3B69 ldr r3, [r7, #16]
  2375. 761 .LBE31:
  2376. 762 .LBE30:
  2377. 763 .loc 1 452 3 discriminator 1
  2378. 764 004c 002B cmp r3, #0
  2379. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 42
  2380. 765 004e E6D1 bne .L41
  2381. 766 .LBE27:
  2382. 453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  2383. 454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Process Unlocked */
  2384. 455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** __HAL_UNLOCK(huart);
  2385. 767 .loc 1 455 3
  2386. 768 0050 7B68 ldr r3, [r7, #4]
  2387. 769 0052 0022 movs r2, #0
  2388. 770 0054 83F87820 strb r2, [r3, #120]
  2389. 456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  2390. 457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** return HAL_OK;
  2391. 771 .loc 1 457 10
  2392. 772 0058 0023 movs r3, #0
  2393. 773 .L38:
  2394. 458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  2395. 774 .loc 1 458 1
  2396. 775 005a 1846 mov r0, r3
  2397. 776 005c 2437 adds r7, r7, #36
  2398. 777 .LCFI30:
  2399. 778 .cfi_def_cfa_offset 4
  2400. 779 005e BD46 mov sp, r7
  2401. 780 .LCFI31:
  2402. 781 .cfi_def_cfa_register 13
  2403. 782 @ sp needed
  2404. 783 0060 5DF8047B ldr r7, [sp], #4
  2405. 784 .LCFI32:
  2406. 785 .cfi_restore 7
  2407. 786 .cfi_def_cfa_offset 0
  2408. 787 0064 7047 bx lr
  2409. 788 .cfi_endproc
  2410. 789 .LFE135:
  2411. 791 .section .text.HAL_UARTEx_ReceiveToIdle,"ax",%progbits
  2412. 792 .align 1
  2413. 793 .global HAL_UARTEx_ReceiveToIdle
  2414. 794 .syntax unified
  2415. 795 .thumb
  2416. 796 .thumb_func
  2417. 798 HAL_UARTEx_ReceiveToIdle:
  2418. 799 .LFB136:
  2419. 459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  2420. 460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /**
  2421. 461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @brief Receive an amount of data in blocking mode till either the expected number of data
  2422. 462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * is received or an IDLE event occurs.
  2423. 463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @note HAL_OK is returned if reception is completed (expected number of data has been received)
  2424. 464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * or if reception is stopped after IDLE event (less than the expected number of data has b
  2425. 465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * In this case, RxLen output parameter indicates number of data available in reception buf
  2426. 466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1-M
  2427. 467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * the received data is handled as a set of uint16_t. In this case, Size must indicate the
  2428. 468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * of uint16_t available through pData.
  2429. 469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @param huart UART handle.
  2430. 470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @param pData Pointer to data buffer (uint8_t or uint16_t data elements).
  2431. 471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @param Size Amount of data elements (uint8_t or uint16_t) to be received.
  2432. 472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @param RxLen Number of data elements finally received
  2433. 473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * (could be lower than Size, in case reception ends on IDLE event)
  2434. 474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @param Timeout Timeout duration expressed in ms (covers the whole reception sequence).
  2435. 475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @retval HAL status
  2436. 476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** */
  2437. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 43
  2438. 477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size
  2439. 478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** uint32_t Timeout)
  2440. 479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  2441. 800 .loc 1 479 1
  2442. 801 .cfi_startproc
  2443. 802 @ args = 4, pretend = 0, frame = 32
  2444. 803 @ frame_needed = 1, uses_anonymous_args = 0
  2445. 804 0000 80B5 push {r7, lr}
  2446. 805 .LCFI33:
  2447. 806 .cfi_def_cfa_offset 8
  2448. 807 .cfi_offset 7, -8
  2449. 808 .cfi_offset 14, -4
  2450. 809 0002 88B0 sub sp, sp, #32
  2451. 810 .LCFI34:
  2452. 811 .cfi_def_cfa_offset 40
  2453. 812 0004 00AF add r7, sp, #0
  2454. 813 .LCFI35:
  2455. 814 .cfi_def_cfa_register 7
  2456. 815 0006 F860 str r0, [r7, #12]
  2457. 816 0008 B960 str r1, [r7, #8]
  2458. 817 000a 3B60 str r3, [r7]
  2459. 818 000c 1346 mov r3, r2 @ movhi
  2460. 819 000e FB80 strh r3, [r7, #6] @ movhi
  2461. 480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** uint8_t *pdata8bits;
  2462. 481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** uint16_t *pdata16bits;
  2463. 482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** uint16_t uhMask;
  2464. 483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** uint32_t tickstart;
  2465. 484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  2466. 485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Check that a Rx process is not already ongoing */
  2467. 486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** if (huart->RxState == HAL_UART_STATE_READY)
  2468. 820 .loc 1 486 12
  2469. 821 0010 FB68 ldr r3, [r7, #12]
  2470. 822 0012 D3F88030 ldr r3, [r3, #128]
  2471. 823 .loc 1 486 6
  2472. 824 0016 202B cmp r3, #32
  2473. 825 0018 40F0DD80 bne .L43
  2474. 487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  2475. 488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** if ((pData == NULL) || (Size == 0U))
  2476. 826 .loc 1 488 8
  2477. 827 001c BB68 ldr r3, [r7, #8]
  2478. 828 001e 002B cmp r3, #0
  2479. 829 0020 02D0 beq .L44
  2480. 830 .loc 1 488 25 discriminator 1
  2481. 831 0022 FB88 ldrh r3, [r7, #6]
  2482. 832 0024 002B cmp r3, #0
  2483. 833 0026 01D1 bne .L45
  2484. 834 .L44:
  2485. 489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  2486. 490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** return HAL_ERROR;
  2487. 835 .loc 1 490 15
  2488. 836 0028 0123 movs r3, #1
  2489. 837 002a D5E0 b .L46
  2490. 838 .L45:
  2491. 491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  2492. 492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  2493. 493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** huart->ErrorCode = HAL_UART_ERROR_NONE;
  2494. 839 .loc 1 493 22
  2495. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 44
  2496. 840 002c FB68 ldr r3, [r7, #12]
  2497. 841 002e 0022 movs r2, #0
  2498. 842 0030 C3F88420 str r2, [r3, #132]
  2499. 494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** huart->RxState = HAL_UART_STATE_BUSY_RX;
  2500. 843 .loc 1 494 20
  2501. 844 0034 FB68 ldr r3, [r7, #12]
  2502. 845 0036 2222 movs r2, #34
  2503. 846 0038 C3F88020 str r2, [r3, #128]
  2504. 495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** huart->ReceptionType = HAL_UART_RECEPTION_TOIDLE;
  2505. 847 .loc 1 495 26
  2506. 848 003c FB68 ldr r3, [r7, #12]
  2507. 849 003e 0122 movs r2, #1
  2508. 850 0040 1A66 str r2, [r3, #96]
  2509. 496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** huart->RxEventType = HAL_UART_RXEVENT_TC;
  2510. 851 .loc 1 496 24
  2511. 852 0042 FB68 ldr r3, [r7, #12]
  2512. 853 0044 0022 movs r2, #0
  2513. 854 0046 5A66 str r2, [r3, #100]
  2514. 497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  2515. 498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Init tickstart for timeout management */
  2516. 499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** tickstart = HAL_GetTick();
  2517. 855 .loc 1 499 17
  2518. 856 0048 FFF7FEFF bl HAL_GetTick
  2519. 857 004c 7861 str r0, [r7, #20]
  2520. 500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  2521. 501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** huart->RxXferSize = Size;
  2522. 858 .loc 1 501 24
  2523. 859 004e FB68 ldr r3, [r7, #12]
  2524. 860 0050 FA88 ldrh r2, [r7, #6] @ movhi
  2525. 861 0052 A3F85820 strh r2, [r3, #88] @ movhi
  2526. 502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** huart->RxXferCount = Size;
  2527. 862 .loc 1 502 24
  2528. 863 0056 FB68 ldr r3, [r7, #12]
  2529. 864 0058 FA88 ldrh r2, [r7, #6] @ movhi
  2530. 865 005a A3F85A20 strh r2, [r3, #90] @ movhi
  2531. 503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  2532. 504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Computation of UART mask to apply to RDR register */
  2533. 505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** UART_MASK_COMPUTATION(huart);
  2534. 866 .loc 1 505 5
  2535. 867 005e FB68 ldr r3, [r7, #12]
  2536. 868 0060 9B68 ldr r3, [r3, #8]
  2537. 869 0062 B3F5805F cmp r3, #4096
  2538. 870 0066 0ED1 bne .L47
  2539. 871 .loc 1 505 5 is_stmt 0 discriminator 1
  2540. 872 0068 FB68 ldr r3, [r7, #12]
  2541. 873 006a 1B69 ldr r3, [r3, #16]
  2542. 874 006c 002B cmp r3, #0
  2543. 875 006e 05D1 bne .L48
  2544. 876 .loc 1 505 5 discriminator 3
  2545. 877 0070 FB68 ldr r3, [r7, #12]
  2546. 878 0072 40F2FF12 movw r2, #511
  2547. 879 0076 A3F85C20 strh r2, [r3, #92] @ movhi
  2548. 880 007a 1AE0 b .L49
  2549. 881 .L48:
  2550. 882 .loc 1 505 5 discriminator 4
  2551. 883 007c FB68 ldr r3, [r7, #12]
  2552. 884 007e FF22 movs r2, #255
  2553. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 45
  2554. 885 0080 A3F85C20 strh r2, [r3, #92] @ movhi
  2555. 886 0084 15E0 b .L49
  2556. 887 .L47:
  2557. 888 .loc 1 505 5 discriminator 2
  2558. 889 0086 FB68 ldr r3, [r7, #12]
  2559. 890 0088 9B68 ldr r3, [r3, #8]
  2560. 891 008a 002B cmp r3, #0
  2561. 892 008c 0DD1 bne .L50
  2562. 893 .loc 1 505 5 discriminator 5
  2563. 894 008e FB68 ldr r3, [r7, #12]
  2564. 895 0090 1B69 ldr r3, [r3, #16]
  2565. 896 0092 002B cmp r3, #0
  2566. 897 0094 04D1 bne .L51
  2567. 898 .loc 1 505 5 discriminator 7
  2568. 899 0096 FB68 ldr r3, [r7, #12]
  2569. 900 0098 FF22 movs r2, #255
  2570. 901 009a A3F85C20 strh r2, [r3, #92] @ movhi
  2571. 902 009e 08E0 b .L49
  2572. 903 .L51:
  2573. 904 .loc 1 505 5 discriminator 8
  2574. 905 00a0 FB68 ldr r3, [r7, #12]
  2575. 906 00a2 7F22 movs r2, #127
  2576. 907 00a4 A3F85C20 strh r2, [r3, #92] @ movhi
  2577. 908 00a8 03E0 b .L49
  2578. 909 .L50:
  2579. 910 .loc 1 505 5 discriminator 6
  2580. 911 00aa FB68 ldr r3, [r7, #12]
  2581. 912 00ac 0022 movs r2, #0
  2582. 913 00ae A3F85C20 strh r2, [r3, #92] @ movhi
  2583. 914 .L49:
  2584. 506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** uhMask = huart->Mask;
  2585. 915 .loc 1 506 12 is_stmt 1
  2586. 916 00b2 FB68 ldr r3, [r7, #12]
  2587. 917 00b4 B3F85C30 ldrh r3, [r3, #92] @ movhi
  2588. 918 00b8 7B82 strh r3, [r7, #18] @ movhi
  2589. 507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  2590. 508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* In case of 9bits/No Parity transfer, pRxData needs to be handled as a uint16_t pointer */
  2591. 509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE))
  2592. 919 .loc 1 509 21
  2593. 920 00ba FB68 ldr r3, [r7, #12]
  2594. 921 00bc 9B68 ldr r3, [r3, #8]
  2595. 922 .loc 1 509 8
  2596. 923 00be B3F5805F cmp r3, #4096
  2597. 924 00c2 08D1 bne .L52
  2598. 925 .loc 1 509 71 discriminator 1
  2599. 926 00c4 FB68 ldr r3, [r7, #12]
  2600. 927 00c6 1B69 ldr r3, [r3, #16]
  2601. 928 .loc 1 509 56 discriminator 1
  2602. 929 00c8 002B cmp r3, #0
  2603. 930 00ca 04D1 bne .L52
  2604. 510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  2605. 511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** pdata8bits = NULL;
  2606. 931 .loc 1 511 19
  2607. 932 00cc 0023 movs r3, #0
  2608. 933 00ce FB61 str r3, [r7, #28]
  2609. 512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** pdata16bits = (uint16_t *) pData;
  2610. 934 .loc 1 512 19
  2611. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 46
  2612. 935 00d0 BB68 ldr r3, [r7, #8]
  2613. 936 00d2 BB61 str r3, [r7, #24]
  2614. 937 00d4 03E0 b .L53
  2615. 938 .L52:
  2616. 513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  2617. 514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** else
  2618. 515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  2619. 516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** pdata8bits = pData;
  2620. 939 .loc 1 516 19
  2621. 940 00d6 BB68 ldr r3, [r7, #8]
  2622. 941 00d8 FB61 str r3, [r7, #28]
  2623. 517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** pdata16bits = NULL;
  2624. 942 .loc 1 517 19
  2625. 943 00da 0023 movs r3, #0
  2626. 944 00dc BB61 str r3, [r7, #24]
  2627. 945 .L53:
  2628. 518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  2629. 519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  2630. 520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Initialize output number of received elements */
  2631. 521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** *RxLen = 0U;
  2632. 946 .loc 1 521 12
  2633. 947 00de 3B68 ldr r3, [r7]
  2634. 948 00e0 0022 movs r2, #0
  2635. 949 00e2 1A80 strh r2, [r3] @ movhi
  2636. 522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  2637. 523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* as long as data have to be received */
  2638. 524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** while (huart->RxXferCount > 0U)
  2639. 950 .loc 1 524 11
  2640. 951 00e4 60E0 b .L54
  2641. 952 .L60:
  2642. 525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  2643. 526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Check if IDLE flag is set */
  2644. 527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE))
  2645. 953 .loc 1 527 11
  2646. 954 00e6 FB68 ldr r3, [r7, #12]
  2647. 955 00e8 1B68 ldr r3, [r3]
  2648. 956 00ea DB69 ldr r3, [r3, #28]
  2649. 957 00ec 03F01003 and r3, r3, #16
  2650. 958 .loc 1 527 10
  2651. 959 00f0 102B cmp r3, #16
  2652. 960 00f2 10D1 bne .L55
  2653. 528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  2654. 529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Clear IDLE flag in ISR */
  2655. 530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF);
  2656. 961 .loc 1 530 9
  2657. 962 00f4 FB68 ldr r3, [r7, #12]
  2658. 963 00f6 1B68 ldr r3, [r3]
  2659. 964 00f8 1022 movs r2, #16
  2660. 965 00fa 1A62 str r2, [r3, #32]
  2661. 531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  2662. 532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* If Set, but no data ever received, clear flag without exiting loop */
  2663. 533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* If Set, and data has already been received, this means Idle Event is valid : End recepti
  2664. 534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** if (*RxLen > 0U)
  2665. 966 .loc 1 534 13
  2666. 967 00fc 3B68 ldr r3, [r7]
  2667. 968 00fe 1B88 ldrh r3, [r3]
  2668. 969 .loc 1 534 12
  2669. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 47
  2670. 970 0100 002B cmp r3, #0
  2671. 971 0102 08D0 beq .L55
  2672. 535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  2673. 536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** huart->RxEventType = HAL_UART_RXEVENT_IDLE;
  2674. 972 .loc 1 536 30
  2675. 973 0104 FB68 ldr r3, [r7, #12]
  2676. 974 0106 0222 movs r2, #2
  2677. 975 0108 5A66 str r2, [r3, #100]
  2678. 537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** huart->RxState = HAL_UART_STATE_READY;
  2679. 976 .loc 1 537 26
  2680. 977 010a FB68 ldr r3, [r7, #12]
  2681. 978 010c 2022 movs r2, #32
  2682. 979 010e C3F88020 str r2, [r3, #128]
  2683. 538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  2684. 539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** return HAL_OK;
  2685. 980 .loc 1 539 18
  2686. 981 0112 0023 movs r3, #0
  2687. 982 0114 60E0 b .L46
  2688. 983 .L55:
  2689. 540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  2690. 541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  2691. 542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  2692. 543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Check if RXNE flag is set */
  2693. 544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** if (__HAL_UART_GET_FLAG(huart, UART_FLAG_RXNE))
  2694. 984 .loc 1 544 11
  2695. 985 0116 FB68 ldr r3, [r7, #12]
  2696. 986 0118 1B68 ldr r3, [r3]
  2697. 987 011a DB69 ldr r3, [r3, #28]
  2698. 988 011c 03F02003 and r3, r3, #32
  2699. 989 .loc 1 544 10
  2700. 990 0120 202B cmp r3, #32
  2701. 991 0122 2CD1 bne .L56
  2702. 545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  2703. 546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** if (pdata8bits == NULL)
  2704. 992 .loc 1 546 12
  2705. 993 0124 FB69 ldr r3, [r7, #28]
  2706. 994 0126 002B cmp r3, #0
  2707. 995 0128 0CD1 bne .L57
  2708. 547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  2709. 548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** *pdata16bits = (uint16_t)(huart->Instance->RDR & uhMask);
  2710. 996 .loc 1 548 42
  2711. 997 012a FB68 ldr r3, [r7, #12]
  2712. 998 012c 1B68 ldr r3, [r3]
  2713. 999 .loc 1 548 52
  2714. 1000 012e 9B8C ldrh r3, [r3, #36] @ movhi
  2715. 1001 0130 9AB2 uxth r2, r3
  2716. 1002 .loc 1 548 26
  2717. 1003 0132 7B8A ldrh r3, [r7, #18] @ movhi
  2718. 1004 0134 1340 ands r3, r3, r2
  2719. 1005 0136 9AB2 uxth r2, r3
  2720. 1006 .loc 1 548 24
  2721. 1007 0138 BB69 ldr r3, [r7, #24]
  2722. 1008 013a 1A80 strh r2, [r3] @ movhi
  2723. 549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** pdata16bits++;
  2724. 1009 .loc 1 549 22
  2725. 1010 013c BB69 ldr r3, [r7, #24]
  2726. 1011 013e 0233 adds r3, r3, #2
  2727. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 48
  2728. 1012 0140 BB61 str r3, [r7, #24]
  2729. 1013 0142 0DE0 b .L58
  2730. 1014 .L57:
  2731. 550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  2732. 551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** else
  2733. 552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  2734. 553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** *pdata8bits = (uint8_t)(huart->Instance->RDR & (uint8_t)uhMask);
  2735. 1015 .loc 1 553 40
  2736. 1016 0144 FB68 ldr r3, [r7, #12]
  2737. 1017 0146 1B68 ldr r3, [r3]
  2738. 1018 .loc 1 553 50
  2739. 1019 0148 9B8C ldrh r3, [r3, #36] @ movhi
  2740. 1020 014a 9BB2 uxth r3, r3
  2741. 1021 .loc 1 553 25
  2742. 1022 014c DAB2 uxtb r2, r3
  2743. 1023 .loc 1 553 58
  2744. 1024 014e 7B8A ldrh r3, [r7, #18] @ movhi
  2745. 1025 0150 DBB2 uxtb r3, r3
  2746. 1026 .loc 1 553 25
  2747. 1027 0152 1340 ands r3, r3, r2
  2748. 1028 0154 DAB2 uxtb r2, r3
  2749. 1029 .loc 1 553 23
  2750. 1030 0156 FB69 ldr r3, [r7, #28]
  2751. 1031 0158 1A70 strb r2, [r3]
  2752. 554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** pdata8bits++;
  2753. 1032 .loc 1 554 21
  2754. 1033 015a FB69 ldr r3, [r7, #28]
  2755. 1034 015c 0133 adds r3, r3, #1
  2756. 1035 015e FB61 str r3, [r7, #28]
  2757. 1036 .L58:
  2758. 555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  2759. 556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Increment number of received elements */
  2760. 557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** *RxLen += 1U;
  2761. 1037 .loc 1 557 16
  2762. 1038 0160 3B68 ldr r3, [r7]
  2763. 1039 0162 1B88 ldrh r3, [r3]
  2764. 1040 0164 0133 adds r3, r3, #1
  2765. 1041 0166 9AB2 uxth r2, r3
  2766. 1042 0168 3B68 ldr r3, [r7]
  2767. 1043 016a 1A80 strh r2, [r3] @ movhi
  2768. 558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** huart->RxXferCount--;
  2769. 1044 .loc 1 558 14
  2770. 1045 016c FB68 ldr r3, [r7, #12]
  2771. 1046 016e B3F85A30 ldrh r3, [r3, #90] @ movhi
  2772. 1047 0172 9BB2 uxth r3, r3
  2773. 1048 .loc 1 558 27
  2774. 1049 0174 013B subs r3, r3, #1
  2775. 1050 0176 9AB2 uxth r2, r3
  2776. 1051 0178 FB68 ldr r3, [r7, #12]
  2777. 1052 017a A3F85A20 strh r2, [r3, #90] @ movhi
  2778. 1053 .L56:
  2779. 559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  2780. 560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  2781. 561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Check for the Timeout */
  2782. 562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** if (Timeout != HAL_MAX_DELAY)
  2783. 1054 .loc 1 562 10
  2784. 1055 017e BB6A ldr r3, [r7, #40]
  2785. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 49
  2786. 1056 0180 B3F1FF3F cmp r3, #-1
  2787. 1057 0184 10D0 beq .L54
  2788. 563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  2789. 564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
  2790. 1058 .loc 1 564 15
  2791. 1059 0186 FFF7FEFF bl HAL_GetTick
  2792. 1060 018a 0246 mov r2, r0
  2793. 1061 .loc 1 564 29
  2794. 1062 018c 7B69 ldr r3, [r7, #20]
  2795. 1063 018e D31A subs r3, r2, r3
  2796. 1064 .loc 1 564 12
  2797. 1065 0190 BA6A ldr r2, [r7, #40]
  2798. 1066 0192 9A42 cmp r2, r3
  2799. 1067 0194 02D3 bcc .L59
  2800. 1068 .loc 1 564 53 discriminator 1
  2801. 1069 0196 BB6A ldr r3, [r7, #40]
  2802. 1070 0198 002B cmp r3, #0
  2803. 1071 019a 05D1 bne .L54
  2804. 1072 .L59:
  2805. 565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  2806. 566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** huart->RxState = HAL_UART_STATE_READY;
  2807. 1073 .loc 1 566 26
  2808. 1074 019c FB68 ldr r3, [r7, #12]
  2809. 1075 019e 2022 movs r2, #32
  2810. 1076 01a0 C3F88020 str r2, [r3, #128]
  2811. 567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  2812. 568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** return HAL_TIMEOUT;
  2813. 1077 .loc 1 568 18
  2814. 1078 01a4 0323 movs r3, #3
  2815. 1079 01a6 17E0 b .L46
  2816. 1080 .L54:
  2817. 524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  2818. 1081 .loc 1 524 17
  2819. 1082 01a8 FB68 ldr r3, [r7, #12]
  2820. 1083 01aa B3F85A30 ldrh r3, [r3, #90] @ movhi
  2821. 1084 01ae 9BB2 uxth r3, r3
  2822. 524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  2823. 1085 .loc 1 524 11
  2824. 1086 01b0 002B cmp r3, #0
  2825. 1087 01b2 98D1 bne .L60
  2826. 569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  2827. 570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  2828. 571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  2829. 572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  2830. 573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Set number of received elements in output parameter : RxLen */
  2831. 574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** *RxLen = huart->RxXferSize - huart->RxXferCount;
  2832. 1088 .loc 1 574 19
  2833. 1089 01b4 FB68 ldr r3, [r7, #12]
  2834. 1090 01b6 B3F85820 ldrh r2, [r3, #88]
  2835. 1091 .loc 1 574 39
  2836. 1092 01ba FB68 ldr r3, [r7, #12]
  2837. 1093 01bc B3F85A30 ldrh r3, [r3, #90] @ movhi
  2838. 1094 01c0 9BB2 uxth r3, r3
  2839. 1095 .loc 1 574 32
  2840. 1096 01c2 D31A subs r3, r2, r3
  2841. 1097 01c4 9AB2 uxth r2, r3
  2842. 1098 .loc 1 574 12
  2843. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 50
  2844. 1099 01c6 3B68 ldr r3, [r7]
  2845. 1100 01c8 1A80 strh r2, [r3] @ movhi
  2846. 575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* At end of Rx process, restore huart->RxState to Ready */
  2847. 576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** huart->RxState = HAL_UART_STATE_READY;
  2848. 1101 .loc 1 576 20
  2849. 1102 01ca FB68 ldr r3, [r7, #12]
  2850. 1103 01cc 2022 movs r2, #32
  2851. 1104 01ce C3F88020 str r2, [r3, #128]
  2852. 577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  2853. 578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** return HAL_OK;
  2854. 1105 .loc 1 578 12
  2855. 1106 01d2 0023 movs r3, #0
  2856. 1107 01d4 00E0 b .L46
  2857. 1108 .L43:
  2858. 579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  2859. 580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** else
  2860. 581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  2861. 582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** return HAL_BUSY;
  2862. 1109 .loc 1 582 12
  2863. 1110 01d6 0223 movs r3, #2
  2864. 1111 .L46:
  2865. 583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  2866. 584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  2867. 1112 .loc 1 584 1
  2868. 1113 01d8 1846 mov r0, r3
  2869. 1114 01da 2037 adds r7, r7, #32
  2870. 1115 .LCFI36:
  2871. 1116 .cfi_def_cfa_offset 8
  2872. 1117 01dc BD46 mov sp, r7
  2873. 1118 .LCFI37:
  2874. 1119 .cfi_def_cfa_register 13
  2875. 1120 @ sp needed
  2876. 1121 01de 80BD pop {r7, pc}
  2877. 1122 .cfi_endproc
  2878. 1123 .LFE136:
  2879. 1125 .section .text.HAL_UARTEx_ReceiveToIdle_IT,"ax",%progbits
  2880. 1126 .align 1
  2881. 1127 .global HAL_UARTEx_ReceiveToIdle_IT
  2882. 1128 .syntax unified
  2883. 1129 .thumb
  2884. 1130 .thumb_func
  2885. 1132 HAL_UARTEx_ReceiveToIdle_IT:
  2886. 1133 .LFB137:
  2887. 585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  2888. 586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /**
  2889. 587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @brief Receive an amount of data in interrupt mode till either the expected number of data
  2890. 588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * is received or an IDLE event occurs.
  2891. 589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @note Reception is initiated by this function call. Further progress of reception is achieved
  2892. 590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * to UART interrupts raised by RXNE and IDLE events. Callback is called at end of receptio
  2893. 591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * number of received data elements.
  2894. 592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1-M
  2895. 593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * the received data is handled as a set of uint16_t. In this case, Size must indicate the
  2896. 594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * of uint16_t available through pData.
  2897. 595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @param huart UART handle.
  2898. 596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @param pData Pointer to data buffer (uint8_t or uint16_t data elements).
  2899. 597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @param Size Amount of data elements (uint8_t or uint16_t) to be received.
  2900. 598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @retval HAL status
  2901. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 51
  2902. 599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** */
  2903. 600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t S
  2904. 601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  2905. 1134 .loc 1 601 1
  2906. 1135 .cfi_startproc
  2907. 1136 @ args = 0, pretend = 0, frame = 48
  2908. 1137 @ frame_needed = 1, uses_anonymous_args = 0
  2909. 1138 0000 80B5 push {r7, lr}
  2910. 1139 .LCFI38:
  2911. 1140 .cfi_def_cfa_offset 8
  2912. 1141 .cfi_offset 7, -8
  2913. 1142 .cfi_offset 14, -4
  2914. 1143 0002 8CB0 sub sp, sp, #48
  2915. 1144 .LCFI39:
  2916. 1145 .cfi_def_cfa_offset 56
  2917. 1146 0004 00AF add r7, sp, #0
  2918. 1147 .LCFI40:
  2919. 1148 .cfi_def_cfa_register 7
  2920. 1149 0006 F860 str r0, [r7, #12]
  2921. 1150 0008 B960 str r1, [r7, #8]
  2922. 1151 000a 1346 mov r3, r2
  2923. 1152 000c FB80 strh r3, [r7, #6] @ movhi
  2924. 602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** HAL_StatusTypeDef status = HAL_OK;
  2925. 1153 .loc 1 602 21
  2926. 1154 000e 0023 movs r3, #0
  2927. 1155 0010 87F82F30 strb r3, [r7, #47]
  2928. 603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  2929. 604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Check that a Rx process is not already ongoing */
  2930. 605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** if (huart->RxState == HAL_UART_STATE_READY)
  2931. 1156 .loc 1 605 12
  2932. 1157 0014 FB68 ldr r3, [r7, #12]
  2933. 1158 0016 D3F88030 ldr r3, [r3, #128]
  2934. 1159 .loc 1 605 6
  2935. 1160 001a 202B cmp r3, #32
  2936. 1161 001c 3BD1 bne .L62
  2937. 606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  2938. 607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** if ((pData == NULL) || (Size == 0U))
  2939. 1162 .loc 1 607 8
  2940. 1163 001e BB68 ldr r3, [r7, #8]
  2941. 1164 0020 002B cmp r3, #0
  2942. 1165 0022 02D0 beq .L63
  2943. 1166 .loc 1 607 25 discriminator 1
  2944. 1167 0024 FB88 ldrh r3, [r7, #6]
  2945. 1168 0026 002B cmp r3, #0
  2946. 1169 0028 01D1 bne .L64
  2947. 1170 .L63:
  2948. 608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  2949. 609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** return HAL_ERROR;
  2950. 1171 .loc 1 609 14
  2951. 1172 002a 0123 movs r3, #1
  2952. 1173 002c 34E0 b .L65
  2953. 1174 .L64:
  2954. 610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  2955. 611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  2956. 612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Set Reception type to reception till IDLE Event*/
  2957. 613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** huart->ReceptionType = HAL_UART_RECEPTION_TOIDLE;
  2958. 1175 .loc 1 613 26
  2959. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 52
  2960. 1176 002e FB68 ldr r3, [r7, #12]
  2961. 1177 0030 0122 movs r2, #1
  2962. 1178 0032 1A66 str r2, [r3, #96]
  2963. 614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** huart->RxEventType = HAL_UART_RXEVENT_TC;
  2964. 1179 .loc 1 614 24
  2965. 1180 0034 FB68 ldr r3, [r7, #12]
  2966. 1181 0036 0022 movs r2, #0
  2967. 1182 0038 5A66 str r2, [r3, #100]
  2968. 615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  2969. 616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (void)UART_Start_Receive_IT(huart, pData, Size);
  2970. 1183 .loc 1 616 11
  2971. 1184 003a FB88 ldrh r3, [r7, #6]
  2972. 1185 003c 1A46 mov r2, r3
  2973. 1186 003e B968 ldr r1, [r7, #8]
  2974. 1187 0040 F868 ldr r0, [r7, #12]
  2975. 1188 0042 FFF7FEFF bl UART_Start_Receive_IT
  2976. 617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  2977. 618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE)
  2978. 1189 .loc 1 618 14
  2979. 1190 0046 FB68 ldr r3, [r7, #12]
  2980. 1191 0048 1B6E ldr r3, [r3, #96]
  2981. 1192 .loc 1 618 8
  2982. 1193 004a 012B cmp r3, #1
  2983. 1194 004c 1DD1 bne .L66
  2984. 619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  2985. 620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF);
  2986. 1195 .loc 1 620 7
  2987. 1196 004e FB68 ldr r3, [r7, #12]
  2988. 1197 0050 1B68 ldr r3, [r3]
  2989. 1198 0052 1022 movs r2, #16
  2990. 1199 0054 1A62 str r2, [r3, #32]
  2991. 1200 .L69:
  2992. 1201 .LBB32:
  2993. 621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE);
  2994. 1202 .loc 1 621 7 discriminator 1
  2995. 1203 0056 FB68 ldr r3, [r7, #12]
  2996. 1204 0058 1B68 ldr r3, [r3]
  2997. 1205 005a BB61 str r3, [r7, #24]
  2998. 1206 .LBB33:
  2999. 1207 .LBB34:
  3000. 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  3001. 1208 .loc 2 1072 4 discriminator 1
  3002. 1209 005c BB69 ldr r3, [r7, #24]
  3003. 1210 .syntax unified
  3004. 1211 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
  3005. 1212 005e 53E8003F ldrex r3, [r3]
  3006. 1213 @ 0 "" 2
  3007. 1214 .thumb
  3008. 1215 .syntax unified
  3009. 1216 0062 7B61 str r3, [r7, #20]
  3010. 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3011. 1217 .loc 2 1073 10 discriminator 1
  3012. 1218 0064 7B69 ldr r3, [r7, #20]
  3013. 1219 .LBE34:
  3014. 1220 .LBE33:
  3015. 1221 .loc 1 621 7 discriminator 1
  3016. 1222 0066 43F01003 orr r3, r3, #16
  3017. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 53
  3018. 1223 006a BB62 str r3, [r7, #40]
  3019. 1224 006c FB68 ldr r3, [r7, #12]
  3020. 1225 006e 1B68 ldr r3, [r3]
  3021. 1226 0070 1A46 mov r2, r3
  3022. 1227 0072 BB6A ldr r3, [r7, #40]
  3023. 1228 0074 7B62 str r3, [r7, #36]
  3024. 1229 0076 3A62 str r2, [r7, #32]
  3025. 1230 .LBB35:
  3026. 1231 .LBB36:
  3027. 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  3028. 1232 .loc 2 1123 4 discriminator 1
  3029. 1233 0078 396A ldr r1, [r7, #32]
  3030. 1234 007a 7A6A ldr r2, [r7, #36]
  3031. 1235 .syntax unified
  3032. 1236 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
  3033. 1237 007c 41E80023 strex r3, r2, [r1]
  3034. 1238 @ 0 "" 2
  3035. 1239 .thumb
  3036. 1240 .syntax unified
  3037. 1241 0080 FB61 str r3, [r7, #28]
  3038. 1242 .loc 2 1124 10 discriminator 1
  3039. 1243 0082 FB69 ldr r3, [r7, #28]
  3040. 1244 .LBE36:
  3041. 1245 .LBE35:
  3042. 1246 .loc 1 621 7 discriminator 1
  3043. 1247 0084 002B cmp r3, #0
  3044. 1248 0086 E6D1 bne .L69
  3045. 1249 0088 02E0 b .L70
  3046. 1250 .L66:
  3047. 1251 .LBE32:
  3048. 622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  3049. 623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** else
  3050. 624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  3051. 625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* In case of errors already pending when reception is started,
  3052. 626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** Interrupts may have already been raised and lead to reception abortion.
  3053. 627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (Overrun error for instance).
  3054. 628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** In such case Reception Type has been reset to HAL_UART_RECEPTION_STANDARD. */
  3055. 629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** status = HAL_ERROR;
  3056. 1252 .loc 1 629 14
  3057. 1253 008a 0123 movs r3, #1
  3058. 1254 008c 87F82F30 strb r3, [r7, #47]
  3059. 1255 .L70:
  3060. 630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  3061. 631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  3062. 632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** return status;
  3063. 1256 .loc 1 632 12
  3064. 1257 0090 97F82F30 ldrb r3, [r7, #47] @ zero_extendqisi2
  3065. 1258 0094 00E0 b .L65
  3066. 1259 .L62:
  3067. 633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  3068. 634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** else
  3069. 635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  3070. 636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** return HAL_BUSY;
  3071. 1260 .loc 1 636 12
  3072. 1261 0096 0223 movs r3, #2
  3073. 1262 .L65:
  3074. 637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  3075. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 54
  3076. 638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  3077. 1263 .loc 1 638 1
  3078. 1264 0098 1846 mov r0, r3
  3079. 1265 009a 3037 adds r7, r7, #48
  3080. 1266 .LCFI41:
  3081. 1267 .cfi_def_cfa_offset 8
  3082. 1268 009c BD46 mov sp, r7
  3083. 1269 .LCFI42:
  3084. 1270 .cfi_def_cfa_register 13
  3085. 1271 @ sp needed
  3086. 1272 009e 80BD pop {r7, pc}
  3087. 1273 .cfi_endproc
  3088. 1274 .LFE137:
  3089. 1276 .section .text.HAL_UARTEx_ReceiveToIdle_DMA,"ax",%progbits
  3090. 1277 .align 1
  3091. 1278 .global HAL_UARTEx_ReceiveToIdle_DMA
  3092. 1279 .syntax unified
  3093. 1280 .thumb
  3094. 1281 .thumb_func
  3095. 1283 HAL_UARTEx_ReceiveToIdle_DMA:
  3096. 1284 .LFB138:
  3097. 639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  3098. 640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /**
  3099. 641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @brief Receive an amount of data in DMA mode till either the expected number
  3100. 642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * of data is received or an IDLE event occurs.
  3101. 643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @note Reception is initiated by this function call. Further progress of reception is achieved
  3102. 644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * to DMA services, transferring automatically received data elements in user reception buf
  3103. 645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * calling registered callbacks at half/end of reception. UART IDLE events are also used to
  3104. 646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * reception phase as ended. In all cases, callback execution will indicate number of recei
  3105. 647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @note When the UART parity is enabled (PCE = 1), the received data contain
  3106. 648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * the parity bit (MSB position).
  3107. 649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1-M
  3108. 650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * the received data is handled as a set of uint16_t. In this case, Size must indicate the
  3109. 651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * of uint16_t available through pData.
  3110. 652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @param huart UART handle.
  3111. 653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @param pData Pointer to data buffer (uint8_t or uint16_t data elements).
  3112. 654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @param Size Amount of data elements (uint8_t or uint16_t) to be received.
  3113. 655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @retval HAL status
  3114. 656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** */
  3115. 657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t
  3116. 658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  3117. 1285 .loc 1 658 1
  3118. 1286 .cfi_startproc
  3119. 1287 @ args = 0, pretend = 0, frame = 48
  3120. 1288 @ frame_needed = 1, uses_anonymous_args = 0
  3121. 1289 0000 80B5 push {r7, lr}
  3122. 1290 .LCFI43:
  3123. 1291 .cfi_def_cfa_offset 8
  3124. 1292 .cfi_offset 7, -8
  3125. 1293 .cfi_offset 14, -4
  3126. 1294 0002 8CB0 sub sp, sp, #48
  3127. 1295 .LCFI44:
  3128. 1296 .cfi_def_cfa_offset 56
  3129. 1297 0004 00AF add r7, sp, #0
  3130. 1298 .LCFI45:
  3131. 1299 .cfi_def_cfa_register 7
  3132. 1300 0006 F860 str r0, [r7, #12]
  3133. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 55
  3134. 1301 0008 B960 str r1, [r7, #8]
  3135. 1302 000a 1346 mov r3, r2
  3136. 1303 000c FB80 strh r3, [r7, #6] @ movhi
  3137. 659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** HAL_StatusTypeDef status;
  3138. 660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  3139. 661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Check that a Rx process is not already ongoing */
  3140. 662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** if (huart->RxState == HAL_UART_STATE_READY)
  3141. 1304 .loc 1 662 12
  3142. 1305 000e FB68 ldr r3, [r7, #12]
  3143. 1306 0010 D3F88030 ldr r3, [r3, #128]
  3144. 1307 .loc 1 662 6
  3145. 1308 0014 202B cmp r3, #32
  3146. 1309 0016 42D1 bne .L72
  3147. 663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  3148. 664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** if ((pData == NULL) || (Size == 0U))
  3149. 1310 .loc 1 664 8
  3150. 1311 0018 BB68 ldr r3, [r7, #8]
  3151. 1312 001a 002B cmp r3, #0
  3152. 1313 001c 02D0 beq .L73
  3153. 1314 .loc 1 664 25 discriminator 1
  3154. 1315 001e FB88 ldrh r3, [r7, #6]
  3155. 1316 0020 002B cmp r3, #0
  3156. 1317 0022 01D1 bne .L74
  3157. 1318 .L73:
  3158. 665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  3159. 666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** return HAL_ERROR;
  3160. 1319 .loc 1 666 14
  3161. 1320 0024 0123 movs r3, #1
  3162. 1321 0026 3BE0 b .L75
  3163. 1322 .L74:
  3164. 667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  3165. 668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  3166. 669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Set Reception type to reception till IDLE Event*/
  3167. 670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** huart->ReceptionType = HAL_UART_RECEPTION_TOIDLE;
  3168. 1323 .loc 1 670 26
  3169. 1324 0028 FB68 ldr r3, [r7, #12]
  3170. 1325 002a 0122 movs r2, #1
  3171. 1326 002c 1A66 str r2, [r3, #96]
  3172. 671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** huart->RxEventType = HAL_UART_RXEVENT_TC;
  3173. 1327 .loc 1 671 24
  3174. 1328 002e FB68 ldr r3, [r7, #12]
  3175. 1329 0030 0022 movs r2, #0
  3176. 1330 0032 5A66 str r2, [r3, #100]
  3177. 672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  3178. 673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** status = UART_Start_Receive_DMA(huart, pData, Size);
  3179. 1331 .loc 1 673 15
  3180. 1332 0034 FB88 ldrh r3, [r7, #6]
  3181. 1333 0036 1A46 mov r2, r3
  3182. 1334 0038 B968 ldr r1, [r7, #8]
  3183. 1335 003a F868 ldr r0, [r7, #12]
  3184. 1336 003c FFF7FEFF bl UART_Start_Receive_DMA
  3185. 1337 0040 0346 mov r3, r0
  3186. 1338 0042 87F82F30 strb r3, [r7, #47]
  3187. 674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  3188. 675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Check Rx process has been successfully started */
  3189. 676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** if (status == HAL_OK)
  3190. 1339 .loc 1 676 8
  3191. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 56
  3192. 1340 0046 97F82F30 ldrb r3, [r7, #47] @ zero_extendqisi2
  3193. 1341 004a 002B cmp r3, #0
  3194. 1342 004c 24D1 bne .L76
  3195. 677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  3196. 678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE)
  3197. 1343 .loc 1 678 16
  3198. 1344 004e FB68 ldr r3, [r7, #12]
  3199. 1345 0050 1B6E ldr r3, [r3, #96]
  3200. 1346 .loc 1 678 10
  3201. 1347 0052 012B cmp r3, #1
  3202. 1348 0054 1DD1 bne .L77
  3203. 679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  3204. 680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF);
  3205. 1349 .loc 1 680 9
  3206. 1350 0056 FB68 ldr r3, [r7, #12]
  3207. 1351 0058 1B68 ldr r3, [r3]
  3208. 1352 005a 1022 movs r2, #16
  3209. 1353 005c 1A62 str r2, [r3, #32]
  3210. 1354 .L80:
  3211. 1355 .LBB37:
  3212. 681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE);
  3213. 1356 .loc 1 681 9 discriminator 1
  3214. 1357 005e FB68 ldr r3, [r7, #12]
  3215. 1358 0060 1B68 ldr r3, [r3]
  3216. 1359 0062 BB61 str r3, [r7, #24]
  3217. 1360 .LBB38:
  3218. 1361 .LBB39:
  3219. 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  3220. 1362 .loc 2 1072 4 discriminator 1
  3221. 1363 0064 BB69 ldr r3, [r7, #24]
  3222. 1364 .syntax unified
  3223. 1365 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
  3224. 1366 0066 53E8003F ldrex r3, [r3]
  3225. 1367 @ 0 "" 2
  3226. 1368 .thumb
  3227. 1369 .syntax unified
  3228. 1370 006a 7B61 str r3, [r7, #20]
  3229. 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** }
  3230. 1371 .loc 2 1073 10 discriminator 1
  3231. 1372 006c 7B69 ldr r3, [r7, #20]
  3232. 1373 .LBE39:
  3233. 1374 .LBE38:
  3234. 1375 .loc 1 681 9 discriminator 1
  3235. 1376 006e 43F01003 orr r3, r3, #16
  3236. 1377 0072 BB62 str r3, [r7, #40]
  3237. 1378 0074 FB68 ldr r3, [r7, #12]
  3238. 1379 0076 1B68 ldr r3, [r3]
  3239. 1380 0078 1A46 mov r2, r3
  3240. 1381 007a BB6A ldr r3, [r7, #40]
  3241. 1382 007c 7B62 str r3, [r7, #36]
  3242. 1383 007e 3A62 str r2, [r7, #32]
  3243. 1384 .LBB40:
  3244. 1385 .LBB41:
  3245. 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
  3246. 1386 .loc 2 1123 4 discriminator 1
  3247. 1387 0080 396A ldr r1, [r7, #32]
  3248. 1388 0082 7A6A ldr r2, [r7, #36]
  3249. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 57
  3250. 1389 .syntax unified
  3251. 1390 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
  3252. 1391 0084 41E80023 strex r3, r2, [r1]
  3253. 1392 @ 0 "" 2
  3254. 1393 .thumb
  3255. 1394 .syntax unified
  3256. 1395 0088 FB61 str r3, [r7, #28]
  3257. 1396 .loc 2 1124 10 discriminator 1
  3258. 1397 008a FB69 ldr r3, [r7, #28]
  3259. 1398 .LBE41:
  3260. 1399 .LBE40:
  3261. 1400 .loc 1 681 9 discriminator 1
  3262. 1401 008c 002B cmp r3, #0
  3263. 1402 008e E6D1 bne .L80
  3264. 1403 0090 02E0 b .L76
  3265. 1404 .L77:
  3266. 1405 .LBE37:
  3267. 682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  3268. 683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** else
  3269. 684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  3270. 685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* In case of errors already pending when reception is started,
  3271. 686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** Interrupts may have already been raised and lead to reception abortion.
  3272. 687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** (Overrun error for instance).
  3273. 688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** In such case Reception Type has been reset to HAL_UART_RECEPTION_STANDARD. */
  3274. 689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** status = HAL_ERROR;
  3275. 1406 .loc 1 689 16
  3276. 1407 0092 0123 movs r3, #1
  3277. 1408 0094 87F82F30 strb r3, [r7, #47]
  3278. 1409 .L76:
  3279. 690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  3280. 691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  3281. 692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  3282. 693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** return status;
  3283. 1410 .loc 1 693 12
  3284. 1411 0098 97F82F30 ldrb r3, [r7, #47] @ zero_extendqisi2
  3285. 1412 009c 00E0 b .L75
  3286. 1413 .L72:
  3287. 694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  3288. 695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** else
  3289. 696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  3290. 697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** return HAL_BUSY;
  3291. 1414 .loc 1 697 12
  3292. 1415 009e 0223 movs r3, #2
  3293. 1416 .L75:
  3294. 698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  3295. 699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  3296. 1417 .loc 1 699 1
  3297. 1418 00a0 1846 mov r0, r3
  3298. 1419 00a2 3037 adds r7, r7, #48
  3299. 1420 .LCFI46:
  3300. 1421 .cfi_def_cfa_offset 8
  3301. 1422 00a4 BD46 mov sp, r7
  3302. 1423 .LCFI47:
  3303. 1424 .cfi_def_cfa_register 13
  3304. 1425 @ sp needed
  3305. 1426 00a6 80BD pop {r7, pc}
  3306. 1427 .cfi_endproc
  3307. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 58
  3308. 1428 .LFE138:
  3309. 1430 .section .text.HAL_UARTEx_GetRxEventType,"ax",%progbits
  3310. 1431 .align 1
  3311. 1432 .global HAL_UARTEx_GetRxEventType
  3312. 1433 .syntax unified
  3313. 1434 .thumb
  3314. 1435 .thumb_func
  3315. 1437 HAL_UARTEx_GetRxEventType:
  3316. 1438 .LFB139:
  3317. 700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  3318. 701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /**
  3319. 702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @brief Provide Rx Event type that has lead to RxEvent callback execution.
  3320. 703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @note When HAL_UARTEx_ReceiveToIdle_IT() or HAL_UARTEx_ReceiveToIdle_DMA() API are called, pro
  3321. 704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * of reception process is provided to application through calls of Rx Event callback (eith
  3322. 705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * HAL_UARTEx_RxEventCallback() or user registered one). As several types of events could o
  3323. 706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * Half Transfer, or Transfer Complete), this function allows to retrieve the Rx Event type
  3324. 707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * to Rx Event callback execution.
  3325. 708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @note This function is expected to be called within the user implementation of Rx Event Callba
  3326. 709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * in order to provide the accurate value :
  3327. 710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * In Interrupt Mode :
  3328. 711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * - HAL_UART_RXEVENT_TC : when Reception has been completed (expected nb of data has be
  3329. 712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * - HAL_UART_RXEVENT_IDLE : when Idle event occurred prior reception has been completed
  3330. 713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * received data is lower than expected one)
  3331. 714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * In DMA Mode :
  3332. 715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * - HAL_UART_RXEVENT_TC : when Reception has been completed (expected nb of data has be
  3333. 716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * - HAL_UART_RXEVENT_HT : when half of expected nb of data has been received
  3334. 717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * - HAL_UART_RXEVENT_IDLE : when Idle event occurred prior reception has been completed
  3335. 718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * received data is lower than expected one).
  3336. 719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * In DMA mode, RxEvent callback could be called several times;
  3337. 720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * When DMA is configured in Normal Mode, HT event does not stop Reception process;
  3338. 721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * When DMA is configured in Circular Mode, HT, TC or IDLE events don't stop Reception proc
  3339. 722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @param huart UART handle.
  3340. 723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @retval Rx Event Type (return vale will be a value of @ref UART_RxEvent_Type_Values)
  3341. 724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** */
  3342. 725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** HAL_UART_RxEventTypeTypeDef HAL_UARTEx_GetRxEventType(const UART_HandleTypeDef *huart)
  3343. 726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  3344. 1439 .loc 1 726 1
  3345. 1440 .cfi_startproc
  3346. 1441 @ args = 0, pretend = 0, frame = 8
  3347. 1442 @ frame_needed = 1, uses_anonymous_args = 0
  3348. 1443 @ link register save eliminated.
  3349. 1444 0000 80B4 push {r7}
  3350. 1445 .LCFI48:
  3351. 1446 .cfi_def_cfa_offset 4
  3352. 1447 .cfi_offset 7, -4
  3353. 1448 0002 83B0 sub sp, sp, #12
  3354. 1449 .LCFI49:
  3355. 1450 .cfi_def_cfa_offset 16
  3356. 1451 0004 00AF add r7, sp, #0
  3357. 1452 .LCFI50:
  3358. 1453 .cfi_def_cfa_register 7
  3359. 1454 0006 7860 str r0, [r7, #4]
  3360. 727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Return Rx Event type value, as stored in UART handle */
  3361. 728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** return (huart->RxEventType);
  3362. 1455 .loc 1 728 16
  3363. 1456 0008 7B68 ldr r3, [r7, #4]
  3364. 1457 000a 5B6E ldr r3, [r3, #100]
  3365. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 59
  3366. 729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  3367. 1458 .loc 1 729 1
  3368. 1459 000c 1846 mov r0, r3
  3369. 1460 000e 0C37 adds r7, r7, #12
  3370. 1461 .LCFI51:
  3371. 1462 .cfi_def_cfa_offset 4
  3372. 1463 0010 BD46 mov sp, r7
  3373. 1464 .LCFI52:
  3374. 1465 .cfi_def_cfa_register 13
  3375. 1466 @ sp needed
  3376. 1467 0012 5DF8047B ldr r7, [sp], #4
  3377. 1468 .LCFI53:
  3378. 1469 .cfi_restore 7
  3379. 1470 .cfi_def_cfa_offset 0
  3380. 1471 0016 7047 bx lr
  3381. 1472 .cfi_endproc
  3382. 1473 .LFE139:
  3383. 1475 .section .text.UARTEx_Wakeup_AddressConfig,"ax",%progbits
  3384. 1476 .align 1
  3385. 1477 .syntax unified
  3386. 1478 .thumb
  3387. 1479 .thumb_func
  3388. 1481 UARTEx_Wakeup_AddressConfig:
  3389. 1482 .LFB140:
  3390. 730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  3391. 731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /**
  3392. 732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @}
  3393. 733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** */
  3394. 734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  3395. 735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /**
  3396. 736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @}
  3397. 737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** */
  3398. 738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  3399. 739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /** @addtogroup UARTEx_Private_Functions
  3400. 740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @{
  3401. 741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** */
  3402. 742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  3403. 743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /**
  3404. 744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @brief Initialize the UART wake-up from stop mode parameters when triggered by address detectio
  3405. 745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @param huart UART handle.
  3406. 746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @param WakeUpSelection UART wake up from stop mode parameters.
  3407. 747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** * @retval None
  3408. 748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** */
  3409. 749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** static void UARTEx_Wakeup_AddressConfig(UART_HandleTypeDef *huart, UART_WakeUpTypeDef WakeUpSelecti
  3410. 750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** {
  3411. 1483 .loc 1 750 1
  3412. 1484 .cfi_startproc
  3413. 1485 @ args = 0, pretend = 0, frame = 16
  3414. 1486 @ frame_needed = 1, uses_anonymous_args = 0
  3415. 1487 0000 80B5 push {r7, lr}
  3416. 1488 .LCFI54:
  3417. 1489 .cfi_def_cfa_offset 8
  3418. 1490 .cfi_offset 7, -8
  3419. 1491 .cfi_offset 14, -4
  3420. 1492 0002 84B0 sub sp, sp, #16
  3421. 1493 .LCFI55:
  3422. 1494 .cfi_def_cfa_offset 24
  3423. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 60
  3424. 1495 0004 00AF add r7, sp, #0
  3425. 1496 .LCFI56:
  3426. 1497 .cfi_def_cfa_register 7
  3427. 1498 0006 F860 str r0, [r7, #12]
  3428. 1499 0008 3B1D adds r3, r7, #4
  3429. 1500 000a 83E80600 stm r3, {r1, r2}
  3430. 751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** assert_param(IS_UART_ADDRESSLENGTH_DETECT(WakeUpSelection.AddressLength));
  3431. 1501 .loc 1 751 3
  3432. 1502 000e 3B89 ldrh r3, [r7, #8]
  3433. 1503 0010 002B cmp r3, #0
  3434. 1504 0012 07D0 beq .L84
  3435. 1505 .loc 1 751 3 is_stmt 0 discriminator 1
  3436. 1506 0014 3B89 ldrh r3, [r7, #8]
  3437. 1507 0016 102B cmp r3, #16
  3438. 1508 0018 04D0 beq .L84
  3439. 1509 .loc 1 751 3 discriminator 2
  3440. 1510 001a 40F2EF21 movw r1, #751
  3441. 1511 001e 0E48 ldr r0, .L85
  3442. 1512 0020 FFF7FEFF bl assert_failed
  3443. 1513 .L84:
  3444. 752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  3445. 753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Set the USART address length */
  3446. 754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_ADDM7, WakeUpSelection.AddressLength);
  3447. 1514 .loc 1 754 3 is_stmt 1
  3448. 1515 0024 FB68 ldr r3, [r7, #12]
  3449. 1516 0026 1B68 ldr r3, [r3]
  3450. 1517 0028 5B68 ldr r3, [r3, #4]
  3451. 1518 002a 23F01002 bic r2, r3, #16
  3452. 1519 002e 3B89 ldrh r3, [r7, #8]
  3453. 1520 0030 1946 mov r1, r3
  3454. 1521 0032 FB68 ldr r3, [r7, #12]
  3455. 1522 0034 1B68 ldr r3, [r3]
  3456. 1523 0036 0A43 orrs r2, r2, r1
  3457. 1524 0038 5A60 str r2, [r3, #4]
  3458. 755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c ****
  3459. 756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** /* Set the USART address node */
  3460. 757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_ADD, ((uint32_t)WakeUpSelection.Address << UART_CR2_AD
  3461. 1525 .loc 1 757 3
  3462. 1526 003a FB68 ldr r3, [r7, #12]
  3463. 1527 003c 1B68 ldr r3, [r3]
  3464. 1528 003e 5B68 ldr r3, [r3, #4]
  3465. 1529 0040 23F07F41 bic r1, r3, #-16777216
  3466. 1530 0044 BB7A ldrb r3, [r7, #10] @ zero_extendqisi2
  3467. 1531 0046 1A06 lsls r2, r3, #24
  3468. 1532 0048 FB68 ldr r3, [r7, #12]
  3469. 1533 004a 1B68 ldr r3, [r3]
  3470. 1534 004c 0A43 orrs r2, r2, r1
  3471. 1535 004e 5A60 str r2, [r3, #4]
  3472. 758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_uart_ex.c **** }
  3473. 1536 .loc 1 758 1
  3474. 1537 0050 00BF nop
  3475. 1538 0052 1037 adds r7, r7, #16
  3476. 1539 .LCFI57:
  3477. 1540 .cfi_def_cfa_offset 8
  3478. 1541 0054 BD46 mov sp, r7
  3479. 1542 .LCFI58:
  3480. 1543 .cfi_def_cfa_register 13
  3481. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 61
  3482. 1544 @ sp needed
  3483. 1545 0056 80BD pop {r7, pc}
  3484. 1546 .L86:
  3485. 1547 .align 2
  3486. 1548 .L85:
  3487. 1549 0058 00000000 .word .LC0
  3488. 1550 .cfi_endproc
  3489. 1551 .LFE140:
  3490. 1553 .text
  3491. 1554 .Letext0:
  3492. 1555 .file 3 "d:\\arm-gcc\\arm-none-eabi\\include\\machine\\_default_types.h"
  3493. 1556 .file 4 "d:\\arm-gcc\\arm-none-eabi\\include\\sys\\_stdint.h"
  3494. 1557 .file 5 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h"
  3495. 1558 .file 6 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h"
  3496. 1559 .file 7 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h"
  3497. 1560 .file 8 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h"
  3498. 1561 .file 9 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_uart.h"
  3499. 1562 .file 10 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_uart_ex.h"
  3500. ARM GAS C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s page 62
  3501. DEFINED SYMBOLS
  3502. *ABS*:00000000 stm32f3xx_hal_uart_ex.c
  3503. C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s:20 .rodata:00000000 $d
  3504. C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s:25 .text.HAL_RS485Ex_Init:00000000 $t
  3505. C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s:31 .text.HAL_RS485Ex_Init:00000000 HAL_RS485Ex_Init
  3506. C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s:228 .text.HAL_RS485Ex_Init:00000128 $d
  3507. C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s:236 .text.HAL_UARTEx_WakeupCallback:00000000 $t
  3508. C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s:242 .text.HAL_UARTEx_WakeupCallback:00000000 HAL_UARTEx_WakeupCallback
  3509. C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s:278 .text.HAL_MultiProcessorEx_AddressLength_Set:00000000 $t
  3510. C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s:284 .text.HAL_MultiProcessorEx_AddressLength_Set:00000000 HAL_MultiProcessorEx_AddressLength_Set
  3511. C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s:372 .text.HAL_MultiProcessorEx_AddressLength_Set:00000074 $d
  3512. C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s:377 .text.HAL_UARTEx_StopModeWakeUpSourceConfig:00000000 $t
  3513. C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s:383 .text.HAL_UARTEx_StopModeWakeUpSourceConfig:00000000 HAL_UARTEx_StopModeWakeUpSourceConfig
  3514. C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s:1481 .text.UARTEx_Wakeup_AddressConfig:00000000 UARTEx_Wakeup_AddressConfig
  3515. C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s:557 .text.HAL_UARTEx_StopModeWakeUpSourceConfig:00000110 $d
  3516. C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s:567 .text.HAL_UARTEx_EnableStopMode:00000000 $t
  3517. C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s:573 .text.HAL_UARTEx_EnableStopMode:00000000 HAL_UARTEx_EnableStopMode
  3518. C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s:680 .text.HAL_UARTEx_DisableStopMode:00000000 $t
  3519. C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s:686 .text.HAL_UARTEx_DisableStopMode:00000000 HAL_UARTEx_DisableStopMode
  3520. C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s:792 .text.HAL_UARTEx_ReceiveToIdle:00000000 $t
  3521. C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s:798 .text.HAL_UARTEx_ReceiveToIdle:00000000 HAL_UARTEx_ReceiveToIdle
  3522. C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s:1126 .text.HAL_UARTEx_ReceiveToIdle_IT:00000000 $t
  3523. C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s:1132 .text.HAL_UARTEx_ReceiveToIdle_IT:00000000 HAL_UARTEx_ReceiveToIdle_IT
  3524. C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s:1277 .text.HAL_UARTEx_ReceiveToIdle_DMA:00000000 $t
  3525. C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s:1283 .text.HAL_UARTEx_ReceiveToIdle_DMA:00000000 HAL_UARTEx_ReceiveToIdle_DMA
  3526. C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s:1431 .text.HAL_UARTEx_GetRxEventType:00000000 $t
  3527. C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s:1437 .text.HAL_UARTEx_GetRxEventType:00000000 HAL_UARTEx_GetRxEventType
  3528. C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s:1476 .text.UARTEx_Wakeup_AddressConfig:00000000 $t
  3529. C:\Users\zl835\AppData\Local\Temp\cceOQAs2.s:1549 .text.UARTEx_Wakeup_AddressConfig:00000058 $d
  3530. UNDEFINED SYMBOLS
  3531. assert_failed
  3532. HAL_UART_MspInit
  3533. UART_AdvFeatureConfig
  3534. UART_SetConfig
  3535. UART_CheckIdleState
  3536. HAL_GetTick
  3537. UART_WaitOnFlagUntilTimeout
  3538. UART_Start_Receive_IT
  3539. UART_Start_Receive_DMA