stm32f4xx_hal_dma.lst 209 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650
  1. ARM GAS /tmp/ccwgRvGR.s page 1
  2. 1 .cpu cortex-m4
  3. 2 .eabi_attribute 27, 1
  4. 3 .eabi_attribute 28, 1
  5. 4 .eabi_attribute 20, 1
  6. 5 .eabi_attribute 21, 1
  7. 6 .eabi_attribute 23, 3
  8. 7 .eabi_attribute 24, 1
  9. 8 .eabi_attribute 25, 1
  10. 9 .eabi_attribute 26, 1
  11. 10 .eabi_attribute 30, 1
  12. 11 .eabi_attribute 34, 1
  13. 12 .eabi_attribute 18, 4
  14. 13 .file "stm32f4xx_hal_dma.c"
  15. 14 .text
  16. 15 .Ltext0:
  17. 16 .cfi_sections .debug_frame
  18. 17 .section .text.DMA_SetConfig,"ax",%progbits
  19. 18 .align 1
  20. 19 .syntax unified
  21. 20 .thumb
  22. 21 .thumb_func
  23. 22 .fpu fpv4-sp-d16
  24. 24 DMA_SetConfig:
  25. 25 .LFB142:
  26. 26 .file 1 "Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c"
  27. 1:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /**
  28. 2:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** ******************************************************************************
  29. 3:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @file stm32f4xx_hal_dma.c
  30. 4:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @author MCD Application Team
  31. 5:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @brief DMA HAL module driver.
  32. 6:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** *
  33. 7:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * This file provides firmware functions to manage the following
  34. 8:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * functionalities of the Direct Memory Access (DMA) peripheral:
  35. 9:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * + Initialization and de-initialization functions
  36. 10:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * + IO operation functions
  37. 11:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * + Peripheral State and errors functions
  38. 12:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** @verbatim
  39. 13:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** ==============================================================================
  40. 14:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** ##### How to use this driver #####
  41. 15:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** ==============================================================================
  42. 16:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** [..]
  43. 17:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (#) Enable and configure the peripheral to be connected to the DMA Stream
  44. 18:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (except for internal SRAM/FLASH memories: no initialization is
  45. 19:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** necessary) please refer to Reference manual for connection between peripherals
  46. 20:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** and DMA requests.
  47. 21:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  48. 22:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (#) For a given Stream, program the required configuration through the following parameters:
  49. 23:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** Transfer Direction, Source and Destination data formats,
  50. 24:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** Circular, Normal or peripheral flow control mode, Stream Priority level,
  51. 25:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** Source and Destination Increment mode, FIFO mode and its Threshold (if needed),
  52. 26:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** Burst mode for Source and/or Destination (if needed) using HAL_DMA_Init() function.
  53. 27:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  54. 28:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** -@- Prior to HAL_DMA_Init() the clock must be enabled for DMA through the following macros:
  55. 29:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_RCC_DMA1_CLK_ENABLE() or __HAL_RCC_DMA2_CLK_ENABLE().
  56. 30:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  57. 31:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** *** Polling mode IO operation ***
  58. 32:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** =================================
  59. ARM GAS /tmp/ccwgRvGR.s page 2
  60. 33:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** [..]
  61. 34:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (+) Use HAL_DMA_Start() to start DMA transfer after the configuration of Source
  62. 35:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** address and destination address and the Length of data to be transferred.
  63. 36:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (+) Use HAL_DMA_PollForTransfer() to poll for the end of current transfer, in this
  64. 37:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case a fixed Timeout can be configured by User depending from his application.
  65. 38:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (+) Use HAL_DMA_Abort() function to abort the current transfer.
  66. 39:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  67. 40:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** *** Interrupt mode IO operation ***
  68. 41:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** ===================================
  69. 42:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** [..]
  70. 43:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (+) Configure the DMA interrupt priority using HAL_NVIC_SetPriority()
  71. 44:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (+) Enable the DMA IRQ handler using HAL_NVIC_EnableIRQ()
  72. 45:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (+) Use HAL_DMA_Start_IT() to start DMA transfer after the configuration of
  73. 46:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** Source address and destination address and the Length of data to be transferred. In t
  74. 47:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case the DMA interrupt is configured
  75. 48:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (+) Use HAL_DMA_IRQHandler() called under DMA_IRQHandler() Interrupt subroutine
  76. 49:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (+) At the end of data transfer HAL_DMA_IRQHandler() function is executed and user can
  77. 50:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** add his own function by customization of function pointer XferCpltCallback and
  78. 51:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** XferErrorCallback (i.e a member of DMA handle structure).
  79. 52:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** [..]
  80. 53:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (#) Use HAL_DMA_GetState() function to return the DMA state and HAL_DMA_GetError() in case of
  81. 54:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** detection.
  82. 55:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  83. 56:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (#) Use HAL_DMA_Abort_IT() function to abort the current transfer
  84. 57:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  85. 58:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** -@- In Memory-to-Memory transfer mode, Circular mode is not allowed.
  86. 59:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  87. 60:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** -@- The FIFO is used mainly to reduce bus usage and to allow data packing/unpacking: it is
  88. 61:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** possible to set different Data Sizes for the Peripheral and the Memory (ie. you can set
  89. 62:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** Half-Word data size for the peripheral to access its data register and set Word data siz
  90. 63:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** for the Memory to gain in access time. Each two half words will be packed and written in
  91. 64:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** a single access to a Word in the Memory).
  92. 65:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  93. 66:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** -@- When FIFO is disabled, it is not allowed to configure different Data Sizes for Source
  94. 67:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** and Destination. In this case the Peripheral Data Size will be applied to both Source
  95. 68:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** and Destination.
  96. 69:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  97. 70:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** *** DMA HAL driver macros list ***
  98. 71:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** =============================================
  99. 72:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** [..]
  100. 73:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** Below the list of most used macros in DMA HAL driver.
  101. 74:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  102. 75:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (+) __HAL_DMA_ENABLE: Enable the specified DMA Stream.
  103. 76:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (+) __HAL_DMA_DISABLE: Disable the specified DMA Stream.
  104. 77:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (+) __HAL_DMA_GET_IT_SOURCE: Check whether the specified DMA Stream interrupt has occurred or
  105. 78:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  106. 79:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** [..]
  107. 80:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (@) You can refer to the DMA HAL driver header file for more useful macros
  108. 81:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  109. 82:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** @endverbatim
  110. 83:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** ******************************************************************************
  111. 84:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @attention
  112. 85:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** *
  113. 86:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
  114. 87:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * All rights reserved.</center></h2>
  115. 88:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** *
  116. 89:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * This software component is licensed by ST under BSD 3-Clause license,
  117. ARM GAS /tmp/ccwgRvGR.s page 3
  118. 90:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * the "License"; You may not use this file except in compliance with the
  119. 91:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * License. You may obtain a copy of the License at:
  120. 92:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * opensource.org/licenses/BSD-3-Clause
  121. 93:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** *
  122. 94:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** ******************************************************************************
  123. 95:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */
  124. 96:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  125. 97:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Includes ------------------------------------------------------------------*/
  126. 98:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** #include "stm32f4xx_hal.h"
  127. 99:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  128. 100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** @addtogroup STM32F4xx_HAL_Driver
  129. 101:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @{
  130. 102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */
  131. 103:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  132. 104:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** @defgroup DMA DMA
  133. 105:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @brief DMA HAL module driver
  134. 106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @{
  135. 107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */
  136. 108:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  137. 109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** #ifdef HAL_DMA_MODULE_ENABLED
  138. 110:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  139. 111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Private types -------------------------------------------------------------*/
  140. 112:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** typedef struct
  141. 113:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  142. 114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __IO uint32_t ISR; /*!< DMA interrupt status register */
  143. 115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __IO uint32_t Reserved0;
  144. 116:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __IO uint32_t IFCR; /*!< DMA interrupt flag clear register */
  145. 117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } DMA_Base_Registers;
  146. 118:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  147. 119:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Private variables ---------------------------------------------------------*/
  148. 120:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Private constants ---------------------------------------------------------*/
  149. 121:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** @addtogroup DMA_Private_Constants
  150. 122:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @{
  151. 123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */
  152. 124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** #define HAL_TIMEOUT_DMA_ABORT 5U /* 5 ms */
  153. 125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /**
  154. 126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @}
  155. 127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */
  156. 128:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Private macros ------------------------------------------------------------*/
  157. 129:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Private functions ---------------------------------------------------------*/
  158. 130:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** @addtogroup DMA_Private_Functions
  159. 131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @{
  160. 132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */
  161. 133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** static void DMA_SetConfig(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32
  162. 134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** static uint32_t DMA_CalcBaseAndBitshift(DMA_HandleTypeDef *hdma);
  163. 135:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** static HAL_StatusTypeDef DMA_CheckFifoParam(DMA_HandleTypeDef *hdma);
  164. 136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  165. 137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /**
  166. 138:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @}
  167. 139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */
  168. 140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  169. 141:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Exported functions ---------------------------------------------------------*/
  170. 142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** @addtogroup DMA_Exported_Functions
  171. 143:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @{
  172. 144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */
  173. 145:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  174. 146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** @addtogroup DMA_Exported_Functions_Group1
  175. ARM GAS /tmp/ccwgRvGR.s page 4
  176. 147:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** *
  177. 148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** @verbatim
  178. 149:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** ===============================================================================
  179. 150:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** ##### Initialization and de-initialization functions #####
  180. 151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** ===============================================================================
  181. 152:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** [..]
  182. 153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** This section provides functions allowing to initialize the DMA Stream source
  183. 154:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** and destination addresses, incrementation and data sizes, transfer direction,
  184. 155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** circular/normal mode selection, memory-to-memory mode selection and Stream priority value.
  185. 156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** [..]
  186. 157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** The HAL_DMA_Init() function follows the DMA configuration procedures as described in
  187. 158:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** reference manual.
  188. 159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  189. 160:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** @endverbatim
  190. 161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @{
  191. 162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */
  192. 163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  193. 164:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /**
  194. 165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @brief Initialize the DMA according to the specified
  195. 166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * parameters in the DMA_InitTypeDef and create the associated handle.
  196. 167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains
  197. 168:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * the configuration information for the specified DMA Stream.
  198. 169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @retval HAL status
  199. 170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */
  200. 171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef HAL_DMA_Init(DMA_HandleTypeDef *hdma)
  201. 172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  202. 173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t tmp = 0U;
  203. 174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t tickstart = HAL_GetTick();
  204. 175:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** DMA_Base_Registers *regs;
  205. 176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  206. 177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Check the DMA peripheral state */
  207. 178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma == NULL)
  208. 179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  209. 180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_ERROR;
  210. 181:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  211. 182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  212. 183:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Check the parameters */
  213. 184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** assert_param(IS_DMA_STREAM_ALL_INSTANCE(hdma->Instance));
  214. 185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** assert_param(IS_DMA_CHANNEL(hdma->Init.Channel));
  215. 186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** assert_param(IS_DMA_DIRECTION(hdma->Init.Direction));
  216. 187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** assert_param(IS_DMA_PERIPHERAL_INC_STATE(hdma->Init.PeriphInc));
  217. 188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** assert_param(IS_DMA_MEMORY_INC_STATE(hdma->Init.MemInc));
  218. 189:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** assert_param(IS_DMA_PERIPHERAL_DATA_SIZE(hdma->Init.PeriphDataAlignment));
  219. 190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** assert_param(IS_DMA_MEMORY_DATA_SIZE(hdma->Init.MemDataAlignment));
  220. 191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** assert_param(IS_DMA_MODE(hdma->Init.Mode));
  221. 192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** assert_param(IS_DMA_PRIORITY(hdma->Init.Priority));
  222. 193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** assert_param(IS_DMA_FIFO_MODE_STATE(hdma->Init.FIFOMode));
  223. 194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Check the memory burst, peripheral burst and FIFO threshold parameters only
  224. 195:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** when FIFO mode is enabled */
  225. 196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->Init.FIFOMode != DMA_FIFOMODE_DISABLE)
  226. 197:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  227. 198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** assert_param(IS_DMA_FIFO_THRESHOLD(hdma->Init.FIFOThreshold));
  228. 199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** assert_param(IS_DMA_MEMORY_BURST(hdma->Init.MemBurst));
  229. 200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** assert_param(IS_DMA_PERIPHERAL_BURST(hdma->Init.PeriphBurst));
  230. 201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  231. 202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  232. 203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Allocate lock resource */
  233. ARM GAS /tmp/ccwgRvGR.s page 5
  234. 204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_UNLOCK(hdma);
  235. 205:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  236. 206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Change DMA peripheral state */
  237. 207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_BUSY;
  238. 208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  239. 209:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Disable the peripheral */
  240. 210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_DMA_DISABLE(hdma);
  241. 211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  242. 212:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Check if the DMA Stream is effectively disabled */
  243. 213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** while((hdma->Instance->CR & DMA_SxCR_EN) != RESET)
  244. 214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  245. 215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Check for the Timeout */
  246. 216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if((HAL_GetTick() - tickstart ) > HAL_TIMEOUT_DMA_ABORT)
  247. 217:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  248. 218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Update error code */
  249. 219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_TIMEOUT;
  250. 220:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  251. 221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Change the DMA state */
  252. 222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_TIMEOUT;
  253. 223:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  254. 224:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_TIMEOUT;
  255. 225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  256. 226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  257. 227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  258. 228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Get the CR register value */
  259. 229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** tmp = hdma->Instance->CR;
  260. 230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  261. 231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear CHSEL, MBURST, PBURST, PL, MSIZE, PSIZE, MINC, PINC, CIRC, DIR, CT and DBM bits */
  262. 232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** tmp &= ((uint32_t)~(DMA_SxCR_CHSEL | DMA_SxCR_MBURST | DMA_SxCR_PBURST | \
  263. 233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** DMA_SxCR_PL | DMA_SxCR_MSIZE | DMA_SxCR_PSIZE | \
  264. 234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** DMA_SxCR_MINC | DMA_SxCR_PINC | DMA_SxCR_CIRC | \
  265. 235:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** DMA_SxCR_DIR | DMA_SxCR_CT | DMA_SxCR_DBM));
  266. 236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  267. 237:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Prepare the DMA Stream configuration */
  268. 238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** tmp |= hdma->Init.Channel | hdma->Init.Direction |
  269. 239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Init.PeriphInc | hdma->Init.MemInc |
  270. 240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Init.PeriphDataAlignment | hdma->Init.MemDataAlignment |
  271. 241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Init.Mode | hdma->Init.Priority;
  272. 242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  273. 243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* the Memory burst and peripheral burst are not used when the FIFO is disabled */
  274. 244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->Init.FIFOMode == DMA_FIFOMODE_ENABLE)
  275. 245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  276. 246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Get memory burst and peripheral burst */
  277. 247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** tmp |= hdma->Init.MemBurst | hdma->Init.PeriphBurst;
  278. 248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  279. 249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  280. 250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Write to DMA Stream CR register */
  281. 251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->CR = tmp;
  282. 252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  283. 253:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Get the FCR register value */
  284. 254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** tmp = hdma->Instance->FCR;
  285. 255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  286. 256:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear Direct mode and FIFO threshold bits */
  287. 257:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** tmp &= (uint32_t)~(DMA_SxFCR_DMDIS | DMA_SxFCR_FTH);
  288. 258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  289. 259:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Prepare the DMA Stream FIFO configuration */
  290. 260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** tmp |= hdma->Init.FIFOMode;
  291. ARM GAS /tmp/ccwgRvGR.s page 6
  292. 261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  293. 262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* The FIFO threshold is not used when the FIFO mode is disabled */
  294. 263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->Init.FIFOMode == DMA_FIFOMODE_ENABLE)
  295. 264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  296. 265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Get the FIFO threshold */
  297. 266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** tmp |= hdma->Init.FIFOThreshold;
  298. 267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  299. 268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Check compatibility between FIFO threshold level and size of the memory burst */
  300. 269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* for INCR4, INCR8, INCR16 bursts */
  301. 270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if (hdma->Init.MemBurst != DMA_MBURST_SINGLE)
  302. 271:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  303. 272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if (DMA_CheckFifoParam(hdma) != HAL_OK)
  304. 273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  305. 274:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Update error code */
  306. 275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_PARAM;
  307. 276:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  308. 277:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Change the DMA state */
  309. 278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_READY;
  310. 279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  311. 280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_ERROR;
  312. 281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  313. 282:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  314. 283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  315. 284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  316. 285:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Write to DMA Stream FCR */
  317. 286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->FCR = tmp;
  318. 287:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  319. 288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Initialize StreamBaseAddress and StreamIndex parameters to be used to calculate
  320. 289:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** DMA steam Base Address needed by HAL_DMA_IRQHandler() and HAL_DMA_PollForTransfer() */
  321. 290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs = (DMA_Base_Registers *)DMA_CalcBaseAndBitshift(hdma);
  322. 291:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  323. 292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear all interrupt flags */
  324. 293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs->IFCR = 0x3FU << hdma->StreamIndex;
  325. 294:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  326. 295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Initialize the error code */
  327. 296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_NONE;
  328. 297:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  329. 298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Initialize the DMA state */
  330. 299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_READY;
  331. 300:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  332. 301:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_OK;
  333. 302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  334. 303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  335. 304:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /**
  336. 305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @brief DeInitializes the DMA peripheral
  337. 306:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains
  338. 307:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * the configuration information for the specified DMA Stream.
  339. 308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @retval HAL status
  340. 309:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */
  341. 310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef HAL_DMA_DeInit(DMA_HandleTypeDef *hdma)
  342. 311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  343. 312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** DMA_Base_Registers *regs;
  344. 313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  345. 314:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Check the DMA peripheral state */
  346. 315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma == NULL)
  347. 316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  348. 317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_ERROR;
  349. ARM GAS /tmp/ccwgRvGR.s page 7
  350. 318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  351. 319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  352. 320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Check the DMA peripheral state */
  353. 321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->State == HAL_DMA_STATE_BUSY)
  354. 322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  355. 323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Return error status */
  356. 324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_BUSY;
  357. 325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  358. 326:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  359. 327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Check the parameters */
  360. 328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** assert_param(IS_DMA_STREAM_ALL_INSTANCE(hdma->Instance));
  361. 329:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  362. 330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Disable the selected DMA Streamx */
  363. 331:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_DMA_DISABLE(hdma);
  364. 332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  365. 333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Reset DMA Streamx control register */
  366. 334:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->CR = 0U;
  367. 335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  368. 336:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Reset DMA Streamx number of data to transfer register */
  369. 337:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->NDTR = 0U;
  370. 338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  371. 339:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Reset DMA Streamx peripheral address register */
  372. 340:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->PAR = 0U;
  373. 341:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  374. 342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Reset DMA Streamx memory 0 address register */
  375. 343:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->M0AR = 0U;
  376. 344:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  377. 345:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Reset DMA Streamx memory 1 address register */
  378. 346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->M1AR = 0U;
  379. 347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  380. 348:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Reset DMA Streamx FIFO control register */
  381. 349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->FCR = 0x00000021U;
  382. 350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  383. 351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Get DMA steam Base Address */
  384. 352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs = (DMA_Base_Registers *)DMA_CalcBaseAndBitshift(hdma);
  385. 353:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  386. 354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clean all callbacks */
  387. 355:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferCpltCallback = NULL;
  388. 356:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferHalfCpltCallback = NULL;
  389. 357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferM1CpltCallback = NULL;
  390. 358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferM1HalfCpltCallback = NULL;
  391. 359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferErrorCallback = NULL;
  392. 360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferAbortCallback = NULL;
  393. 361:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  394. 362:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear all interrupt flags at correct offset within the register */
  395. 363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs->IFCR = 0x3FU << hdma->StreamIndex;
  396. 364:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  397. 365:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Reset the error code */
  398. 366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_NONE;
  399. 367:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  400. 368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Reset the DMA state */
  401. 369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_RESET;
  402. 370:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  403. 371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Release Lock */
  404. 372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_UNLOCK(hdma);
  405. 373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  406. 374:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_OK;
  407. ARM GAS /tmp/ccwgRvGR.s page 8
  408. 375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  409. 376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  410. 377:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /**
  411. 378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @}
  412. 379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */
  413. 380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  414. 381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** @addtogroup DMA_Exported_Functions_Group2
  415. 382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** *
  416. 383:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** @verbatim
  417. 384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** ===============================================================================
  418. 385:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** ##### IO operation functions #####
  419. 386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** ===============================================================================
  420. 387:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** [..] This section provides functions allowing to:
  421. 388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (+) Configure the source, destination address and data length and Start DMA transfer
  422. 389:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (+) Configure the source, destination address and data length and
  423. 390:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** Start DMA transfer with interrupt
  424. 391:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (+) Abort DMA transfer
  425. 392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (+) Poll for transfer complete
  426. 393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (+) Handle DMA interrupt request
  427. 394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  428. 395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** @endverbatim
  429. 396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @{
  430. 397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */
  431. 398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  432. 399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /**
  433. 400:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @brief Starts the DMA Transfer.
  434. 401:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains
  435. 402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * the configuration information for the specified DMA Stream.
  436. 403:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param SrcAddress The source memory Buffer address
  437. 404:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param DstAddress The destination memory Buffer address
  438. 405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param DataLength The length of data to be transferred from source to destination
  439. 406:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @retval HAL status
  440. 407:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */
  441. 408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef HAL_DMA_Start(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress,
  442. 409:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  443. 410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK;
  444. 411:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  445. 412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Check the parameters */
  446. 413:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** assert_param(IS_DMA_BUFFER_SIZE(DataLength));
  447. 414:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  448. 415:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Process locked */
  449. 416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_LOCK(hdma);
  450. 417:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  451. 418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(HAL_DMA_STATE_READY == hdma->State)
  452. 419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  453. 420:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Change DMA peripheral state */
  454. 421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_BUSY;
  455. 422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  456. 423:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Initialize the error code */
  457. 424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_NONE;
  458. 425:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  459. 426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Configure the source, destination address and the data length */
  460. 427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** DMA_SetConfig(hdma, SrcAddress, DstAddress, DataLength);
  461. 428:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  462. 429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Enable the Peripheral */
  463. 430:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_DMA_ENABLE(hdma);
  464. 431:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  465. ARM GAS /tmp/ccwgRvGR.s page 9
  466. 432:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** else
  467. 433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  468. 434:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Process unlocked */
  469. 435:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_UNLOCK(hdma);
  470. 436:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  471. 437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Return error status */
  472. 438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** status = HAL_BUSY;
  473. 439:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  474. 440:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return status;
  475. 441:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  476. 442:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  477. 443:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /**
  478. 444:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @brief Start the DMA Transfer with interrupt enabled.
  479. 445:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains
  480. 446:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * the configuration information for the specified DMA Stream.
  481. 447:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param SrcAddress The source memory Buffer address
  482. 448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param DstAddress The destination memory Buffer address
  483. 449:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param DataLength The length of data to be transferred from source to destination
  484. 450:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @retval HAL status
  485. 451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */
  486. 452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddres
  487. 453:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  488. 454:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK;
  489. 455:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  490. 456:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* calculate DMA base and stream number */
  491. 457:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** DMA_Base_Registers *regs = (DMA_Base_Registers *)hdma->StreamBaseAddress;
  492. 458:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  493. 459:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Check the parameters */
  494. 460:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** assert_param(IS_DMA_BUFFER_SIZE(DataLength));
  495. 461:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  496. 462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Process locked */
  497. 463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_LOCK(hdma);
  498. 464:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  499. 465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(HAL_DMA_STATE_READY == hdma->State)
  500. 466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  501. 467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Change DMA peripheral state */
  502. 468:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_BUSY;
  503. 469:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  504. 470:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Initialize the error code */
  505. 471:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_NONE;
  506. 472:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  507. 473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Configure the source, destination address and the data length */
  508. 474:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** DMA_SetConfig(hdma, SrcAddress, DstAddress, DataLength);
  509. 475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  510. 476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear all interrupt flags at correct offset within the register */
  511. 477:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs->IFCR = 0x3FU << hdma->StreamIndex;
  512. 478:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  513. 479:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Enable Common interrupts*/
  514. 480:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->CR |= DMA_IT_TC | DMA_IT_TE | DMA_IT_DME;
  515. 481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->FCR |= DMA_IT_FE;
  516. 482:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  517. 483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->XferHalfCpltCallback != NULL)
  518. 484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  519. 485:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->CR |= DMA_IT_HT;
  520. 486:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  521. 487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  522. 488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Enable the Peripheral */
  523. ARM GAS /tmp/ccwgRvGR.s page 10
  524. 489:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_DMA_ENABLE(hdma);
  525. 490:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  526. 491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** else
  527. 492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  528. 493:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Process unlocked */
  529. 494:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_UNLOCK(hdma);
  530. 495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  531. 496:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Return error status */
  532. 497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** status = HAL_BUSY;
  533. 498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  534. 499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  535. 500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return status;
  536. 501:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  537. 502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  538. 503:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /**
  539. 504:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @brief Aborts the DMA Transfer.
  540. 505:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains
  541. 506:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * the configuration information for the specified DMA Stream.
  542. 507:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** *
  543. 508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @note After disabling a DMA Stream, a check for wait until the DMA Stream is
  544. 509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * effectively disabled is added. If a Stream is disabled
  545. 510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * while a data transfer is ongoing, the current data will be transferred
  546. 511:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * and the Stream will be effectively disabled only after the transfer of
  547. 512:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * this single data is finished.
  548. 513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @retval HAL status
  549. 514:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */
  550. 515:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma)
  551. 516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  552. 517:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* calculate DMA base and stream number */
  553. 518:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** DMA_Base_Registers *regs = (DMA_Base_Registers *)hdma->StreamBaseAddress;
  554. 519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  555. 520:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t tickstart = HAL_GetTick();
  556. 521:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  557. 522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->State != HAL_DMA_STATE_BUSY)
  558. 523:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  559. 524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER;
  560. 525:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  561. 526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Process Unlocked */
  562. 527:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_UNLOCK(hdma);
  563. 528:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  564. 529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_ERROR;
  565. 530:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  566. 531:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** else
  567. 532:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  568. 533:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Disable all the transfer interrupts */
  569. 534:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->CR &= ~(DMA_IT_TC | DMA_IT_TE | DMA_IT_DME);
  570. 535:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->FCR &= ~(DMA_IT_FE);
  571. 536:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  572. 537:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if((hdma->XferHalfCpltCallback != NULL) || (hdma->XferM1HalfCpltCallback != NULL))
  573. 538:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  574. 539:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->CR &= ~(DMA_IT_HT);
  575. 540:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  576. 541:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  577. 542:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Disable the stream */
  578. 543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_DMA_DISABLE(hdma);
  579. 544:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  580. 545:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Check if the DMA Stream is effectively disabled */
  581. ARM GAS /tmp/ccwgRvGR.s page 11
  582. 546:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** while((hdma->Instance->CR & DMA_SxCR_EN) != RESET)
  583. 547:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  584. 548:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Check for the Timeout */
  585. 549:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if((HAL_GetTick() - tickstart ) > HAL_TIMEOUT_DMA_ABORT)
  586. 550:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  587. 551:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Update error code */
  588. 552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_TIMEOUT;
  589. 553:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  590. 554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Process Unlocked */
  591. 555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_UNLOCK(hdma);
  592. 556:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  593. 557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Change the DMA state */
  594. 558:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_TIMEOUT;
  595. 559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  596. 560:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_TIMEOUT;
  597. 561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  598. 562:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  599. 563:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  600. 564:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear all interrupt flags at correct offset within the register */
  601. 565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs->IFCR = 0x3FU << hdma->StreamIndex;
  602. 566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  603. 567:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Process Unlocked */
  604. 568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_UNLOCK(hdma);
  605. 569:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  606. 570:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Change the DMA state*/
  607. 571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_READY;
  608. 572:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  609. 573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_OK;
  610. 574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  611. 575:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  612. 576:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /**
  613. 577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @brief Aborts the DMA Transfer in Interrupt mode.
  614. 578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains
  615. 579:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * the configuration information for the specified DMA Stream.
  616. 580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @retval HAL status
  617. 581:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */
  618. 582:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma)
  619. 583:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  620. 584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->State != HAL_DMA_STATE_BUSY)
  621. 585:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  622. 586:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER;
  623. 587:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_ERROR;
  624. 588:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  625. 589:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** else
  626. 590:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  627. 591:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Set Abort State */
  628. 592:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_ABORT;
  629. 593:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  630. 594:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Disable the stream */
  631. 595:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_DMA_DISABLE(hdma);
  632. 596:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  633. 597:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  634. 598:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_OK;
  635. 599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  636. 600:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  637. 601:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /**
  638. 602:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @brief Polling for transfer complete.
  639. ARM GAS /tmp/ccwgRvGR.s page 12
  640. 603:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains
  641. 604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * the configuration information for the specified DMA Stream.
  642. 605:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param CompleteLevel Specifies the DMA level complete.
  643. 606:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @note The polling mode is kept in this version for legacy. it is recommanded to use the IT mo
  644. 607:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * This model could be used for debug purpose.
  645. 608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @note The HAL_DMA_PollForTransfer API cannot be used in circular and double buffering mode (a
  646. 609:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param Timeout Timeout duration.
  647. 610:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @retval HAL status
  648. 611:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */
  649. 612:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef HAL_DMA_PollForTransfer(DMA_HandleTypeDef *hdma, HAL_DMA_LevelCompleteTypeDef Com
  650. 613:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  651. 614:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK;
  652. 615:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t mask_cpltlevel;
  653. 616:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t tickstart = HAL_GetTick();
  654. 617:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t tmpisr;
  655. 618:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  656. 619:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* calculate DMA base and stream number */
  657. 620:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** DMA_Base_Registers *regs;
  658. 621:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  659. 622:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(HAL_DMA_STATE_BUSY != hdma->State)
  660. 623:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  661. 624:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* No transfer ongoing */
  662. 625:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER;
  663. 626:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_UNLOCK(hdma);
  664. 627:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_ERROR;
  665. 628:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  666. 629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  667. 630:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Polling mode not supported in circular mode and double buffering mode */
  668. 631:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if ((hdma->Instance->CR & DMA_SxCR_CIRC) != RESET)
  669. 632:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  670. 633:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_NOT_SUPPORTED;
  671. 634:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_ERROR;
  672. 635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  673. 636:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  674. 637:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Get the level transfer complete flag */
  675. 638:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(CompleteLevel == HAL_DMA_FULL_TRANSFER)
  676. 639:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  677. 640:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Transfer Complete flag */
  678. 641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** mask_cpltlevel = DMA_FLAG_TCIF0_4 << hdma->StreamIndex;
  679. 642:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  680. 643:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** else
  681. 644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  682. 645:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Half Transfer Complete flag */
  683. 646:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** mask_cpltlevel = DMA_FLAG_HTIF0_4 << hdma->StreamIndex;
  684. 647:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  685. 648:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  686. 649:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs = (DMA_Base_Registers *)hdma->StreamBaseAddress;
  687. 650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** tmpisr = regs->ISR;
  688. 651:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  689. 652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** while(((tmpisr & mask_cpltlevel) == RESET) && ((hdma->ErrorCode & HAL_DMA_ERROR_TE) == RESET))
  690. 653:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  691. 654:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Check for the Timeout (Not applicable in circular mode)*/
  692. 655:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(Timeout != HAL_MAX_DELAY)
  693. 656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  694. 657:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if((Timeout == 0U)||((HAL_GetTick() - tickstart ) > Timeout))
  695. 658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  696. 659:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Update error code */
  697. ARM GAS /tmp/ccwgRvGR.s page 13
  698. 660:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_TIMEOUT;
  699. 661:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  700. 662:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Process Unlocked */
  701. 663:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_UNLOCK(hdma);
  702. 664:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  703. 665:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Change the DMA state */
  704. 666:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_READY;
  705. 667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  706. 668:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_TIMEOUT;
  707. 669:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  708. 670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  709. 671:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  710. 672:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Get the ISR register value */
  711. 673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** tmpisr = regs->ISR;
  712. 674:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  713. 675:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if((tmpisr & (DMA_FLAG_TEIF0_4 << hdma->StreamIndex)) != RESET)
  714. 676:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  715. 677:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Update error code */
  716. 678:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->ErrorCode |= HAL_DMA_ERROR_TE;
  717. 679:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  718. 680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear the transfer error flag */
  719. 681:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs->IFCR = DMA_FLAG_TEIF0_4 << hdma->StreamIndex;
  720. 682:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  721. 683:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  722. 684:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if((tmpisr & (DMA_FLAG_FEIF0_4 << hdma->StreamIndex)) != RESET)
  723. 685:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  724. 686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Update error code */
  725. 687:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->ErrorCode |= HAL_DMA_ERROR_FE;
  726. 688:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  727. 689:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear the FIFO error flag */
  728. 690:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs->IFCR = DMA_FLAG_FEIF0_4 << hdma->StreamIndex;
  729. 691:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  730. 692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  731. 693:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if((tmpisr & (DMA_FLAG_DMEIF0_4 << hdma->StreamIndex)) != RESET)
  732. 694:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  733. 695:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Update error code */
  734. 696:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->ErrorCode |= HAL_DMA_ERROR_DME;
  735. 697:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  736. 698:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear the Direct Mode error flag */
  737. 699:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs->IFCR = DMA_FLAG_DMEIF0_4 << hdma->StreamIndex;
  738. 700:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  739. 701:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  740. 702:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  741. 703:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->ErrorCode != HAL_DMA_ERROR_NONE)
  742. 704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  743. 705:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if((hdma->ErrorCode & HAL_DMA_ERROR_TE) != RESET)
  744. 706:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  745. 707:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_DMA_Abort(hdma);
  746. 708:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  747. 709:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear the half transfer and transfer complete flags */
  748. 710:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs->IFCR = (DMA_FLAG_HTIF0_4 | DMA_FLAG_TCIF0_4) << hdma->StreamIndex;
  749. 711:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  750. 712:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Process Unlocked */
  751. 713:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_UNLOCK(hdma);
  752. 714:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  753. 715:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Change the DMA state */
  754. 716:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->State= HAL_DMA_STATE_READY;
  755. ARM GAS /tmp/ccwgRvGR.s page 14
  756. 717:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  757. 718:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_ERROR;
  758. 719:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  759. 720:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  760. 721:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  761. 722:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Get the level transfer complete flag */
  762. 723:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(CompleteLevel == HAL_DMA_FULL_TRANSFER)
  763. 724:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  764. 725:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear the half transfer and transfer complete flags */
  765. 726:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs->IFCR = (DMA_FLAG_HTIF0_4 | DMA_FLAG_TCIF0_4) << hdma->StreamIndex;
  766. 727:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  767. 728:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Process Unlocked */
  768. 729:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_UNLOCK(hdma);
  769. 730:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  770. 731:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_READY;
  771. 732:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  772. 733:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** else
  773. 734:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  774. 735:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear the half transfer and transfer complete flags */
  775. 736:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs->IFCR = (DMA_FLAG_HTIF0_4) << hdma->StreamIndex;
  776. 737:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  777. 738:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  778. 739:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return status;
  779. 740:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  780. 741:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  781. 742:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /**
  782. 743:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @brief Handles DMA interrupt request.
  783. 744:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains
  784. 745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * the configuration information for the specified DMA Stream.
  785. 746:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @retval None
  786. 747:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */
  787. 748:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** void HAL_DMA_IRQHandler(DMA_HandleTypeDef *hdma)
  788. 749:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  789. 750:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t tmpisr;
  790. 751:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __IO uint32_t count = 0U;
  791. 752:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t timeout = SystemCoreClock / 9600U;
  792. 753:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  793. 754:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* calculate DMA base and stream number */
  794. 755:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** DMA_Base_Registers *regs = (DMA_Base_Registers *)hdma->StreamBaseAddress;
  795. 756:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  796. 757:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** tmpisr = regs->ISR;
  797. 758:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  798. 759:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Transfer Error Interrupt management ***************************************/
  799. 760:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if ((tmpisr & (DMA_FLAG_TEIF0_4 << hdma->StreamIndex)) != RESET)
  800. 761:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  801. 762:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_TE) != RESET)
  802. 763:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  803. 764:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Disable the transfer error interrupt */
  804. 765:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->CR &= ~(DMA_IT_TE);
  805. 766:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  806. 767:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear the transfer error flag */
  807. 768:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs->IFCR = DMA_FLAG_TEIF0_4 << hdma->StreamIndex;
  808. 769:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  809. 770:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Update error code */
  810. 771:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->ErrorCode |= HAL_DMA_ERROR_TE;
  811. 772:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  812. 773:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  813. ARM GAS /tmp/ccwgRvGR.s page 15
  814. 774:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* FIFO Error Interrupt management ******************************************/
  815. 775:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if ((tmpisr & (DMA_FLAG_FEIF0_4 << hdma->StreamIndex)) != RESET)
  816. 776:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  817. 777:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_FE) != RESET)
  818. 778:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  819. 779:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear the FIFO error flag */
  820. 780:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs->IFCR = DMA_FLAG_FEIF0_4 << hdma->StreamIndex;
  821. 781:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  822. 782:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Update error code */
  823. 783:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->ErrorCode |= HAL_DMA_ERROR_FE;
  824. 784:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  825. 785:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  826. 786:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Direct Mode Error Interrupt management ***********************************/
  827. 787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if ((tmpisr & (DMA_FLAG_DMEIF0_4 << hdma->StreamIndex)) != RESET)
  828. 788:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  829. 789:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_DME) != RESET)
  830. 790:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  831. 791:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear the direct mode error flag */
  832. 792:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs->IFCR = DMA_FLAG_DMEIF0_4 << hdma->StreamIndex;
  833. 793:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  834. 794:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Update error code */
  835. 795:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->ErrorCode |= HAL_DMA_ERROR_DME;
  836. 796:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  837. 797:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  838. 798:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Half Transfer Complete Interrupt management ******************************/
  839. 799:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if ((tmpisr & (DMA_FLAG_HTIF0_4 << hdma->StreamIndex)) != RESET)
  840. 800:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  841. 801:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_HT) != RESET)
  842. 802:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  843. 803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear the half transfer complete flag */
  844. 804:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs->IFCR = DMA_FLAG_HTIF0_4 << hdma->StreamIndex;
  845. 805:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  846. 806:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Multi_Buffering mode enabled */
  847. 807:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(((hdma->Instance->CR) & (uint32_t)(DMA_SxCR_DBM)) != RESET)
  848. 808:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  849. 809:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Current memory buffer used is Memory 0 */
  850. 810:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if((hdma->Instance->CR & DMA_SxCR_CT) == RESET)
  851. 811:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  852. 812:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->XferHalfCpltCallback != NULL)
  853. 813:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  854. 814:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Half transfer callback */
  855. 815:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferHalfCpltCallback(hdma);
  856. 816:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  857. 817:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  858. 818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Current memory buffer used is Memory 1 */
  859. 819:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** else
  860. 820:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  861. 821:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->XferM1HalfCpltCallback != NULL)
  862. 822:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  863. 823:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Half transfer callback */
  864. 824:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferM1HalfCpltCallback(hdma);
  865. 825:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  866. 826:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  867. 827:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  868. 828:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** else
  869. 829:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  870. 830:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Disable the half transfer interrupt if the DMA mode is not CIRCULAR */
  871. ARM GAS /tmp/ccwgRvGR.s page 16
  872. 831:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if((hdma->Instance->CR & DMA_SxCR_CIRC) == RESET)
  873. 832:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  874. 833:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Disable the half transfer interrupt */
  875. 834:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->CR &= ~(DMA_IT_HT);
  876. 835:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  877. 836:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  878. 837:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->XferHalfCpltCallback != NULL)
  879. 838:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  880. 839:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Half transfer callback */
  881. 840:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferHalfCpltCallback(hdma);
  882. 841:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  883. 842:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  884. 843:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  885. 844:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  886. 845:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Transfer Complete Interrupt management ***********************************/
  887. 846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if ((tmpisr & (DMA_FLAG_TCIF0_4 << hdma->StreamIndex)) != RESET)
  888. 847:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  889. 848:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_TC) != RESET)
  890. 849:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  891. 850:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear the transfer complete flag */
  892. 851:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs->IFCR = DMA_FLAG_TCIF0_4 << hdma->StreamIndex;
  893. 852:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  894. 853:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(HAL_DMA_STATE_ABORT == hdma->State)
  895. 854:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  896. 855:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Disable all the transfer interrupts */
  897. 856:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->CR &= ~(DMA_IT_TC | DMA_IT_TE | DMA_IT_DME);
  898. 857:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->FCR &= ~(DMA_IT_FE);
  899. 858:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  900. 859:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if((hdma->XferHalfCpltCallback != NULL) || (hdma->XferM1HalfCpltCallback != NULL))
  901. 860:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  902. 861:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->CR &= ~(DMA_IT_HT);
  903. 862:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  904. 863:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  905. 864:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear all interrupt flags at correct offset within the register */
  906. 865:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs->IFCR = 0x3FU << hdma->StreamIndex;
  907. 866:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  908. 867:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Process Unlocked */
  909. 868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_UNLOCK(hdma);
  910. 869:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  911. 870:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Change the DMA state */
  912. 871:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_READY;
  913. 872:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  914. 873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->XferAbortCallback != NULL)
  915. 874:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  916. 875:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferAbortCallback(hdma);
  917. 876:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  918. 877:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return;
  919. 878:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  920. 879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  921. 880:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(((hdma->Instance->CR) & (uint32_t)(DMA_SxCR_DBM)) != RESET)
  922. 881:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  923. 882:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Current memory buffer used is Memory 0 */
  924. 883:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if((hdma->Instance->CR & DMA_SxCR_CT) == RESET)
  925. 884:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  926. 885:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->XferM1CpltCallback != NULL)
  927. 886:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  928. 887:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Transfer complete Callback for memory1 */
  929. ARM GAS /tmp/ccwgRvGR.s page 17
  930. 888:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferM1CpltCallback(hdma);
  931. 889:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  932. 890:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  933. 891:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Current memory buffer used is Memory 1 */
  934. 892:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** else
  935. 893:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  936. 894:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->XferCpltCallback != NULL)
  937. 895:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  938. 896:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Transfer complete Callback for memory0 */
  939. 897:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferCpltCallback(hdma);
  940. 898:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  941. 899:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  942. 900:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  943. 901:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Disable the transfer complete interrupt if the DMA mode is not CIRCULAR */
  944. 902:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** else
  945. 903:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  946. 904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if((hdma->Instance->CR & DMA_SxCR_CIRC) == RESET)
  947. 905:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  948. 906:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Disable the transfer complete interrupt */
  949. 907:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->CR &= ~(DMA_IT_TC);
  950. 908:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  951. 909:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Process Unlocked */
  952. 910:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_UNLOCK(hdma);
  953. 911:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  954. 912:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Change the DMA state */
  955. 913:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_READY;
  956. 914:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  957. 915:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  958. 916:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->XferCpltCallback != NULL)
  959. 917:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  960. 918:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Transfer complete callback */
  961. 919:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferCpltCallback(hdma);
  962. 920:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  963. 921:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  964. 922:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  965. 923:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  966. 924:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  967. 925:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* manage error case */
  968. 926:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->ErrorCode != HAL_DMA_ERROR_NONE)
  969. 927:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  970. 928:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if((hdma->ErrorCode & HAL_DMA_ERROR_TE) != RESET)
  971. 929:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  972. 930:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_ABORT;
  973. 931:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  974. 932:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Disable the stream */
  975. 933:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_DMA_DISABLE(hdma);
  976. 934:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  977. 935:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** do
  978. 936:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  979. 937:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if (++count > timeout)
  980. 938:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  981. 939:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  982. 940:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  983. 941:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  984. 942:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** while((hdma->Instance->CR & DMA_SxCR_EN) != RESET);
  985. 943:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  986. 944:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Process Unlocked */
  987. ARM GAS /tmp/ccwgRvGR.s page 18
  988. 945:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_UNLOCK(hdma);
  989. 946:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  990. 947:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Change the DMA state */
  991. 948:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_READY;
  992. 949:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  993. 950:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  994. 951:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->XferErrorCallback != NULL)
  995. 952:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  996. 953:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Transfer error callback */
  997. 954:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferErrorCallback(hdma);
  998. 955:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  999. 956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1000. 957:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1001. 958:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1002. 959:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /**
  1003. 960:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @brief Register callbacks
  1004. 961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains
  1005. 962:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * the configuration information for the specified DMA Stream.
  1006. 963:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param CallbackID User Callback identifer
  1007. 964:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * a DMA_HandleTypeDef structure as parameter.
  1008. 965:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param pCallback pointer to private callbacsk function which has pointer to
  1009. 966:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * a DMA_HandleTypeDef structure as parameter.
  1010. 967:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @retval HAL status
  1011. 968:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */
  1012. 969:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef HAL_DMA_RegisterCallback(DMA_HandleTypeDef *hdma, HAL_DMA_CallbackIDTypeDef Callb
  1013. 970:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1014. 971:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1015. 972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK;
  1016. 973:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1017. 974:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Process locked */
  1018. 975:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_LOCK(hdma);
  1019. 976:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1020. 977:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(HAL_DMA_STATE_READY == hdma->State)
  1021. 978:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1022. 979:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** switch (CallbackID)
  1023. 980:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1024. 981:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case HAL_DMA_XFER_CPLT_CB_ID:
  1025. 982:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferCpltCallback = pCallback;
  1026. 983:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  1027. 984:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1028. 985:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case HAL_DMA_XFER_HALFCPLT_CB_ID:
  1029. 986:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferHalfCpltCallback = pCallback;
  1030. 987:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  1031. 988:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1032. 989:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case HAL_DMA_XFER_M1CPLT_CB_ID:
  1033. 990:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferM1CpltCallback = pCallback;
  1034. 991:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  1035. 992:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1036. 993:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case HAL_DMA_XFER_M1HALFCPLT_CB_ID:
  1037. 994:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferM1HalfCpltCallback = pCallback;
  1038. 995:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  1039. 996:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1040. 997:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case HAL_DMA_XFER_ERROR_CB_ID:
  1041. 998:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferErrorCallback = pCallback;
  1042. 999:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  1043. 1000:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1044. 1001:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case HAL_DMA_XFER_ABORT_CB_ID:
  1045. ARM GAS /tmp/ccwgRvGR.s page 19
  1046. 1002:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferAbortCallback = pCallback;
  1047. 1003:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  1048. 1004:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1049. 1005:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** default:
  1050. 1006:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  1051. 1007:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1052. 1008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1053. 1009:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** else
  1054. 1010:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1055. 1011:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Return error status */
  1056. 1012:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** status = HAL_ERROR;
  1057. 1013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1058. 1014:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1059. 1015:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Release Lock */
  1060. 1016:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_UNLOCK(hdma);
  1061. 1017:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1062. 1018:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return status;
  1063. 1019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1064. 1020:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1065. 1021:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /**
  1066. 1022:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @brief UnRegister callbacks
  1067. 1023:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains
  1068. 1024:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * the configuration information for the specified DMA Stream.
  1069. 1025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param CallbackID User Callback identifer
  1070. 1026:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * a HAL_DMA_CallbackIDTypeDef ENUM as parameter.
  1071. 1027:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @retval HAL status
  1072. 1028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */
  1073. 1029:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef HAL_DMA_UnRegisterCallback(DMA_HandleTypeDef *hdma, HAL_DMA_CallbackIDTypeDef Cal
  1074. 1030:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1075. 1031:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK;
  1076. 1032:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1077. 1033:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Process locked */
  1078. 1034:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_LOCK(hdma);
  1079. 1035:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1080. 1036:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(HAL_DMA_STATE_READY == hdma->State)
  1081. 1037:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1082. 1038:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** switch (CallbackID)
  1083. 1039:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1084. 1040:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case HAL_DMA_XFER_CPLT_CB_ID:
  1085. 1041:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferCpltCallback = NULL;
  1086. 1042:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  1087. 1043:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1088. 1044:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case HAL_DMA_XFER_HALFCPLT_CB_ID:
  1089. 1045:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferHalfCpltCallback = NULL;
  1090. 1046:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  1091. 1047:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1092. 1048:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case HAL_DMA_XFER_M1CPLT_CB_ID:
  1093. 1049:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferM1CpltCallback = NULL;
  1094. 1050:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  1095. 1051:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1096. 1052:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case HAL_DMA_XFER_M1HALFCPLT_CB_ID:
  1097. 1053:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferM1HalfCpltCallback = NULL;
  1098. 1054:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  1099. 1055:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1100. 1056:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case HAL_DMA_XFER_ERROR_CB_ID:
  1101. 1057:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferErrorCallback = NULL;
  1102. 1058:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  1103. ARM GAS /tmp/ccwgRvGR.s page 20
  1104. 1059:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1105. 1060:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case HAL_DMA_XFER_ABORT_CB_ID:
  1106. 1061:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferAbortCallback = NULL;
  1107. 1062:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  1108. 1063:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1109. 1064:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case HAL_DMA_XFER_ALL_CB_ID:
  1110. 1065:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferCpltCallback = NULL;
  1111. 1066:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferHalfCpltCallback = NULL;
  1112. 1067:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferM1CpltCallback = NULL;
  1113. 1068:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferM1HalfCpltCallback = NULL;
  1114. 1069:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferErrorCallback = NULL;
  1115. 1070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferAbortCallback = NULL;
  1116. 1071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  1117. 1072:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1118. 1073:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** default:
  1119. 1074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** status = HAL_ERROR;
  1120. 1075:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  1121. 1076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1122. 1077:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1123. 1078:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** else
  1124. 1079:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1125. 1080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** status = HAL_ERROR;
  1126. 1081:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1127. 1082:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1128. 1083:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Release Lock */
  1129. 1084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_UNLOCK(hdma);
  1130. 1085:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1131. 1086:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return status;
  1132. 1087:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1133. 1088:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1134. 1089:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /**
  1135. 1090:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @}
  1136. 1091:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */
  1137. 1092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1138. 1093:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** @addtogroup DMA_Exported_Functions_Group3
  1139. 1094:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** *
  1140. 1095:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** @verbatim
  1141. 1096:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** ===============================================================================
  1142. 1097:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** ##### State and Errors functions #####
  1143. 1098:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** ===============================================================================
  1144. 1099:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** [..]
  1145. 1100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** This subsection provides functions allowing to
  1146. 1101:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (+) Check the DMA state
  1147. 1102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (+) Get error code
  1148. 1103:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1149. 1104:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** @endverbatim
  1150. 1105:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @{
  1151. 1106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */
  1152. 1107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1153. 1108:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /**
  1154. 1109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @brief Returns the DMA state.
  1155. 1110:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains
  1156. 1111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * the configuration information for the specified DMA Stream.
  1157. 1112:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @retval HAL state
  1158. 1113:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */
  1159. 1114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_DMA_StateTypeDef HAL_DMA_GetState(DMA_HandleTypeDef *hdma)
  1160. 1115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1161. ARM GAS /tmp/ccwgRvGR.s page 21
  1162. 1116:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return hdma->State;
  1163. 1117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1164. 1118:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1165. 1119:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /**
  1166. 1120:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @brief Return the DMA error code
  1167. 1121:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains
  1168. 1122:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * the configuration information for the specified DMA Stream.
  1169. 1123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @retval DMA Error Code
  1170. 1124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */
  1171. 1125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t HAL_DMA_GetError(DMA_HandleTypeDef *hdma)
  1172. 1126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1173. 1127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return hdma->ErrorCode;
  1174. 1128:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1175. 1129:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1176. 1130:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /**
  1177. 1131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @}
  1178. 1132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */
  1179. 1133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1180. 1134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /**
  1181. 1135:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @}
  1182. 1136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */
  1183. 1137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1184. 1138:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** @addtogroup DMA_Private_Functions
  1185. 1139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @{
  1186. 1140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */
  1187. 1141:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1188. 1142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /**
  1189. 1143:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @brief Sets the DMA Transfer parameter.
  1190. 1144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains
  1191. 1145:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * the configuration information for the specified DMA Stream.
  1192. 1146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param SrcAddress The source memory Buffer address
  1193. 1147:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param DstAddress The destination memory Buffer address
  1194. 1148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param DataLength The length of data to be transferred from source to destination
  1195. 1149:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @retval HAL status
  1196. 1150:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */
  1197. 1151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** static void DMA_SetConfig(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32
  1198. 1152:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1199. 27 .loc 1 1152 0
  1200. 28 .cfi_startproc
  1201. 29 @ args = 0, pretend = 0, frame = 0
  1202. 30 @ frame_needed = 0, uses_anonymous_args = 0
  1203. 31 @ link register save eliminated.
  1204. 32 .LVL0:
  1205. 33 0000 30B4 push {r4, r5}
  1206. 34 .LCFI0:
  1207. 35 .cfi_def_cfa_offset 8
  1208. 36 .cfi_offset 4, -8
  1209. 37 .cfi_offset 5, -4
  1210. 1153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear DBM bit */
  1211. 1154:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->CR &= (uint32_t)(~DMA_SxCR_DBM);
  1212. 38 .loc 1 1154 0
  1213. 39 0002 0568 ldr r5, [r0]
  1214. 40 0004 2C68 ldr r4, [r5]
  1215. 41 0006 24F48024 bic r4, r4, #262144
  1216. 42 000a 2C60 str r4, [r5]
  1217. 1155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1218. 1156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Configure DMA Stream data length */
  1219. ARM GAS /tmp/ccwgRvGR.s page 22
  1220. 1157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->NDTR = DataLength;
  1221. 43 .loc 1 1157 0
  1222. 44 000c 0468 ldr r4, [r0]
  1223. 45 000e 6360 str r3, [r4, #4]
  1224. 1158:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1225. 1159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Memory to Peripheral */
  1226. 1160:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if((hdma->Init.Direction) == DMA_MEMORY_TO_PERIPH)
  1227. 46 .loc 1 1160 0
  1228. 47 0010 8368 ldr r3, [r0, #8]
  1229. 48 .LVL1:
  1230. 49 0012 402B cmp r3, #64
  1231. 50 0014 05D0 beq .L5
  1232. 1161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1233. 1162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Configure DMA Stream destination address */
  1234. 1163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->PAR = DstAddress;
  1235. 1164:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1236. 1165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Configure DMA Stream source address */
  1237. 1166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->M0AR = SrcAddress;
  1238. 1167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1239. 1168:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Peripheral to Memory */
  1240. 1169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** else
  1241. 1170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1242. 1171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Configure DMA Stream source address */
  1243. 1172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->PAR = SrcAddress;
  1244. 51 .loc 1 1172 0
  1245. 52 0016 0368 ldr r3, [r0]
  1246. 53 0018 9960 str r1, [r3, #8]
  1247. 54 .LVL2:
  1248. 1173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1249. 1174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Configure DMA Stream destination address */
  1250. 1175:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->M0AR = DstAddress;
  1251. 55 .loc 1 1175 0
  1252. 56 001a 0368 ldr r3, [r0]
  1253. 57 001c DA60 str r2, [r3, #12]
  1254. 58 .L1:
  1255. 1176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1256. 1177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1257. 59 .loc 1 1177 0
  1258. 60 001e 30BC pop {r4, r5}
  1259. 61 .LCFI1:
  1260. 62 .cfi_remember_state
  1261. 63 .cfi_restore 5
  1262. 64 .cfi_restore 4
  1263. 65 .cfi_def_cfa_offset 0
  1264. 66 0020 7047 bx lr
  1265. 67 .LVL3:
  1266. 68 .L5:
  1267. 69 .LCFI2:
  1268. 70 .cfi_restore_state
  1269. 1163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1270. 71 .loc 1 1163 0
  1271. 72 0022 0368 ldr r3, [r0]
  1272. 73 0024 9A60 str r2, [r3, #8]
  1273. 74 .LVL4:
  1274. 1166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1275. 75 .loc 1 1166 0
  1276. 76 0026 0368 ldr r3, [r0]
  1277. ARM GAS /tmp/ccwgRvGR.s page 23
  1278. 77 0028 D960 str r1, [r3, #12]
  1279. 78 002a F8E7 b .L1
  1280. 79 .cfi_endproc
  1281. 80 .LFE142:
  1282. 82 .section .text.DMA_CalcBaseAndBitshift,"ax",%progbits
  1283. 83 .align 1
  1284. 84 .syntax unified
  1285. 85 .thumb
  1286. 86 .thumb_func
  1287. 87 .fpu fpv4-sp-d16
  1288. 89 DMA_CalcBaseAndBitshift:
  1289. 90 .LFB143:
  1290. 1178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1291. 1179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /**
  1292. 1180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @brief Returns the DMA Stream base address depending on stream number
  1293. 1181:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains
  1294. 1182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * the configuration information for the specified DMA Stream.
  1295. 1183:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @retval Stream base address
  1296. 1184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */
  1297. 1185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** static uint32_t DMA_CalcBaseAndBitshift(DMA_HandleTypeDef *hdma)
  1298. 1186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1299. 91 .loc 1 1186 0
  1300. 92 .cfi_startproc
  1301. 93 @ args = 0, pretend = 0, frame = 0
  1302. 94 @ frame_needed = 0, uses_anonymous_args = 0
  1303. 95 @ link register save eliminated.
  1304. 96 .LVL5:
  1305. 1187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t stream_number = (((uint32_t)hdma->Instance & 0xFFU) - 16U) / 24U;
  1306. 97 .loc 1 1187 0
  1307. 98 0000 0268 ldr r2, [r0]
  1308. 99 0002 D3B2 uxtb r3, r2
  1309. 100 0004 103B subs r3, r3, #16
  1310. 101 0006 0B49 ldr r1, .L10
  1311. 102 0008 A1FB0313 umull r1, r3, r1, r3
  1312. 103 000c 1B09 lsrs r3, r3, #4
  1313. 104 .LVL6:
  1314. 1188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1315. 1189:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* lookup table for necessary bitshift of flags within status registers */
  1316. 1190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** static const uint8_t flagBitshiftOffset[8U] = {0U, 6U, 16U, 22U, 0U, 6U, 16U, 22U};
  1317. 1191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->StreamIndex = flagBitshiftOffset[stream_number];
  1318. 105 .loc 1 1191 0
  1319. 106 000e 0A49 ldr r1, .L10+4
  1320. 107 0010 C95C ldrb r1, [r1, r3] @ zero_extendqisi2
  1321. 108 0012 C165 str r1, [r0, #92]
  1322. 1192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1323. 1193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if (stream_number > 3U)
  1324. 109 .loc 1 1193 0
  1325. 110 0014 032B cmp r3, #3
  1326. 111 0016 06D8 bhi .L9
  1327. 1194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1328. 1195:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* return pointer to HISR and HIFCR */
  1329. 1196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->StreamBaseAddress = (((uint32_t)hdma->Instance & (uint32_t)(~0x3FFU)) + 4U);
  1330. 1197:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1331. 1198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** else
  1332. 1199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1333. 1200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* return pointer to LISR and LIFCR */
  1334. 1201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->StreamBaseAddress = ((uint32_t)hdma->Instance & (uint32_t)(~0x3FFU));
  1335. ARM GAS /tmp/ccwgRvGR.s page 24
  1336. 112 .loc 1 1201 0
  1337. 113 0018 22F47F72 bic r2, r2, #1020
  1338. 114 001c 22F00302 bic r2, r2, #3
  1339. 115 0020 8265 str r2, [r0, #88]
  1340. 116 .L8:
  1341. 1202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1342. 1203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1343. 1204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return hdma->StreamBaseAddress;
  1344. 1205:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1345. 117 .loc 1 1205 0
  1346. 118 0022 806D ldr r0, [r0, #88]
  1347. 119 .LVL7:
  1348. 120 0024 7047 bx lr
  1349. 121 .LVL8:
  1350. 122 .L9:
  1351. 1196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1352. 123 .loc 1 1196 0
  1353. 124 0026 22F47F72 bic r2, r2, #1020
  1354. 125 002a 22F00302 bic r2, r2, #3
  1355. 126 002e 0432 adds r2, r2, #4
  1356. 127 0030 8265 str r2, [r0, #88]
  1357. 128 0032 F6E7 b .L8
  1358. 129 .L11:
  1359. 130 .align 2
  1360. 131 .L10:
  1361. 132 0034 ABAAAAAA .word -1431655765
  1362. 133 0038 00000000 .word .LANCHOR0
  1363. 134 .cfi_endproc
  1364. 135 .LFE143:
  1365. 137 .section .text.DMA_CheckFifoParam,"ax",%progbits
  1366. 138 .align 1
  1367. 139 .syntax unified
  1368. 140 .thumb
  1369. 141 .thumb_func
  1370. 142 .fpu fpv4-sp-d16
  1371. 144 DMA_CheckFifoParam:
  1372. 145 .LFB144:
  1373. 1206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1374. 1207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /**
  1375. 1208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @brief Check compatibility between FIFO threshold level and size of the memory burst
  1376. 1209:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains
  1377. 1210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * the configuration information for the specified DMA Stream.
  1378. 1211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @retval HAL status
  1379. 1212:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */
  1380. 1213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** static HAL_StatusTypeDef DMA_CheckFifoParam(DMA_HandleTypeDef *hdma)
  1381. 1214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1382. 146 .loc 1 1214 0
  1383. 147 .cfi_startproc
  1384. 148 @ args = 0, pretend = 0, frame = 0
  1385. 149 @ frame_needed = 0, uses_anonymous_args = 0
  1386. 150 @ link register save eliminated.
  1387. 151 .LVL9:
  1388. 1215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK;
  1389. 1216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t tmp = hdma->Init.FIFOThreshold;
  1390. 152 .loc 1 1216 0
  1391. 153 0000 836A ldr r3, [r0, #40]
  1392. 154 .LVL10:
  1393. ARM GAS /tmp/ccwgRvGR.s page 25
  1394. 1217:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1395. 1218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Memory Data size equal to Byte */
  1396. 1219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->Init.MemDataAlignment == DMA_MDATAALIGN_BYTE)
  1397. 155 .loc 1 1219 0
  1398. 156 0002 8269 ldr r2, [r0, #24]
  1399. 157 0004 92B9 cbnz r2, .L13
  1400. 1220:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1401. 1221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** switch (tmp)
  1402. 158 .loc 1 1221 0
  1403. 159 0006 012B cmp r3, #1
  1404. 160 0008 0AD0 beq .L15
  1405. 161 000a 1BB1 cbz r3, .L16
  1406. 162 000c 022B cmp r3, #2
  1407. 163 000e 01D0 beq .L16
  1408. 1215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t tmp = hdma->Init.FIFOThreshold;
  1409. 164 .loc 1 1215 0
  1410. 165 0010 0020 movs r0, #0
  1411. 166 .LVL11:
  1412. 167 0012 7047 bx lr
  1413. 168 .LVL12:
  1414. 169 .L16:
  1415. 1222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1416. 1223:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case DMA_FIFO_THRESHOLD_1QUARTERFULL:
  1417. 1224:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case DMA_FIFO_THRESHOLD_3QUARTERSFULL:
  1418. 1225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if ((hdma->Init.MemBurst & DMA_SxCR_MBURST_1) == DMA_SxCR_MBURST_1)
  1419. 170 .loc 1 1225 0
  1420. 171 0014 C36A ldr r3, [r0, #44]
  1421. 172 .LVL13:
  1422. 173 0016 13F0807F tst r3, #16777216
  1423. 174 001a 2CD1 bne .L25
  1424. 1215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t tmp = hdma->Init.FIFOThreshold;
  1425. 175 .loc 1 1215 0
  1426. 176 001c 0020 movs r0, #0
  1427. 177 .LVL14:
  1428. 178 001e 7047 bx lr
  1429. 179 .LVL15:
  1430. 180 .L15:
  1431. 1226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1432. 1227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** status = HAL_ERROR;
  1433. 1228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1434. 1229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  1435. 1230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case DMA_FIFO_THRESHOLD_HALFFULL:
  1436. 1231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if (hdma->Init.MemBurst == DMA_MBURST_INC16)
  1437. 181 .loc 1 1231 0
  1438. 182 0020 C36A ldr r3, [r0, #44]
  1439. 183 .LVL16:
  1440. 184 0022 B3F1C07F cmp r3, #25165824
  1441. 185 0026 28D0 beq .L26
  1442. 1215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t tmp = hdma->Init.FIFOThreshold;
  1443. 186 .loc 1 1215 0
  1444. 187 0028 0020 movs r0, #0
  1445. 188 .LVL17:
  1446. 189 002a 7047 bx lr
  1447. 190 .LVL18:
  1448. 191 .L13:
  1449. 1232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1450. 1233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** status = HAL_ERROR;
  1451. ARM GAS /tmp/ccwgRvGR.s page 26
  1452. 1234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1453. 1235:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  1454. 1236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case DMA_FIFO_THRESHOLD_FULL:
  1455. 1237:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  1456. 1238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** default:
  1457. 1239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  1458. 1240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1459. 1241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1460. 1242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1461. 1243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Memory Data size equal to Half-Word */
  1462. 1244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** else if (hdma->Init.MemDataAlignment == DMA_MDATAALIGN_HALFWORD)
  1463. 192 .loc 1 1244 0
  1464. 193 002c B2F5005F cmp r2, #8192
  1465. 194 0030 05D0 beq .L33
  1466. 1245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1467. 1246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** switch (tmp)
  1468. 1247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1469. 1248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case DMA_FIFO_THRESHOLD_1QUARTERFULL:
  1470. 1249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case DMA_FIFO_THRESHOLD_3QUARTERSFULL:
  1471. 1250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** status = HAL_ERROR;
  1472. 1251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  1473. 1252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case DMA_FIFO_THRESHOLD_HALFFULL:
  1474. 1253:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if ((hdma->Init.MemBurst & DMA_SxCR_MBURST_1) == DMA_SxCR_MBURST_1)
  1475. 1254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1476. 1255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** status = HAL_ERROR;
  1477. 1256:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1478. 1257:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  1479. 1258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case DMA_FIFO_THRESHOLD_FULL:
  1480. 1259:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if (hdma->Init.MemBurst == DMA_MBURST_INC16)
  1481. 1260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1482. 1261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** status = HAL_ERROR;
  1483. 1262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1484. 1263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  1485. 1264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** default:
  1486. 1265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  1487. 1266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1488. 1267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1489. 1268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1490. 1269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Memory Data size equal to Word */
  1491. 1270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** else
  1492. 1271:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1493. 1272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** switch (tmp)
  1494. 195 .loc 1 1272 0
  1495. 196 0032 022B cmp r3, #2
  1496. 197 0034 29D9 bls .L30
  1497. 198 0036 032B cmp r3, #3
  1498. 199 0038 15D0 beq .L23
  1499. 1215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t tmp = hdma->Init.FIFOThreshold;
  1500. 200 .loc 1 1215 0
  1501. 201 003a 0020 movs r0, #0
  1502. 202 .LVL19:
  1503. 203 003c 7047 bx lr
  1504. 204 .LVL20:
  1505. 205 .L33:
  1506. 1246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1507. 206 .loc 1 1246 0
  1508. 207 003e 032B cmp r3, #3
  1509. ARM GAS /tmp/ccwgRvGR.s page 27
  1510. 208 0040 03D8 bhi .L18
  1511. 209 0042 DFE803F0 tbb [pc, r3]
  1512. 210 .L19:
  1513. 211 0046 1C .byte (.L27-.L19)/2
  1514. 212 0047 04 .byte (.L20-.L19)/2
  1515. 213 0048 1C .byte (.L27-.L19)/2
  1516. 214 0049 0A .byte (.L21-.L19)/2
  1517. 215 .p2align 1
  1518. 216 .L18:
  1519. 1215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t tmp = hdma->Init.FIFOThreshold;
  1520. 217 .loc 1 1215 0
  1521. 218 004a 0020 movs r0, #0
  1522. 219 .LVL21:
  1523. 220 004c 7047 bx lr
  1524. 221 .LVL22:
  1525. 222 .L20:
  1526. 1253:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1527. 223 .loc 1 1253 0
  1528. 224 004e C36A ldr r3, [r0, #44]
  1529. 225 .LVL23:
  1530. 226 0050 13F0807F tst r3, #16777216
  1531. 227 0054 15D1 bne .L28
  1532. 1215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t tmp = hdma->Init.FIFOThreshold;
  1533. 228 .loc 1 1215 0
  1534. 229 0056 0020 movs r0, #0
  1535. 230 .LVL24:
  1536. 231 0058 7047 bx lr
  1537. 232 .LVL25:
  1538. 233 .L21:
  1539. 1259:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1540. 234 .loc 1 1259 0
  1541. 235 005a C36A ldr r3, [r0, #44]
  1542. 236 .LVL26:
  1543. 237 005c B3F1C07F cmp r3, #25165824
  1544. 238 0060 11D0 beq .L29
  1545. 1215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t tmp = hdma->Init.FIFOThreshold;
  1546. 239 .loc 1 1215 0
  1547. 240 0062 0020 movs r0, #0
  1548. 241 .LVL27:
  1549. 242 0064 7047 bx lr
  1550. 243 .LVL28:
  1551. 244 .L23:
  1552. 1273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1553. 1274:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case DMA_FIFO_THRESHOLD_1QUARTERFULL:
  1554. 1275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case DMA_FIFO_THRESHOLD_HALFFULL:
  1555. 1276:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case DMA_FIFO_THRESHOLD_3QUARTERSFULL:
  1556. 1277:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** status = HAL_ERROR;
  1557. 1278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  1558. 1279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case DMA_FIFO_THRESHOLD_FULL:
  1559. 1280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if ((hdma->Init.MemBurst & DMA_SxCR_MBURST_1) == DMA_SxCR_MBURST_1)
  1560. 245 .loc 1 1280 0
  1561. 246 0066 C36A ldr r3, [r0, #44]
  1562. 247 .LVL29:
  1563. 248 0068 13F0807F tst r3, #16777216
  1564. 249 006c 01D0 beq .L34
  1565. 1281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1566. 1282:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** status = HAL_ERROR;
  1567. ARM GAS /tmp/ccwgRvGR.s page 28
  1568. 250 .loc 1 1282 0
  1569. 251 006e 0120 movs r0, #1
  1570. 252 .LVL30:
  1571. 1283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1572. 1284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  1573. 1285:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** default:
  1574. 1286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  1575. 1287:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1576. 1288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1577. 1289:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1578. 1290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return status;
  1579. 1291:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1580. 253 .loc 1 1291 0
  1581. 254 0070 7047 bx lr
  1582. 255 .LVL31:
  1583. 256 .L34:
  1584. 1215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t tmp = hdma->Init.FIFOThreshold;
  1585. 257 .loc 1 1215 0
  1586. 258 0072 0020 movs r0, #0
  1587. 259 .LVL32:
  1588. 260 0074 7047 bx lr
  1589. 261 .LVL33:
  1590. 262 .L25:
  1591. 1227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1592. 263 .loc 1 1227 0
  1593. 264 0076 0120 movs r0, #1
  1594. 265 .LVL34:
  1595. 266 0078 7047 bx lr
  1596. 267 .LVL35:
  1597. 268 .L26:
  1598. 1233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1599. 269 .loc 1 1233 0
  1600. 270 007a 0120 movs r0, #1
  1601. 271 .LVL36:
  1602. 272 007c 7047 bx lr
  1603. 273 .LVL37:
  1604. 274 .L27:
  1605. 1250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  1606. 275 .loc 1 1250 0
  1607. 276 007e 0120 movs r0, #1
  1608. 277 .LVL38:
  1609. 278 0080 7047 bx lr
  1610. 279 .LVL39:
  1611. 280 .L28:
  1612. 1255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1613. 281 .loc 1 1255 0
  1614. 282 0082 0120 movs r0, #1
  1615. 283 .LVL40:
  1616. 284 0084 7047 bx lr
  1617. 285 .LVL41:
  1618. 286 .L29:
  1619. 1261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1620. 287 .loc 1 1261 0
  1621. 288 0086 0120 movs r0, #1
  1622. 289 .LVL42:
  1623. 290 0088 7047 bx lr
  1624. 291 .LVL43:
  1625. ARM GAS /tmp/ccwgRvGR.s page 29
  1626. 292 .L30:
  1627. 1277:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  1628. 293 .loc 1 1277 0
  1629. 294 008a 0120 movs r0, #1
  1630. 295 .LVL44:
  1631. 296 008c 7047 bx lr
  1632. 297 .cfi_endproc
  1633. 298 .LFE144:
  1634. 300 .section .text.HAL_DMA_Init,"ax",%progbits
  1635. 301 .align 1
  1636. 302 .global HAL_DMA_Init
  1637. 303 .syntax unified
  1638. 304 .thumb
  1639. 305 .thumb_func
  1640. 306 .fpu fpv4-sp-d16
  1641. 308 HAL_DMA_Init:
  1642. 309 .LFB130:
  1643. 172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t tmp = 0U;
  1644. 310 .loc 1 172 0
  1645. 311 .cfi_startproc
  1646. 312 @ args = 0, pretend = 0, frame = 0
  1647. 313 @ frame_needed = 0, uses_anonymous_args = 0
  1648. 314 .LVL45:
  1649. 315 0000 70B5 push {r4, r5, r6, lr}
  1650. 316 .LCFI3:
  1651. 317 .cfi_def_cfa_offset 16
  1652. 318 .cfi_offset 4, -16
  1653. 319 .cfi_offset 5, -12
  1654. 320 .cfi_offset 6, -8
  1655. 321 .cfi_offset 14, -4
  1656. 322 0002 0446 mov r4, r0
  1657. 323 .LVL46:
  1658. 174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** DMA_Base_Registers *regs;
  1659. 324 .loc 1 174 0
  1660. 325 0004 FFF7FEFF bl HAL_GetTick
  1661. 326 .LVL47:
  1662. 178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1663. 327 .loc 1 178 0
  1664. 328 0008 002C cmp r4, #0
  1665. 329 000a 5DD0 beq .L41
  1666. 330 000c 0546 mov r5, r0
  1667. 204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1668. 331 .loc 1 204 0
  1669. 332 000e 0023 movs r3, #0
  1670. 333 0010 84F83430 strb r3, [r4, #52]
  1671. 207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1672. 334 .loc 1 207 0
  1673. 335 0014 0223 movs r3, #2
  1674. 336 0016 84F83530 strb r3, [r4, #53]
  1675. 210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1676. 337 .loc 1 210 0
  1677. 338 001a 2268 ldr r2, [r4]
  1678. 339 001c 1368 ldr r3, [r2]
  1679. 340 001e 23F00103 bic r3, r3, #1
  1680. 341 0022 1360 str r3, [r2]
  1681. 342 .LVL48:
  1682. 343 .L37:
  1683. ARM GAS /tmp/ccwgRvGR.s page 30
  1684. 213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1685. 344 .loc 1 213 0
  1686. 345 0024 2368 ldr r3, [r4]
  1687. 346 0026 1A68 ldr r2, [r3]
  1688. 347 0028 12F0010F tst r2, #1
  1689. 348 002c 0AD0 beq .L43
  1690. 216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1691. 349 .loc 1 216 0
  1692. 350 002e FFF7FEFF bl HAL_GetTick
  1693. 351 .LVL49:
  1694. 352 0032 401B subs r0, r0, r5
  1695. 353 0034 0528 cmp r0, #5
  1696. 354 0036 F5D9 bls .L37
  1697. 219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1698. 355 .loc 1 219 0
  1699. 356 0038 2023 movs r3, #32
  1700. 357 003a 6365 str r3, [r4, #84]
  1701. 222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1702. 358 .loc 1 222 0
  1703. 359 003c 0320 movs r0, #3
  1704. 360 003e 84F83500 strb r0, [r4, #53]
  1705. 224:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1706. 361 .loc 1 224 0
  1707. 362 0042 70BD pop {r4, r5, r6, pc}
  1708. 363 .LVL50:
  1709. 364 .L43:
  1710. 229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1711. 365 .loc 1 229 0
  1712. 366 0044 1A68 ldr r2, [r3]
  1713. 367 .LVL51:
  1714. 232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** DMA_SxCR_PL | DMA_SxCR_MSIZE | DMA_SxCR_PSIZE | \
  1715. 368 .loc 1 232 0
  1716. 369 0046 2149 ldr r1, .L46
  1717. 370 0048 1140 ands r1, r1, r2
  1718. 371 .LVL52:
  1719. 238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Init.PeriphInc | hdma->Init.MemInc |
  1720. 372 .loc 1 238 0
  1721. 373 004a 6268 ldr r2, [r4, #4]
  1722. 374 004c A068 ldr r0, [r4, #8]
  1723. 375 004e 0243 orrs r2, r2, r0
  1724. 239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Init.PeriphDataAlignment | hdma->Init.MemDataAlignment |
  1725. 376 .loc 1 239 0
  1726. 377 0050 E068 ldr r0, [r4, #12]
  1727. 238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Init.PeriphInc | hdma->Init.MemInc |
  1728. 378 .loc 1 238 0
  1729. 379 0052 0243 orrs r2, r2, r0
  1730. 239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Init.PeriphDataAlignment | hdma->Init.MemDataAlignment |
  1731. 380 .loc 1 239 0
  1732. 381 0054 2069 ldr r0, [r4, #16]
  1733. 382 0056 0243 orrs r2, r2, r0
  1734. 240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Init.Mode | hdma->Init.Priority;
  1735. 383 .loc 1 240 0
  1736. 384 0058 6069 ldr r0, [r4, #20]
  1737. 239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Init.PeriphDataAlignment | hdma->Init.MemDataAlignment |
  1738. 385 .loc 1 239 0
  1739. 386 005a 0243 orrs r2, r2, r0
  1740. 240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Init.Mode | hdma->Init.Priority;
  1741. ARM GAS /tmp/ccwgRvGR.s page 31
  1742. 387 .loc 1 240 0
  1743. 388 005c A069 ldr r0, [r4, #24]
  1744. 389 005e 0243 orrs r2, r2, r0
  1745. 241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1746. 390 .loc 1 241 0
  1747. 391 0060 E069 ldr r0, [r4, #28]
  1748. 240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Init.Mode | hdma->Init.Priority;
  1749. 392 .loc 1 240 0
  1750. 393 0062 0243 orrs r2, r2, r0
  1751. 241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1752. 394 .loc 1 241 0
  1753. 395 0064 206A ldr r0, [r4, #32]
  1754. 396 0066 0243 orrs r2, r2, r0
  1755. 238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Init.PeriphInc | hdma->Init.MemInc |
  1756. 397 .loc 1 238 0
  1757. 398 0068 0A43 orrs r2, r2, r1
  1758. 399 .LVL53:
  1759. 244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1760. 400 .loc 1 244 0
  1761. 401 006a 616A ldr r1, [r4, #36]
  1762. 402 006c 0429 cmp r1, #4
  1763. 403 006e 16D0 beq .L44
  1764. 404 .L39:
  1765. 251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1766. 405 .loc 1 251 0
  1767. 406 0070 1A60 str r2, [r3]
  1768. 254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1769. 407 .loc 1 254 0
  1770. 408 0072 2668 ldr r6, [r4]
  1771. 409 0074 7569 ldr r5, [r6, #20]
  1772. 410 .LVL54:
  1773. 257:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1774. 411 .loc 1 257 0
  1775. 412 0076 25F00705 bic r5, r5, #7
  1776. 413 .LVL55:
  1777. 260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1778. 414 .loc 1 260 0
  1779. 415 007a 636A ldr r3, [r4, #36]
  1780. 416 007c 1D43 orrs r5, r5, r3
  1781. 417 .LVL56:
  1782. 263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1783. 418 .loc 1 263 0
  1784. 419 007e 042B cmp r3, #4
  1785. 420 0080 12D0 beq .L45
  1786. 421 .L40:
  1787. 286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1788. 422 .loc 1 286 0
  1789. 423 0082 7561 str r5, [r6, #20]
  1790. 290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1791. 424 .loc 1 290 0
  1792. 425 0084 2046 mov r0, r4
  1793. 426 0086 FFF7FEFF bl DMA_CalcBaseAndBitshift
  1794. 427 .LVL57:
  1795. 293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1796. 428 .loc 1 293 0
  1797. 429 008a E26D ldr r2, [r4, #92]
  1798. 430 008c 3F23 movs r3, #63
  1799. ARM GAS /tmp/ccwgRvGR.s page 32
  1800. 431 008e 9340 lsls r3, r3, r2
  1801. 432 0090 8360 str r3, [r0, #8]
  1802. 296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1803. 433 .loc 1 296 0
  1804. 434 0092 0020 movs r0, #0
  1805. 435 .LVL58:
  1806. 436 0094 6065 str r0, [r4, #84]
  1807. 299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1808. 437 .loc 1 299 0
  1809. 438 0096 0123 movs r3, #1
  1810. 439 0098 84F83530 strb r3, [r4, #53]
  1811. 301:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1812. 440 .loc 1 301 0
  1813. 441 009c 70BD pop {r4, r5, r6, pc}
  1814. 442 .LVL59:
  1815. 443 .L44:
  1816. 247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1817. 444 .loc 1 247 0
  1818. 445 009e E16A ldr r1, [r4, #44]
  1819. 446 00a0 206B ldr r0, [r4, #48]
  1820. 447 00a2 0143 orrs r1, r1, r0
  1821. 448 00a4 0A43 orrs r2, r2, r1
  1822. 449 .LVL60:
  1823. 450 00a6 E3E7 b .L39
  1824. 451 .LVL61:
  1825. 452 .L45:
  1826. 266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1827. 453 .loc 1 266 0
  1828. 454 00a8 A36A ldr r3, [r4, #40]
  1829. 455 00aa 1D43 orrs r5, r5, r3
  1830. 456 .LVL62:
  1831. 270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1832. 457 .loc 1 270 0
  1833. 458 00ac E36A ldr r3, [r4, #44]
  1834. 459 00ae 002B cmp r3, #0
  1835. 460 00b0 E7D0 beq .L40
  1836. 272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1837. 461 .loc 1 272 0
  1838. 462 00b2 2046 mov r0, r4
  1839. 463 00b4 FFF7FEFF bl DMA_CheckFifoParam
  1840. 464 .LVL63:
  1841. 465 00b8 0028 cmp r0, #0
  1842. 466 00ba E2D0 beq .L40
  1843. 275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1844. 467 .loc 1 275 0
  1845. 468 00bc 4023 movs r3, #64
  1846. 469 00be 6365 str r3, [r4, #84]
  1847. 278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1848. 470 .loc 1 278 0
  1849. 471 00c0 0120 movs r0, #1
  1850. 472 00c2 84F83500 strb r0, [r4, #53]
  1851. 280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1852. 473 .loc 1 280 0
  1853. 474 00c6 70BD pop {r4, r5, r6, pc}
  1854. 475 .LVL64:
  1855. 476 .L41:
  1856. 180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1857. ARM GAS /tmp/ccwgRvGR.s page 33
  1858. 477 .loc 1 180 0
  1859. 478 00c8 0120 movs r0, #1
  1860. 479 .LVL65:
  1861. 302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1862. 480 .loc 1 302 0
  1863. 481 00ca 70BD pop {r4, r5, r6, pc}
  1864. 482 .LVL66:
  1865. 483 .L47:
  1866. 484 .align 2
  1867. 485 .L46:
  1868. 486 00cc 3F8010F0 .word -267354049
  1869. 487 .cfi_endproc
  1870. 488 .LFE130:
  1871. 490 .section .text.HAL_DMA_DeInit,"ax",%progbits
  1872. 491 .align 1
  1873. 492 .global HAL_DMA_DeInit
  1874. 493 .syntax unified
  1875. 494 .thumb
  1876. 495 .thumb_func
  1877. 496 .fpu fpv4-sp-d16
  1878. 498 HAL_DMA_DeInit:
  1879. 499 .LFB131:
  1880. 311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** DMA_Base_Registers *regs;
  1881. 500 .loc 1 311 0
  1882. 501 .cfi_startproc
  1883. 502 @ args = 0, pretend = 0, frame = 0
  1884. 503 @ frame_needed = 0, uses_anonymous_args = 0
  1885. 504 .LVL67:
  1886. 315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1887. 505 .loc 1 315 0
  1888. 506 0000 0028 cmp r0, #0
  1889. 507 0002 2ED0 beq .L50
  1890. 311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** DMA_Base_Registers *regs;
  1891. 508 .loc 1 311 0
  1892. 509 0004 38B5 push {r3, r4, r5, lr}
  1893. 510 .LCFI4:
  1894. 511 .cfi_def_cfa_offset 16
  1895. 512 .cfi_offset 3, -16
  1896. 513 .cfi_offset 4, -12
  1897. 514 .cfi_offset 5, -8
  1898. 515 .cfi_offset 14, -4
  1899. 516 0006 0446 mov r4, r0
  1900. 321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  1901. 517 .loc 1 321 0
  1902. 518 0008 90F83530 ldrb r3, [r0, #53] @ zero_extendqisi2
  1903. 519 000c DBB2 uxtb r3, r3
  1904. 520 000e 022B cmp r3, #2
  1905. 521 0010 01D1 bne .L56
  1906. 324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1907. 522 .loc 1 324 0
  1908. 523 0012 0220 movs r0, #2
  1909. 524 .LVL68:
  1910. 375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1911. 525 .loc 1 375 0
  1912. 526 0014 38BD pop {r3, r4, r5, pc}
  1913. 527 .LVL69:
  1914. 528 .L56:
  1915. ARM GAS /tmp/ccwgRvGR.s page 34
  1916. 331:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1917. 529 .loc 1 331 0
  1918. 530 0016 0268 ldr r2, [r0]
  1919. 531 0018 1368 ldr r3, [r2]
  1920. 532 001a 23F00103 bic r3, r3, #1
  1921. 533 001e 1360 str r3, [r2]
  1922. 334:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1923. 534 .loc 1 334 0
  1924. 535 0020 0368 ldr r3, [r0]
  1925. 536 0022 0025 movs r5, #0
  1926. 537 0024 1D60 str r5, [r3]
  1927. 337:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1928. 538 .loc 1 337 0
  1929. 539 0026 0368 ldr r3, [r0]
  1930. 540 0028 5D60 str r5, [r3, #4]
  1931. 340:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1932. 541 .loc 1 340 0
  1933. 542 002a 0368 ldr r3, [r0]
  1934. 543 002c 9D60 str r5, [r3, #8]
  1935. 343:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1936. 544 .loc 1 343 0
  1937. 545 002e 0368 ldr r3, [r0]
  1938. 546 0030 DD60 str r5, [r3, #12]
  1939. 346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1940. 547 .loc 1 346 0
  1941. 548 0032 0368 ldr r3, [r0]
  1942. 549 0034 1D61 str r5, [r3, #16]
  1943. 349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1944. 550 .loc 1 349 0
  1945. 551 0036 0368 ldr r3, [r0]
  1946. 552 0038 2122 movs r2, #33
  1947. 553 003a 5A61 str r2, [r3, #20]
  1948. 352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1949. 554 .loc 1 352 0
  1950. 555 003c FFF7FEFF bl DMA_CalcBaseAndBitshift
  1951. 556 .LVL70:
  1952. 355:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferHalfCpltCallback = NULL;
  1953. 557 .loc 1 355 0
  1954. 558 0040 E563 str r5, [r4, #60]
  1955. 356:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferM1CpltCallback = NULL;
  1956. 559 .loc 1 356 0
  1957. 560 0042 2564 str r5, [r4, #64]
  1958. 357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferM1HalfCpltCallback = NULL;
  1959. 561 .loc 1 357 0
  1960. 562 0044 6564 str r5, [r4, #68]
  1961. 358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferErrorCallback = NULL;
  1962. 563 .loc 1 358 0
  1963. 564 0046 A564 str r5, [r4, #72]
  1964. 359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferAbortCallback = NULL;
  1965. 565 .loc 1 359 0
  1966. 566 0048 E564 str r5, [r4, #76]
  1967. 360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1968. 567 .loc 1 360 0
  1969. 568 004a 2565 str r5, [r4, #80]
  1970. 363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1971. 569 .loc 1 363 0
  1972. 570 004c E26D ldr r2, [r4, #92]
  1973. ARM GAS /tmp/ccwgRvGR.s page 35
  1974. 571 004e 3F23 movs r3, #63
  1975. 572 0050 9340 lsls r3, r3, r2
  1976. 573 0052 8360 str r3, [r0, #8]
  1977. 366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1978. 574 .loc 1 366 0
  1979. 575 0054 6565 str r5, [r4, #84]
  1980. 369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1981. 576 .loc 1 369 0
  1982. 577 0056 84F83550 strb r5, [r4, #53]
  1983. 372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  1984. 578 .loc 1 372 0
  1985. 579 005a 84F83450 strb r5, [r4, #52]
  1986. 374:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  1987. 580 .loc 1 374 0
  1988. 581 005e 2846 mov r0, r5
  1989. 582 .LVL71:
  1990. 583 0060 38BD pop {r3, r4, r5, pc}
  1991. 584 .LVL72:
  1992. 585 .L50:
  1993. 586 .LCFI5:
  1994. 587 .cfi_def_cfa_offset 0
  1995. 588 .cfi_restore 3
  1996. 589 .cfi_restore 4
  1997. 590 .cfi_restore 5
  1998. 591 .cfi_restore 14
  1999. 317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  2000. 592 .loc 1 317 0
  2001. 593 0062 0120 movs r0, #1
  2002. 594 .LVL73:
  2003. 595 0064 7047 bx lr
  2004. 596 .cfi_endproc
  2005. 597 .LFE131:
  2006. 599 .section .text.HAL_DMA_Start,"ax",%progbits
  2007. 600 .align 1
  2008. 601 .global HAL_DMA_Start
  2009. 602 .syntax unified
  2010. 603 .thumb
  2011. 604 .thumb_func
  2012. 605 .fpu fpv4-sp-d16
  2013. 607 HAL_DMA_Start:
  2014. 608 .LFB132:
  2015. 409:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK;
  2016. 609 .loc 1 409 0
  2017. 610 .cfi_startproc
  2018. 611 @ args = 0, pretend = 0, frame = 0
  2019. 612 @ frame_needed = 0, uses_anonymous_args = 0
  2020. 613 .LVL74:
  2021. 614 0000 38B5 push {r3, r4, r5, lr}
  2022. 615 .LCFI6:
  2023. 616 .cfi_def_cfa_offset 16
  2024. 617 .cfi_offset 3, -16
  2025. 618 .cfi_offset 4, -12
  2026. 619 .cfi_offset 5, -8
  2027. 620 .cfi_offset 14, -4
  2028. 621 .LVL75:
  2029. 416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2030. 622 .loc 1 416 0
  2031. ARM GAS /tmp/ccwgRvGR.s page 36
  2032. 623 0002 90F83440 ldrb r4, [r0, #52] @ zero_extendqisi2
  2033. 624 0006 012C cmp r4, #1
  2034. 625 0008 1CD0 beq .L60
  2035. 416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2036. 626 .loc 1 416 0 is_stmt 0 discriminator 2
  2037. 627 000a 0124 movs r4, #1
  2038. 628 000c 80F83440 strb r4, [r0, #52]
  2039. 418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2040. 629 .loc 1 418 0 is_stmt 1 discriminator 2
  2041. 630 0010 90F83540 ldrb r4, [r0, #53] @ zero_extendqisi2
  2042. 631 0014 E4B2 uxtb r4, r4
  2043. 632 0016 012C cmp r4, #1
  2044. 633 0018 04D0 beq .L62
  2045. 435:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2046. 634 .loc 1 435 0
  2047. 635 001a 0023 movs r3, #0
  2048. 636 .LVL76:
  2049. 637 001c 80F83430 strb r3, [r0, #52]
  2050. 638 .LVL77:
  2051. 438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  2052. 639 .loc 1 438 0
  2053. 640 0020 0220 movs r0, #2
  2054. 641 .LVL78:
  2055. 642 0022 38BD pop {r3, r4, r5, pc}
  2056. 643 .LVL79:
  2057. 644 .L62:
  2058. 645 0024 0546 mov r5, r0
  2059. 421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2060. 646 .loc 1 421 0
  2061. 647 0026 0220 movs r0, #2
  2062. 648 .LVL80:
  2063. 649 0028 85F83500 strb r0, [r5, #53]
  2064. 424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2065. 650 .loc 1 424 0
  2066. 651 002c 0024 movs r4, #0
  2067. 652 002e 6C65 str r4, [r5, #84]
  2068. 427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2069. 653 .loc 1 427 0
  2070. 654 0030 2846 mov r0, r5
  2071. 655 0032 FFF7FEFF bl DMA_SetConfig
  2072. 656 .LVL81:
  2073. 430:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  2074. 657 .loc 1 430 0
  2075. 658 0036 2A68 ldr r2, [r5]
  2076. 659 0038 1368 ldr r3, [r2]
  2077. 660 003a 43F00103 orr r3, r3, #1
  2078. 661 003e 1360 str r3, [r2]
  2079. 410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2080. 662 .loc 1 410 0
  2081. 663 0040 2046 mov r0, r4
  2082. 664 0042 38BD pop {r3, r4, r5, pc}
  2083. 665 .LVL82:
  2084. 666 .L60:
  2085. 416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2086. 667 .loc 1 416 0
  2087. 668 0044 0220 movs r0, #2
  2088. 669 .LVL83:
  2089. ARM GAS /tmp/ccwgRvGR.s page 37
  2090. 441:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2091. 670 .loc 1 441 0
  2092. 671 0046 38BD pop {r3, r4, r5, pc}
  2093. 672 .cfi_endproc
  2094. 673 .LFE132:
  2095. 675 .section .text.HAL_DMA_Start_IT,"ax",%progbits
  2096. 676 .align 1
  2097. 677 .global HAL_DMA_Start_IT
  2098. 678 .syntax unified
  2099. 679 .thumb
  2100. 680 .thumb_func
  2101. 681 .fpu fpv4-sp-d16
  2102. 683 HAL_DMA_Start_IT:
  2103. 684 .LFB133:
  2104. 453:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK;
  2105. 685 .loc 1 453 0
  2106. 686 .cfi_startproc
  2107. 687 @ args = 0, pretend = 0, frame = 0
  2108. 688 @ frame_needed = 0, uses_anonymous_args = 0
  2109. 689 .LVL84:
  2110. 690 0000 38B5 push {r3, r4, r5, lr}
  2111. 691 .LCFI7:
  2112. 692 .cfi_def_cfa_offset 16
  2113. 693 .cfi_offset 3, -16
  2114. 694 .cfi_offset 4, -12
  2115. 695 .cfi_offset 5, -8
  2116. 696 .cfi_offset 14, -4
  2117. 697 .LVL85:
  2118. 457:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2119. 698 .loc 1 457 0
  2120. 699 0002 856D ldr r5, [r0, #88]
  2121. 700 .LVL86:
  2122. 463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2123. 701 .loc 1 463 0
  2124. 702 0004 90F83440 ldrb r4, [r0, #52] @ zero_extendqisi2
  2125. 703 0008 012C cmp r4, #1
  2126. 704 000a 31D0 beq .L67
  2127. 463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2128. 705 .loc 1 463 0 is_stmt 0 discriminator 2
  2129. 706 000c 0124 movs r4, #1
  2130. 707 000e 80F83440 strb r4, [r0, #52]
  2131. 465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2132. 708 .loc 1 465 0 is_stmt 1 discriminator 2
  2133. 709 0012 90F83540 ldrb r4, [r0, #53] @ zero_extendqisi2
  2134. 710 0016 E4B2 uxtb r4, r4
  2135. 711 0018 012C cmp r4, #1
  2136. 712 001a 04D0 beq .L69
  2137. 494:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2138. 713 .loc 1 494 0
  2139. 714 001c 0023 movs r3, #0
  2140. 715 .LVL87:
  2141. 716 001e 80F83430 strb r3, [r0, #52]
  2142. 717 .LVL88:
  2143. 497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  2144. 718 .loc 1 497 0
  2145. 719 0022 0220 movs r0, #2
  2146. 720 .LVL89:
  2147. ARM GAS /tmp/ccwgRvGR.s page 38
  2148. 721 0024 38BD pop {r3, r4, r5, pc}
  2149. 722 .LVL90:
  2150. 723 .L69:
  2151. 724 0026 0446 mov r4, r0
  2152. 468:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2153. 725 .loc 1 468 0
  2154. 726 0028 0220 movs r0, #2
  2155. 727 .LVL91:
  2156. 728 002a 84F83500 strb r0, [r4, #53]
  2157. 471:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2158. 729 .loc 1 471 0
  2159. 730 002e 0020 movs r0, #0
  2160. 731 0030 6065 str r0, [r4, #84]
  2161. 474:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2162. 732 .loc 1 474 0
  2163. 733 0032 2046 mov r0, r4
  2164. 734 0034 FFF7FEFF bl DMA_SetConfig
  2165. 735 .LVL92:
  2166. 477:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2167. 736 .loc 1 477 0
  2168. 737 0038 E26D ldr r2, [r4, #92]
  2169. 738 003a 3F23 movs r3, #63
  2170. 739 003c 9340 lsls r3, r3, r2
  2171. 740 003e AB60 str r3, [r5, #8]
  2172. 480:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->FCR |= DMA_IT_FE;
  2173. 741 .loc 1 480 0
  2174. 742 0040 2268 ldr r2, [r4]
  2175. 743 0042 1368 ldr r3, [r2]
  2176. 744 0044 43F01603 orr r3, r3, #22
  2177. 745 0048 1360 str r3, [r2]
  2178. 481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2179. 746 .loc 1 481 0
  2180. 747 004a 2268 ldr r2, [r4]
  2181. 748 004c 5369 ldr r3, [r2, #20]
  2182. 749 004e 43F08003 orr r3, r3, #128
  2183. 750 0052 5361 str r3, [r2, #20]
  2184. 483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2185. 751 .loc 1 483 0
  2186. 752 0054 236C ldr r3, [r4, #64]
  2187. 753 0056 23B1 cbz r3, .L66
  2188. 485:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  2189. 754 .loc 1 485 0
  2190. 755 0058 2268 ldr r2, [r4]
  2191. 756 005a 1368 ldr r3, [r2]
  2192. 757 005c 43F00803 orr r3, r3, #8
  2193. 758 0060 1360 str r3, [r2]
  2194. 759 .L66:
  2195. 489:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  2196. 760 .loc 1 489 0
  2197. 761 0062 2268 ldr r2, [r4]
  2198. 762 0064 1368 ldr r3, [r2]
  2199. 763 0066 43F00103 orr r3, r3, #1
  2200. 764 006a 1360 str r3, [r2]
  2201. 454:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2202. 765 .loc 1 454 0
  2203. 766 006c 0020 movs r0, #0
  2204. 767 006e 38BD pop {r3, r4, r5, pc}
  2205. ARM GAS /tmp/ccwgRvGR.s page 39
  2206. 768 .LVL93:
  2207. 769 .L67:
  2208. 463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2209. 770 .loc 1 463 0
  2210. 771 0070 0220 movs r0, #2
  2211. 772 .LVL94:
  2212. 501:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2213. 773 .loc 1 501 0
  2214. 774 0072 38BD pop {r3, r4, r5, pc}
  2215. 775 .cfi_endproc
  2216. 776 .LFE133:
  2217. 778 .section .text.HAL_DMA_Abort,"ax",%progbits
  2218. 779 .align 1
  2219. 780 .global HAL_DMA_Abort
  2220. 781 .syntax unified
  2221. 782 .thumb
  2222. 783 .thumb_func
  2223. 784 .fpu fpv4-sp-d16
  2224. 786 HAL_DMA_Abort:
  2225. 787 .LFB134:
  2226. 516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* calculate DMA base and stream number */
  2227. 788 .loc 1 516 0
  2228. 789 .cfi_startproc
  2229. 790 @ args = 0, pretend = 0, frame = 0
  2230. 791 @ frame_needed = 0, uses_anonymous_args = 0
  2231. 792 .LVL95:
  2232. 793 0000 70B5 push {r4, r5, r6, lr}
  2233. 794 .LCFI8:
  2234. 795 .cfi_def_cfa_offset 16
  2235. 796 .cfi_offset 4, -16
  2236. 797 .cfi_offset 5, -12
  2237. 798 .cfi_offset 6, -8
  2238. 799 .cfi_offset 14, -4
  2239. 800 0002 0446 mov r4, r0
  2240. 518:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2241. 801 .loc 1 518 0
  2242. 802 0004 866D ldr r6, [r0, #88]
  2243. 803 .LVL96:
  2244. 520:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2245. 804 .loc 1 520 0
  2246. 805 0006 FFF7FEFF bl HAL_GetTick
  2247. 806 .LVL97:
  2248. 522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2249. 807 .loc 1 522 0
  2250. 808 000a 94F83530 ldrb r3, [r4, #53] @ zero_extendqisi2
  2251. 809 000e DBB2 uxtb r3, r3
  2252. 810 0010 022B cmp r3, #2
  2253. 811 0012 06D0 beq .L71
  2254. 524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2255. 812 .loc 1 524 0
  2256. 813 0014 8023 movs r3, #128
  2257. 814 0016 6365 str r3, [r4, #84]
  2258. 527:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2259. 815 .loc 1 527 0
  2260. 816 0018 0023 movs r3, #0
  2261. 817 001a 84F83430 strb r3, [r4, #52]
  2262. 529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  2263. ARM GAS /tmp/ccwgRvGR.s page 40
  2264. 818 .loc 1 529 0
  2265. 819 001e 0120 movs r0, #1
  2266. 820 .LVL98:
  2267. 821 0020 70BD pop {r4, r5, r6, pc}
  2268. 822 .LVL99:
  2269. 823 .L71:
  2270. 824 0022 0546 mov r5, r0
  2271. 534:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->FCR &= ~(DMA_IT_FE);
  2272. 825 .loc 1 534 0
  2273. 826 0024 2268 ldr r2, [r4]
  2274. 827 0026 1368 ldr r3, [r2]
  2275. 828 0028 23F01603 bic r3, r3, #22
  2276. 829 002c 1360 str r3, [r2]
  2277. 535:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2278. 830 .loc 1 535 0
  2279. 831 002e 2268 ldr r2, [r4]
  2280. 832 0030 5369 ldr r3, [r2, #20]
  2281. 833 0032 23F08003 bic r3, r3, #128
  2282. 834 0036 5361 str r3, [r2, #20]
  2283. 537:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2284. 835 .loc 1 537 0
  2285. 836 0038 236C ldr r3, [r4, #64]
  2286. 837 003a E3B1 cbz r3, .L78
  2287. 838 .L73:
  2288. 539:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  2289. 839 .loc 1 539 0
  2290. 840 003c 2268 ldr r2, [r4]
  2291. 841 003e 1368 ldr r3, [r2]
  2292. 842 0040 23F00803 bic r3, r3, #8
  2293. 843 0044 1360 str r3, [r2]
  2294. 844 .L74:
  2295. 543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2296. 845 .loc 1 543 0
  2297. 846 0046 2268 ldr r2, [r4]
  2298. 847 0048 1368 ldr r3, [r2]
  2299. 848 004a 23F00103 bic r3, r3, #1
  2300. 849 004e 1360 str r3, [r2]
  2301. 850 .LVL100:
  2302. 851 .L75:
  2303. 546:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2304. 852 .loc 1 546 0
  2305. 853 0050 2368 ldr r3, [r4]
  2306. 854 0052 1B68 ldr r3, [r3]
  2307. 855 0054 13F0010F tst r3, #1
  2308. 856 0058 11D0 beq .L79
  2309. 549:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2310. 857 .loc 1 549 0
  2311. 858 005a FFF7FEFF bl HAL_GetTick
  2312. 859 .LVL101:
  2313. 860 005e 401B subs r0, r0, r5
  2314. 861 0060 0528 cmp r0, #5
  2315. 862 0062 F5D9 bls .L75
  2316. 552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2317. 863 .loc 1 552 0
  2318. 864 0064 2023 movs r3, #32
  2319. 865 0066 6365 str r3, [r4, #84]
  2320. 555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2321. ARM GAS /tmp/ccwgRvGR.s page 41
  2322. 866 .loc 1 555 0
  2323. 867 0068 0023 movs r3, #0
  2324. 868 006a 84F83430 strb r3, [r4, #52]
  2325. 558:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2326. 869 .loc 1 558 0
  2327. 870 006e 0320 movs r0, #3
  2328. 871 0070 84F83500 strb r0, [r4, #53]
  2329. 560:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  2330. 872 .loc 1 560 0
  2331. 873 0074 70BD pop {r4, r5, r6, pc}
  2332. 874 .LVL102:
  2333. 875 .L78:
  2334. 537:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2335. 876 .loc 1 537 0 discriminator 1
  2336. 877 0076 A36C ldr r3, [r4, #72]
  2337. 878 0078 002B cmp r3, #0
  2338. 879 007a DFD1 bne .L73
  2339. 880 007c E3E7 b .L74
  2340. 881 .LVL103:
  2341. 882 .L79:
  2342. 565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2343. 883 .loc 1 565 0
  2344. 884 007e E26D ldr r2, [r4, #92]
  2345. 885 0080 3F23 movs r3, #63
  2346. 886 0082 9340 lsls r3, r3, r2
  2347. 887 0084 B360 str r3, [r6, #8]
  2348. 568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2349. 888 .loc 1 568 0
  2350. 889 0086 0020 movs r0, #0
  2351. 890 0088 84F83400 strb r0, [r4, #52]
  2352. 571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  2353. 891 .loc 1 571 0
  2354. 892 008c 0123 movs r3, #1
  2355. 893 008e 84F83530 strb r3, [r4, #53]
  2356. 574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2357. 894 .loc 1 574 0
  2358. 895 0092 70BD pop {r4, r5, r6, pc}
  2359. 896 .cfi_endproc
  2360. 897 .LFE134:
  2361. 899 .section .text.HAL_DMA_Abort_IT,"ax",%progbits
  2362. 900 .align 1
  2363. 901 .global HAL_DMA_Abort_IT
  2364. 902 .syntax unified
  2365. 903 .thumb
  2366. 904 .thumb_func
  2367. 905 .fpu fpv4-sp-d16
  2368. 907 HAL_DMA_Abort_IT:
  2369. 908 .LFB135:
  2370. 583:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->State != HAL_DMA_STATE_BUSY)
  2371. 909 .loc 1 583 0
  2372. 910 .cfi_startproc
  2373. 911 @ args = 0, pretend = 0, frame = 0
  2374. 912 @ frame_needed = 0, uses_anonymous_args = 0
  2375. 913 @ link register save eliminated.
  2376. 914 .LVL104:
  2377. 584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2378. 915 .loc 1 584 0
  2379. ARM GAS /tmp/ccwgRvGR.s page 42
  2380. 916 0000 90F83530 ldrb r3, [r0, #53] @ zero_extendqisi2
  2381. 917 0004 DBB2 uxtb r3, r3
  2382. 918 0006 022B cmp r3, #2
  2383. 919 0008 03D0 beq .L81
  2384. 586:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_ERROR;
  2385. 920 .loc 1 586 0
  2386. 921 000a 8023 movs r3, #128
  2387. 922 000c 4365 str r3, [r0, #84]
  2388. 587:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  2389. 923 .loc 1 587 0
  2390. 924 000e 0120 movs r0, #1
  2391. 925 .LVL105:
  2392. 926 0010 7047 bx lr
  2393. 927 .LVL106:
  2394. 928 .L81:
  2395. 592:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2396. 929 .loc 1 592 0
  2397. 930 0012 0523 movs r3, #5
  2398. 931 0014 80F83530 strb r3, [r0, #53]
  2399. 595:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  2400. 932 .loc 1 595 0
  2401. 933 0018 0268 ldr r2, [r0]
  2402. 934 001a 1368 ldr r3, [r2]
  2403. 935 001c 23F00103 bic r3, r3, #1
  2404. 936 0020 1360 str r3, [r2]
  2405. 598:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  2406. 937 .loc 1 598 0
  2407. 938 0022 0020 movs r0, #0
  2408. 939 .LVL107:
  2409. 599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2410. 940 .loc 1 599 0
  2411. 941 0024 7047 bx lr
  2412. 942 .cfi_endproc
  2413. 943 .LFE135:
  2414. 945 .section .text.HAL_DMA_PollForTransfer,"ax",%progbits
  2415. 946 .align 1
  2416. 947 .global HAL_DMA_PollForTransfer
  2417. 948 .syntax unified
  2418. 949 .thumb
  2419. 950 .thumb_func
  2420. 951 .fpu fpv4-sp-d16
  2421. 953 HAL_DMA_PollForTransfer:
  2422. 954 .LFB136:
  2423. 613:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK;
  2424. 955 .loc 1 613 0
  2425. 956 .cfi_startproc
  2426. 957 @ args = 0, pretend = 0, frame = 0
  2427. 958 @ frame_needed = 0, uses_anonymous_args = 0
  2428. 959 .LVL108:
  2429. 960 0000 2DE9F843 push {r3, r4, r5, r6, r7, r8, r9, lr}
  2430. 961 .LCFI9:
  2431. 962 .cfi_def_cfa_offset 32
  2432. 963 .cfi_offset 3, -32
  2433. 964 .cfi_offset 4, -28
  2434. 965 .cfi_offset 5, -24
  2435. 966 .cfi_offset 6, -20
  2436. 967 .cfi_offset 7, -16
  2437. ARM GAS /tmp/ccwgRvGR.s page 43
  2438. 968 .cfi_offset 8, -12
  2439. 969 .cfi_offset 9, -8
  2440. 970 .cfi_offset 14, -4
  2441. 971 0004 0446 mov r4, r0
  2442. 972 0006 8946 mov r9, r1
  2443. 973 0008 1546 mov r5, r2
  2444. 974 .LVL109:
  2445. 616:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t tmpisr;
  2446. 975 .loc 1 616 0
  2447. 976 000a FFF7FEFF bl HAL_GetTick
  2448. 977 .LVL110:
  2449. 622:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2450. 978 .loc 1 622 0
  2451. 979 000e 94F83530 ldrb r3, [r4, #53] @ zero_extendqisi2
  2452. 980 0012 DBB2 uxtb r3, r3
  2453. 981 0014 022B cmp r3, #2
  2454. 982 0016 07D0 beq .L84
  2455. 625:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_UNLOCK(hdma);
  2456. 983 .loc 1 625 0
  2457. 984 0018 8023 movs r3, #128
  2458. 985 001a 6365 str r3, [r4, #84]
  2459. 626:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_ERROR;
  2460. 986 .loc 1 626 0
  2461. 987 001c 0023 movs r3, #0
  2462. 988 001e 84F83430 strb r3, [r4, #52]
  2463. 627:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  2464. 989 .loc 1 627 0
  2465. 990 0022 0120 movs r0, #1
  2466. 991 .LVL111:
  2467. 992 0024 BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc}
  2468. 993 .LVL112:
  2469. 994 .L84:
  2470. 995 0028 8046 mov r8, r0
  2471. 631:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2472. 996 .loc 1 631 0
  2473. 997 002a 2368 ldr r3, [r4]
  2474. 998 002c 1B68 ldr r3, [r3]
  2475. 999 002e 13F4807F tst r3, #256
  2476. 1000 0032 38D1 bne .L100
  2477. 638:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2478. 1001 .loc 1 638 0
  2479. 1002 0034 B9F1000F cmp r9, #0
  2480. 1003 0038 3BD1 bne .L87
  2481. 641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  2482. 1004 .loc 1 641 0
  2483. 1005 003a E36D ldr r3, [r4, #92]
  2484. 1006 003c 2027 movs r7, #32
  2485. 1007 003e 9F40 lsls r7, r7, r3
  2486. 1008 .LVL113:
  2487. 1009 .L88:
  2488. 649:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** tmpisr = regs->ISR;
  2489. 1010 .loc 1 649 0
  2490. 1011 0040 A66D ldr r6, [r4, #88]
  2491. 1012 .LVL114:
  2492. 650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2493. 1013 .loc 1 650 0
  2494. 1014 0042 3368 ldr r3, [r6]
  2495. ARM GAS /tmp/ccwgRvGR.s page 44
  2496. 1015 .LVL115:
  2497. 1016 .L89:
  2498. 652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2499. 1017 .loc 1 652 0
  2500. 1018 0044 1F42 tst r7, r3
  2501. 1019 0046 43D1 bne .L95
  2502. 652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2503. 1020 .loc 1 652 0 is_stmt 0 discriminator 1
  2504. 1021 0048 636D ldr r3, [r4, #84]
  2505. 1022 .LVL116:
  2506. 1023 004a 13F0010F tst r3, #1
  2507. 1024 004e 3FD1 bne .L95
  2508. 655:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2509. 1025 .loc 1 655 0 is_stmt 1
  2510. 1026 0050 B5F1FF3F cmp r5, #-1
  2511. 1027 0054 07D0 beq .L90
  2512. 657:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2513. 1028 .loc 1 657 0
  2514. 1029 0056 002D cmp r5, #0
  2515. 1030 0058 2FD0 beq .L91
  2516. 657:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2517. 1031 .loc 1 657 0 is_stmt 0 discriminator 1
  2518. 1032 005a FFF7FEFF bl HAL_GetTick
  2519. 1033 .LVL117:
  2520. 1034 005e A0EB0800 sub r0, r0, r8
  2521. 1035 0062 8542 cmp r5, r0
  2522. 1036 0064 29D3 bcc .L91
  2523. 1037 .L90:
  2524. 673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2525. 1038 .loc 1 673 0 is_stmt 1
  2526. 1039 0066 3368 ldr r3, [r6]
  2527. 1040 .LVL118:
  2528. 675:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2529. 1041 .loc 1 675 0
  2530. 1042 0068 E16D ldr r1, [r4, #92]
  2531. 1043 006a 0822 movs r2, #8
  2532. 1044 006c 8A40 lsls r2, r2, r1
  2533. 1045 006e 1342 tst r3, r2
  2534. 1046 0070 04D0 beq .L92
  2535. 678:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2536. 1047 .loc 1 678 0
  2537. 1048 0072 616D ldr r1, [r4, #84]
  2538. 1049 0074 41F00101 orr r1, r1, #1
  2539. 1050 0078 6165 str r1, [r4, #84]
  2540. 681:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  2541. 1051 .loc 1 681 0
  2542. 1052 007a B260 str r2, [r6, #8]
  2543. 1053 .L92:
  2544. 684:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2545. 1054 .loc 1 684 0
  2546. 1055 007c E16D ldr r1, [r4, #92]
  2547. 1056 007e 0122 movs r2, #1
  2548. 1057 0080 8A40 lsls r2, r2, r1
  2549. 1058 0082 1342 tst r3, r2
  2550. 1059 0084 04D0 beq .L93
  2551. 687:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2552. 1060 .loc 1 687 0
  2553. ARM GAS /tmp/ccwgRvGR.s page 45
  2554. 1061 0086 616D ldr r1, [r4, #84]
  2555. 1062 0088 41F00201 orr r1, r1, #2
  2556. 1063 008c 6165 str r1, [r4, #84]
  2557. 690:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  2558. 1064 .loc 1 690 0
  2559. 1065 008e B260 str r2, [r6, #8]
  2560. 1066 .L93:
  2561. 693:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2562. 1067 .loc 1 693 0
  2563. 1068 0090 E16D ldr r1, [r4, #92]
  2564. 1069 0092 0422 movs r2, #4
  2565. 1070 0094 8A40 lsls r2, r2, r1
  2566. 1071 0096 1342 tst r3, r2
  2567. 1072 0098 D4D0 beq .L89
  2568. 696:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2569. 1073 .loc 1 696 0
  2570. 1074 009a 616D ldr r1, [r4, #84]
  2571. 1075 009c 41F00401 orr r1, r1, #4
  2572. 1076 00a0 6165 str r1, [r4, #84]
  2573. 699:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  2574. 1077 .loc 1 699 0
  2575. 1078 00a2 B260 str r2, [r6, #8]
  2576. 1079 00a4 CEE7 b .L89
  2577. 1080 .LVL119:
  2578. 1081 .L100:
  2579. 633:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_ERROR;
  2580. 1082 .loc 1 633 0
  2581. 1083 00a6 4FF48073 mov r3, #256
  2582. 1084 00aa 6365 str r3, [r4, #84]
  2583. 634:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  2584. 1085 .loc 1 634 0
  2585. 1086 00ac 0120 movs r0, #1
  2586. 1087 .LVL120:
  2587. 1088 00ae BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc}
  2588. 1089 .LVL121:
  2589. 1090 .L87:
  2590. 646:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  2591. 1091 .loc 1 646 0
  2592. 1092 00b2 E36D ldr r3, [r4, #92]
  2593. 1093 00b4 1027 movs r7, #16
  2594. 1094 00b6 9F40 lsls r7, r7, r3
  2595. 1095 .LVL122:
  2596. 1096 00b8 C2E7 b .L88
  2597. 1097 .LVL123:
  2598. 1098 .L91:
  2599. 660:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2600. 1099 .loc 1 660 0
  2601. 1100 00ba 2023 movs r3, #32
  2602. 1101 00bc 6365 str r3, [r4, #84]
  2603. 663:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2604. 1102 .loc 1 663 0
  2605. 1103 00be 0023 movs r3, #0
  2606. 1104 00c0 84F83430 strb r3, [r4, #52]
  2607. 666:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2608. 1105 .loc 1 666 0
  2609. 1106 00c4 0123 movs r3, #1
  2610. 1107 00c6 84F83530 strb r3, [r4, #53]
  2611. ARM GAS /tmp/ccwgRvGR.s page 46
  2612. 668:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  2613. 1108 .loc 1 668 0
  2614. 1109 00ca 0320 movs r0, #3
  2615. 1110 00cc BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc}
  2616. 1111 .LVL124:
  2617. 1112 .L95:
  2618. 703:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2619. 1113 .loc 1 703 0
  2620. 1114 00d0 636D ldr r3, [r4, #84]
  2621. 1115 00d2 1BB1 cbz r3, .L97
  2622. 705:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2623. 1116 .loc 1 705 0
  2624. 1117 00d4 636D ldr r3, [r4, #84]
  2625. 1118 00d6 13F0010F tst r3, #1
  2626. 1119 00da 09D1 bne .L101
  2627. 1120 .L97:
  2628. 723:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2629. 1121 .loc 1 723 0
  2630. 1122 00dc B9F1000F cmp r9, #0
  2631. 1123 00e0 15D0 beq .L102
  2632. 736:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  2633. 1124 .loc 1 736 0
  2634. 1125 00e2 E26D ldr r2, [r4, #92]
  2635. 1126 00e4 1023 movs r3, #16
  2636. 1127 00e6 9340 lsls r3, r3, r2
  2637. 1128 00e8 B360 str r3, [r6, #8]
  2638. 739:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  2639. 1129 .loc 1 739 0
  2640. 1130 00ea 0020 movs r0, #0
  2641. 740:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2642. 1131 .loc 1 740 0
  2643. 1132 00ec BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc}
  2644. 1133 .LVL125:
  2645. 1134 .L101:
  2646. 707:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2647. 1135 .loc 1 707 0
  2648. 1136 00f0 2046 mov r0, r4
  2649. 1137 00f2 FFF7FEFF bl HAL_DMA_Abort
  2650. 1138 .LVL126:
  2651. 710:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2652. 1139 .loc 1 710 0
  2653. 1140 00f6 E26D ldr r2, [r4, #92]
  2654. 1141 00f8 3023 movs r3, #48
  2655. 1142 00fa 9340 lsls r3, r3, r2
  2656. 1143 00fc B360 str r3, [r6, #8]
  2657. 713:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2658. 1144 .loc 1 713 0
  2659. 1145 00fe 0023 movs r3, #0
  2660. 1146 0100 84F83430 strb r3, [r4, #52]
  2661. 716:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2662. 1147 .loc 1 716 0
  2663. 1148 0104 0120 movs r0, #1
  2664. 1149 0106 84F83500 strb r0, [r4, #53]
  2665. 718:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  2666. 1150 .loc 1 718 0
  2667. 1151 010a BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc}
  2668. 1152 .LVL127:
  2669. ARM GAS /tmp/ccwgRvGR.s page 47
  2670. 1153 .L102:
  2671. 726:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2672. 1154 .loc 1 726 0
  2673. 1155 010e E26D ldr r2, [r4, #92]
  2674. 1156 0110 3023 movs r3, #48
  2675. 1157 0112 9340 lsls r3, r3, r2
  2676. 1158 0114 B360 str r3, [r6, #8]
  2677. 729:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2678. 1159 .loc 1 729 0
  2679. 1160 0116 0020 movs r0, #0
  2680. 1161 0118 84F83400 strb r0, [r4, #52]
  2681. 731:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  2682. 1162 .loc 1 731 0
  2683. 1163 011c 0123 movs r3, #1
  2684. 1164 011e 84F83530 strb r3, [r4, #53]
  2685. 1165 0122 BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc}
  2686. 1166 .cfi_endproc
  2687. 1167 .LFE136:
  2688. 1169 .section .text.HAL_DMA_IRQHandler,"ax",%progbits
  2689. 1170 .align 1
  2690. 1171 .global HAL_DMA_IRQHandler
  2691. 1172 .syntax unified
  2692. 1173 .thumb
  2693. 1174 .thumb_func
  2694. 1175 .fpu fpv4-sp-d16
  2695. 1177 HAL_DMA_IRQHandler:
  2696. 1178 .LFB137:
  2697. 749:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t tmpisr;
  2698. 1179 .loc 1 749 0
  2699. 1180 .cfi_startproc
  2700. 1181 @ args = 0, pretend = 0, frame = 8
  2701. 1182 @ frame_needed = 0, uses_anonymous_args = 0
  2702. 1183 .LVL128:
  2703. 1184 0000 F0B5 push {r4, r5, r6, r7, lr}
  2704. 1185 .LCFI10:
  2705. 1186 .cfi_def_cfa_offset 20
  2706. 1187 .cfi_offset 4, -20
  2707. 1188 .cfi_offset 5, -16
  2708. 1189 .cfi_offset 6, -12
  2709. 1190 .cfi_offset 7, -8
  2710. 1191 .cfi_offset 14, -4
  2711. 1192 0002 83B0 sub sp, sp, #12
  2712. 1193 .LCFI11:
  2713. 1194 .cfi_def_cfa_offset 32
  2714. 1195 0004 0446 mov r4, r0
  2715. 751:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t timeout = SystemCoreClock / 9600U;
  2716. 1196 .loc 1 751 0
  2717. 1197 0006 0023 movs r3, #0
  2718. 1198 0008 0193 str r3, [sp, #4]
  2719. 752:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2720. 1199 .loc 1 752 0
  2721. 1200 000a 724B ldr r3, .L125
  2722. 1201 000c 1D68 ldr r5, [r3]
  2723. 1202 000e 724B ldr r3, .L125+4
  2724. 1203 0010 A3FB0535 umull r3, r5, r3, r5
  2725. 1204 0014 AD0A lsrs r5, r5, #10
  2726. 1205 .LVL129:
  2727. ARM GAS /tmp/ccwgRvGR.s page 48
  2728. 755:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2729. 1206 .loc 1 755 0
  2730. 1207 0016 876D ldr r7, [r0, #88]
  2731. 1208 .LVL130:
  2732. 757:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2733. 1209 .loc 1 757 0
  2734. 1210 0018 3E68 ldr r6, [r7]
  2735. 1211 .LVL131:
  2736. 760:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2737. 1212 .loc 1 760 0
  2738. 1213 001a C26D ldr r2, [r0, #92]
  2739. 1214 001c 0823 movs r3, #8
  2740. 1215 001e 9340 lsls r3, r3, r2
  2741. 1216 0020 1E42 tst r6, r3
  2742. 1217 0022 10D0 beq .L104
  2743. 762:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2744. 1218 .loc 1 762 0
  2745. 1219 0024 0368 ldr r3, [r0]
  2746. 1220 0026 1A68 ldr r2, [r3]
  2747. 1221 0028 12F0040F tst r2, #4
  2748. 1222 002c 0BD0 beq .L104
  2749. 765:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2750. 1223 .loc 1 765 0
  2751. 1224 002e 1A68 ldr r2, [r3]
  2752. 1225 0030 22F00402 bic r2, r2, #4
  2753. 1226 0034 1A60 str r2, [r3]
  2754. 768:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2755. 1227 .loc 1 768 0
  2756. 1228 0036 C26D ldr r2, [r0, #92]
  2757. 1229 0038 0823 movs r3, #8
  2758. 1230 003a 9340 lsls r3, r3, r2
  2759. 1231 003c BB60 str r3, [r7, #8]
  2760. 771:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  2761. 1232 .loc 1 771 0
  2762. 1233 003e 436D ldr r3, [r0, #84]
  2763. 1234 0040 43F00103 orr r3, r3, #1
  2764. 1235 0044 4365 str r3, [r0, #84]
  2765. 1236 .L104:
  2766. 775:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2767. 1237 .loc 1 775 0
  2768. 1238 0046 E26D ldr r2, [r4, #92]
  2769. 1239 0048 0123 movs r3, #1
  2770. 1240 004a 9340 lsls r3, r3, r2
  2771. 1241 004c 1E42 tst r6, r3
  2772. 1242 004e 09D0 beq .L105
  2773. 777:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2774. 1243 .loc 1 777 0
  2775. 1244 0050 2268 ldr r2, [r4]
  2776. 1245 0052 5269 ldr r2, [r2, #20]
  2777. 1246 0054 12F0800F tst r2, #128
  2778. 1247 0058 04D0 beq .L105
  2779. 780:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2780. 1248 .loc 1 780 0
  2781. 1249 005a BB60 str r3, [r7, #8]
  2782. 783:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  2783. 1250 .loc 1 783 0
  2784. 1251 005c 636D ldr r3, [r4, #84]
  2785. ARM GAS /tmp/ccwgRvGR.s page 49
  2786. 1252 005e 43F00203 orr r3, r3, #2
  2787. 1253 0062 6365 str r3, [r4, #84]
  2788. 1254 .L105:
  2789. 787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2790. 1255 .loc 1 787 0
  2791. 1256 0064 E26D ldr r2, [r4, #92]
  2792. 1257 0066 0423 movs r3, #4
  2793. 1258 0068 9340 lsls r3, r3, r2
  2794. 1259 006a 1E42 tst r6, r3
  2795. 1260 006c 09D0 beq .L106
  2796. 789:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2797. 1261 .loc 1 789 0
  2798. 1262 006e 2268 ldr r2, [r4]
  2799. 1263 0070 1268 ldr r2, [r2]
  2800. 1264 0072 12F0020F tst r2, #2
  2801. 1265 0076 04D0 beq .L106
  2802. 792:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2803. 1266 .loc 1 792 0
  2804. 1267 0078 BB60 str r3, [r7, #8]
  2805. 795:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  2806. 1268 .loc 1 795 0
  2807. 1269 007a 636D ldr r3, [r4, #84]
  2808. 1270 007c 43F00403 orr r3, r3, #4
  2809. 1271 0080 6365 str r3, [r4, #84]
  2810. 1272 .L106:
  2811. 799:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2812. 1273 .loc 1 799 0
  2813. 1274 0082 E26D ldr r2, [r4, #92]
  2814. 1275 0084 1023 movs r3, #16
  2815. 1276 0086 9340 lsls r3, r3, r2
  2816. 1277 0088 1E42 tst r6, r3
  2817. 1278 008a 24D0 beq .L107
  2818. 801:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2819. 1279 .loc 1 801 0
  2820. 1280 008c 2268 ldr r2, [r4]
  2821. 1281 008e 1268 ldr r2, [r2]
  2822. 1282 0090 12F0080F tst r2, #8
  2823. 1283 0094 1FD0 beq .L107
  2824. 804:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2825. 1284 .loc 1 804 0
  2826. 1285 0096 BB60 str r3, [r7, #8]
  2827. 807:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2828. 1286 .loc 1 807 0
  2829. 1287 0098 2368 ldr r3, [r4]
  2830. 1288 009a 1A68 ldr r2, [r3]
  2831. 1289 009c 12F4802F tst r2, #262144
  2832. 1290 00a0 0DD0 beq .L108
  2833. 810:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2834. 1291 .loc 1 810 0
  2835. 1292 00a2 1B68 ldr r3, [r3]
  2836. 1293 00a4 13F4002F tst r3, #524288
  2837. 1294 00a8 04D1 bne .L109
  2838. 812:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2839. 1295 .loc 1 812 0
  2840. 1296 00aa 236C ldr r3, [r4, #64]
  2841. 1297 00ac 9BB1 cbz r3, .L107
  2842. 815:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  2843. ARM GAS /tmp/ccwgRvGR.s page 50
  2844. 1298 .loc 1 815 0
  2845. 1299 00ae 2046 mov r0, r4
  2846. 1300 .LVL132:
  2847. 1301 00b0 9847 blx r3
  2848. 1302 .LVL133:
  2849. 1303 00b2 10E0 b .L107
  2850. 1304 .LVL134:
  2851. 1305 .L109:
  2852. 821:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2853. 1306 .loc 1 821 0
  2854. 1307 00b4 A36C ldr r3, [r4, #72]
  2855. 1308 00b6 73B1 cbz r3, .L107
  2856. 824:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  2857. 1309 .loc 1 824 0
  2858. 1310 00b8 2046 mov r0, r4
  2859. 1311 .LVL135:
  2860. 1312 00ba 9847 blx r3
  2861. 1313 .LVL136:
  2862. 1314 00bc 0BE0 b .L107
  2863. 1315 .LVL137:
  2864. 1316 .L108:
  2865. 831:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2866. 1317 .loc 1 831 0
  2867. 1318 00be 1A68 ldr r2, [r3]
  2868. 1319 00c0 12F4807F tst r2, #256
  2869. 1320 00c4 03D1 bne .L110
  2870. 834:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  2871. 1321 .loc 1 834 0
  2872. 1322 00c6 1A68 ldr r2, [r3]
  2873. 1323 00c8 22F00802 bic r2, r2, #8
  2874. 1324 00cc 1A60 str r2, [r3]
  2875. 1325 .L110:
  2876. 837:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2877. 1326 .loc 1 837 0
  2878. 1327 00ce 236C ldr r3, [r4, #64]
  2879. 1328 00d0 0BB1 cbz r3, .L107
  2880. 840:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  2881. 1329 .loc 1 840 0
  2882. 1330 00d2 2046 mov r0, r4
  2883. 1331 .LVL138:
  2884. 1332 00d4 9847 blx r3
  2885. 1333 .LVL139:
  2886. 1334 .L107:
  2887. 846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2888. 1335 .loc 1 846 0
  2889. 1336 00d6 E26D ldr r2, [r4, #92]
  2890. 1337 00d8 2023 movs r3, #32
  2891. 1338 00da 9340 lsls r3, r3, r2
  2892. 1339 00dc 1E42 tst r6, r3
  2893. 1340 00de 55D0 beq .L111
  2894. 848:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2895. 1341 .loc 1 848 0
  2896. 1342 00e0 2268 ldr r2, [r4]
  2897. 1343 00e2 1268 ldr r2, [r2]
  2898. 1344 00e4 12F0100F tst r2, #16
  2899. 1345 00e8 50D0 beq .L111
  2900. 851:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2901. ARM GAS /tmp/ccwgRvGR.s page 51
  2902. 1346 .loc 1 851 0
  2903. 1347 00ea BB60 str r3, [r7, #8]
  2904. 853:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2905. 1348 .loc 1 853 0
  2906. 1349 00ec 94F83530 ldrb r3, [r4, #53] @ zero_extendqisi2
  2907. 1350 00f0 DBB2 uxtb r3, r3
  2908. 1351 00f2 052B cmp r3, #5
  2909. 1352 00f4 0ED0 beq .L123
  2910. 880:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2911. 1353 .loc 1 880 0
  2912. 1354 00f6 2368 ldr r3, [r4]
  2913. 1355 00f8 1A68 ldr r2, [r3]
  2914. 1356 00fa 12F4802F tst r2, #262144
  2915. 1357 00fe 33D0 beq .L116
  2916. 883:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2917. 1358 .loc 1 883 0
  2918. 1359 0100 1B68 ldr r3, [r3]
  2919. 1360 0102 13F4002F tst r3, #524288
  2920. 1361 0106 2AD1 bne .L117
  2921. 885:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2922. 1362 .loc 1 885 0
  2923. 1363 0108 636C ldr r3, [r4, #68]
  2924. 1364 010a 002B cmp r3, #0
  2925. 1365 010c 3ED0 beq .L111
  2926. 888:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  2927. 1366 .loc 1 888 0
  2928. 1367 010e 2046 mov r0, r4
  2929. 1368 0110 9847 blx r3
  2930. 1369 .LVL140:
  2931. 1370 0112 3BE0 b .L111
  2932. 1371 .L123:
  2933. 856:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->FCR &= ~(DMA_IT_FE);
  2934. 1372 .loc 1 856 0
  2935. 1373 0114 2268 ldr r2, [r4]
  2936. 1374 0116 1368 ldr r3, [r2]
  2937. 1375 0118 23F01603 bic r3, r3, #22
  2938. 1376 011c 1360 str r3, [r2]
  2939. 857:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2940. 1377 .loc 1 857 0
  2941. 1378 011e 2268 ldr r2, [r4]
  2942. 1379 0120 5369 ldr r3, [r2, #20]
  2943. 1380 0122 23F08003 bic r3, r3, #128
  2944. 1381 0126 5361 str r3, [r2, #20]
  2945. 859:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2946. 1382 .loc 1 859 0
  2947. 1383 0128 236C ldr r3, [r4, #64]
  2948. 1384 012a A3B1 cbz r3, .L124
  2949. 1385 .L113:
  2950. 861:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  2951. 1386 .loc 1 861 0
  2952. 1387 012c 2268 ldr r2, [r4]
  2953. 1388 012e 1368 ldr r3, [r2]
  2954. 1389 0130 23F00803 bic r3, r3, #8
  2955. 1390 0134 1360 str r3, [r2]
  2956. 1391 .L114:
  2957. 865:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2958. 1392 .loc 1 865 0
  2959. ARM GAS /tmp/ccwgRvGR.s page 52
  2960. 1393 0136 E26D ldr r2, [r4, #92]
  2961. 1394 0138 3F23 movs r3, #63
  2962. 1395 013a 9340 lsls r3, r3, r2
  2963. 1396 013c BB60 str r3, [r7, #8]
  2964. 868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2965. 1397 .loc 1 868 0
  2966. 1398 013e 0023 movs r3, #0
  2967. 1399 0140 84F83430 strb r3, [r4, #52]
  2968. 871:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  2969. 1400 .loc 1 871 0
  2970. 1401 0144 0123 movs r3, #1
  2971. 1402 0146 84F83530 strb r3, [r4, #53]
  2972. 873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2973. 1403 .loc 1 873 0
  2974. 1404 014a 236D ldr r3, [r4, #80]
  2975. 1405 014c 002B cmp r3, #0
  2976. 1406 014e 3FD0 beq .L103
  2977. 875:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  2978. 1407 .loc 1 875 0
  2979. 1408 0150 2046 mov r0, r4
  2980. 1409 0152 9847 blx r3
  2981. 1410 .LVL141:
  2982. 1411 0154 3CE0 b .L103
  2983. 1412 .L124:
  2984. 859:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2985. 1413 .loc 1 859 0 discriminator 1
  2986. 1414 0156 A36C ldr r3, [r4, #72]
  2987. 1415 0158 002B cmp r3, #0
  2988. 1416 015a E7D1 bne .L113
  2989. 1417 015c EBE7 b .L114
  2990. 1418 .L117:
  2991. 894:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  2992. 1419 .loc 1 894 0
  2993. 1420 015e E36B ldr r3, [r4, #60]
  2994. 1421 0160 A3B1 cbz r3, .L111
  2995. 897:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  2996. 1422 .loc 1 897 0
  2997. 1423 0162 2046 mov r0, r4
  2998. 1424 0164 9847 blx r3
  2999. 1425 .LVL142:
  3000. 1426 0166 11E0 b .L111
  3001. 1427 .L116:
  3002. 904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  3003. 1428 .loc 1 904 0
  3004. 1429 0168 1A68 ldr r2, [r3]
  3005. 1430 016a 12F4807F tst r2, #256
  3006. 1431 016e 09D1 bne .L118
  3007. 907:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3008. 1432 .loc 1 907 0
  3009. 1433 0170 1A68 ldr r2, [r3]
  3010. 1434 0172 22F01002 bic r2, r2, #16
  3011. 1435 0176 1A60 str r2, [r3]
  3012. 910:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3013. 1436 .loc 1 910 0
  3014. 1437 0178 0023 movs r3, #0
  3015. 1438 017a 84F83430 strb r3, [r4, #52]
  3016. 913:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  3017. ARM GAS /tmp/ccwgRvGR.s page 53
  3018. 1439 .loc 1 913 0
  3019. 1440 017e 0123 movs r3, #1
  3020. 1441 0180 84F83530 strb r3, [r4, #53]
  3021. 1442 .L118:
  3022. 916:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  3023. 1443 .loc 1 916 0
  3024. 1444 0184 E36B ldr r3, [r4, #60]
  3025. 1445 0186 0BB1 cbz r3, .L111
  3026. 919:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  3027. 1446 .loc 1 919 0
  3028. 1447 0188 2046 mov r0, r4
  3029. 1448 018a 9847 blx r3
  3030. 1449 .LVL143:
  3031. 1450 .L111:
  3032. 926:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  3033. 1451 .loc 1 926 0
  3034. 1452 018c 636D ldr r3, [r4, #84]
  3035. 1453 018e FBB1 cbz r3, .L103
  3036. 928:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  3037. 1454 .loc 1 928 0
  3038. 1455 0190 636D ldr r3, [r4, #84]
  3039. 1456 0192 13F0010F tst r3, #1
  3040. 1457 0196 17D0 beq .L119
  3041. 930:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3042. 1458 .loc 1 930 0
  3043. 1459 0198 0523 movs r3, #5
  3044. 1460 019a 84F83530 strb r3, [r4, #53]
  3045. 933:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3046. 1461 .loc 1 933 0
  3047. 1462 019e 2268 ldr r2, [r4]
  3048. 1463 01a0 1368 ldr r3, [r2]
  3049. 1464 01a2 23F00103 bic r3, r3, #1
  3050. 1465 01a6 1360 str r3, [r2]
  3051. 1466 .L121:
  3052. 937:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  3053. 1467 .loc 1 937 0
  3054. 1468 01a8 019B ldr r3, [sp, #4]
  3055. 1469 01aa 0133 adds r3, r3, #1
  3056. 1470 01ac 0193 str r3, [sp, #4]
  3057. 1471 01ae 9D42 cmp r5, r3
  3058. 1472 01b0 04D3 bcc .L120
  3059. 942:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3060. 1473 .loc 1 942 0
  3061. 1474 01b2 2368 ldr r3, [r4]
  3062. 1475 01b4 1B68 ldr r3, [r3]
  3063. 1476 01b6 13F0010F tst r3, #1
  3064. 1477 01ba F5D1 bne .L121
  3065. 1478 .L120:
  3066. 945:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3067. 1479 .loc 1 945 0
  3068. 1480 01bc 0023 movs r3, #0
  3069. 1481 01be 84F83430 strb r3, [r4, #52]
  3070. 948:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  3071. 1482 .loc 1 948 0
  3072. 1483 01c2 0123 movs r3, #1
  3073. 1484 01c4 84F83530 strb r3, [r4, #53]
  3074. 1485 .L119:
  3075. ARM GAS /tmp/ccwgRvGR.s page 54
  3076. 951:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  3077. 1486 .loc 1 951 0
  3078. 1487 01c8 E36C ldr r3, [r4, #76]
  3079. 1488 01ca 0BB1 cbz r3, .L103
  3080. 954:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  3081. 1489 .loc 1 954 0
  3082. 1490 01cc 2046 mov r0, r4
  3083. 1491 01ce 9847 blx r3
  3084. 1492 .LVL144:
  3085. 1493 .L103:
  3086. 957:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3087. 1494 .loc 1 957 0
  3088. 1495 01d0 03B0 add sp, sp, #12
  3089. 1496 .LCFI12:
  3090. 1497 .cfi_def_cfa_offset 20
  3091. 1498 @ sp needed
  3092. 1499 01d2 F0BD pop {r4, r5, r6, r7, pc}
  3093. 1500 .LVL145:
  3094. 1501 .L126:
  3095. 1502 .align 2
  3096. 1503 .L125:
  3097. 1504 01d4 00000000 .word SystemCoreClock
  3098. 1505 01d8 B5814E1B .word 458129845
  3099. 1506 .cfi_endproc
  3100. 1507 .LFE137:
  3101. 1509 .section .text.HAL_DMA_RegisterCallback,"ax",%progbits
  3102. 1510 .align 1
  3103. 1511 .global HAL_DMA_RegisterCallback
  3104. 1512 .syntax unified
  3105. 1513 .thumb
  3106. 1514 .thumb_func
  3107. 1515 .fpu fpv4-sp-d16
  3108. 1517 HAL_DMA_RegisterCallback:
  3109. 1518 .LFB138:
  3110. 970:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3111. 1519 .loc 1 970 0
  3112. 1520 .cfi_startproc
  3113. 1521 @ args = 0, pretend = 0, frame = 0
  3114. 1522 @ frame_needed = 0, uses_anonymous_args = 0
  3115. 1523 @ link register save eliminated.
  3116. 1524 .LVL146:
  3117. 1525 0000 0346 mov r3, r0
  3118. 1526 .LVL147:
  3119. 975:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3120. 1527 .loc 1 975 0
  3121. 1528 0002 90F83400 ldrb r0, [r0, #52] @ zero_extendqisi2
  3122. 1529 .LVL148:
  3123. 1530 0006 0128 cmp r0, #1
  3124. 1531 0008 27D0 beq .L137
  3125. 975:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3126. 1532 .loc 1 975 0 is_stmt 0 discriminator 2
  3127. 1533 000a 0120 movs r0, #1
  3128. 1534 000c 83F83400 strb r0, [r3, #52]
  3129. 977:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  3130. 1535 .loc 1 977 0 is_stmt 1 discriminator 2
  3131. 1536 0010 93F83500 ldrb r0, [r3, #53] @ zero_extendqisi2
  3132. 1537 0014 C0B2 uxtb r0, r0
  3133. ARM GAS /tmp/ccwgRvGR.s page 55
  3134. 1538 0016 0128 cmp r0, #1
  3135. 1539 0018 04D0 beq .L140
  3136. 1012:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  3137. 1540 .loc 1 1012 0
  3138. 1541 001a 0120 movs r0, #1
  3139. 1542 .L129:
  3140. 1543 .LVL149:
  3141. 1016:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3142. 1544 .loc 1 1016 0
  3143. 1545 001c 0022 movs r2, #0
  3144. 1546 .LVL150:
  3145. 1547 001e 83F83420 strb r2, [r3, #52]
  3146. 1018:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  3147. 1548 .loc 1 1018 0
  3148. 1549 0022 7047 bx lr
  3149. 1550 .LVL151:
  3150. 1551 .L140:
  3151. 979:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  3152. 1552 .loc 1 979 0
  3153. 1553 0024 0529 cmp r1, #5
  3154. 1554 0026 16D8 bhi .L139
  3155. 1555 0028 DFE801F0 tbb [pc, r1]
  3156. 1556 .L131:
  3157. 1557 002c 03 .byte (.L130-.L131)/2
  3158. 1558 002d 06 .byte (.L132-.L131)/2
  3159. 1559 002e 09 .byte (.L133-.L131)/2
  3160. 1560 002f 0C .byte (.L134-.L131)/2
  3161. 1561 0030 0F .byte (.L135-.L131)/2
  3162. 1562 0031 12 .byte (.L136-.L131)/2
  3163. 1563 .p2align 1
  3164. 1564 .L130:
  3165. 982:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  3166. 1565 .loc 1 982 0
  3167. 1566 0032 DA63 str r2, [r3, #60]
  3168. 972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3169. 1567 .loc 1 972 0
  3170. 1568 0034 0020 movs r0, #0
  3171. 983:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3172. 1569 .loc 1 983 0
  3173. 1570 0036 F1E7 b .L129
  3174. 1571 .L132:
  3175. 986:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  3176. 1572 .loc 1 986 0
  3177. 1573 0038 1A64 str r2, [r3, #64]
  3178. 972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3179. 1574 .loc 1 972 0
  3180. 1575 003a 0020 movs r0, #0
  3181. 987:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3182. 1576 .loc 1 987 0
  3183. 1577 003c EEE7 b .L129
  3184. 1578 .L133:
  3185. 990:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  3186. 1579 .loc 1 990 0
  3187. 1580 003e 5A64 str r2, [r3, #68]
  3188. 972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3189. 1581 .loc 1 972 0
  3190. 1582 0040 0020 movs r0, #0
  3191. ARM GAS /tmp/ccwgRvGR.s page 56
  3192. 991:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3193. 1583 .loc 1 991 0
  3194. 1584 0042 EBE7 b .L129
  3195. 1585 .L134:
  3196. 994:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  3197. 1586 .loc 1 994 0
  3198. 1587 0044 9A64 str r2, [r3, #72]
  3199. 972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3200. 1588 .loc 1 972 0
  3201. 1589 0046 0020 movs r0, #0
  3202. 995:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3203. 1590 .loc 1 995 0
  3204. 1591 0048 E8E7 b .L129
  3205. 1592 .L135:
  3206. 998:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  3207. 1593 .loc 1 998 0
  3208. 1594 004a DA64 str r2, [r3, #76]
  3209. 972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3210. 1595 .loc 1 972 0
  3211. 1596 004c 0020 movs r0, #0
  3212. 999:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3213. 1597 .loc 1 999 0
  3214. 1598 004e E5E7 b .L129
  3215. 1599 .L136:
  3216. 1002:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  3217. 1600 .loc 1 1002 0
  3218. 1601 0050 1A65 str r2, [r3, #80]
  3219. 972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3220. 1602 .loc 1 972 0
  3221. 1603 0052 0020 movs r0, #0
  3222. 1003:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3223. 1604 .loc 1 1003 0
  3224. 1605 0054 E2E7 b .L129
  3225. 1606 .L139:
  3226. 972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3227. 1607 .loc 1 972 0
  3228. 1608 0056 0020 movs r0, #0
  3229. 1609 0058 E0E7 b .L129
  3230. 1610 .L137:
  3231. 975:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3232. 1611 .loc 1 975 0
  3233. 1612 005a 0220 movs r0, #2
  3234. 1019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3235. 1613 .loc 1 1019 0
  3236. 1614 005c 7047 bx lr
  3237. 1615 .cfi_endproc
  3238. 1616 .LFE138:
  3239. 1618 .section .text.HAL_DMA_UnRegisterCallback,"ax",%progbits
  3240. 1619 .align 1
  3241. 1620 .global HAL_DMA_UnRegisterCallback
  3242. 1621 .syntax unified
  3243. 1622 .thumb
  3244. 1623 .thumb_func
  3245. 1624 .fpu fpv4-sp-d16
  3246. 1626 HAL_DMA_UnRegisterCallback:
  3247. 1627 .LFB139:
  3248. 1030:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK;
  3249. ARM GAS /tmp/ccwgRvGR.s page 57
  3250. 1628 .loc 1 1030 0
  3251. 1629 .cfi_startproc
  3252. 1630 @ args = 0, pretend = 0, frame = 0
  3253. 1631 @ frame_needed = 0, uses_anonymous_args = 0
  3254. 1632 @ link register save eliminated.
  3255. 1633 .LVL152:
  3256. 1634 0000 0346 mov r3, r0
  3257. 1635 .LVL153:
  3258. 1034:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3259. 1636 .loc 1 1034 0
  3260. 1637 0002 90F83420 ldrb r2, [r0, #52] @ zero_extendqisi2
  3261. 1638 0006 012A cmp r2, #1
  3262. 1639 0008 30D0 beq .L152
  3263. 1034:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3264. 1640 .loc 1 1034 0 is_stmt 0 discriminator 2
  3265. 1641 000a 0122 movs r2, #1
  3266. 1642 000c 80F83420 strb r2, [r0, #52]
  3267. 1036:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  3268. 1643 .loc 1 1036 0 is_stmt 1 discriminator 2
  3269. 1644 0010 90F83520 ldrb r2, [r0, #53] @ zero_extendqisi2
  3270. 1645 0014 D2B2 uxtb r2, r2
  3271. 1646 0016 012A cmp r2, #1
  3272. 1647 0018 04D0 beq .L155
  3273. 1080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  3274. 1648 .loc 1 1080 0
  3275. 1649 001a 0120 movs r0, #1
  3276. 1650 .LVL154:
  3277. 1651 .L143:
  3278. 1084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3279. 1652 .loc 1 1084 0
  3280. 1653 001c 0022 movs r2, #0
  3281. 1654 001e 83F83420 strb r2, [r3, #52]
  3282. 1086:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  3283. 1655 .loc 1 1086 0
  3284. 1656 0022 7047 bx lr
  3285. 1657 .LVL155:
  3286. 1658 .L155:
  3287. 1038:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** {
  3288. 1659 .loc 1 1038 0
  3289. 1660 0024 0629 cmp r1, #6
  3290. 1661 0026 1FD8 bhi .L154
  3291. 1662 0028 DFE801F0 tbb [pc, r1]
  3292. 1663 .L145:
  3293. 1664 002c 04 .byte (.L144-.L145)/2
  3294. 1665 002d 07 .byte (.L146-.L145)/2
  3295. 1666 002e 0A .byte (.L147-.L145)/2
  3296. 1667 002f 0D .byte (.L148-.L145)/2
  3297. 1668 0030 10 .byte (.L149-.L145)/2
  3298. 1669 0031 13 .byte (.L150-.L145)/2
  3299. 1670 0032 16 .byte (.L151-.L145)/2
  3300. 1671 0033 00 .p2align 1
  3301. 1672 .L144:
  3302. 1041:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  3303. 1673 .loc 1 1041 0
  3304. 1674 0034 0020 movs r0, #0
  3305. 1675 .LVL156:
  3306. 1676 0036 D863 str r0, [r3, #60]
  3307. ARM GAS /tmp/ccwgRvGR.s page 58
  3308. 1042:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3309. 1677 .loc 1 1042 0
  3310. 1678 0038 F0E7 b .L143
  3311. 1679 .LVL157:
  3312. 1680 .L146:
  3313. 1045:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  3314. 1681 .loc 1 1045 0
  3315. 1682 003a 0020 movs r0, #0
  3316. 1683 .LVL158:
  3317. 1684 003c 1864 str r0, [r3, #64]
  3318. 1046:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3319. 1685 .loc 1 1046 0
  3320. 1686 003e EDE7 b .L143
  3321. 1687 .LVL159:
  3322. 1688 .L147:
  3323. 1049:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  3324. 1689 .loc 1 1049 0
  3325. 1690 0040 0020 movs r0, #0
  3326. 1691 .LVL160:
  3327. 1692 0042 5864 str r0, [r3, #68]
  3328. 1050:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3329. 1693 .loc 1 1050 0
  3330. 1694 0044 EAE7 b .L143
  3331. 1695 .LVL161:
  3332. 1696 .L148:
  3333. 1053:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  3334. 1697 .loc 1 1053 0
  3335. 1698 0046 0020 movs r0, #0
  3336. 1699 .LVL162:
  3337. 1700 0048 9864 str r0, [r3, #72]
  3338. 1054:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3339. 1701 .loc 1 1054 0
  3340. 1702 004a E7E7 b .L143
  3341. 1703 .LVL163:
  3342. 1704 .L149:
  3343. 1057:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  3344. 1705 .loc 1 1057 0
  3345. 1706 004c 0020 movs r0, #0
  3346. 1707 .LVL164:
  3347. 1708 004e D864 str r0, [r3, #76]
  3348. 1058:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3349. 1709 .loc 1 1058 0
  3350. 1710 0050 E4E7 b .L143
  3351. 1711 .LVL165:
  3352. 1712 .L150:
  3353. 1061:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  3354. 1713 .loc 1 1061 0
  3355. 1714 0052 0020 movs r0, #0
  3356. 1715 .LVL166:
  3357. 1716 0054 1865 str r0, [r3, #80]
  3358. 1062:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3359. 1717 .loc 1 1062 0
  3360. 1718 0056 E1E7 b .L143
  3361. 1719 .LVL167:
  3362. 1720 .L151:
  3363. 1065:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferHalfCpltCallback = NULL;
  3364. 1721 .loc 1 1065 0
  3365. ARM GAS /tmp/ccwgRvGR.s page 59
  3366. 1722 0058 0020 movs r0, #0
  3367. 1723 .LVL168:
  3368. 1724 005a D863 str r0, [r3, #60]
  3369. 1066:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferM1CpltCallback = NULL;
  3370. 1725 .loc 1 1066 0
  3371. 1726 005c 1864 str r0, [r3, #64]
  3372. 1067:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferM1HalfCpltCallback = NULL;
  3373. 1727 .loc 1 1067 0
  3374. 1728 005e 5864 str r0, [r3, #68]
  3375. 1068:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferErrorCallback = NULL;
  3376. 1729 .loc 1 1068 0
  3377. 1730 0060 9864 str r0, [r3, #72]
  3378. 1069:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferAbortCallback = NULL;
  3379. 1731 .loc 1 1069 0
  3380. 1732 0062 D864 str r0, [r3, #76]
  3381. 1070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  3382. 1733 .loc 1 1070 0
  3383. 1734 0064 1865 str r0, [r3, #80]
  3384. 1071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3385. 1735 .loc 1 1071 0
  3386. 1736 0066 D9E7 b .L143
  3387. 1737 .LVL169:
  3388. 1738 .L154:
  3389. 1074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break;
  3390. 1739 .loc 1 1074 0
  3391. 1740 0068 0120 movs r0, #1
  3392. 1741 .LVL170:
  3393. 1742 006a D7E7 b .L143
  3394. 1743 .LVL171:
  3395. 1744 .L152:
  3396. 1034:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3397. 1745 .loc 1 1034 0
  3398. 1746 006c 0220 movs r0, #2
  3399. 1747 .LVL172:
  3400. 1087:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3401. 1748 .loc 1 1087 0
  3402. 1749 006e 7047 bx lr
  3403. 1750 .cfi_endproc
  3404. 1751 .LFE139:
  3405. 1753 .section .text.HAL_DMA_GetState,"ax",%progbits
  3406. 1754 .align 1
  3407. 1755 .global HAL_DMA_GetState
  3408. 1756 .syntax unified
  3409. 1757 .thumb
  3410. 1758 .thumb_func
  3411. 1759 .fpu fpv4-sp-d16
  3412. 1761 HAL_DMA_GetState:
  3413. 1762 .LFB140:
  3414. 1115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return hdma->State;
  3415. 1763 .loc 1 1115 0
  3416. 1764 .cfi_startproc
  3417. 1765 @ args = 0, pretend = 0, frame = 0
  3418. 1766 @ frame_needed = 0, uses_anonymous_args = 0
  3419. 1767 @ link register save eliminated.
  3420. 1768 .LVL173:
  3421. 1116:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  3422. 1769 .loc 1 1116 0
  3423. ARM GAS /tmp/ccwgRvGR.s page 60
  3424. 1770 0000 90F83500 ldrb r0, [r0, #53] @ zero_extendqisi2
  3425. 1771 .LVL174:
  3426. 1117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3427. 1772 .loc 1 1117 0
  3428. 1773 0004 7047 bx lr
  3429. 1774 .cfi_endproc
  3430. 1775 .LFE140:
  3431. 1777 .section .text.HAL_DMA_GetError,"ax",%progbits
  3432. 1778 .align 1
  3433. 1779 .global HAL_DMA_GetError
  3434. 1780 .syntax unified
  3435. 1781 .thumb
  3436. 1782 .thumb_func
  3437. 1783 .fpu fpv4-sp-d16
  3438. 1785 HAL_DMA_GetError:
  3439. 1786 .LFB141:
  3440. 1126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return hdma->ErrorCode;
  3441. 1787 .loc 1 1126 0
  3442. 1788 .cfi_startproc
  3443. 1789 @ args = 0, pretend = 0, frame = 0
  3444. 1790 @ frame_needed = 0, uses_anonymous_args = 0
  3445. 1791 @ link register save eliminated.
  3446. 1792 .LVL175:
  3447. 1127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** }
  3448. 1793 .loc 1 1127 0
  3449. 1794 0000 406D ldr r0, [r0, #84]
  3450. 1795 .LVL176:
  3451. 1128:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ****
  3452. 1796 .loc 1 1128 0
  3453. 1797 0002 7047 bx lr
  3454. 1798 .cfi_endproc
  3455. 1799 .LFE141:
  3456. 1801 .section .rodata.flagBitshiftOffset.7620,"a",%progbits
  3457. 1802 .align 2
  3458. 1803 .set .LANCHOR0,. + 0
  3459. 1806 flagBitshiftOffset.7620:
  3460. 1807 0000 00 .byte 0
  3461. 1808 0001 06 .byte 6
  3462. 1809 0002 10 .byte 16
  3463. 1810 0003 16 .byte 22
  3464. 1811 0004 00 .byte 0
  3465. 1812 0005 06 .byte 6
  3466. 1813 0006 10 .byte 16
  3467. 1814 0007 16 .byte 22
  3468. 1815 .text
  3469. 1816 .Letext0:
  3470. 1817 .file 2 "/usr/include/newlib/machine/_default_types.h"
  3471. 1818 .file 3 "/usr/include/newlib/sys/_stdint.h"
  3472. 1819 .file 4 "Drivers/CMSIS/Include/core_cm4.h"
  3473. 1820 .file 5 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h"
  3474. 1821 .file 6 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f407xx.h"
  3475. 1822 .file 7 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h"
  3476. 1823 .file 8 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h"
  3477. 1824 .file 9 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h"
  3478. 1825 .file 10 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h"
  3479. ARM GAS /tmp/ccwgRvGR.s page 61
  3480. DEFINED SYMBOLS
  3481. *ABS*:0000000000000000 stm32f4xx_hal_dma.c
  3482. /tmp/ccwgRvGR.s:18 .text.DMA_SetConfig:0000000000000000 $t
  3483. /tmp/ccwgRvGR.s:24 .text.DMA_SetConfig:0000000000000000 DMA_SetConfig
  3484. /tmp/ccwgRvGR.s:83 .text.DMA_CalcBaseAndBitshift:0000000000000000 $t
  3485. /tmp/ccwgRvGR.s:89 .text.DMA_CalcBaseAndBitshift:0000000000000000 DMA_CalcBaseAndBitshift
  3486. /tmp/ccwgRvGR.s:132 .text.DMA_CalcBaseAndBitshift:0000000000000034 $d
  3487. /tmp/ccwgRvGR.s:138 .text.DMA_CheckFifoParam:0000000000000000 $t
  3488. /tmp/ccwgRvGR.s:144 .text.DMA_CheckFifoParam:0000000000000000 DMA_CheckFifoParam
  3489. /tmp/ccwgRvGR.s:211 .text.DMA_CheckFifoParam:0000000000000046 $d
  3490. /tmp/ccwgRvGR.s:215 .text.DMA_CheckFifoParam:000000000000004a $t
  3491. /tmp/ccwgRvGR.s:301 .text.HAL_DMA_Init:0000000000000000 $t
  3492. /tmp/ccwgRvGR.s:308 .text.HAL_DMA_Init:0000000000000000 HAL_DMA_Init
  3493. /tmp/ccwgRvGR.s:486 .text.HAL_DMA_Init:00000000000000cc $d
  3494. /tmp/ccwgRvGR.s:491 .text.HAL_DMA_DeInit:0000000000000000 $t
  3495. /tmp/ccwgRvGR.s:498 .text.HAL_DMA_DeInit:0000000000000000 HAL_DMA_DeInit
  3496. /tmp/ccwgRvGR.s:600 .text.HAL_DMA_Start:0000000000000000 $t
  3497. /tmp/ccwgRvGR.s:607 .text.HAL_DMA_Start:0000000000000000 HAL_DMA_Start
  3498. /tmp/ccwgRvGR.s:676 .text.HAL_DMA_Start_IT:0000000000000000 $t
  3499. /tmp/ccwgRvGR.s:683 .text.HAL_DMA_Start_IT:0000000000000000 HAL_DMA_Start_IT
  3500. /tmp/ccwgRvGR.s:779 .text.HAL_DMA_Abort:0000000000000000 $t
  3501. /tmp/ccwgRvGR.s:786 .text.HAL_DMA_Abort:0000000000000000 HAL_DMA_Abort
  3502. /tmp/ccwgRvGR.s:900 .text.HAL_DMA_Abort_IT:0000000000000000 $t
  3503. /tmp/ccwgRvGR.s:907 .text.HAL_DMA_Abort_IT:0000000000000000 HAL_DMA_Abort_IT
  3504. /tmp/ccwgRvGR.s:946 .text.HAL_DMA_PollForTransfer:0000000000000000 $t
  3505. /tmp/ccwgRvGR.s:953 .text.HAL_DMA_PollForTransfer:0000000000000000 HAL_DMA_PollForTransfer
  3506. /tmp/ccwgRvGR.s:1170 .text.HAL_DMA_IRQHandler:0000000000000000 $t
  3507. /tmp/ccwgRvGR.s:1177 .text.HAL_DMA_IRQHandler:0000000000000000 HAL_DMA_IRQHandler
  3508. /tmp/ccwgRvGR.s:1504 .text.HAL_DMA_IRQHandler:00000000000001d4 $d
  3509. /tmp/ccwgRvGR.s:1510 .text.HAL_DMA_RegisterCallback:0000000000000000 $t
  3510. /tmp/ccwgRvGR.s:1517 .text.HAL_DMA_RegisterCallback:0000000000000000 HAL_DMA_RegisterCallback
  3511. /tmp/ccwgRvGR.s:1557 .text.HAL_DMA_RegisterCallback:000000000000002c $d
  3512. /tmp/ccwgRvGR.s:1563 .text.HAL_DMA_RegisterCallback:0000000000000032 $t
  3513. /tmp/ccwgRvGR.s:1619 .text.HAL_DMA_UnRegisterCallback:0000000000000000 $t
  3514. /tmp/ccwgRvGR.s:1626 .text.HAL_DMA_UnRegisterCallback:0000000000000000 HAL_DMA_UnRegisterCallback
  3515. /tmp/ccwgRvGR.s:1664 .text.HAL_DMA_UnRegisterCallback:000000000000002c $d
  3516. /tmp/ccwgRvGR.s:1754 .text.HAL_DMA_GetState:0000000000000000 $t
  3517. /tmp/ccwgRvGR.s:1761 .text.HAL_DMA_GetState:0000000000000000 HAL_DMA_GetState
  3518. /tmp/ccwgRvGR.s:1778 .text.HAL_DMA_GetError:0000000000000000 $t
  3519. /tmp/ccwgRvGR.s:1785 .text.HAL_DMA_GetError:0000000000000000 HAL_DMA_GetError
  3520. /tmp/ccwgRvGR.s:1802 .rodata.flagBitshiftOffset.7620:0000000000000000 $d
  3521. /tmp/ccwgRvGR.s:1806 .rodata.flagBitshiftOffset.7620:0000000000000000 flagBitshiftOffset.7620
  3522. .debug_frame:0000000000000010 $d
  3523. /tmp/ccwgRvGR.s:1671 .text.HAL_DMA_UnRegisterCallback:0000000000000033 $d
  3524. /tmp/ccwgRvGR.s:1671 .text.HAL_DMA_UnRegisterCallback:0000000000000034 $t
  3525. UNDEFINED SYMBOLS
  3526. HAL_GetTick
  3527. SystemCoreClock