From 33eb3b9d80a8e36510fd71657a02a16fe99569d8 Mon Sep 17 00:00:00 2001 From: William Miceli Date: Thu, 27 Aug 2020 23:46:48 -0400 Subject: [PATCH] Settled on this being the best looking on the actual mask --- Core/Src/main.c | 38 +- Debug/Core/Src/main.o | Bin 1254332 -> 1259264 bytes Debug/Core/Src/main.su | 38 +- Debug/STM32F429I-DISC1_LEDFaceMask-Rough.bin | Bin 17688 -> 21560 bytes Debug/STM32F429I-DISC1_LEDFaceMask-Rough.elf | Bin 1331132 -> 1332700 bytes Debug/STM32F429I-DISC1_LEDFaceMask-Rough.list | 16752 +++++++++------- Debug/STM32F429I-DISC1_LEDFaceMask-Rough.map | 1053 +- 7 files changed, 9722 insertions(+), 8159 deletions(-) diff --git a/Core/Src/main.c b/Core/Src/main.c index 8881d60..12fd60b 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -620,34 +620,40 @@ static void MX_GPIO_Init(void) /* USER CODE BEGIN 4 */ uint8_t getSoundLevel(void){ // Adjustment / Calibration - static uint8_t divisor = 2; - static uint8_t postscale_DownShift = 0; - static uint8_t prescale_DownShift = 180; - static uint8_t multiplier = 3; + static uint8_t cutoff = 90; - static uint16_t averagedDifferences = 0; + // By order of process + uint8_t samples[8]; + uint16_t estimatedSoundLevel = 0; + static uint16_t averagedReturnValue = 0; uint16_t returnValue; - uint8_t samples[16]; - uint16_t sumOfDifferences = 0; for(uint8_t i = 0; i < sizeof(samples); ++i){ - HAL_Delay(1); HAL_ADC_Start(&hadc3); HAL_ADC_PollForConversion(&hadc3, (uint32_t) 20); samples[i] = HAL_ADC_GetValue(&hadc3); } - for(uint8_t i = 0; i < sizeof(samples) - 1; ++i){ - sumOfDifferences += abs(samples[i] - samples[i + 1]); + for(uint8_t i = 0; i < sizeof(samples); ++i){ + estimatedSoundLevel += samples[i]; + } + estimatedSoundLevel /= sizeof(samples); + + if(estimatedSoundLevel <= cutoff){ + returnValue = 0; + }else{ + returnValue = (uint16_t) (2 * (estimatedSoundLevel - cutoff)); } - averagedDifferences += ((int32_t) sumOfDifferences - (int32_t) averagedDifferences) / 4; + averagedReturnValue += ((int32_t) returnValue - (int32_t) averagedReturnValue) / 3; - if(averagedDifferences < prescale_DownShift){returnValue = 0;}else{returnValue = averagedDifferences - prescale_DownShift;} - returnValue = (returnValue / divisor) * multiplier; - if(returnValue < postscale_DownShift){returnValue = 0;}else{returnValue -= postscale_DownShift;} - - if(returnValue >= 0xFF){return 0xFF;} else{return returnValue;} + if(averagedReturnValue >= 0xFF){ + return 0xFF; + }else if(averagedReturnValue <= 10){ + return 0x00; + }else{ + return averagedReturnValue; + } } void LEDDesign_Off(void){ for(uint8_t i = 0; i < 64; ++i){ diff --git a/Debug/Core/Src/main.o b/Debug/Core/Src/main.o index 89bb5c83967c1b0c02e6b5b5f83076882971feb1..47ab90ef32e2fa5898e81350bd9670d95d8b6ee2 100644 GIT binary patch delta 341417 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⋙9n$GjVyWinXyJHpe#D3435a9D*ZooKcSd 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
GRt0Gnf5?1H^<5Dv$2XisHgHhzQ4aUE{O-FN_h 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 Qy2e-%(@|^)@}}bd0c#f<#sB~S delta 337168 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 z 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 MTk(&xz4dMX1I0PLmjD0& delta 3525 zcmcJSdr(tX9>>qU;SnF85R?!!{vbZUAinAgUw|P3Q7PaPUx<&^M_U5nVMT+W7HPHW zK}E2>iWaR_B))27>1=1){$Xdkw$sr%6gZdHmGwPox_QKyo^rV4ZejnsO)Nvg9 zGR6N!?YaK;mkxfe!~eN%fBD^u8<_pSt>AavARCEW{Nif&|Hj0;MFQAhVrumzl_mOu zDnpfi{voSWw~3FcoH437ZuAIH*(K#xCsXFSnX<#flu%SE>atr>=6aGJgA}_sP!l-stmOm#guDL zG%lu;J?ZO`lqPow#ydNErXdoa1Y`S;&H!wiJ0)!AbxKM<&sRU!;jOX&23J)K_F}vT zRe7ndg`E$+52{hIEJkZqDQA7WF2vURidSW3M(G<#$?xD1p%5x7eSO_lMh8y~EuADO z<(=JDa7Tb)a=v8Pl+O&#{K@7ha}cgE;MtJJ9@gG>LYuj=jkRCp_d}OP$V!U8d-Qdz zVkLkV^hrwF+|g|x@Tg-#aKk=-=Irt?oQB~vT~nx(@1Na*9WSDOI>kcAk9`8AxSky> zwlbzHT~-1y%6gQXU4pUSBjV3eiZS+hvi>t&#S6o=K^rig=H>}uAdhhKIfwynUKpmA zd%O9bFzt9r@%eFq1(_CS0W)|Dg6|JjMVV*dG9UQU9|Wm36{P*DG6gGt^Ygo5`T$A! z&c82QtCy57{D7Aj`KyjYvEwzr%E0p@wE7{Kobd->C)~*A<{5FCV&^G_>Bm?eFq*)+=43H zYFngB!ooPuH0)mQiHH$fo7a(q?VS$U?5()j8hl?X^)jj4+5~TfG}deLR`fCcbQ{Op zv@T}_R%MMzMinbbmW;XjmFf_I?$r49EcBWL#qy*hEy4+@>T`8A}zX_Nc0<9ztwrGytVx@ z!^^q%!NZ1D4Y}c7)kAMp7{wj6IPRtx7w8Ik>U53r8Kv8CeuL!l*4}B=nzeMO#bbL4 zgQwUaG>4^goWoN6~BjD$~1B zQ}_k8xrKkimKT0*VX;3H{t;W9^)qbqtnJt~Slfhey)OKsYr-%3RQN?#gkN-7_{A56 zU+l2hV;hPu2*0>R__j}kZ##!=gWdMADA>-3LP@hIlzb!#B`1Yn(j@%S6T&Y&F8tD? z!Y@4{{IbKsFKZNj*&*SV)#GH%@t$hBygU5tE>RI2rPZQ(zf!Dl8#RgFNDNSV&BU`Lq)$FqiUF$RW;vSBWN= zL$s&CEDFq!Nt_Ak#B?wdGr&a5gjAvhl8Lim8gVvEA$#2gqy z%!N_JxsWJmch7?aGUmf@;sS^xE`*`PMKG9{2eHJ(0K_GrCoY8n#ATo(E(a|!ANmtl zKm@S>!ig)PFL4!wBJI`g)zF)aHPDmz8mNh{LlAK-1Q6GOOk59=OS~&jQ?>!bajka0 z0ph?`yWfNliEn{8uGQ{BI7<6rg%2n%0&!fc-NhgdEUw=M2gxXb{lrq>#4^}REQj}r z8(|mmZFrZs33d`I;2q*-*iPI6)kHgNrHL!SPWe{YOss-U#A?`x#Px53GBUP932_G$ z6W;+Vu?F5E?u0jpwXmM}F03WK2d@!#!D`}eSV?>zRuK2Va^hZCO56vFi5wPLn0Q+2 zU;!EXVIJ`SmZ^M#vx@hMB|$#FM*T944fc(HCBGdYImjF$piaMFu>b?zYP d7~h^dQd86Bx8sYJ{Y7HxbEu25ihr4F{Vy~erDgyC diff --git a/Debug/STM32F429I-DISC1_LEDFaceMask-Rough.elf b/Debug/STM32F429I-DISC1_LEDFaceMask-Rough.elf index 6de705fc2ec1675d9d937bfcae1a8e06972b8d72..b5215c64cd5063d3f648d637d7f5f9b425cd8ffa 100644 GIT binary patch delta 218870 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 }h9#UFf&oDzA%z@TJ~Qjnw6C=LTk zmmiFrDtAgig-`P-$ocFP`{gEk#=?r6DY1{vq0H( z3n~K=p>O)oDqJ%Mw?haqau`jR<76R-n0xnO81I8MG-tt4_1J)BPeW<(=`?NG5vO6y ziv4aPr*e0ix%vxy9b2qt-lhD-3Rl)HfH^Mw9S%+>1mzhpt_o*4dcP(V_!N-Wg`O)>0Z)a|+kpQ} z*z^*@JQvzl26}(zbgXKK1Dv_Xg33VWhV_6P>->8=f{^o%4v=@8Gl>Ji+0F&&L2QmQ zSn>lP&ULEa0dbYHRDp02($LO+-M6KZ6rt4lZ_hq*2X9|Ccl z>%ck?9q*d=89-;cd_Mzpma9ft1j}5j?}F2ESDsFQ+~S(?HxReFTJn@yR&i8@KY$ax z-G^(g7t^6z?ovNtyA{hmYR2J2wPM+UQhj4>#6PW%&u5B1T>jqdry_zce9%8vQ5?4} z<~z9`vVC~HK2$0kJp}P$+;k?E)NmA@Smx6_fGNL%T}P#bl~7vscos-q{lFQ->uBHM z`bC|?u+g`j{sO~RH%_6nUBPs?c4+<$1p9Td6Q%1tWvfE34W7CmgL81BC(~F^-|q2J zzrCK1ZUX*@r=l0kPJ0Rug)IMgV>1Bsk+)1Wfb^25R0YCF`B5Q|iT6)Efz0*(RSm&^ zWLSr9kQyB(SBL&I!D8X>wjgm<$Xyl^oEK{S39t)7bv~*t3Snb|D7=IRJ?i_iu&pVA z(N0%?a2wS zIhPy-@ zlR3dY zK(0C)u7fVuoPU0d;D)p2S`fSGJT?ndZaaU70L?qjuDc}ke?48d@F`ibmuuEX;M>P_ zh!*PWx|kp0_jfsN0Dpih9}Zg;=ep`0L~5REH6C-~5m&*{06FS%qyx3%t_BZ*e!}&~ z5M-Wm{l%%;X;&>e2+q2?1`wQcd2zhFc)>O07oaD)hTcFByyU7p6RqO1Yu_3qlU+Y! z7oB+3mDm}auDgDPi%`7b8nGBM-Ex)t7_@J@T1`UcUDu9Zkhn@D0kv@2s7Hfr#c|VxF=l(>5#kdNd)8Ex9BjK=ng*53!&oN_31O4>^=eC zvpB`Q3+t}pGXWEA*w8>rRV-Vf!uDB2yZgD5lRkziBqc;$?yMNt>V28WLT?D(_$A=@>?T*?C z$i42mGr(z|drM2O*zaENhr9>ey}U>ra`*WKR1Uk7?*QbeyGkA2f5+TyzlVk=+(+X< z=A`?@DFmn8kmSD0+1h3I^J<`S#U1?!EUvoq zwnN!9x33Cn?8hI z6GrGOX1MMMN6#AOAb z( zUC>Mr{TzCo6j#XcZWbC0v)(gKk1Tu^K|3@k2)3o!8$6UD0Yk$X`ryBheH#6EQ6 zUlE`G1@_6}0D5PxiDwH#(d%O0<|ymw34M;Bm#1r8WcKl7UJA&*o^yR6On=YZ3!pi` zbCyq!L7vS`kQ(gC@FhqO^K7AyDb^Fr;RC~wo?M-gJIb@OA}ln%nO9;w5gGg|<8%#(Q^SRD7HJ4<~%7pnl_l*gGC zkY_v(IaWXGxjPb&=RK3?DZJnr7W@+eCwacujpRj-lm3&-o;8{@8Q$TL|;S6YD|db5E^h zfPCRm525U}XGIQ}!_w_iQHE zYngZHOi)|yU6UI+#e0A60I^qkosST#_8y^2VvV;{7Z6+L%~cpw)_ad`ffO6PL%HI! z$$Mo#$`ZU~xlFOeyD2BmkrB6f^U>wB-TUeUa(8;0jsxf}@2_+V?(wcz4%PO0i?B!i z$NRxq@ZIliN~g#{Z${SEA#Za&IgWT;T|niiHy`W%xVO#s2u^s@a_oP~+ad|6(_Z-# zAe{AnHWpOQc|XSRE+}5`eyTyIL~qTLknN(k`5dG!d2?rl+R5Io&yc$6z48QzH@vS) z0pzB4#cZVRcE|@&^6?+muU zH{LV6{oi^&-vy9hPsxp=Qp8?T%M1{zkJO5u?Y>fp5&-Ql)vb$QfK;?SG6zY`q9M#+ zX$5_&L!}CIQVf$O2N4XH#;_fakoMr?q~a*)OSY1~rA>VPjgj)MLNHc3Rs;;UN)Pe_ za+}nwAcCDiDZ?dD+a=wmXLPUB0uxJdpA^W9%>B{?e8f*YAf=m);E=Rv0u((g^{NXE zk4pEdp(P!YzKud~Qpz|Vc&DUvoD7_i4mAMnvr_On#J(V1c>=sdN%;+_OVX^|Aa+@b zC+TDB4g5e_jqO?D zL#a*-${tG<2f=txq=e6q`CNKg4N|<2JnO*lm9*?vq+UypzJg`mNj2vp=qXQa0?6L- zw4ettedMMGK)aue7mr|dxtoSypnPpSv=}5WssSm6$hAj-#Zb9QS|}4MPn`<<;d1X$ zpf*zOG6tzp@|0-kG)AtJ54wz%``1G-PCk$fknwWITqui^r_@4fl05$?f~j(Ji2j#p z@_kNsX2@sgP?#wvbErC7-d6|sbL2BP!C9Oq*GL1t^W`)1q3=R@B?oDX^F^T6S84bKB=y!ax!om%!qzGUphKe@@Ah2SgK< z2A7daQl9Yva!H9QhTyVN;4dH~D`z;8xvC7thknHCO0Z}yfZkBP4ZuRTl!EnASm{>;oSrCQ@EeQIm7-e^yimq)iRqQ{XV7u%Dr38UfK}s?CZZn62)Z2K+f{#>_yNr=BeV%g$GKahkAD{gN}MMe3Fu zNG(y{a)7W@E#3f9ELZOq1EUpc9Zm{Ys&D=X!V0U@X=6ZUjXHTb^j)hKeGO{s)s6QN z;6s@qWNub}{~3@8YU@QvZB@H*$zYqhbtqCh)iiu??NWCUa*ygi0or@j#ycSBKkBuc zNbOfw{sAQpsvoKl=8$@lPn9ETOij-Jj;ecD_s7*rT=YJnPWT)cr_|W4NS#(kT?Co4 zYFa+9ZY4M8ucJvlu|RIl6y-bFQSN7&+$y7>z5uBbT|K(u6a%_m4*Qzx=@T~}i_ zf$vSV3l~gpsU3avH%%Lx z7pdvm*S|yhS=zwA!7n&lb8%U1o>qZ74(4kWcY(}5+7wO&_G=HhU~oXo&)e{zR*{dD zL)wzkAahtdl>=o*v^xWkI;xE!-Z5?8Km^CN+|@w)gf{I3QYW=E--B3^_9@peFKU~A zMA;Qh_yI<^9@O$<|G9WWD=`AR{iiEP6x&q+M2kmG!nK5pn>k8e*#UB;es2h|N?&h{ zc$v?mK%#89tYA>?<6m(t--Dj13LkTEq+)bQ2vPYRmpH5JW=pL4TMS@6Dl!gSs>P*) zA*)AVn?X>lo$W3NHEwwwGXAiSOMSmj`UHe}3y&57dzjGjcLWoJ`s)BTMQAbx1ZE0l zP9t-k(1CThSeTC2_jGqlFR4y#u<0!=I0+g1NI!A)wy#u!!-;;<)uMpzFNKXo<^Ty} zUDW?TX=Ppz9wbd}isWEys)T4mq^A`S43&y;$}mhyM?Ye$^yM5N4wt&oe>6gx)d=Pp zDUHhsqNAnn^+~o=>Mk#gw^Yg(3l7Vq#e7^Xmx4{ZB3yw@ zu#hHRD$FILmD1pakZF~awLWOCmYR(M$Qmj90y5W1ZMmesPTIu9)QwUj`kXdNYvTd3 zSsK$6L4q`IFfzADV}Aw1t^>yUnzG&sm!dAC&a8zlEg zF&x3~l}b-T=02$^7gGPhUOrIUFO|H7)B$NAH?|yHy}J)x-bhPx0pzXp&vwYvOMZeS%^(J$+5Z4cKiStD?EA~Dxt(Qz+i77)BOPvr^tQj{g^5ribB~m zxxo~a&6CfRK`>wbjdQn^-pP+2Cw zI*zjCazQ%fR>)#SfW*s7xD#+?P_BFnWLC-kAYfL@FXy0ejXb0k3fIc5@1Sg*{Nrz+ zwqAZR68IbB1t&ptqx>7EIGbc836|X~C(v!2Apaf?)wakN*{rt84;FKn^OC#)0o4<#TRQIIJ|C3CJTsWld3pN0pBBXB|^I za1?S}Da*ZACzOI*synG{C(oXO(6)S~ zK^adcaiVf}5U3<6k0{|qrR5}$zNGwd15#X8uBS!j6(u;A>&wYXM=oVtRo;;3HKi># zHeFYi^Z}9xL5BKzyPMr+f9Ol1!KWGo^7_ls#8+2kBIJp=4t7e5qt>1x~M&dkILrRtj^G z=Z%tF7PQ|gY1Sinr(_(5me5m;eFb@YspbAgW^Z*>FDTPTjad)8zG`C*5c;YAaK_MI z{WAdw1JsNoKy09ze-%Ub!{vMyrc!;iev=PUXhevFbE@7)lJO(cC^gPTk4b z{CL$#H^2ln4YzwuR1+4UEKV)i8vB1R?ecJk$z=827T`}&t8gK1s=AVEnbXwR;Q*bk z7PteDS?aw=aGI@(0?Ov7bLiZjtM=lO@;tT2*RaKWwQFlAu|Rb#hY}0bxs}0pk@^&a zJ#n%6jMiSFx>vwlOV!rs`Gevzb=D)WSgvkN0MQkyI23Bft9kQ5?UkzbGx)AjmvL9v zYIR%>q}HhYWMt80)CsjzcHo~>XL0TElp3`TnWxpG?BLF*F|EPkyxL)lixhps&s~svLxT>N9=ZtV;J0M(F z!;@jI8)|Uk-zdDPKIi}qZ>gubc5+)y>jjxR>d@8@=B`@(IJCH@rsw{w`|62pVE;f} z!%e&o)ys{c#UnLp2{Iq6^EecFqRy-Z$fs%|x9UDq4_5)F=W5q0VDv&QT?wg|YW|G? zd8MWcj)hLI)ue`C_(pBe9jUi!Qa1$e)aoCg@_K6Xxm~Q6R+AgpdTX`0+}B6D$4vlz zwRvqprk{2&7ZCbu`M4%FK-)r}-azePdsuCdwq_1egS9?QfiOht(HNOSwc-OH_AssD z!yu%I)dsbOX@+aZ$zp_7ms@a0YP+WaW0Y2$o$lXS!pBIB))wRj;uvixpF?A{^revs zX_dISX`D8s9cWL~s)Yd|PK&RI)Fds5dl05-W#|N%rZwR#b-Ff&i!8IWQ!eg*nypRh z1?$bxK4y*1*A{&Rofc?rKT->|Pp%=gM9Z8NM3-vi6QRs9?Q(DE8?Qwb0kxG{)>u$m zrG2;%x~$dOa7AyOwyz2@*K3RUpx>aaE(^$wTGt97wn||88jqt3txtTJBN+xucDnfYe=WyNa@VT9;0sc3<=K0m1`q9G7DsY9qM} z{79>x4a6R6$((CF(QZEg!c(m;mwKLQn>s+y=UVWOlfZbP-HigwOYOUVQ20t)@eD*? zYYl57^NrT!HW1%xg*lUXr=8Rt*uIIJ3iR^L=hL*e@5L&x@8f&P*4@|lkWaIIzP*Q` zS$|*G(x5rO*JdKn2l@^q0%4FZ3uPMYld=B-w}tNs9kWAyr|I1q=F7@053#;WTy7Zd zD@(`Q2wxY@<3{=_=Y+hYeLJytRUG5%IRu$weFIrdA>UHIdoa!ytO8EseP6x?$OPZ+ zhX9%AJKG;h#Q7vT8z%Ys)P#bQeW5>tU@^saG#u=w`ttP#-)X)U^rKDp4WA5*8NU2U zkZ`7NHy<*ye7om?=xpDfItb?YR>pwuT;I04pfb-l3x|D*^L?|Q0%3vgNh4^#(3h4Y z`bEC%(?M*pFPu+~CBD<2f&Efn;p$xfUFIu188FLz&$(Q&!q=IDo_OCM@Q#QpeQhg% z+A3eB+`wP$8_^$DU*o$+|Myy-mp#Nf-*OJ=*ZW4*2Ez@$+nhIU^x?ch+-kl;94>73 zJ*ERA!S^F)b6b2B1VC=}MPcnCC~ot$R6%s7@0ae-VwW$Ti&MLO2^j&p$M@H1(BA9& zfNr>bzF+D=n16gn{)R2~`$E?Na=@3a6z~rE>RyA@5BZK20{UU!&!@oth_4bie;)Pa zsR|CqeEn~t?6_~)SwNofO`3rqc+z(-5rwCG*Eqa7?VH5iaA$l)IL$xn8&5aVIbXyP zfS&hN=c4}w->pRm5`8^5>PYg{cm|m+`a<07e#!TII^@0VOTg|v@ruu}1(3nziYl9Yk}W&->f%C-3a=AnFaitK4&C?JH9k;A@^P1>v7KlfnLx zZ)IDQJ@!rRi?V0FlcgZ&b6=U~NWJhi!geU}wXbv(7{2j6<4V_C-$JfQ_wxH&fMIX{ zGcJqv@oVf1`ufYW*XrjFZsGW*zkl}(h&afe`Thsoyt2SQ=2{R|Sm<9C38IVqofjck>>t4=&l3Lz-Z@MC`#9rU<{!be@a6vP zTnkv?&&~C=c>hg&HBDUUFS-sAuJTvp{Cu^4gBy5j{JEzhSnF@r9Qv;FH@J+l_5M@M zfv~~!2P$$pNV6(E&fQpE3nm{_!(r|=Kp9381D3+=FYKQ{>qeTx4&IS zfb8*C;G}Y|{|g^L_W2L?L{MA zIt7r){(`@w(t=n0g^B?5n!gWidDB0PJDzU&t4D$1ZU1d99^Ua+F9(y{_4hu7%zOTh zUjX5ue@R`4_Q>CqKI+&0!`ngajlbDMaC+;1%6A>!`JdCt*fVe?5}CaM@3BJo3r*Ifw98? zGBhxUuVM@f+~?v$Y~T)GvKb!O&Ao2g zXv02mY#^AiCiD#jKA4DLTp%C!-i#0YUI3|yfn}V4#RaOI0*gt3(Z9fYlLP&J1;~`Z z@4Vrs1{VJfkZFM}3!u~VfP5K(&Ip9@nLIPljeALE1)Ph4H#^W~4EW9oL@fi~xq+2< z&sCfkI1&5>wC4x1Z$hvj@RF8Y77=0Z!`zdlcZU4|J*tkPU%(ogmD{ zz#k>~{M!_`^8hfL16euDNeB$*+R2tcLmA?44eV@))V4rFQhKN854jMUM<-i*LF77!-^|9GG+r;#TDPvTH9Cj+;dfc>e!@$bO* zbRb6+Ae;#_XFEO{*oA|+#dCr7T*y2hxVIk+F9f>Rf}n|kLbV}NQea{kfLsh5!)Du{ zcqvecGrr4#(thM#3H+52ERq9-xdwkVkhc$5TnjYfApS;RjtD7k23~o={#M}B90a!m z^F9FHoj|(UfV>+>8;i_)fsJ%%-w#BVg$*ABV#`68hk*=WC_W0v`5?^WKo!n~gHHp6 zxe)X$P$@THo(J%9H=ZYfo4-N(mw|MDA@wSdZz_VuhhRWhm1E#LFf1)6?SsN*ay#GPVAzrS zC>#=&J3VrThHbk7qQk;|9s{$*hJAAh!SJxvwU9X~46Dz$kHVZBK#mT()&vM+!fN8% zfa2J&4dsy;3Y*Hs*>Pc+R46(=Y)5BEF(ItXFl0^)yZR-hj|%Q(i=e*Ck_w#)2=iYP9y$|Fg7`#JJ5y>#;LOzPo zHy7QGW>nup<7vhStpm?6`p8KU!#Ml^>SGyRG_l4pIDtTmXSkA+B7w2_5mY2H_?w~d zETiEi$R#m4%JE>%G3L@QD4EefE7cUnjP*C5oo5`QUrQ?EOWK>JG4z#qce zW0-+j1|#h`aAq=|qO8v>h64>yHX}I~DlRhqHi6|5L;Jr5#;26L-N=|Ge|{6=rFgJ5Gd`yL;TA?9J;PQ;6uE@k z7@J>*U^`>mBPi@(tfUv9i_!Nk^ma3jO3`?i;pvRV9!9MR0=*3RQ|L<{ZAz>eXLPIv z%LL;G+$1{xK4a)*a85E>C|v%4af=R=Pci0DRN*1xY5M6*GoEQfF~hk19g0VcU+8rI zEW?okCALh*m!a0`z`XkktU1Pi^_RoRDNoFD~DT0~3JJA@zJV9QHQ058x7>6@mXnu@f&fAS1Ml#tH zrjKF@XzdftETC?mW`6$}K+iCb*+VXdxsF21u}p>rwK(RFQ=r8&JNnU>zJag9&8dI5zy`d?M`45E((wUnm)^>p@FhOAk^GrNA zGnu!y0WFL9IVGlDV$ME>5zS%#Q-x8_Wjaqm!)0aw#aXT}J!sa-V=g8qdp^_EN|Buc z=F6!tv5{)xs3<|};=yw9}Zp*G2U@fpw_Fxz?{H^tnr7ae`b zTuP}w)69R#M>50Y6ry;m$x z)-MlG__7Wafab^AN?&MymX>z;$5}es0|c+lRvqFLAIMBr&w_}gGP z!(uLhy)i8IHK>neO-%wNj&+~jpG20J=H;_i)_VGtCb3SF|K%Jj?GF%>S>6TcObY8y zicy?rxzISLvXu0Wq_I3c0%$sG9!(n;ShMHw&@)(nybOietPh?6=tb7@Q)s-zdidWS zoVA8#tz6a$iiKWgrBc4Y6_(l;V0kR-o+=oX&)Pw0rbR4AT7wj`B4`0w!m@b+FjrY? z5}>J+HTwd(R>pGo0opZIHm!ZiSxaceS;6{pJFu^_cJ;xuN>+XZP;Rj1{R5BFw^7!!jC2;JffYyr$3|AbTG-aaviE}(w^@~+Kz%c7 z?JhL7uu^EgXlEUpL9K(;Mac`DtkwSDyu*6s1=PA&tKwiqH*1J~NOxJIzq5~ZlMaydvtGsdE4&D-*>zAc#PY>WZ1aa%PdGtvgtdb9VWX@Ba;}WAmc4|I zj%;g`?4NQ<;btRfazW?3PXXtZT( z=)8a(dk-yUkFbMxQT*X3+rJb>*|X<;3m6CXm&-vs#%`w`I`4D#cYv2iEs}{iEaCZI{G)AyJUBMa2Zl?so zD0UgmY|(6Y8RSm0g>%vSGwh9@fHQ{e{3XO=*?L-3#<91jK`x%{L@!PPyEPbAB(itz zhH2Kb>_T!xCb2!6A$X3xdoQq)+1qL1n!?VCg~WMw`3=-k*%x(Cn8rRyJD_y-rkA1j z0((OkI-0?D{2X$b?7&{ove^KUPTw*_>czTG_zk1gNhb*TP6fr*<<7nY-4YtO;S7CVHao}Y8$fzb{8!td)Tcs3H7qy8-u1kcK|x|FWm`=L7bocfmTv&P_$1 z9?19HYd&Is$S=+Ph=g6~V%X$2L$k}oBPohspIQ1DY<|yY-63n*e zB)3DM1E+f5E~aj`tc^aguY536x-t{&QM?hHw^A{!A!m`d6@?;>^;hhjB&^ z!_sih2D*PEg40a_|47a@TBbyCq`8of=F}4CX-)`D?`JqyJkS`!X?q&aCzi9R2edfO zx_)5BbK2ejErD~8B0`Cr!+!znEay|&CRmd=!8FmF#QB3j@ z=iqYy%i%1W2feu*2957!&eNyRvny7Pj)JdwoG)xKH2EBxYG^9p{765`Le6upz%JtS zJPS*UIe%ONS_vn95b{?!rCZR^QqICc)XF%9r9ipH5o|(ZIfvT@lnTy{&5*m!iQ@z8 zCg=WI(5g5KDJ8L*6Gkig8jiI~3NvasOX)D>EzTqQ9@KI2q!6s<$Xro0aPI11MI%Q} zPqc~i&d0#M&3SqY^fq&X!cc4BJl6#AR*o+n-Du+0l;QTYE3 zr_dKxbaC$P1WPwZZ@mB&cR8WnsP=FcheD#4^V_?C>EnEUAGLnY^@Wfa;QT;2r1v#u~DKn!|DGSXpcCJKf#z;PBO);ZMiNK*0$rC zComRAxDj1|Im+EU2Zq{n8y2H*;MSL+@ff$1vYi~csk8ue;!e;u&Y2q=0~8nTq!$WT zuFbr8c>mnEzH~~&otsKOFAuKQOCWl3*PcT!ytog(g~8rjC2e+mxaBgi_;Sz1g2j)U z`xaRIxu=kIG5YyTz;4dK2s zg)58ahjQN{AKEEyTNNb2xZ{-U5zhS|1&<=QLlqdrNUog1JyG0C92C*qrXVz)=6*u! z?K512fAQjRRdpE3c=uca~oNDz4uK)T+5wnxJa9=@cESbL`5fT`!U%!R=X+>dJj)5tZx1@%o_e}rr2-{$T-1HH}MZ|OvD3-?3HRBPqF_cGAh zxV8OI(a!xl5MUkL#HZ1-PVPoZDY(PE^d>mFxL$MwxSP9>b~ksqnN}b0^l*I_V=Q~Q zpNOHbk6TCH$$su652g)p2k450d)!f4*$;A`qa4p6?i~u%4Rh0dz&XMlZ-Lw>_s7Ff zF~;3R(V}tg8ZqQ1xF7!m)9!N*+yl!b_aMdAA8_A%bQ3}|xXy+#W_Cm!-W`0a<{#%Re+k9}@Q$BAaf0^?Wm^RDByT`Gh!;H%wUfN_oiH?* z_X`Wggz#2{z?e{;fS$-H-ugcP7RLLER!QN!Oe}k?^CNgKkt;2d_f;HJMDaEcLVYxE zj9!w{ykZJ#pW%f?06T_vh_bh1d2ew56USRbE6#Y{oAZE{z}rGTheY0U3aCHJv-t%@ z5^s?mXykSv?$;R=|GJU3buUgCWajUMLk*3vP~Tpo{tikEp4^ijOR>j_7Z z$6Hl~#(dtEQ(!6Jg^-J;koP(*C5o)PjgLV^F;8_GJS99fWl3J;y~BcurMw^-;4wtEhH$|rhDtR@OA8~_M9t+T$yvCKNRq<*rp=Z^+AL;X1 z!yBPg=~~{k_rP+Cmrj21I-d1++CSFwSoP>r1Fx5&pN+g^1|*tzFVoql+q@rWTh+{) zx(*9lcpuSHvz6EWF&f)=^T}V-&MTnHojQ0vl$+hjQ~w4P-8^S!6nA;Qeg!Lfc-{X( zyqC9={4agHr6-`ipEqNzN9zFZE!tSz<0a7VYLHh$TecxyI;F7<^ZwSMGb6muO`whP zZcujC7_V*?jpMw&Q;?hBCC>%zKCgQo?49I&{4}h1z`J?`&{I4XJ^P0|ZUy9~d0XZ{ zZie?2ZAKsQVutAZH_Q8%2E&&BHbwmG`0ljMIKp>dfF2&@uc6x??fI`!N`eDF_*cju zk~c!@nYjLSO!P0MPvS8#jW-pTF;KJc{G|APQdw@Si>k&=dS8 zDZ?(1|K)cO2;zT3XKPOKmr#yoF#qv3aE9=OL-wh;w!Ykj^-~=!Nk-2ZEJvbhW~dfG{x{gqy26y-{v4#;`sURU=ZT@ z$7%9Q;J-)HY$E^97-%}n|Lh@ZN&JJWAbyVjC+#zb!iw|!$ZgP&%CGze zLt;(iH+=&Y>HIhH0D6HxMp-c#e2-a}n8~kFLL!U*cqwYx{C~T^a*?ky!0SkL!glV`cGgf;zyG!`l^+` zqYa>?{6uodm+@c71o0X_l%}L|e)!ucD)@8gsa@xH(E`1a?@9af8+;kvs&bR>JB^}> zKSu~Fs`_6>iB0@% zw7*PQ78HzjnksqL< ziy!khu)Fzx{sZj0{P*bKLl1vH?ZbNcKQch;;}6icyq}-@J~RyQmDVV9<{p3Z2w(>J zeep1Oh`*7JeGK!X8PGJsAAbrGqx^lDD8~2~E5S0(|40V83H~p%o4n80E`q=$KhF`h z2mEEUnVjOsc)*H>eD9SgruiC5L7d?`_@OV4_%@WRG0QJbBmbwZ;2Sz`XD1N7hY>m= zu%XT2QNjHbfZ7Wd(DdOTc#DBv922B_1I;94J`M1ZR+7lv2x23f`l9l3>A`{U|~NF(Hr(6}Z+y z;FQ2{5t_mTfyXiU;eu~z-;D|*;iVWPl>($LNd##W<95_r;^dQR{GYnI^0l~9;1U?*YJFAC!6 z+LcR!m*EVapCfo~05G|N)t-R4ELgq*Dy|47X`0Ow@Lkd0e1XGZ6a|6?%DgNT+@h(h zNU&!iG!+XD(KUS~0vUO&t_tdDD_&|9?8^g8nIPpVc&-U@C~Q+Mm@=VOA?V)??CXLI zTDVpU{=SCV4MA!ithg!I&Jo%@gQZ*W7F2nK=lfKrL>Mdf#e<< z`voU!AU+^C8v^zB1Uc5ts16F&Rl%qs!96oNIxNs`z~GMv_$whXD!6?O*kc0WbD)h2 zdXGclgkblVpxqZVQIg1{p!qxm9teITAJ~*YdJ~ur1&`CVcUpj)3%q!Om{-8^NbvqY z&^s&GM-d@gVcn<|tad`DW(Xb;UZ9ozQQ^LukgykqybFa6!UbOe=9sX7?lE!{nriS2 zoP=w7AmA)4rr(T~0SCEQ}dAb1N;QWl(#Fn=*ve1$pl zK=Tt8FQohzf8m^c06i{b{e#v3VMjSwPY4I)7`8y+zNcVCkTCl^M)stzkoHr-LJMsg zLWJkZGZiX~J_!p?3B}KWB}^FL3l-tQAFe=egs_8FB$2`qN~Mhws&;@gTIj?=uTKky zchdLoj8H%e*BIdwW)NeAE;~_+6AEaWjTgGdqN52yhpoU)6uw0S9}dxq3{Kogo=c@l7-4Z?Sqp=cETHVw0zglW{>+d``!t)!ZTy)U4n zEy8Vd1h`fB-k%`03HRs1rgmWvUGUl=R6T~qPT>vOb>9&#peqNugo4jdbPMm$JaF>1st74rfP7yh$d)D?J9cmaj0+;9XJVv?xKN<;Peo2pGM77w1JM2 zc!_qd$8dRzp8N}ikLVC>1$;%@{)L>MsD(1x{Y4`|bpPRTkw^n#fM{zCuuq7drJzQj zsDYAbgG5ePB+fr6T1r8-U{UchXbKUm6CwJ0 z8^9t(i=O~=l*p2YTC`|}=D^dUc?)3S8Bw=^_J1)VM++okMYex|7$+)KLvOsu)(LtO zL=R}slqf2tE!SDmCoe&LlIRGFlnI<}R z0dnc0UGAt|5Ov=LScb?+0=Z1lo*~#|%@S?aftW3tIRem&q9i)SaY-~c9-YY%#Wevm zSM<@7=(Jd7Hkq;F`qLv>}6pLc#p(qi( z76#f?(Ia};rJ`eU2$YFhjZk~dD*BCXI4T!qQP8PE)JfS3H$*mcDalRI&Tb4sm1vN5 zBGsbN@4!+cs<;F7wW0<}3A!cvlHU6|5pyR%>qXbD0<1yAx(q`bMbSkV$|g~iEo!$# z;?=OXS=90&I9o&;HlVRpWZgv((l(Lt9dxu^Wc>kpJ4DjAA=oKudlM$!5mhXQ-Cd$- z@;Y~mk`F`huBhl)6g{GM?f|Vz2Ug1D7!~=_0)I@jkY@66QOO{%Cq(a1`s#hrV-&od6un{u?SaVO z4aQ7~oTE@Y6pda0_OwWR7c4WPdCSoFNc1ut<(d_(-iX3h?7Rb-?8GM~w+e{eXxHs4=8|9APh7}F;VJL<+7F(S;u{p63Kq{JCvu2*>k{Y<6+c7%wNv7c zbI^-0aSI)g3>WXZ4O)a)u^F{UaU!K6MTy5&pokXBYB30>#jWHFIwLmF<+(B9LVRkh z^JB%qg`p_na4tw`KTo~>fB z+fxuP5nCx1b5;Di1wWQj@oSV3SSH>`p2KTmH62AM7ymPfqC%`8SM+tO_kHew9PTWhM(R#6{5EeFw zchjuZD4u#5MU(hLikROP@B0lMY!)vdXKIW1*iq10#VpF}Z4+D1PaAQ z#GzBXfnLKq;*x1->Jq;|AI@&^hZNqrD^|{hK#$l;ABkSEA8jT2#NI!n=ok0Ux^+Oj znZjH5#3#z3cThY+hY5$oE@#jd^4++wBdpD}TFEsAmRAzO5GLcB2x zn(m9Ay^6+3@d`@BdLW*A6)L90wzTkkD6Xaz+_cz(cGffEM#>U?B=#gH{jB&q7s%O4 zyk?-nPO|C-M(v1X?Q za~pQMNCL_A;3~0s9xQH>*Iz|1+$DFspx#5GrL0U($=q@XcuAIi1aWW4k2HJuNcvxZ zP5zR5;f$+lw@e-D!M=R?y;NzAVh43-Sj_A^8hH36FlHS0#H{Fs4*ePTtTm$wk`gU6VX}2w>%s zN8|#pkbFX+#p@E@3ZPV4CHv<=?+u9?O?NjXhbaf5N>Wyj=Tt2bJ_!?RBsVU@;9AL{ zdob;mMU4jFC80%1_x>VYUn*Ct!aZ5j?#o) zbizs6ZLxyrEDa?$j*E1EB?j14`Ufqc+@xFk!Q(FdT!^vskVcLH%~Sf+4zPGh?~rH9 zTUtuH4Ik;`5U_ov{--g(eo_}b?Dd!4jYs2g=_Yy&1EfV!C{9TAuRvd*^l>*p2T5-~ zN%@~ArP&F<4wf3|SWk$wVkhK7rCBs>ost?ipfh38&Hn-|Tv|@<<_PJF$v}&gO8-SI zO1ei4TD0_O0cxkE*Jz!7MmmpXtr)49f`YM94!OJHq;DNZU*e_vDuJ0GZARXwb$+6B zUp;z%R=WE|2qsA-a(Ol^cBsP*3(nIDE)@^$(N+Xl<}1#ow|+TvgS&^s)G8< z(juBuu1I@UV`THBAMb!*zVub{xD-eeKSnPKrTctfMUk}bYj74zKRFLgB~m+2bnU8i z;4ld!E?dXsJutC2oSFITP9rUQ-j(!^D0Y>>V+1JFk47fxtwk}jqN?``Q6%@EDf zFP&jbi?o&8n5|N-47E1tzI!mOUAmi`IUUlCY+!auz37?Wky=0LM72x$>0yjzw>1AV zVBeKG(($JrX*D?@d!_U8V0WK%no=72rGL;{F(7?a4;A;Mm&v_8D1CAXiXrJ*cc>Va zE`A*fN2KlZF>0eyPA_O<(%o=6%paGo%mQsfI=mHX?@L!&DZ^k=`u&q=eIQNlg{CR# zJI_Pnp>#1tR;Q)%MSz)+ezP95N7AVKFl|=)j~ZyUva_ooXD18)3@Arr36Ze(sO*)M z7z=yZ_6(?SkbObf=f`A{xnOaW`J6*1oMb*4$T`bO-lWS5U1VQ;4>VWVDnH1($#zpN zg1hXgTPQqalax#3DcgJrpkA_&Zy?|;%XUGdk4!{vYG2tb9Ut_Q9VQQ;zfAB16dso; z>3n8@tZo$=PsqZjz!E6izYpR;vNz~}$4Ob-a=L#qSoV4eh#|5ylV}Z1FE)#mgW$&e-h>(?&vprHam(tjxWL0$PD_Zs$-QRLrc4{GPIwNEK3$Pg31fAiE zm04)f5+}RO16aK5c@0n!WMPy_lqmZebAomLSy_Y@dXr>EK48wtjArm8%aZ9RS&A&? zM;Lrw7P=nel`8XW0xeAzkONKWvWr#}7i1aaJIj!{egImw><(qDT$C}%uXah6L++a# z**pq~=F0ZcLAJ}X3(o-TitHoGD6;0sHqw=#`Lgfl!qNg+TOtGtW%rf=yGZut3h)%m z-d%)RiELXSjJYanv;|A4?2Xf~uuQge0HD`o2O6QGT(+0)&#I8UL4OZ&UDmkA{gVomo3cZ6qNGZ8*9Ns}t1OGsb!%j%6rk10*2cl$Te6AYQPjz! z>;Ah{Ri?3n+#Olz0Ss4{%&HuLe77u^HgI=kXE>1Pkb8iiCJ$yPiL`B_g*cANllB6|US638nuEOIY0!?z|D^k09p#rVLflD?$pbH* zTt?9o7rE=>wEuIJztMpaa+80i0=Bz+**^5bLvBMM4o~@(4Jf?iZnR?cmIow3z(?M_ z4lKU%UF7=nlSj3q<}crW5GcpxL$ogmkRPDg@`U_xN|6bae?=z@gXFvDLl7c=_5dsl zm46|l{og6Mu>de(@)yPc6D|*>wNr$AgnVd`@{)s)h>|bsLlG?xtb`S(<=@ek>x_I! zH$Y?LSxeBFSh*h;wK)0GaDc_jQ-cAPAh!krB~hOFENW-vq2xkKlFR5PcTUdVL;ja! zxgYt^QsgT~A$VT?khbEf@(^-fr^)}I+o#gy13Em43-WAoUT4UQM_^&5TueFAS@NwE z2gsJc9}JX>@~!W{!b@_eX*A}@m6RW!E8j5)+GY76y7>Hxd>*}qdGe-4uvqiu{l(B* zAfKHNg@y9>ZlWlXzxxo_#d6;u6eaRTAE>`7pI8CxQu!wmz?8|oJTN5J@0tZSrtB>C`T_B~ML<{8S9UI^_pxQF=$dnr5voxjYao-Eymp99(zhM_eG^BR{(i zJiYR-LQw0IFQv1A{qkoiMRY(u$wcj*{I4bG_Mm(Z-Sm!Jd z%DwLcdrbcET(FGGKbVF1g#0=KBXeKApY%=2TfPJBf&6tVorsx|+dcuFhw?M@6`z)u zy$R4+`7ZjN*ec}jpci(Eac9UMQAD+1NRBFE$^T-n*offZd!K+76aub_kG6s4rua1vnC^<^49frXP~;2(+f%Vb18grv7#F?p zR)|ti_$cP;VX3bo-UvZI#Xedd`75qcPS0^gvM=-oDEQ=! z;-n%d8koU~W(sD6C?dW=W2j;q{p3z5=9uXF7pB-k3(s&x@Ol^=p{Pj%Or#=(HqlXv z3_30rtynV)O{W!+T)>=Bbp3@QMp15n*|Cbab+9l_kx4F|c*VsG&=M5i>_CyIh`9#w zvx?Vg3Qkh&q|o9yMTiL+k`>PAl68KH;s7NKoL5*VT_RO6hd%Uaim`t5K3$=rfd2)> zKh&oT#VQvVnyF~G1^Fz6nf5%{iv91RxTx5)92Q^RB$QHsYu~KcNP^Z-nWAlB?`?;u;Qv>nB2Fe zihY!)P^R#q@YXfO#q_XXOkfUb`swkr&lfSu=!Db5m}mfRej%9=R1flzR?X zf##{qCMTAcvWr#--pXjo#`aOhQ!vw4dFeaU{FH-dVWGeBS}j12E5(^80+b(jpob@v zzrPB!K&6HZ4N?jyi|wS+^#Sw-D}U8MLx^%N#o$p=mv)vWyBT8$10zuoVYmU(;)zj zSN=PRT7t6TOK3_|HZy>7R(X@Q%SlR06l&*`ug?cqvNG)#)KZkA*fdz@pI83%Hn3Bb z*KdNDru>JN=IP4i|G86?XDHy2p*)Zd3p15vM}VEBTuNJzY-Jox;TM&c=!Lzc++e{t zD+^;YHg$*{XYxr25&jmn`&7}KPj z4FmDE@;86fnw1MbN3BKqm@lkoRlc$V*lo(~bYQ7n`RiR29m+KFD|9M9dmZZUC=ZT6 zpi6mZE;zfDn{$D3SE;0LV~_H^br|1XCOLxtZi-aFM#(e(a#sebeVnz!mxT7>(kK1xU7tMVl`s-J4kdrI=+575{N) zC{mTlAyBMZ5)E-{i7MnLU|&_O4M3ktReRA`HilrB;?#ISG`4z6{?0tpj}tB zKZmibROu*L_=f7wRiNEeh3|#lD%E@!fL6m$XsS`2XhKJ8RcoBUa!a-Qf2h@|M)pE| zy~@7>MT1r4HWx6Bs&D5)zDdOkLG89`s|dz4tKN5n-7Tt@X?51B3i=DZZ&PJce79Xy zPVSHn)t65Lrc=eGt==8g0C|SHR6WaJeYeV<)(Ll2^VleQRPj|n=~W%3tja#sE_x07 zRo16yn=+uvC-3AvRZcv3235g+&^x61)(*w6YAJz+_YvLa+arDwGWsu@x-Ss`kUsFr(r)LGF>N-b%ib zS=AT*;IUQPoky#kI^-5$j;I+z(2lCPln7$4-mnRyV4hN-o5;b^!zn{rGd)b9p@B~rbT9K2ELM+fNri&j5NTk_ND?B_u| zqdr8d!x;5$S{cNu-zWEYoO&Tm6!Gfj1)wFUcU}NmqB`0Kn$D`#%TOe#{X{VBoLWth zj%4*G#pp|lx|@D8=ha{A1T9s)nr5vu_0QxwNLMdHK9zO;1@-ta%+F9uDRnYa-CTxR zmU;_KRN3m4A!xj)E?karx}=^+gM~S28`@Ims%vNty{tARV`Q(WpV|q~JoVA}5YJaX zMZf9-^&TfQ7OI;9U{jIWV;|&-)mLacR-&Fe0Sm2H)tlTvELD5I0l_l$?X4hQQ}0in`&J?YE^3YBFI&%{mC_3qdrVI-L>kM zD6n%&{V8pk>eO3*L{YCEwSm12YKMi8YqYAfXr0oe9I%UY^}FwZ zwN>56K`+|Wf4vD>yZRB_#`8PWgR~IqR7b4<%pG+et&qFaP4l3)M_olVWzz-93I!z2N|AgKDdqTo*&?Vmci(tX}gzY9nfKJ8T+N+j~NAOuddK zzj3uAy?7Jq3L4V;>XSOqCe;f%Vc`Qc=N1H})QenU(?d0D77uM&-Bt{N8TBO^yhrLy z_88__bml|d&Y95+X&jZC%b69|$d1=0;6MNp8 zC6pQKqw(4RFkg-LN92F;(=^g&)L-+06N=*+?OqfC8c*`ZoY3s)0ZX8!f*egjn!^9? z^3dF)hDGYy3v&9p&WX=8m^1w7Xl#_E_vvvx4Q#HSOp!aE-Tm@LtHO?-mUCx-I5HE5SKk^h5fIhqb{&~h~#+9q7qto6iL zUeO#N)ABSmbZ#kMX{Cf?w8jZIv zOsmzj(>m~$<`?pq)M?^rvr?~_q9l_B&6{q(Y}7bY?oyNHC^<)NYxae1DfY|qIOTi>j2B3W{eh&LmF!!1@4D6^WKCt zBbqn9g88GGR4sVMG$rJW9oM{>3+xF^LoHbDYu={}l1a@OR~Y(0bGj0mrZh+C8}(3= z#RKQGW`ew^Gn%(Pg}@`t>i3{&RwJgkp{;gJ8yfAj@4f}KN3=g%X=*vDZCQ(|z1H?m z)Eu<<`!u|G+J9)v<*4(|VMU16>l%tst<9^DJEcw81zMQ)7djRm zu9dEb-Uw}a23R7sjkFAn(*D(f=Nhe@TMFpYTH!zR{|{%h_G^G0quu=>U}Cj)w91Op zPRBwbQ9Jk=2KcPDIuSM{X&79>7l3)+C}aP3v(6 zEa}>25sbN@eVcC2$k2vUDs84VeLjXOOS{C5zJJ-;OiISPsGXu^-6bvWFQDaUx5eU7 zV?beI5_gYXCYp;C816mkUs-2`vs4^{b2=Iy19-%F~wOm_4QNarBgSF6fUAvoN89=fW3{{ z$`uf3($+3Paa+6SI9Qss%|o!F#j5=<7n)kN?`1(nn>KwrOl;Ra5d~v9w4ab8u~Yj4 zMTG8XOMil3m-f9QVCmMrn+deL+H-V6Mvpd@+@QT$=XcTAr=3T;?tbmlMic|uY)V5E1I?@v?&Duy|48N zg~X(GC&fu0XqO&`z?9Z!9&CE3J(h}bp4MJ+1j~%p_6v0Fk@mGn48p9oQiMiZ-5L!F zJ6)L(#vIW})uG9JxRM_jTeuKh6H?#nt$8`Urm7k;T3;MA+>7KBl(ODPy6KrzP zInp2Zxaw}vEf{V(O&JPL-CyLg@X|Tt!x(Q}(J83+(XAxsm9MTT87zLfOxle4>s%>4 z|F}*a34s7zf-f!WPUyzw05njy?iDBu(sd+3{Yjla?P-H`uTpkoh_2&zs1MbNp1|mx z(v9wbT$pa>0dR)vexwytgzoqb7#gX|%0v&Nbh*z0EL!)|0H9CnMpuCIj4tY1&|-AQ zYC((DSsm&8QJk)Xd?oR^o|}M4&~c|hOw{#KQ1Gm7J>`5P>73M{oztzPB!pyL6M zMb}TmeO|X)k6NnEV;?xvbfWJt2U~i_bj8e?9bZ^`TEnAno zh4z0JbsK5gx}*!H3kq^{o321puI_jp2I{hIkZ!TLqI;3<&(70DP|zt~7fs*f0^KUw z<`?Q-q&%`B9fy3f#k%q%z%J3P4g|_o-Gx6vE7ctcfE=v9QMoSgPuOIw z(2Y}?{dL{gTy(oq_s|(CZs_*zg~UxAcRTu9r5or6TD9)Q-9W3+trbIWt&T%Z##_3X zJ`{DjX)w+{icNvEJ~;BB2nfudPgu@C|+y8cDb&}!9neF%kZ zx}1|Bw(H&@A6kd5un8u1>aINk=pEgD`UQ9CmK}yM-8#SR0KKcze+RRBbl-IXtyfpq z4e>tRD?Q-s*L_MUrUN?RP0;S?;A3_ z=>DXT`F&kbHENT(H4!Kt=+077>6EVeLvTLSMJ$4fY2D6O0Xm}_-2)3B>7G%7WmY#4 zg}&J8iw01$(?9ndtT>`S%0=y{zLX9V+UviW3l<0craJ&TrvJz~jLtaf?~-TBNgqtR zNoV~_f51c+J--D!uKJb&D0I`WqEo=``ffU0>!Cks0L@cBNO40ieRU1wy!CShu-8W) zZ;P6*egV0{{PfPJA>gkMI0?PS_1j!f3()sG2JsX6<$+dU2kPhbqZdK?HA3h;ssBd| z!C-wbtvW*V8gHg&ITrc-)ExA5ZWKW&9TxIU*33M2GM3ow?EdNG~IjMBeh54mW4 z{;%lvY5fWl1y8b910vGhplb0bw zAJl^WX6pa_2+&#jT#Bt{>tmRZyQp`6pZ@>hlKzXuuq{XbHf1K|>J1gJ`?B7K{OVWq zVRZgIPhUohrhNUfQGgccKO%Qmp?(jg(iiCyX)92ye?VE)CHimOV9Zth3v|YzRDatR zn#%O6!$G^I|9Kf`<@%dHLA*lWN6{_ob$#1nuvY3dzXGO8pAd^~SL@eo2TzTD;T06M z`qeDxy``702WOq$ZV_y%*Oy#E(V)Nk7HEz7TOlZ#^bc1;(`|h_We+s#XP$$2i~jpd z7@1c6XEGSmrvHn6R_*%Kbx_}7#V7!@Q~y4B3-0LuE<~+MzvvNQy7iCcpt!4ld?nC& z^!eo3>eW}Q4vNLh>bKKM)z&add6agBrIa^%#4t^t*rSGb52LU*{PaC&4u*%c zIXhjslf_hAhhU@;4m#0OH3DCrh9xz#s^R+zEr5 zEz}1ZR^G7Ei)SdF3*t$`Im!(WHaz73v=GBOS{jEM5-6+llwldA@P`>rlM5l-P(aSJ z2t&zQU`HCVXk{K{SWjQWXu~k2UY$1Z-bA<07@8^G5@UFS1-V#5RU{O}8JcMEA8%Op z8O0wG3`k|ii)RoAqBv{do`9w#!)14vc+L>?0n{fOnki>kp{h)hEq?1CCd;^CzY}dS1CLBqTvpmh`wZahTN|?25}ZTm}_{ajsE}W zvSACkU#}Q4Ux871hOu{04`QPdP*SBWcbVm zwA+RVS}Hahw$F!YErwJXidI9D76a5~I8IBpb^~V%)OQ#HBEi{dHO#31_8r6W4?yfP zJRFAk-G=p)3~<*Vkw8eWy&XmFRJ zPeX>ylsGnQc;XYFj2LEqf`(B;*bXQhGyL5KfpJ4#9mFRL);>S*+&BF2BRV>1c()Gn z4-9v0pkm7KJrC+18pddmHf?yGzWy@?UKnVP4E8R7nKhgag(h30pazAVvHJ*$BgR-- zV;(hbErSYsfTCl@jZdI2j>Z*B0On*oYkdp~osIGCu+7Ez)gth?8i!Ay za5H}WEQZwGnC$?C9>y0a`r>KiQEHEu@!}oGdmEpm%n=`>*V`z3jrl*I@H6^H11!L} zJ_MRh7(bvmc%ZSD7LGwiTiTPJG;Ub|wZX;~u@%)2<5o&@3N=pOKyk|W%`Z?9W?V!I z$Z(^Tj+sRm4RpO_q|wnHRzw+3!gVn}+8EUgmeWT5^PrtEE-nFRjPX++G{zcr^%%7{ z;}Y6t#2bBMU`2v4b`H9fXk2m##aZL@hjjm7l5voB6z7c3-Uev0v5oEpOEKC_L*l&g zeTr_U8jt-8y=lfzT~JFmF8vs_3&z{DPtGtFQI=w+@dRy>vWz@(Qe+#eHo~ThMoSdB zbjkSYo50L59;inx*Vs>ok}exRguBT)|B7*0H3ajFa>{wkH}1^ALoYBkkgu`Oxc+n0 zii|-!fL3gLcmjr&7+<_dFP<^h2?C`?H(JP*8J9l=+BM^1N@yxKO6gNqVGO0Tf$PR4 zFQc*2xPLVi-7pUCM(w6?*9dCXD&xd=7~pE-4N6b0F*;L-zt;E_xma%*Kjoq`bw;)f zw0h%{-Y6Q3%Olb4M&r3pf!$=BD1rLh#utA>W3#b{qUkM07jk8_8ov}`oZ5^XN1>tJ z_$&F^JB&N{C_0Tw`Y7J98qe>8iZ0_$(qpbZ*#(Jz0<=tN6`VWZbtjPr=m+YEtGV=)=?$QY)D#H_L4dl+hK>Y}BW zoym>DJx5GAgJ3yon&Lpt-h{ug#j9pYq0itklUj%Yax^tYg63pW(@((Jfp_fKJDqD|pTfqmK(K(WO$ zro|!XZ;Z+LZ}chF)S3V*;!K~@sz2T|O-scDlX4|$iKgwFKs#%?O^0-nOexjm|2$`! zrbC~}rt|doFDa(IdjaV0z<8)G|yJaj0dQ>geUj zGKJF=oNcNj*WX1`MFxiJlBux+oyb84p+48-b{4eDrVsXkcEyzND&?Q$nZBg!XYx%v z%DgNvtsI8>LenKWK2>BIqQg|hra694QDQp16)LWpD*ggmsj2r*j76C#^LY%yHPg{} z)XGgyCPA*k^nNKu^t$P(PC!?h&a8*r4O8?|K;JYS_!}%$rqkbmX00|!${=53s-o>t zt?4FxIB%I01?XX&X>%D2ZZuuYMy<)zL5XX(O^08HK(p!eO4!?Ca%027R@0nL$hDbj zDB{p=+FAjY4%0{fIWA4_z6MQqOj{|3w#&381%`H;J}!jZU8`x<2#Fq(&q=iQni{=f zTc7EYFNpo7VRG0Gn55|_?wMjYq8K#wd%(~klj~9p;;`w3buewj6h!-|QImE%KNa2V3)~Bh=fOf2GusBj$57YaKQFIRM+ch>ow9||*w^3&z%{~oa zjWVAl4{fyBk&VXF<|^9zpE2Kw!Z^p6Yw3-NHLszyc%1pyanRz;^8!FiF#k@W$wc$a zC|J&#Jt!L{$-JTv`p%h4O?3V?*&Ii+W{SCD9WaUuu{{^?r zxpbjOg*lYGW!KHC?~wnc()>adR5Y0XrhJkn^WlTwxosYO1&z(-Z2EP#n177J<7zd3 z_cO5D%ryz1wVOG#m+mkZ2f?&X^BnT1b(ya?0;SvhryGXyuDO|Z#y#dmlv&Vgwk4E4 z^Jf$Q7%<;Wg(B-c^S67^r$O_A?EoDz>m?|L&3cL|jGEu4h0U1xF!?CQ&0+ro+JyN7 zTKU~K-#P{PN%Mz~q4y8Wynm|(B1rAGox zI}1w-&LdWfgqF`oEx|$%?Jaiss5w~tKL^?|OA6)9Ia+$j^WkI(r-ib!MgA9Ru9lCs z0^7}!MFCcK%P)55y@%z)k71gpWz+%`FN-ZXB77|0(RIbX7EjvJ`dJ<)-Rlie>pLushA-mH^YzElt}&yI?6OL6K$YE`Y*pOF<_@az&O=1!`9tzDmJ76suC;tk8G*Mfk#E4XI?KBMd~cSP z0$?{-p3K89sL_&|1X{D@-ZF5uSi&iq*J^1dk8+!ZONV*eEmMv3{p+yIq5q@pvV<-G zvD+e4qPS}bp`A#dWyiNb>$mKq=Kfny2h+g5X%j{ns{r6frz%<44OvdmF`k z5FKm=z6Q)Oo17OQ?`Sja1S_0uZr?%8+2(gzCArwxd;m08n=N!hhMUdWXQ0B}X70Br zJZ$PHlh@Pc?Qb!#UN-ajFx1=Tmqcjrv5C)wfUiyU1+ZBCY;L7My}yn9|8aEPaa~qj z+)68(rj=G!nr4~)_TGDIyUbCVT5e0TEYp5WK}7bHr2-;LK@kNU43VX55OJ_K%21IZ z@_x_z*ZJIg&%Dn%_ndR@a|pdbjNs=m`N52hL68)}&@9GSC}TTS2pnd7L<{UNM(8ex z4`&>4L1zTx@J|4d4Ewv#_b9`27)*~bzMz+NG~-{YfQ(_Brg%auV;dc?ahy@70(l(c z$_dCjVQ0Mb0Z`)^8z~2r#5mXv^^+NIQZnQu<1ccdPBDI%3y{LF>;OtC<6|Faahj1f z0-Me-o~Ms-8sk1aBWD>sbl6Zj<0Yy`KF8RV3M0-lJifKR)mKyiyv8V%KMGg8(8%)Pj{q2BL@tJ+PZ;ItbpGx*Bm5?M z9hlEd1#f5OlDE)uVIHE|Ls#Ytd!f^QX7Br;aAS6QV)EUYTaKW0fcYhz_~OA__%kN| zAoGK15bw#f)k5werjBZry_k(HK=EZtCAds}%o($wuRn8hDyA!ddCvDGJb!`A%OAqf zAm*Jqh!1A&GJ_(7DXoHqq0DxAdmU!J9toyl%1UZ7I*Br!xoSNWJ;!wI#;l!Z zPC5f-8O&3gVQ(hW;Ttf^W%^SIa2`|m2k5Rac@*%>XTH~gv8#6GlE2Vfz`Xq$X0MRB zA(HNAreqc*6*Jq8qO*i4ssgyi45cGcuQLa?KvF4_Hf?i_;fY1Yacpmm|xF@*|p5KOJK_lW-14uj%n|C2;FWnqv`ct&kQevh+9md z15j@>Bd7-O4zrgo^Ic~54KQtB?mvsMMy7KUKohg!07Nu1U;hWa=2dbx`kC_^z-@r3qI-Rixt78(516ZHHTaNONGYU8%(uE=%Mf#e8&DoIV`rf? z%)CLn%|@6!+HyY19I*n7F^9Tg{S&5T8-4%AncG9qe9BCtdW8w*&Ch}3zzQ1%Q%6=- z0912gxl^3knHBZ}2wYgc=g{fOdWHfS`&kR9M$C;hbu)lF>nk(FA7Hgn9@~=@L+<_| z*4AOz>BV9`#F#HDI|9u7Sew_<^XJc+z6rentoTk$cOYw=UVcHW>GQxXnAJ#|Z9-US z(_m;Q>*W*>9%gMJ2S1EeMq#6H*5yu&MX=tb1z03&7v;L6Sn&a{{s`+w`WhZ(EuoU< zW2_>27e%vvxeE!$S&>M?iqy(oMCNw0G??q(GiTDWp$9lo6d5k z0~|6~|J?&-CM%oX%l0gm^bVA|z>4g|bYEnxTMdd!EQ=g^UuKmkfSS!(M8T09mh(br zk;@vG3y{a!Lj@gISn3zh%4e;njWkzTmF>VRVErqCq(WBeFvf~l6*RHMtj+{TC}H_h zLE<$QHv!_W+gXKYU`#11gTAI^EG{`><*eW~;8d{gpMz?ZtSS4!ri$fQi@B&~dDDl! zhUIn-n6<1|BGGw+)l&j4b*xXQ{`w|MwHBbBrQZZ)Zm|j})o`2T^dDMxSWA8Z!Clrw z1@vuT+3SZu*vN7kgu+d%#|9|X%=$PM0$W&5=yTS}`k7XPZLHF%klW5$^C3V7D<=@0 zoh%_GhPqhqIzwPL>m9mRdssiwW}9BtK?ii+V@;yS)P0uIC5Z21t;#~HpQWND(*P^P z{x0saLDsCzFy;a4jtDppS;xw84IZ<`>G2%_iFd-R;yU(pN7h5eNeE`=*Q<^+Xy z_p@_oyO$f=?h71uwqgg42Ff9JRS(9z*tPFNgg2Y@ zGdg|P`fM2C%br08r24Vv&45n+?71qm0@#HMG0lPOzpJ545PKg5@Ppa8*>wJO2>VTn zhlH|!3J2<8cI*gRVeH)pK@rX_rU+mJ+q459lKn5OyrS66ZeVkSo%tb*Im({96_?@| zdrd7mquGwdpo?LjwxSiwJ|_mh^Vsdj?hZ-n@GHXn;v`;-KBD4ms*$WG1& z?|C$u;@v^67z{a_D3D*Gzsvrn@pC?0W^9YzzB&KA--`yAW9 z6q3%flOMo{4EC?T0wt5JP(Z^hHvd0hUSKPdpy5UKcT@##zr>#TJqRze*Yu*9&7MZJ zaXIW~ozR)fUgroldF&m}pz{j*$cvcLeD)7i>T;Exvl!MFuv?Bm!$S5IGf;}yk6oc* zF}q?Bv?yWo#v$+;`!8%Xo^qXC*9EzyZ01s2yE3*R6*`sM*(XzhTEPycbb2LwnEa|L z_VR5QtY$YZMQ08BXNoY@vcLQbY;LgEyP#FaPCf{IZ?d~6-BZtgB7~${Y&Tl;-)5)L z`}_`j*=;bp%ic%1`382N2&y%*XRQFwCiX1KCpWY0KT~G5g?-Z(IIZlVzX96V`4pvS zXV0J@RtI}xHWcn;cQ}Khi~Y$gi0EdQ(2Bl?eRMr^>Sg1T zPsNI^oCzn`vY!*|1K`H_Fc9+GIg{fkz;%GL?<=tJ;1o;;ILP61f#b>9cmk>&;@rOu zExb5^nXAIW*+S#XQuY$Z?V2xnCZ zbUMoMp)dR~&S6TaMsp$up+yX5-(46Q%Q?{l-p4snedvtiMErx+2~M32bn%=$RDYeo zxpxS*Btk=|mc)6t<^?=|$(&YN%%0?w=73Eqr-WiGr#a=H0-WLOq8l-t^BZ~Q=Qx@h zz&y_xWkKI8&c4$ayTD<@gYF_nMende&KNl~MVvUQ4K3zep)W@Xr<}4|*Ej*$Ah^!y zp#@_pCy&a7>}8xNs%R?bT>KNL6&x4Z0awXsUyRNwPFNnSujaJTxivMMcv`g7a=xR* z`wh-eFIsh++4P9tOHjXax!RU8aVsuhG^uR zrC?i=o#VP3N;Pw8??6%ur--&nv~rsEf@vGaeJ48GIa7+Deg~&p0l7UKmkC^^Ud{k* z61c}%I)*8^&)K#UD1Ds!v|q8GW9C5M07nu7)`Og3ivB*}yzdFjhnzSD#6RMEPq~yK zjy;C1_G3=|2$&9YnDnHNa3<&#Jj%I9N%ApH-5iWP;e7QeE}jFogG%@vxlNRUa^n8= z5$tv57A3(L7w#CX&t18~81UTBJu3!q}V0MtZ-X0G& zp4{auD0PTyCAZLv%XJ5ZH`jp{oIYG;9|(Q9dp?A{0bK7`5C(GZ=%88<_iM`71#>wu zKndaQ6QMJd%gBd@5#0OVf^{T!j52;v++=c7qPaDcw~yhvk)5&J{ysaJ@!Xf201~(j zrvMVU1wTOUDQ+iyI#RguTwJwO?xF;Mv)p%SDWA?&6rpvFyP7J-&T|_nvzoyjr{zs1 zSNS{Wvbf(e04{L-Q_y*ldomW5UE=6Yyz{sp z?E<*MwQNFXK6l?&U~`pwZ9h5-xKW*$;6m;dN|zRK5BR{sV(w>@A}rw!kS}nJ8~Z#6 z%DKO7f-M!?Y`XT9+%ozsRB_kXFjmdYqcZmzZj6%ZuWPwKj$mqTaKE7q&UM^=dNbbU zW|LoZhdZu8=Ur~c%TTz1d-_F)XyjgTgE39q{qKNjGdC#|+*-IVo~JvPd!Nq7YU959 z9j;b8_s?%I*1+M z|AhNl5V(wUmvS&`Pr1{~=$zo5rJKyz&RcN_6fQhtJSbdw5}JzxyaRiH{AFwHx_mIkj^LVcf!0ZB^?Qh@|@`lM#FXD|-P55TK~24UZ&Mb2QQBbg*tgFs4~8b$6$kZH*fLJVAI1({2C~|Jo{oO zdXJY!i|G5jc@)y>Y>F`Ufcn+CV20D z0^qu7hbb{|z~GI?jLV9e_Cg z^OS`=!GDL=_woEM>BmJ0{GPdxl*s>@Hd-a|UtI`+$^2~xVcALkL@Rin;@{kdOOayd zrxij{D*qguY`6=YQ=kd?X2f-D-J%~!a z^7+550h_D*qaR|hfZz2Pppc*OC&U-=hvG3-%;!?ca|wT#?#FBVcPTh>ou5R96qWMd zqw}xJ_lEwsN%Piw^GfIp@eP?pG76wwfr)>2b8+Om(oU& zI(`%V@8TxEl`13Z`Qi0w-QwG+0PHqjxEV8hhrjD5wC?g*3eYw1mz6?NBR}zFaBJd! zM=|qee#kEXE&Qpp0&3;Yqo`sVKj&|VZ|9pngN7Y^##MB7^1o=X1E-5$O@2lf`wE1_@j|fzn{P9D~t{BV_$@#gM2OpHy`keDQNwW zzm=~2BmT?e?ho;&9S6_H{5meK!7$(QImD0fzoA^pDF1dRoj*9npWlq>e!}O_J87JM zp30=2@_qfF#RR{*ADs>YA1dy26da)Ag`5Ok^o4d79HFC@Tm%*5^}7me-$3quK_msl z4+yjoK=BYf{{#XL3e4oDcnZ?#KSYNF&rwZ|m%!-T$t_cc6Ei zU=78YPY5CxVoKr#tbah5AjrH2!bHJ)w0=wy*mW377ObZa{Yk;o#b90)6hS<> zWvPOd6xBa1*hBH!GlICcfs!Wptq2C5wF`!)!isdkwr2s(31)wU-t&UM95BrgeCdwP zOhNQbXptpgzYI1P1XW!C7X`0Tfzc(wZwnyzvLKG~7TJP#8iAQ3P*AB#u3*(}wDJTJ zs<62tP^Q7Me8E2Q)2|9PJP%MHum{bDHid#W$*C<8xY2HxV!@)1z_dj0`(L2ACis?0 zY_1DpHiBEJz>n&L$^_4x##p%^rwrs3f+hDMzEUvK4^SnjDFu18Ad0-n8bPWHK&>F_ zBbanU5KJ+WIzbEV;kqf<_W$#*>jj7C7{gnFN?PjO7QFKt=@mV?v|}k&xcmXc9~Ztt>*YA%RURl#2+#A;887^qURw#m&AUL6DEyb|)RTlWXkTcu z(3RdEDZ-Dp03}s8o!*_Nh3BaT;*4nl)DnM5t4BY~PLg6N=W+@WRDF&Bfq5Ul_tS=Gf zP>}JO@IA^gTo-b7!0b|C9i1OjCd{C0Rk?626^T>`U*CzbO5x?dFjgh}MGJ1#!r*6c z(QAZ1$snm#*h7hy8^Q`P=<0-Xw*cG}Wm6Y=or!u^ zSVZn`gYYSxlF}%AhpLpDgui;hm}a5(dMMl?+_DQ+v$LzHUTZ|ZM7uLKEZXH4y zMR7WXoR1-*OE~2?2)c#us6fyoR7?U&ukc$Ys;849`^bp;rC+?u=`v-5JOtn+I(Zko zy+sMM6!#HrYX*U@XbB~a{6wqC4fPlGwu3G}RESjy@_(XbtAH9L>TQE=!6J(uI3c2# zdUS@09BzQ{u;^zOXc#7%;sV~`q6d^Rix9mufGLd>9j8}el&FoekVizvX)SwH^r{nD z$3za_L#Jrb-nYOdMl|prY>5@kBhTQth`R?Zdz|Q}WZ;|-dGo+KUgUERtpw5L1ptYn zCu*Q3iKf!QBFUm1bn#A#HqC@Gr$l!p5RoEEjR#$-DC#wcI4$~42)Z+(oPRNvCJLZZ z+Owizaz4^U+uy((o)bOZ1I+WH`VfE&yJ!}jFOn(J(YGc`B>xpk<%uR}?SDm7MVBI9 ztq^Qr-=st>lq3ivB$h&?IWu4N1+Sv((ul znnfN(tH_hGyltW(J3SWdqP0^n*dg+z@O-D}(j5rw65XPhZntPM)%5g;<}Co>eNlo6 zs`ZH)oB{ep(|rI2M1$i1gQ74>13nP#PX+IXqVUb&@<`-CiGv}L^cp%Ji{igU=dh@7 zBLt0ze%xTk`)0$~abUqP-Pek+H1h;X~qI_JDr=oJ2uL;q^O%U%OE~6l@qu86G z6HekTKLBTOj4S9|#BvI9xQZ(+0PfM=mb5r`YfiTn>rd z7gGI;mv}T5T6l}!4aK03*fa-M#8-Sv2Ht++bc*Zwiw&btKR{fX1~!4>?r<;-65B6= zE?9hg0meea%j94hDh?-K;IP=~A#@58=aH)zE^hJ#W`x*A<%N;r&$$p3CBAr(zJEu= zu@u!jDt09=_?UQC90;Su650^7&j6efulgO5Qp6u!M=MqAz7NWr7N4WcW}5iZBOtJ!6*sPe zz;vP<)Vl z@*;60_Jm9+7W>iHsYIO9jLvJ~cQ>GQUA%!dk(7#mqTq9xSgizIxj6h?bXJJfE5Ni; zEcg@iTqW+KSYfre{1E7B#8)PxRVz-S(7_GyRae+qCvKy);Z3o9n;y-2aR@ogx5Pcq z1Kbv8_5$1yr`5uWyW)!NkklX^qFpPE;ufknYZ8AG3AxSUP+xSmi2qK3POajLR1(`E zewki7o#J;Xh14Z}_y$nA#m`aZyGPu<60Cd07otFZPuyy!)!BXV9?I(Vi5U+--!E>W zTG#>cQw}cBpg7qIO&^GVrLv!g;#qXhJraL%2$jzm1wBca=&CNeX-mmCqA>I*In`feXBeq)hjS~P!iY=3QtJ} zdCG?*w`r@9m!u>P7sf~8Mrm4K$yEA&`bm=Msq&Z1rn=w&$p`a*87T3c1ha!AsZ@#- zEO9A-5g`%_t*=8RW2?aBu%y)=tuV>=YbpL2E?M*yw26?sMBE}JQTL%!lq7?y(T+$a zQ#kXenyE3NdzEQWXL1<0MmR&^jT}&`z>=$?sPo zK0&gMc5fs~_RIydBuO|ex|1arx6u0Uq@-ySgr_9k23V0I*>8r3RLK}0#+;UDXjOMc zQb~V>PLnMB9GGV%D``7kx?~^>k}@P|3!z1(q`euEvLrW70Of)t>nTt!N;?0;*dK`U3Xbv|^m=Sg(00bY>|QB?G*B()UGy)F5PmLPW|1;wDh zE8(PIN*W|}aiD9IET{N%lO&H`EzOeka&)#x?zezTtEBlDT5XctV$4Om#S_NtQJOWk~Xm3D!TBcvA#^L^6rI;8DpDDd@%|FHw~IiKK#@k8#P= zUqCk@sj@GCg$~jdS|~e8kA4q@ouvGD0B7k-UqXbd^vxFm_DlU!f#N1Do{KSe>7+@Z zKOh~Uh^2@0=L}5VL1`+bt~{k1xWGIl?eqkSmvp8E7u{R>J_SB~q^<*)SYK&h7=WL2 z{=XD|@s~zWKt4d)NU7&Qsn3^a1xc6x3f{reS~^-WMCweAXQ*`VT9|fNnnDvCCjEpW zp5f9}6ikYc{zs+Kky0zY*Q2C7N(dj3j`#o^m3~fPy<<`nnVg5BMrPm^)Io~ zwzZ%*F8y~exW!2)F9gmB>Et%xBuZ;3;+Z5BQ(8J%+VdeWPfEovLeW!F_gO$mkw#M? z)@kXSClGN)>bwvHY0~#MU=q$s8)w4$bSc*pbmyf3bjnDE^!CS)kSTS1KMwbEW_EgFa6hREM!E(rx*WlrO#IfYw#% zGWt(&fi#I$iiO|^o<-7LieVK?&(o^AMEU_O3a?3<&!cr+`X$Bl?4{Ci%CnY9x2}UR z<j7aM~ zK|3GfL0NDGH1(8~T!ExRvc>B`?-hEhSkGVwID{A9DA1EIgHoC*yBWE(rdEl@V-3-TbD;2_3AWFOP#GgS8VWPro6 zrLizOO!h71fWl=frek8GWZdV_c|;cXCVl^o%Dh{l_c2+|LMRh0dz0QpF|vh(8Y^>s z6R2^rQ73>CGUsXNjF*MDgCIe+?HOPu%E|_yVUq0aF_0(AmVOJ>PRVvt3MxhRPc2kS zm0hTZGN)z!A&_@Q#-i_an(U*CbpG{O*(cMU>n{Q&M;1%DjXc?d5{S4W`|cb-zHC7i zP_D{K7UEJA$nJRn6v|rX(*D09+1hDPxI}h?@-5e79`s$fE-Tmyxuvq4??6~4`(6(= z<+2++FtkE8iIQDavNx%aq*``x7+TcG`l&R$R@P1-nj5mM^I(0wY@-91-IC3H9j)84 zA^OwG9oZaOUfh*^K!vsT2HE-FAihy{_&nG&%fX0Obp0d)6dUy6WoU-l1GdiTjHf55Eu%Rc@E zoddEjCWFhM?7S}s9@u3ckOTQpc7~kGA({0la30GT!DtQ3iXTDlh^+S_n2yRq@*rtU z)_D!aJdt&M1eB+;Npv2=ge>E2DB~cXIvZn-@*vuC>Liz^Lxi)ukdlcm@;A$XxnJ%< zr2%g8-gL}`yWIZMztHV~JTetH9&&d-Fg+;e90QK0Je^YQUh-FI8R;#b8wc?|@&$i` z&{zK4I85`C3#ryJQ2v4�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�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�Bx69HLbc*SUBxDOJ%t$pect%(VH=sjiaoD0>;zK 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 V;wDD0N5B@(_K`RT3oDkq{|yeC>_Gqk delta 213746 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 diff --git a/Debug/STM32F429I-DISC1_LEDFaceMask-Rough.list b/Debug/STM32F429I-DISC1_LEDFaceMask-Rough.list index 83d6511..7f34dce 100644 --- a/Debug/STM32F429I-DISC1_LEDFaceMask-Rough.list +++ b/Debug/STM32F429I-DISC1_LEDFaceMask-Rough.list @@ -5,11065 +5,12577 @@ Sections: Idx Name Size VMA LMA File off Algn 0 .isr_vector 000001ac 08000000 08000000 00010000 2**0 CONTENTS, ALLOC, LOAD, READONLY, DATA - 1 .text 000042d8 080001ac 080001ac 000101ac 2**2 + 1 .text 000051f4 080001b0 080001b0 000101b0 2**3 CONTENTS, ALLOC, LOAD, READONLY, CODE - 2 .rodata 00000010 08004484 08004484 00014484 2**2 + 2 .rodata 00000010 080053a4 080053a4 000153a4 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA - 3 .ARM.extab 00000000 08004494 08004494 00020074 2**0 + 3 .ARM.extab 00000000 080053b4 080053b4 00020074 2**0 CONTENTS - 4 .ARM 00000008 08004494 08004494 00014494 2**2 + 4 .ARM 00000008 080053b4 080053b4 000153b4 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA - 5 .preinit_array 00000000 0800449c 0800449c 00020074 2**0 + 5 .preinit_array 00000000 080053bc 080053bc 00020074 2**0 CONTENTS, ALLOC, LOAD, DATA - 6 .init_array 00000004 0800449c 0800449c 0001449c 2**2 + 6 .init_array 00000004 080053bc 080053bc 000153bc 2**2 CONTENTS, ALLOC, LOAD, DATA - 7 .fini_array 00000004 080044a0 080044a0 000144a0 2**2 + 7 .fini_array 00000004 080053c0 080053c0 000153c0 2**2 CONTENTS, ALLOC, LOAD, DATA - 8 .data 00000074 20000000 080044a4 00020000 2**2 + 8 .data 00000074 20000000 080053c4 00020000 2**2 CONTENTS, ALLOC, LOAD, DATA - 9 .bss 00000430 20000074 08004518 00020074 2**2 + 9 .bss 0000042c 20000074 08005438 00020074 2**2 ALLOC - 10 ._user_heap_stack 00000604 200004a4 08004518 000204a4 2**0 + 10 ._user_heap_stack 00000600 200004a0 08005438 000204a0 2**0 ALLOC 11 .ARM.attributes 00000030 00000000 00000000 00020074 2**0 CONTENTS, READONLY - 12 .debug_info 0000d979 00000000 00000000 000200a4 2**0 + 12 .debug_info 0000d9cf 00000000 00000000 000200a4 2**0 CONTENTS, READONLY, DEBUGGING - 13 .debug_abbrev 00001d08 00000000 00000000 0002da1d 2**0 + 13 .debug_abbrev 00001d33 00000000 00000000 0002da73 2**0 CONTENTS, READONLY, DEBUGGING - 14 .debug_aranges 00000d20 00000000 00000000 0002f728 2**3 + 14 .debug_aranges 00000d30 00000000 00000000 0002f7a8 2**3 CONTENTS, READONLY, DEBUGGING - 15 .debug_ranges 00000c38 00000000 00000000 00030448 2**3 + 15 .debug_ranges 00000c48 00000000 00000000 000304d8 2**3 CONTENTS, READONLY, DEBUGGING - 16 .debug_macro 0002448d 00000000 00000000 00031080 2**0 + 16 .debug_macro 0002448d 00000000 00000000 00031120 2**0 CONTENTS, READONLY, DEBUGGING - 17 .debug_line 0000a537 00000000 00000000 0005550d 2**0 + 17 .debug_line 0000a54b 00000000 00000000 000555ad 2**0 CONTENTS, READONLY, DEBUGGING - 18 .debug_str 000de361 00000000 00000000 0005fa44 2**0 + 18 .debug_str 000de373 00000000 00000000 0005faf8 2**0 CONTENTS, READONLY, DEBUGGING - 19 .comment 0000007b 00000000 00000000 0013dda5 2**0 + 19 .comment 0000007b 00000000 00000000 0013de6b 2**0 CONTENTS, READONLY - 20 .debug_frame 0000389c 00000000 00000000 0013de20 2**2 + 20 .debug_frame 00003a10 00000000 00000000 0013dee8 2**2 CONTENTS, READONLY, DEBUGGING Disassembly of section .text: -080001ac <__do_global_dtors_aux>: - 80001ac: b510 push {r4, lr} - 80001ae: 4c05 ldr r4, [pc, #20] ; (80001c4 <__do_global_dtors_aux+0x18>) - 80001b0: 7823 ldrb r3, [r4, #0] - 80001b2: b933 cbnz r3, 80001c2 <__do_global_dtors_aux+0x16> - 80001b4: 4b04 ldr r3, [pc, #16] ; (80001c8 <__do_global_dtors_aux+0x1c>) - 80001b6: b113 cbz r3, 80001be <__do_global_dtors_aux+0x12> - 80001b8: 4804 ldr r0, [pc, #16] ; (80001cc <__do_global_dtors_aux+0x20>) - 80001ba: f3af 8000 nop.w - 80001be: 2301 movs r3, #1 - 80001c0: 7023 strb r3, [r4, #0] - 80001c2: bd10 pop {r4, pc} - 80001c4: 20000074 .word 0x20000074 - 80001c8: 00000000 .word 0x00000000 - 80001cc: 0800446c .word 0x0800446c +080001b0 <__do_global_dtors_aux>: + 80001b0: b510 push {r4, lr} + 80001b2: 4c05 ldr r4, [pc, #20] ; (80001c8 <__do_global_dtors_aux+0x18>) + 80001b4: 7823 ldrb r3, [r4, #0] + 80001b6: b933 cbnz r3, 80001c6 <__do_global_dtors_aux+0x16> + 80001b8: 4b04 ldr r3, [pc, #16] ; (80001cc <__do_global_dtors_aux+0x1c>) + 80001ba: b113 cbz r3, 80001c2 <__do_global_dtors_aux+0x12> + 80001bc: 4804 ldr r0, [pc, #16] ; (80001d0 <__do_global_dtors_aux+0x20>) + 80001be: f3af 8000 nop.w + 80001c2: 2301 movs r3, #1 + 80001c4: 7023 strb r3, [r4, #0] + 80001c6: bd10 pop {r4, pc} + 80001c8: 20000074 .word 0x20000074 + 80001cc: 00000000 .word 0x00000000 + 80001d0: 0800538c .word 0x0800538c -080001d0 : - 80001d0: b508 push {r3, lr} - 80001d2: 4b03 ldr r3, [pc, #12] ; (80001e0 ) - 80001d4: b11b cbz r3, 80001de - 80001d6: 4903 ldr r1, [pc, #12] ; (80001e4 ) - 80001d8: 4803 ldr r0, [pc, #12] ; (80001e8 ) - 80001da: f3af 8000 nop.w - 80001de: bd08 pop {r3, pc} - 80001e0: 00000000 .word 0x00000000 - 80001e4: 20000078 .word 0x20000078 - 80001e8: 0800446c .word 0x0800446c +080001d4 : + 80001d4: b508 push {r3, lr} + 80001d6: 4b03 ldr r3, [pc, #12] ; (80001e4 ) + 80001d8: b11b cbz r3, 80001e2 + 80001da: 4903 ldr r1, [pc, #12] ; (80001e8 ) + 80001dc: 4803 ldr r0, [pc, #12] ; (80001ec ) + 80001de: f3af 8000 nop.w + 80001e2: bd08 pop {r3, pc} + 80001e4: 00000000 .word 0x00000000 + 80001e8: 20000078 .word 0x20000078 + 80001ec: 0800538c .word 0x0800538c -080001ec <__aeabi_uldivmod>: - 80001ec: b953 cbnz r3, 8000204 <__aeabi_uldivmod+0x18> - 80001ee: b94a cbnz r2, 8000204 <__aeabi_uldivmod+0x18> - 80001f0: 2900 cmp r1, #0 - 80001f2: bf08 it eq - 80001f4: 2800 cmpeq r0, #0 - 80001f6: bf1c itt ne - 80001f8: f04f 31ff movne.w r1, #4294967295 - 80001fc: f04f 30ff movne.w r0, #4294967295 - 8000200: f000 b972 b.w 80004e8 <__aeabi_idiv0> - 8000204: f1ad 0c08 sub.w ip, sp, #8 - 8000208: e96d ce04 strd ip, lr, [sp, #-16]! - 800020c: f000 f806 bl 800021c <__udivmoddi4> - 8000210: f8dd e004 ldr.w lr, [sp, #4] - 8000214: e9dd 2302 ldrd r2, r3, [sp, #8] - 8000218: b004 add sp, #16 - 800021a: 4770 bx lr +080001f0 <__aeabi_drsub>: + 80001f0: f081 4100 eor.w r1, r1, #2147483648 ; 0x80000000 + 80001f4: e002 b.n 80001fc <__adddf3> + 80001f6: bf00 nop -0800021c <__udivmoddi4>: - 800021c: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 8000220: 9e08 ldr r6, [sp, #32] - 8000222: 4604 mov r4, r0 - 8000224: 4688 mov r8, r1 - 8000226: 2b00 cmp r3, #0 - 8000228: d14b bne.n 80002c2 <__udivmoddi4+0xa6> - 800022a: 428a cmp r2, r1 - 800022c: 4615 mov r5, r2 - 800022e: d967 bls.n 8000300 <__udivmoddi4+0xe4> - 8000230: fab2 f282 clz r2, r2 - 8000234: b14a cbz r2, 800024a <__udivmoddi4+0x2e> - 8000236: f1c2 0720 rsb r7, r2, #32 - 800023a: fa01 f302 lsl.w r3, r1, r2 - 800023e: fa20 f707 lsr.w r7, r0, r7 - 8000242: 4095 lsls r5, r2 - 8000244: ea47 0803 orr.w r8, r7, r3 - 8000248: 4094 lsls r4, r2 - 800024a: ea4f 4e15 mov.w lr, r5, lsr #16 - 800024e: 0c23 lsrs r3, r4, #16 - 8000250: fbb8 f7fe udiv r7, r8, lr - 8000254: fa1f fc85 uxth.w ip, r5 - 8000258: fb0e 8817 mls r8, lr, r7, r8 - 800025c: ea43 4308 orr.w r3, r3, r8, lsl #16 - 8000260: fb07 f10c mul.w r1, r7, ip - 8000264: 4299 cmp r1, r3 - 8000266: d909 bls.n 800027c <__udivmoddi4+0x60> - 8000268: 18eb adds r3, r5, r3 - 800026a: f107 30ff add.w r0, r7, #4294967295 - 800026e: f080 811b bcs.w 80004a8 <__udivmoddi4+0x28c> - 8000272: 4299 cmp r1, r3 - 8000274: f240 8118 bls.w 80004a8 <__udivmoddi4+0x28c> - 8000278: 3f02 subs r7, #2 - 800027a: 442b add r3, r5 - 800027c: 1a5b subs r3, r3, r1 - 800027e: b2a4 uxth r4, r4 - 8000280: fbb3 f0fe udiv r0, r3, lr - 8000284: fb0e 3310 mls r3, lr, r0, r3 - 8000288: ea44 4403 orr.w r4, r4, r3, lsl #16 - 800028c: fb00 fc0c mul.w ip, r0, ip - 8000290: 45a4 cmp ip, r4 - 8000292: d909 bls.n 80002a8 <__udivmoddi4+0x8c> - 8000294: 192c adds r4, r5, r4 - 8000296: f100 33ff add.w r3, r0, #4294967295 - 800029a: f080 8107 bcs.w 80004ac <__udivmoddi4+0x290> - 800029e: 45a4 cmp ip, r4 - 80002a0: f240 8104 bls.w 80004ac <__udivmoddi4+0x290> - 80002a4: 3802 subs r0, #2 - 80002a6: 442c add r4, r5 - 80002a8: ea40 4007 orr.w r0, r0, r7, lsl #16 - 80002ac: eba4 040c sub.w r4, r4, ip - 80002b0: 2700 movs r7, #0 - 80002b2: b11e cbz r6, 80002bc <__udivmoddi4+0xa0> - 80002b4: 40d4 lsrs r4, r2 - 80002b6: 2300 movs r3, #0 - 80002b8: e9c6 4300 strd r4, r3, [r6] - 80002bc: 4639 mov r1, r7 - 80002be: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - 80002c2: 428b cmp r3, r1 - 80002c4: d909 bls.n 80002da <__udivmoddi4+0xbe> - 80002c6: 2e00 cmp r6, #0 - 80002c8: f000 80eb beq.w 80004a2 <__udivmoddi4+0x286> - 80002cc: 2700 movs r7, #0 - 80002ce: e9c6 0100 strd r0, r1, [r6] - 80002d2: 4638 mov r0, r7 - 80002d4: 4639 mov r1, r7 - 80002d6: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - 80002da: fab3 f783 clz r7, r3 - 80002de: 2f00 cmp r7, #0 - 80002e0: d147 bne.n 8000372 <__udivmoddi4+0x156> - 80002e2: 428b cmp r3, r1 - 80002e4: d302 bcc.n 80002ec <__udivmoddi4+0xd0> - 80002e6: 4282 cmp r2, r0 - 80002e8: f200 80fa bhi.w 80004e0 <__udivmoddi4+0x2c4> - 80002ec: 1a84 subs r4, r0, r2 - 80002ee: eb61 0303 sbc.w r3, r1, r3 - 80002f2: 2001 movs r0, #1 - 80002f4: 4698 mov r8, r3 - 80002f6: 2e00 cmp r6, #0 - 80002f8: d0e0 beq.n 80002bc <__udivmoddi4+0xa0> - 80002fa: e9c6 4800 strd r4, r8, [r6] - 80002fe: e7dd b.n 80002bc <__udivmoddi4+0xa0> - 8000300: b902 cbnz r2, 8000304 <__udivmoddi4+0xe8> - 8000302: deff udf #255 ; 0xff - 8000304: fab2 f282 clz r2, r2 - 8000308: 2a00 cmp r2, #0 - 800030a: f040 808f bne.w 800042c <__udivmoddi4+0x210> - 800030e: 1b49 subs r1, r1, r5 - 8000310: ea4f 4e15 mov.w lr, r5, lsr #16 - 8000314: fa1f f885 uxth.w r8, r5 - 8000318: 2701 movs r7, #1 - 800031a: fbb1 fcfe udiv ip, r1, lr - 800031e: 0c23 lsrs r3, r4, #16 - 8000320: fb0e 111c mls r1, lr, ip, r1 - 8000324: ea43 4301 orr.w r3, r3, r1, lsl #16 - 8000328: fb08 f10c mul.w r1, r8, ip - 800032c: 4299 cmp r1, r3 - 800032e: d907 bls.n 8000340 <__udivmoddi4+0x124> - 8000330: 18eb adds r3, r5, r3 - 8000332: f10c 30ff add.w r0, ip, #4294967295 - 8000336: d202 bcs.n 800033e <__udivmoddi4+0x122> - 8000338: 4299 cmp r1, r3 - 800033a: f200 80cd bhi.w 80004d8 <__udivmoddi4+0x2bc> - 800033e: 4684 mov ip, r0 - 8000340: 1a59 subs r1, r3, r1 - 8000342: b2a3 uxth r3, r4 - 8000344: fbb1 f0fe udiv r0, r1, lr - 8000348: fb0e 1410 mls r4, lr, r0, r1 - 800034c: ea43 4404 orr.w r4, r3, r4, lsl #16 - 8000350: fb08 f800 mul.w r8, r8, r0 - 8000354: 45a0 cmp r8, r4 - 8000356: d907 bls.n 8000368 <__udivmoddi4+0x14c> - 8000358: 192c adds r4, r5, r4 - 800035a: f100 33ff add.w r3, r0, #4294967295 - 800035e: d202 bcs.n 8000366 <__udivmoddi4+0x14a> - 8000360: 45a0 cmp r8, r4 - 8000362: f200 80b6 bhi.w 80004d2 <__udivmoddi4+0x2b6> - 8000366: 4618 mov r0, r3 - 8000368: eba4 0408 sub.w r4, r4, r8 - 800036c: ea40 400c orr.w r0, r0, ip, lsl #16 - 8000370: e79f b.n 80002b2 <__udivmoddi4+0x96> - 8000372: f1c7 0c20 rsb ip, r7, #32 - 8000376: 40bb lsls r3, r7 - 8000378: fa22 fe0c lsr.w lr, r2, ip - 800037c: ea4e 0e03 orr.w lr, lr, r3 - 8000380: fa01 f407 lsl.w r4, r1, r7 - 8000384: fa20 f50c lsr.w r5, r0, ip - 8000388: fa21 f30c lsr.w r3, r1, ip - 800038c: ea4f 481e mov.w r8, lr, lsr #16 - 8000390: 4325 orrs r5, r4 - 8000392: fbb3 f9f8 udiv r9, r3, r8 - 8000396: 0c2c lsrs r4, r5, #16 - 8000398: fb08 3319 mls r3, r8, r9, r3 - 800039c: fa1f fa8e uxth.w sl, lr - 80003a0: ea44 4303 orr.w r3, r4, r3, lsl #16 - 80003a4: fb09 f40a mul.w r4, r9, sl - 80003a8: 429c cmp r4, r3 - 80003aa: fa02 f207 lsl.w r2, r2, r7 - 80003ae: fa00 f107 lsl.w r1, r0, r7 - 80003b2: d90b bls.n 80003cc <__udivmoddi4+0x1b0> - 80003b4: eb1e 0303 adds.w r3, lr, r3 - 80003b8: f109 30ff add.w r0, r9, #4294967295 - 80003bc: f080 8087 bcs.w 80004ce <__udivmoddi4+0x2b2> - 80003c0: 429c cmp r4, r3 - 80003c2: f240 8084 bls.w 80004ce <__udivmoddi4+0x2b2> - 80003c6: f1a9 0902 sub.w r9, r9, #2 - 80003ca: 4473 add r3, lr - 80003cc: 1b1b subs r3, r3, r4 - 80003ce: b2ad uxth r5, r5 - 80003d0: fbb3 f0f8 udiv r0, r3, r8 - 80003d4: fb08 3310 mls r3, r8, r0, r3 - 80003d8: ea45 4403 orr.w r4, r5, r3, lsl #16 - 80003dc: fb00 fa0a mul.w sl, r0, sl - 80003e0: 45a2 cmp sl, r4 - 80003e2: d908 bls.n 80003f6 <__udivmoddi4+0x1da> - 80003e4: eb1e 0404 adds.w r4, lr, r4 - 80003e8: f100 33ff add.w r3, r0, #4294967295 - 80003ec: d26b bcs.n 80004c6 <__udivmoddi4+0x2aa> - 80003ee: 45a2 cmp sl, r4 - 80003f0: d969 bls.n 80004c6 <__udivmoddi4+0x2aa> - 80003f2: 3802 subs r0, #2 - 80003f4: 4474 add r4, lr - 80003f6: ea40 4009 orr.w r0, r0, r9, lsl #16 - 80003fa: fba0 8902 umull r8, r9, r0, r2 - 80003fe: eba4 040a sub.w r4, r4, sl - 8000402: 454c cmp r4, r9 - 8000404: 46c2 mov sl, r8 - 8000406: 464b mov r3, r9 - 8000408: d354 bcc.n 80004b4 <__udivmoddi4+0x298> - 800040a: d051 beq.n 80004b0 <__udivmoddi4+0x294> - 800040c: 2e00 cmp r6, #0 - 800040e: d069 beq.n 80004e4 <__udivmoddi4+0x2c8> - 8000410: ebb1 050a subs.w r5, r1, sl - 8000414: eb64 0403 sbc.w r4, r4, r3 - 8000418: fa04 fc0c lsl.w ip, r4, ip - 800041c: 40fd lsrs r5, r7 - 800041e: 40fc lsrs r4, r7 - 8000420: ea4c 0505 orr.w r5, ip, r5 - 8000424: e9c6 5400 strd r5, r4, [r6] - 8000428: 2700 movs r7, #0 - 800042a: e747 b.n 80002bc <__udivmoddi4+0xa0> - 800042c: f1c2 0320 rsb r3, r2, #32 - 8000430: fa20 f703 lsr.w r7, r0, r3 - 8000434: 4095 lsls r5, r2 - 8000436: fa01 f002 lsl.w r0, r1, r2 - 800043a: fa21 f303 lsr.w r3, r1, r3 - 800043e: ea4f 4e15 mov.w lr, r5, lsr #16 - 8000442: 4338 orrs r0, r7 - 8000444: 0c01 lsrs r1, r0, #16 - 8000446: fbb3 f7fe udiv r7, r3, lr - 800044a: fa1f f885 uxth.w r8, r5 - 800044e: fb0e 3317 mls r3, lr, r7, r3 - 8000452: ea41 4103 orr.w r1, r1, r3, lsl #16 - 8000456: fb07 f308 mul.w r3, r7, r8 - 800045a: 428b cmp r3, r1 - 800045c: fa04 f402 lsl.w r4, r4, r2 - 8000460: d907 bls.n 8000472 <__udivmoddi4+0x256> - 8000462: 1869 adds r1, r5, r1 - 8000464: f107 3cff add.w ip, r7, #4294967295 - 8000468: d22f bcs.n 80004ca <__udivmoddi4+0x2ae> - 800046a: 428b cmp r3, r1 - 800046c: d92d bls.n 80004ca <__udivmoddi4+0x2ae> - 800046e: 3f02 subs r7, #2 - 8000470: 4429 add r1, r5 - 8000472: 1acb subs r3, r1, r3 - 8000474: b281 uxth r1, r0 - 8000476: fbb3 f0fe udiv r0, r3, lr - 800047a: fb0e 3310 mls r3, lr, r0, r3 - 800047e: ea41 4103 orr.w r1, r1, r3, lsl #16 - 8000482: fb00 f308 mul.w r3, r0, r8 - 8000486: 428b cmp r3, r1 - 8000488: d907 bls.n 800049a <__udivmoddi4+0x27e> - 800048a: 1869 adds r1, r5, r1 - 800048c: f100 3cff add.w ip, r0, #4294967295 - 8000490: d217 bcs.n 80004c2 <__udivmoddi4+0x2a6> - 8000492: 428b cmp r3, r1 - 8000494: d915 bls.n 80004c2 <__udivmoddi4+0x2a6> - 8000496: 3802 subs r0, #2 - 8000498: 4429 add r1, r5 - 800049a: 1ac9 subs r1, r1, r3 - 800049c: ea40 4707 orr.w r7, r0, r7, lsl #16 - 80004a0: e73b b.n 800031a <__udivmoddi4+0xfe> - 80004a2: 4637 mov r7, r6 - 80004a4: 4630 mov r0, r6 - 80004a6: e709 b.n 80002bc <__udivmoddi4+0xa0> - 80004a8: 4607 mov r7, r0 - 80004aa: e6e7 b.n 800027c <__udivmoddi4+0x60> - 80004ac: 4618 mov r0, r3 - 80004ae: e6fb b.n 80002a8 <__udivmoddi4+0x8c> - 80004b0: 4541 cmp r1, r8 - 80004b2: d2ab bcs.n 800040c <__udivmoddi4+0x1f0> - 80004b4: ebb8 0a02 subs.w sl, r8, r2 - 80004b8: eb69 020e sbc.w r2, r9, lr - 80004bc: 3801 subs r0, #1 - 80004be: 4613 mov r3, r2 - 80004c0: e7a4 b.n 800040c <__udivmoddi4+0x1f0> - 80004c2: 4660 mov r0, ip - 80004c4: e7e9 b.n 800049a <__udivmoddi4+0x27e> - 80004c6: 4618 mov r0, r3 - 80004c8: e795 b.n 80003f6 <__udivmoddi4+0x1da> - 80004ca: 4667 mov r7, ip - 80004cc: e7d1 b.n 8000472 <__udivmoddi4+0x256> - 80004ce: 4681 mov r9, r0 - 80004d0: e77c b.n 80003cc <__udivmoddi4+0x1b0> - 80004d2: 3802 subs r0, #2 - 80004d4: 442c add r4, r5 - 80004d6: e747 b.n 8000368 <__udivmoddi4+0x14c> - 80004d8: f1ac 0c02 sub.w ip, ip, #2 - 80004dc: 442b add r3, r5 - 80004de: e72f b.n 8000340 <__udivmoddi4+0x124> - 80004e0: 4638 mov r0, r7 - 80004e2: e708 b.n 80002f6 <__udivmoddi4+0xda> - 80004e4: 4637 mov r7, r6 - 80004e6: e6e9 b.n 80002bc <__udivmoddi4+0xa0> +080001f8 <__aeabi_dsub>: + 80001f8: f083 4300 eor.w r3, r3, #2147483648 ; 0x80000000 -080004e8 <__aeabi_idiv0>: - 80004e8: 4770 bx lr - 80004ea: bf00 nop +080001fc <__adddf3>: + 80001fc: b530 push {r4, r5, lr} + 80001fe: ea4f 0441 mov.w r4, r1, lsl #1 + 8000202: ea4f 0543 mov.w r5, r3, lsl #1 + 8000206: ea94 0f05 teq r4, r5 + 800020a: bf08 it eq + 800020c: ea90 0f02 teqeq r0, r2 + 8000210: bf1f itttt ne + 8000212: ea54 0c00 orrsne.w ip, r4, r0 + 8000216: ea55 0c02 orrsne.w ip, r5, r2 + 800021a: ea7f 5c64 mvnsne.w ip, r4, asr #21 + 800021e: ea7f 5c65 mvnsne.w ip, r5, asr #21 + 8000222: f000 80e2 beq.w 80003ea <__adddf3+0x1ee> + 8000226: ea4f 5454 mov.w r4, r4, lsr #21 + 800022a: ebd4 5555 rsbs r5, r4, r5, lsr #21 + 800022e: bfb8 it lt + 8000230: 426d neglt r5, r5 + 8000232: dd0c ble.n 800024e <__adddf3+0x52> + 8000234: 442c add r4, r5 + 8000236: ea80 0202 eor.w r2, r0, r2 + 800023a: ea81 0303 eor.w r3, r1, r3 + 800023e: ea82 0000 eor.w r0, r2, r0 + 8000242: ea83 0101 eor.w r1, r3, r1 + 8000246: ea80 0202 eor.w r2, r0, r2 + 800024a: ea81 0303 eor.w r3, r1, r3 + 800024e: 2d36 cmp r5, #54 ; 0x36 + 8000250: bf88 it hi + 8000252: bd30 pophi {r4, r5, pc} + 8000254: f011 4f00 tst.w r1, #2147483648 ; 0x80000000 + 8000258: ea4f 3101 mov.w r1, r1, lsl #12 + 800025c: f44f 1c80 mov.w ip, #1048576 ; 0x100000 + 8000260: ea4c 3111 orr.w r1, ip, r1, lsr #12 + 8000264: d002 beq.n 800026c <__adddf3+0x70> + 8000266: 4240 negs r0, r0 + 8000268: eb61 0141 sbc.w r1, r1, r1, lsl #1 + 800026c: f013 4f00 tst.w r3, #2147483648 ; 0x80000000 + 8000270: ea4f 3303 mov.w r3, r3, lsl #12 + 8000274: ea4c 3313 orr.w r3, ip, r3, lsr #12 + 8000278: d002 beq.n 8000280 <__adddf3+0x84> + 800027a: 4252 negs r2, r2 + 800027c: eb63 0343 sbc.w r3, r3, r3, lsl #1 + 8000280: ea94 0f05 teq r4, r5 + 8000284: f000 80a7 beq.w 80003d6 <__adddf3+0x1da> + 8000288: f1a4 0401 sub.w r4, r4, #1 + 800028c: f1d5 0e20 rsbs lr, r5, #32 + 8000290: db0d blt.n 80002ae <__adddf3+0xb2> + 8000292: fa02 fc0e lsl.w ip, r2, lr + 8000296: fa22 f205 lsr.w r2, r2, r5 + 800029a: 1880 adds r0, r0, r2 + 800029c: f141 0100 adc.w r1, r1, #0 + 80002a0: fa03 f20e lsl.w r2, r3, lr + 80002a4: 1880 adds r0, r0, r2 + 80002a6: fa43 f305 asr.w r3, r3, r5 + 80002aa: 4159 adcs r1, r3 + 80002ac: e00e b.n 80002cc <__adddf3+0xd0> + 80002ae: f1a5 0520 sub.w r5, r5, #32 + 80002b2: f10e 0e20 add.w lr, lr, #32 + 80002b6: 2a01 cmp r2, #1 + 80002b8: fa03 fc0e lsl.w ip, r3, lr + 80002bc: bf28 it cs + 80002be: f04c 0c02 orrcs.w ip, ip, #2 + 80002c2: fa43 f305 asr.w r3, r3, r5 + 80002c6: 18c0 adds r0, r0, r3 + 80002c8: eb51 71e3 adcs.w r1, r1, r3, asr #31 + 80002cc: f001 4500 and.w r5, r1, #2147483648 ; 0x80000000 + 80002d0: d507 bpl.n 80002e2 <__adddf3+0xe6> + 80002d2: f04f 0e00 mov.w lr, #0 + 80002d6: f1dc 0c00 rsbs ip, ip, #0 + 80002da: eb7e 0000 sbcs.w r0, lr, r0 + 80002de: eb6e 0101 sbc.w r1, lr, r1 + 80002e2: f5b1 1f80 cmp.w r1, #1048576 ; 0x100000 + 80002e6: d31b bcc.n 8000320 <__adddf3+0x124> + 80002e8: f5b1 1f00 cmp.w r1, #2097152 ; 0x200000 + 80002ec: d30c bcc.n 8000308 <__adddf3+0x10c> + 80002ee: 0849 lsrs r1, r1, #1 + 80002f0: ea5f 0030 movs.w r0, r0, rrx + 80002f4: ea4f 0c3c mov.w ip, ip, rrx + 80002f8: f104 0401 add.w r4, r4, #1 + 80002fc: ea4f 5244 mov.w r2, r4, lsl #21 + 8000300: f512 0f80 cmn.w r2, #4194304 ; 0x400000 + 8000304: f080 809a bcs.w 800043c <__adddf3+0x240> + 8000308: f1bc 4f00 cmp.w ip, #2147483648 ; 0x80000000 + 800030c: bf08 it eq + 800030e: ea5f 0c50 movseq.w ip, r0, lsr #1 + 8000312: f150 0000 adcs.w r0, r0, #0 + 8000316: eb41 5104 adc.w r1, r1, r4, lsl #20 + 800031a: ea41 0105 orr.w r1, r1, r5 + 800031e: bd30 pop {r4, r5, pc} + 8000320: ea5f 0c4c movs.w ip, ip, lsl #1 + 8000324: 4140 adcs r0, r0 + 8000326: eb41 0101 adc.w r1, r1, r1 + 800032a: f411 1f80 tst.w r1, #1048576 ; 0x100000 + 800032e: f1a4 0401 sub.w r4, r4, #1 + 8000332: d1e9 bne.n 8000308 <__adddf3+0x10c> + 8000334: f091 0f00 teq r1, #0 + 8000338: bf04 itt eq + 800033a: 4601 moveq r1, r0 + 800033c: 2000 moveq r0, #0 + 800033e: fab1 f381 clz r3, r1 + 8000342: bf08 it eq + 8000344: 3320 addeq r3, #32 + 8000346: f1a3 030b sub.w r3, r3, #11 + 800034a: f1b3 0220 subs.w r2, r3, #32 + 800034e: da0c bge.n 800036a <__adddf3+0x16e> + 8000350: 320c adds r2, #12 + 8000352: dd08 ble.n 8000366 <__adddf3+0x16a> + 8000354: f102 0c14 add.w ip, r2, #20 + 8000358: f1c2 020c rsb r2, r2, #12 + 800035c: fa01 f00c lsl.w r0, r1, ip + 8000360: fa21 f102 lsr.w r1, r1, r2 + 8000364: e00c b.n 8000380 <__adddf3+0x184> + 8000366: f102 0214 add.w r2, r2, #20 + 800036a: bfd8 it le + 800036c: f1c2 0c20 rsble ip, r2, #32 + 8000370: fa01 f102 lsl.w r1, r1, r2 + 8000374: fa20 fc0c lsr.w ip, r0, ip + 8000378: bfdc itt le + 800037a: ea41 010c orrle.w r1, r1, ip + 800037e: 4090 lslle r0, r2 + 8000380: 1ae4 subs r4, r4, r3 + 8000382: bfa2 ittt ge + 8000384: eb01 5104 addge.w r1, r1, r4, lsl #20 + 8000388: 4329 orrge r1, r5 + 800038a: bd30 popge {r4, r5, pc} + 800038c: ea6f 0404 mvn.w r4, r4 + 8000390: 3c1f subs r4, #31 + 8000392: da1c bge.n 80003ce <__adddf3+0x1d2> + 8000394: 340c adds r4, #12 + 8000396: dc0e bgt.n 80003b6 <__adddf3+0x1ba> + 8000398: f104 0414 add.w r4, r4, #20 + 800039c: f1c4 0220 rsb r2, r4, #32 + 80003a0: fa20 f004 lsr.w r0, r0, r4 + 80003a4: fa01 f302 lsl.w r3, r1, r2 + 80003a8: ea40 0003 orr.w r0, r0, r3 + 80003ac: fa21 f304 lsr.w r3, r1, r4 + 80003b0: ea45 0103 orr.w r1, r5, r3 + 80003b4: bd30 pop {r4, r5, pc} + 80003b6: f1c4 040c rsb r4, r4, #12 + 80003ba: f1c4 0220 rsb r2, r4, #32 + 80003be: fa20 f002 lsr.w r0, r0, r2 + 80003c2: fa01 f304 lsl.w r3, r1, r4 + 80003c6: ea40 0003 orr.w r0, r0, r3 + 80003ca: 4629 mov r1, r5 + 80003cc: bd30 pop {r4, r5, pc} + 80003ce: fa21 f004 lsr.w r0, r1, r4 + 80003d2: 4629 mov r1, r5 + 80003d4: bd30 pop {r4, r5, pc} + 80003d6: f094 0f00 teq r4, #0 + 80003da: f483 1380 eor.w r3, r3, #1048576 ; 0x100000 + 80003de: bf06 itte eq + 80003e0: f481 1180 eoreq.w r1, r1, #1048576 ; 0x100000 + 80003e4: 3401 addeq r4, #1 + 80003e6: 3d01 subne r5, #1 + 80003e8: e74e b.n 8000288 <__adddf3+0x8c> + 80003ea: ea7f 5c64 mvns.w ip, r4, asr #21 + 80003ee: bf18 it ne + 80003f0: ea7f 5c65 mvnsne.w ip, r5, asr #21 + 80003f4: d029 beq.n 800044a <__adddf3+0x24e> + 80003f6: ea94 0f05 teq r4, r5 + 80003fa: bf08 it eq + 80003fc: ea90 0f02 teqeq r0, r2 + 8000400: d005 beq.n 800040e <__adddf3+0x212> + 8000402: ea54 0c00 orrs.w ip, r4, r0 + 8000406: bf04 itt eq + 8000408: 4619 moveq r1, r3 + 800040a: 4610 moveq r0, r2 + 800040c: bd30 pop {r4, r5, pc} + 800040e: ea91 0f03 teq r1, r3 + 8000412: bf1e ittt ne + 8000414: 2100 movne r1, #0 + 8000416: 2000 movne r0, #0 + 8000418: bd30 popne {r4, r5, pc} + 800041a: ea5f 5c54 movs.w ip, r4, lsr #21 + 800041e: d105 bne.n 800042c <__adddf3+0x230> + 8000420: 0040 lsls r0, r0, #1 + 8000422: 4149 adcs r1, r1 + 8000424: bf28 it cs + 8000426: f041 4100 orrcs.w r1, r1, #2147483648 ; 0x80000000 + 800042a: bd30 pop {r4, r5, pc} + 800042c: f514 0480 adds.w r4, r4, #4194304 ; 0x400000 + 8000430: bf3c itt cc + 8000432: f501 1180 addcc.w r1, r1, #1048576 ; 0x100000 + 8000436: bd30 popcc {r4, r5, pc} + 8000438: f001 4500 and.w r5, r1, #2147483648 ; 0x80000000 + 800043c: f045 41fe orr.w r1, r5, #2130706432 ; 0x7f000000 + 8000440: f441 0170 orr.w r1, r1, #15728640 ; 0xf00000 + 8000444: f04f 0000 mov.w r0, #0 + 8000448: bd30 pop {r4, r5, pc} + 800044a: ea7f 5c64 mvns.w ip, r4, asr #21 + 800044e: bf1a itte ne + 8000450: 4619 movne r1, r3 + 8000452: 4610 movne r0, r2 + 8000454: ea7f 5c65 mvnseq.w ip, r5, asr #21 + 8000458: bf1c itt ne + 800045a: 460b movne r3, r1 + 800045c: 4602 movne r2, r0 + 800045e: ea50 3401 orrs.w r4, r0, r1, lsl #12 + 8000462: bf06 itte eq + 8000464: ea52 3503 orrseq.w r5, r2, r3, lsl #12 + 8000468: ea91 0f03 teqeq r1, r3 + 800046c: f441 2100 orrne.w r1, r1, #524288 ; 0x80000 + 8000470: bd30 pop {r4, r5, pc} + 8000472: bf00 nop -080004ec

: +08000474 <__aeabi_ui2d>: + 8000474: f090 0f00 teq r0, #0 + 8000478: bf04 itt eq + 800047a: 2100 moveq r1, #0 + 800047c: 4770 bxeq lr + 800047e: b530 push {r4, r5, lr} + 8000480: f44f 6480 mov.w r4, #1024 ; 0x400 + 8000484: f104 0432 add.w r4, r4, #50 ; 0x32 + 8000488: f04f 0500 mov.w r5, #0 + 800048c: f04f 0100 mov.w r1, #0 + 8000490: e750 b.n 8000334 <__adddf3+0x138> + 8000492: bf00 nop + +08000494 <__aeabi_i2d>: + 8000494: f090 0f00 teq r0, #0 + 8000498: bf04 itt eq + 800049a: 2100 moveq r1, #0 + 800049c: 4770 bxeq lr + 800049e: b530 push {r4, r5, lr} + 80004a0: f44f 6480 mov.w r4, #1024 ; 0x400 + 80004a4: f104 0432 add.w r4, r4, #50 ; 0x32 + 80004a8: f010 4500 ands.w r5, r0, #2147483648 ; 0x80000000 + 80004ac: bf48 it mi + 80004ae: 4240 negmi r0, r0 + 80004b0: f04f 0100 mov.w r1, #0 + 80004b4: e73e b.n 8000334 <__adddf3+0x138> + 80004b6: bf00 nop + +080004b8 <__aeabi_f2d>: + 80004b8: 0042 lsls r2, r0, #1 + 80004ba: ea4f 01e2 mov.w r1, r2, asr #3 + 80004be: ea4f 0131 mov.w r1, r1, rrx + 80004c2: ea4f 7002 mov.w r0, r2, lsl #28 + 80004c6: bf1f itttt ne + 80004c8: f012 437f andsne.w r3, r2, #4278190080 ; 0xff000000 + 80004cc: f093 4f7f teqne r3, #4278190080 ; 0xff000000 + 80004d0: f081 5160 eorne.w r1, r1, #939524096 ; 0x38000000 + 80004d4: 4770 bxne lr + 80004d6: f032 427f bics.w r2, r2, #4278190080 ; 0xff000000 + 80004da: bf08 it eq + 80004dc: 4770 bxeq lr + 80004de: f093 4f7f teq r3, #4278190080 ; 0xff000000 + 80004e2: bf04 itt eq + 80004e4: f441 2100 orreq.w r1, r1, #524288 ; 0x80000 + 80004e8: 4770 bxeq lr + 80004ea: b530 push {r4, r5, lr} + 80004ec: f44f 7460 mov.w r4, #896 ; 0x380 + 80004f0: f001 4500 and.w r5, r1, #2147483648 ; 0x80000000 + 80004f4: f021 4100 bic.w r1, r1, #2147483648 ; 0x80000000 + 80004f8: e71c b.n 8000334 <__adddf3+0x138> + 80004fa: bf00 nop + +080004fc <__aeabi_ul2d>: + 80004fc: ea50 0201 orrs.w r2, r0, r1 + 8000500: bf08 it eq + 8000502: 4770 bxeq lr + 8000504: b530 push {r4, r5, lr} + 8000506: f04f 0500 mov.w r5, #0 + 800050a: e00a b.n 8000522 <__aeabi_l2d+0x16> + +0800050c <__aeabi_l2d>: + 800050c: ea50 0201 orrs.w r2, r0, r1 + 8000510: bf08 it eq + 8000512: 4770 bxeq lr + 8000514: b530 push {r4, r5, lr} + 8000516: f011 4500 ands.w r5, r1, #2147483648 ; 0x80000000 + 800051a: d502 bpl.n 8000522 <__aeabi_l2d+0x16> + 800051c: 4240 negs r0, r0 + 800051e: eb61 0141 sbc.w r1, r1, r1, lsl #1 + 8000522: f44f 6480 mov.w r4, #1024 ; 0x400 + 8000526: f104 0432 add.w r4, r4, #50 ; 0x32 + 800052a: ea5f 5c91 movs.w ip, r1, lsr #22 + 800052e: f43f aed8 beq.w 80002e2 <__adddf3+0xe6> + 8000532: f04f 0203 mov.w r2, #3 + 8000536: ea5f 0cdc movs.w ip, ip, lsr #3 + 800053a: bf18 it ne + 800053c: 3203 addne r2, #3 + 800053e: ea5f 0cdc movs.w ip, ip, lsr #3 + 8000542: bf18 it ne + 8000544: 3203 addne r2, #3 + 8000546: eb02 02dc add.w r2, r2, ip, lsr #3 + 800054a: f1c2 0320 rsb r3, r2, #32 + 800054e: fa00 fc03 lsl.w ip, r0, r3 + 8000552: fa20 f002 lsr.w r0, r0, r2 + 8000556: fa01 fe03 lsl.w lr, r1, r3 + 800055a: ea40 000e orr.w r0, r0, lr + 800055e: fa21 f102 lsr.w r1, r1, r2 + 8000562: 4414 add r4, r2 + 8000564: e6bd b.n 80002e2 <__adddf3+0xe6> + 8000566: bf00 nop + +08000568 <__aeabi_dmul>: + 8000568: b570 push {r4, r5, r6, lr} + 800056a: f04f 0cff mov.w ip, #255 ; 0xff + 800056e: f44c 6ce0 orr.w ip, ip, #1792 ; 0x700 + 8000572: ea1c 5411 ands.w r4, ip, r1, lsr #20 + 8000576: bf1d ittte ne + 8000578: ea1c 5513 andsne.w r5, ip, r3, lsr #20 + 800057c: ea94 0f0c teqne r4, ip + 8000580: ea95 0f0c teqne r5, ip + 8000584: f000 f8de bleq 8000744 <__aeabi_dmul+0x1dc> + 8000588: 442c add r4, r5 + 800058a: ea81 0603 eor.w r6, r1, r3 + 800058e: ea21 514c bic.w r1, r1, ip, lsl #21 + 8000592: ea23 534c bic.w r3, r3, ip, lsl #21 + 8000596: ea50 3501 orrs.w r5, r0, r1, lsl #12 + 800059a: bf18 it ne + 800059c: ea52 3503 orrsne.w r5, r2, r3, lsl #12 + 80005a0: f441 1180 orr.w r1, r1, #1048576 ; 0x100000 + 80005a4: f443 1380 orr.w r3, r3, #1048576 ; 0x100000 + 80005a8: d038 beq.n 800061c <__aeabi_dmul+0xb4> + 80005aa: fba0 ce02 umull ip, lr, r0, r2 + 80005ae: f04f 0500 mov.w r5, #0 + 80005b2: fbe1 e502 umlal lr, r5, r1, r2 + 80005b6: f006 4200 and.w r2, r6, #2147483648 ; 0x80000000 + 80005ba: fbe0 e503 umlal lr, r5, r0, r3 + 80005be: f04f 0600 mov.w r6, #0 + 80005c2: fbe1 5603 umlal r5, r6, r1, r3 + 80005c6: f09c 0f00 teq ip, #0 + 80005ca: bf18 it ne + 80005cc: f04e 0e01 orrne.w lr, lr, #1 + 80005d0: f1a4 04ff sub.w r4, r4, #255 ; 0xff + 80005d4: f5b6 7f00 cmp.w r6, #512 ; 0x200 + 80005d8: f564 7440 sbc.w r4, r4, #768 ; 0x300 + 80005dc: d204 bcs.n 80005e8 <__aeabi_dmul+0x80> + 80005de: ea5f 0e4e movs.w lr, lr, lsl #1 + 80005e2: 416d adcs r5, r5 + 80005e4: eb46 0606 adc.w r6, r6, r6 + 80005e8: ea42 21c6 orr.w r1, r2, r6, lsl #11 + 80005ec: ea41 5155 orr.w r1, r1, r5, lsr #21 + 80005f0: ea4f 20c5 mov.w r0, r5, lsl #11 + 80005f4: ea40 505e orr.w r0, r0, lr, lsr #21 + 80005f8: ea4f 2ece mov.w lr, lr, lsl #11 + 80005fc: f1b4 0cfd subs.w ip, r4, #253 ; 0xfd + 8000600: bf88 it hi + 8000602: f5bc 6fe0 cmphi.w ip, #1792 ; 0x700 + 8000606: d81e bhi.n 8000646 <__aeabi_dmul+0xde> + 8000608: f1be 4f00 cmp.w lr, #2147483648 ; 0x80000000 + 800060c: bf08 it eq + 800060e: ea5f 0e50 movseq.w lr, r0, lsr #1 + 8000612: f150 0000 adcs.w r0, r0, #0 + 8000616: eb41 5104 adc.w r1, r1, r4, lsl #20 + 800061a: bd70 pop {r4, r5, r6, pc} + 800061c: f006 4600 and.w r6, r6, #2147483648 ; 0x80000000 + 8000620: ea46 0101 orr.w r1, r6, r1 + 8000624: ea40 0002 orr.w r0, r0, r2 + 8000628: ea81 0103 eor.w r1, r1, r3 + 800062c: ebb4 045c subs.w r4, r4, ip, lsr #1 + 8000630: bfc2 ittt gt + 8000632: ebd4 050c rsbsgt r5, r4, ip + 8000636: ea41 5104 orrgt.w r1, r1, r4, lsl #20 + 800063a: bd70 popgt {r4, r5, r6, pc} + 800063c: f441 1180 orr.w r1, r1, #1048576 ; 0x100000 + 8000640: f04f 0e00 mov.w lr, #0 + 8000644: 3c01 subs r4, #1 + 8000646: f300 80ab bgt.w 80007a0 <__aeabi_dmul+0x238> + 800064a: f114 0f36 cmn.w r4, #54 ; 0x36 + 800064e: bfde ittt le + 8000650: 2000 movle r0, #0 + 8000652: f001 4100 andle.w r1, r1, #2147483648 ; 0x80000000 + 8000656: bd70 pople {r4, r5, r6, pc} + 8000658: f1c4 0400 rsb r4, r4, #0 + 800065c: 3c20 subs r4, #32 + 800065e: da35 bge.n 80006cc <__aeabi_dmul+0x164> + 8000660: 340c adds r4, #12 + 8000662: dc1b bgt.n 800069c <__aeabi_dmul+0x134> + 8000664: f104 0414 add.w r4, r4, #20 + 8000668: f1c4 0520 rsb r5, r4, #32 + 800066c: fa00 f305 lsl.w r3, r0, r5 + 8000670: fa20 f004 lsr.w r0, r0, r4 + 8000674: fa01 f205 lsl.w r2, r1, r5 + 8000678: ea40 0002 orr.w r0, r0, r2 + 800067c: f001 4200 and.w r2, r1, #2147483648 ; 0x80000000 + 8000680: f021 4100 bic.w r1, r1, #2147483648 ; 0x80000000 + 8000684: eb10 70d3 adds.w r0, r0, r3, lsr #31 + 8000688: fa21 f604 lsr.w r6, r1, r4 + 800068c: eb42 0106 adc.w r1, r2, r6 + 8000690: ea5e 0e43 orrs.w lr, lr, r3, lsl #1 + 8000694: bf08 it eq + 8000696: ea20 70d3 biceq.w r0, r0, r3, lsr #31 + 800069a: bd70 pop {r4, r5, r6, pc} + 800069c: f1c4 040c rsb r4, r4, #12 + 80006a0: f1c4 0520 rsb r5, r4, #32 + 80006a4: fa00 f304 lsl.w r3, r0, r4 + 80006a8: fa20 f005 lsr.w r0, r0, r5 + 80006ac: fa01 f204 lsl.w r2, r1, r4 + 80006b0: ea40 0002 orr.w r0, r0, r2 + 80006b4: f001 4100 and.w r1, r1, #2147483648 ; 0x80000000 + 80006b8: eb10 70d3 adds.w r0, r0, r3, lsr #31 + 80006bc: f141 0100 adc.w r1, r1, #0 + 80006c0: ea5e 0e43 orrs.w lr, lr, r3, lsl #1 + 80006c4: bf08 it eq + 80006c6: ea20 70d3 biceq.w r0, r0, r3, lsr #31 + 80006ca: bd70 pop {r4, r5, r6, pc} + 80006cc: f1c4 0520 rsb r5, r4, #32 + 80006d0: fa00 f205 lsl.w r2, r0, r5 + 80006d4: ea4e 0e02 orr.w lr, lr, r2 + 80006d8: fa20 f304 lsr.w r3, r0, r4 + 80006dc: fa01 f205 lsl.w r2, r1, r5 + 80006e0: ea43 0302 orr.w r3, r3, r2 + 80006e4: fa21 f004 lsr.w r0, r1, r4 + 80006e8: f001 4100 and.w r1, r1, #2147483648 ; 0x80000000 + 80006ec: fa21 f204 lsr.w r2, r1, r4 + 80006f0: ea20 0002 bic.w r0, r0, r2 + 80006f4: eb00 70d3 add.w r0, r0, r3, lsr #31 + 80006f8: ea5e 0e43 orrs.w lr, lr, r3, lsl #1 + 80006fc: bf08 it eq + 80006fe: ea20 70d3 biceq.w r0, r0, r3, lsr #31 + 8000702: bd70 pop {r4, r5, r6, pc} + 8000704: f094 0f00 teq r4, #0 + 8000708: d10f bne.n 800072a <__aeabi_dmul+0x1c2> + 800070a: f001 4600 and.w r6, r1, #2147483648 ; 0x80000000 + 800070e: 0040 lsls r0, r0, #1 + 8000710: eb41 0101 adc.w r1, r1, r1 + 8000714: f411 1f80 tst.w r1, #1048576 ; 0x100000 + 8000718: bf08 it eq + 800071a: 3c01 subeq r4, #1 + 800071c: d0f7 beq.n 800070e <__aeabi_dmul+0x1a6> + 800071e: ea41 0106 orr.w r1, r1, r6 + 8000722: f095 0f00 teq r5, #0 + 8000726: bf18 it ne + 8000728: 4770 bxne lr + 800072a: f003 4600 and.w r6, r3, #2147483648 ; 0x80000000 + 800072e: 0052 lsls r2, r2, #1 + 8000730: eb43 0303 adc.w r3, r3, r3 + 8000734: f413 1f80 tst.w r3, #1048576 ; 0x100000 + 8000738: bf08 it eq + 800073a: 3d01 subeq r5, #1 + 800073c: d0f7 beq.n 800072e <__aeabi_dmul+0x1c6> + 800073e: ea43 0306 orr.w r3, r3, r6 + 8000742: 4770 bx lr + 8000744: ea94 0f0c teq r4, ip + 8000748: ea0c 5513 and.w r5, ip, r3, lsr #20 + 800074c: bf18 it ne + 800074e: ea95 0f0c teqne r5, ip + 8000752: d00c beq.n 800076e <__aeabi_dmul+0x206> + 8000754: ea50 0641 orrs.w r6, r0, r1, lsl #1 + 8000758: bf18 it ne + 800075a: ea52 0643 orrsne.w r6, r2, r3, lsl #1 + 800075e: d1d1 bne.n 8000704 <__aeabi_dmul+0x19c> + 8000760: ea81 0103 eor.w r1, r1, r3 + 8000764: f001 4100 and.w r1, r1, #2147483648 ; 0x80000000 + 8000768: f04f 0000 mov.w r0, #0 + 800076c: bd70 pop {r4, r5, r6, pc} + 800076e: ea50 0641 orrs.w r6, r0, r1, lsl #1 + 8000772: bf06 itte eq + 8000774: 4610 moveq r0, r2 + 8000776: 4619 moveq r1, r3 + 8000778: ea52 0643 orrsne.w r6, r2, r3, lsl #1 + 800077c: d019 beq.n 80007b2 <__aeabi_dmul+0x24a> + 800077e: ea94 0f0c teq r4, ip + 8000782: d102 bne.n 800078a <__aeabi_dmul+0x222> + 8000784: ea50 3601 orrs.w r6, r0, r1, lsl #12 + 8000788: d113 bne.n 80007b2 <__aeabi_dmul+0x24a> + 800078a: ea95 0f0c teq r5, ip + 800078e: d105 bne.n 800079c <__aeabi_dmul+0x234> + 8000790: ea52 3603 orrs.w r6, r2, r3, lsl #12 + 8000794: bf1c itt ne + 8000796: 4610 movne r0, r2 + 8000798: 4619 movne r1, r3 + 800079a: d10a bne.n 80007b2 <__aeabi_dmul+0x24a> + 800079c: ea81 0103 eor.w r1, r1, r3 + 80007a0: f001 4100 and.w r1, r1, #2147483648 ; 0x80000000 + 80007a4: f041 41fe orr.w r1, r1, #2130706432 ; 0x7f000000 + 80007a8: f441 0170 orr.w r1, r1, #15728640 ; 0xf00000 + 80007ac: f04f 0000 mov.w r0, #0 + 80007b0: bd70 pop {r4, r5, r6, pc} + 80007b2: f041 41fe orr.w r1, r1, #2130706432 ; 0x7f000000 + 80007b6: f441 0178 orr.w r1, r1, #16252928 ; 0xf80000 + 80007ba: bd70 pop {r4, r5, r6, pc} + +080007bc <__aeabi_ddiv>: + 80007bc: b570 push {r4, r5, r6, lr} + 80007be: f04f 0cff mov.w ip, #255 ; 0xff + 80007c2: f44c 6ce0 orr.w ip, ip, #1792 ; 0x700 + 80007c6: ea1c 5411 ands.w r4, ip, r1, lsr #20 + 80007ca: bf1d ittte ne + 80007cc: ea1c 5513 andsne.w r5, ip, r3, lsr #20 + 80007d0: ea94 0f0c teqne r4, ip + 80007d4: ea95 0f0c teqne r5, ip + 80007d8: f000 f8a7 bleq 800092a <__aeabi_ddiv+0x16e> + 80007dc: eba4 0405 sub.w r4, r4, r5 + 80007e0: ea81 0e03 eor.w lr, r1, r3 + 80007e4: ea52 3503 orrs.w r5, r2, r3, lsl #12 + 80007e8: ea4f 3101 mov.w r1, r1, lsl #12 + 80007ec: f000 8088 beq.w 8000900 <__aeabi_ddiv+0x144> + 80007f0: ea4f 3303 mov.w r3, r3, lsl #12 + 80007f4: f04f 5580 mov.w r5, #268435456 ; 0x10000000 + 80007f8: ea45 1313 orr.w r3, r5, r3, lsr #4 + 80007fc: ea43 6312 orr.w r3, r3, r2, lsr #24 + 8000800: ea4f 2202 mov.w r2, r2, lsl #8 + 8000804: ea45 1511 orr.w r5, r5, r1, lsr #4 + 8000808: ea45 6510 orr.w r5, r5, r0, lsr #24 + 800080c: ea4f 2600 mov.w r6, r0, lsl #8 + 8000810: f00e 4100 and.w r1, lr, #2147483648 ; 0x80000000 + 8000814: 429d cmp r5, r3 + 8000816: bf08 it eq + 8000818: 4296 cmpeq r6, r2 + 800081a: f144 04fd adc.w r4, r4, #253 ; 0xfd + 800081e: f504 7440 add.w r4, r4, #768 ; 0x300 + 8000822: d202 bcs.n 800082a <__aeabi_ddiv+0x6e> + 8000824: 085b lsrs r3, r3, #1 + 8000826: ea4f 0232 mov.w r2, r2, rrx + 800082a: 1ab6 subs r6, r6, r2 + 800082c: eb65 0503 sbc.w r5, r5, r3 + 8000830: 085b lsrs r3, r3, #1 + 8000832: ea4f 0232 mov.w r2, r2, rrx + 8000836: f44f 1080 mov.w r0, #1048576 ; 0x100000 + 800083a: f44f 2c00 mov.w ip, #524288 ; 0x80000 + 800083e: ebb6 0e02 subs.w lr, r6, r2 + 8000842: eb75 0e03 sbcs.w lr, r5, r3 + 8000846: bf22 ittt cs + 8000848: 1ab6 subcs r6, r6, r2 + 800084a: 4675 movcs r5, lr + 800084c: ea40 000c orrcs.w r0, r0, ip + 8000850: 085b lsrs r3, r3, #1 + 8000852: ea4f 0232 mov.w r2, r2, rrx + 8000856: ebb6 0e02 subs.w lr, r6, r2 + 800085a: eb75 0e03 sbcs.w lr, r5, r3 + 800085e: bf22 ittt cs + 8000860: 1ab6 subcs r6, r6, r2 + 8000862: 4675 movcs r5, lr + 8000864: ea40 005c orrcs.w r0, r0, ip, lsr #1 + 8000868: 085b lsrs r3, r3, #1 + 800086a: ea4f 0232 mov.w r2, r2, rrx + 800086e: ebb6 0e02 subs.w lr, r6, r2 + 8000872: eb75 0e03 sbcs.w lr, r5, r3 + 8000876: bf22 ittt cs + 8000878: 1ab6 subcs r6, r6, r2 + 800087a: 4675 movcs r5, lr + 800087c: ea40 009c orrcs.w r0, r0, ip, lsr #2 + 8000880: 085b lsrs r3, r3, #1 + 8000882: ea4f 0232 mov.w r2, r2, rrx + 8000886: ebb6 0e02 subs.w lr, r6, r2 + 800088a: eb75 0e03 sbcs.w lr, r5, r3 + 800088e: bf22 ittt cs + 8000890: 1ab6 subcs r6, r6, r2 + 8000892: 4675 movcs r5, lr + 8000894: ea40 00dc orrcs.w r0, r0, ip, lsr #3 + 8000898: ea55 0e06 orrs.w lr, r5, r6 + 800089c: d018 beq.n 80008d0 <__aeabi_ddiv+0x114> + 800089e: ea4f 1505 mov.w r5, r5, lsl #4 + 80008a2: ea45 7516 orr.w r5, r5, r6, lsr #28 + 80008a6: ea4f 1606 mov.w r6, r6, lsl #4 + 80008aa: ea4f 03c3 mov.w r3, r3, lsl #3 + 80008ae: ea43 7352 orr.w r3, r3, r2, lsr #29 + 80008b2: ea4f 02c2 mov.w r2, r2, lsl #3 + 80008b6: ea5f 1c1c movs.w ip, ip, lsr #4 + 80008ba: d1c0 bne.n 800083e <__aeabi_ddiv+0x82> + 80008bc: f411 1f80 tst.w r1, #1048576 ; 0x100000 + 80008c0: d10b bne.n 80008da <__aeabi_ddiv+0x11e> + 80008c2: ea41 0100 orr.w r1, r1, r0 + 80008c6: f04f 0000 mov.w r0, #0 + 80008ca: f04f 4c00 mov.w ip, #2147483648 ; 0x80000000 + 80008ce: e7b6 b.n 800083e <__aeabi_ddiv+0x82> + 80008d0: f411 1f80 tst.w r1, #1048576 ; 0x100000 + 80008d4: bf04 itt eq + 80008d6: 4301 orreq r1, r0 + 80008d8: 2000 moveq r0, #0 + 80008da: f1b4 0cfd subs.w ip, r4, #253 ; 0xfd + 80008de: bf88 it hi + 80008e0: f5bc 6fe0 cmphi.w ip, #1792 ; 0x700 + 80008e4: f63f aeaf bhi.w 8000646 <__aeabi_dmul+0xde> + 80008e8: ebb5 0c03 subs.w ip, r5, r3 + 80008ec: bf04 itt eq + 80008ee: ebb6 0c02 subseq.w ip, r6, r2 + 80008f2: ea5f 0c50 movseq.w ip, r0, lsr #1 + 80008f6: f150 0000 adcs.w r0, r0, #0 + 80008fa: eb41 5104 adc.w r1, r1, r4, lsl #20 + 80008fe: bd70 pop {r4, r5, r6, pc} + 8000900: f00e 4e00 and.w lr, lr, #2147483648 ; 0x80000000 + 8000904: ea4e 3111 orr.w r1, lr, r1, lsr #12 + 8000908: eb14 045c adds.w r4, r4, ip, lsr #1 + 800090c: bfc2 ittt gt + 800090e: ebd4 050c rsbsgt r5, r4, ip + 8000912: ea41 5104 orrgt.w r1, r1, r4, lsl #20 + 8000916: bd70 popgt {r4, r5, r6, pc} + 8000918: f441 1180 orr.w r1, r1, #1048576 ; 0x100000 + 800091c: f04f 0e00 mov.w lr, #0 + 8000920: 3c01 subs r4, #1 + 8000922: e690 b.n 8000646 <__aeabi_dmul+0xde> + 8000924: ea45 0e06 orr.w lr, r5, r6 + 8000928: e68d b.n 8000646 <__aeabi_dmul+0xde> + 800092a: ea0c 5513 and.w r5, ip, r3, lsr #20 + 800092e: ea94 0f0c teq r4, ip + 8000932: bf08 it eq + 8000934: ea95 0f0c teqeq r5, ip + 8000938: f43f af3b beq.w 80007b2 <__aeabi_dmul+0x24a> + 800093c: ea94 0f0c teq r4, ip + 8000940: d10a bne.n 8000958 <__aeabi_ddiv+0x19c> + 8000942: ea50 3401 orrs.w r4, r0, r1, lsl #12 + 8000946: f47f af34 bne.w 80007b2 <__aeabi_dmul+0x24a> + 800094a: ea95 0f0c teq r5, ip + 800094e: f47f af25 bne.w 800079c <__aeabi_dmul+0x234> + 8000952: 4610 mov r0, r2 + 8000954: 4619 mov r1, r3 + 8000956: e72c b.n 80007b2 <__aeabi_dmul+0x24a> + 8000958: ea95 0f0c teq r5, ip + 800095c: d106 bne.n 800096c <__aeabi_ddiv+0x1b0> + 800095e: ea52 3503 orrs.w r5, r2, r3, lsl #12 + 8000962: f43f aefd beq.w 8000760 <__aeabi_dmul+0x1f8> + 8000966: 4610 mov r0, r2 + 8000968: 4619 mov r1, r3 + 800096a: e722 b.n 80007b2 <__aeabi_dmul+0x24a> + 800096c: ea50 0641 orrs.w r6, r0, r1, lsl #1 + 8000970: bf18 it ne + 8000972: ea52 0643 orrsne.w r6, r2, r3, lsl #1 + 8000976: f47f aec5 bne.w 8000704 <__aeabi_dmul+0x19c> + 800097a: ea50 0441 orrs.w r4, r0, r1, lsl #1 + 800097e: f47f af0d bne.w 800079c <__aeabi_dmul+0x234> + 8000982: ea52 0543 orrs.w r5, r2, r3, lsl #1 + 8000986: f47f aeeb bne.w 8000760 <__aeabi_dmul+0x1f8> + 800098a: e712 b.n 80007b2 <__aeabi_dmul+0x24a> + +0800098c <__aeabi_d2uiz>: + 800098c: 004a lsls r2, r1, #1 + 800098e: d211 bcs.n 80009b4 <__aeabi_d2uiz+0x28> + 8000990: f512 1200 adds.w r2, r2, #2097152 ; 0x200000 + 8000994: d211 bcs.n 80009ba <__aeabi_d2uiz+0x2e> + 8000996: d50d bpl.n 80009b4 <__aeabi_d2uiz+0x28> + 8000998: f46f 7378 mvn.w r3, #992 ; 0x3e0 + 800099c: ebb3 5262 subs.w r2, r3, r2, asr #21 + 80009a0: d40e bmi.n 80009c0 <__aeabi_d2uiz+0x34> + 80009a2: ea4f 23c1 mov.w r3, r1, lsl #11 + 80009a6: f043 4300 orr.w r3, r3, #2147483648 ; 0x80000000 + 80009aa: ea43 5350 orr.w r3, r3, r0, lsr #21 + 80009ae: fa23 f002 lsr.w r0, r3, r2 + 80009b2: 4770 bx lr + 80009b4: f04f 0000 mov.w r0, #0 + 80009b8: 4770 bx lr + 80009ba: ea50 3001 orrs.w r0, r0, r1, lsl #12 + 80009be: d102 bne.n 80009c6 <__aeabi_d2uiz+0x3a> + 80009c0: f04f 30ff mov.w r0, #4294967295 + 80009c4: 4770 bx lr + 80009c6: f04f 0000 mov.w r0, #0 + 80009ca: 4770 bx lr + +080009cc <__aeabi_uldivmod>: + 80009cc: b953 cbnz r3, 80009e4 <__aeabi_uldivmod+0x18> + 80009ce: b94a cbnz r2, 80009e4 <__aeabi_uldivmod+0x18> + 80009d0: 2900 cmp r1, #0 + 80009d2: bf08 it eq + 80009d4: 2800 cmpeq r0, #0 + 80009d6: bf1c itt ne + 80009d8: f04f 31ff movne.w r1, #4294967295 + 80009dc: f04f 30ff movne.w r0, #4294967295 + 80009e0: f000 b972 b.w 8000cc8 <__aeabi_idiv0> + 80009e4: f1ad 0c08 sub.w ip, sp, #8 + 80009e8: e96d ce04 strd ip, lr, [sp, #-16]! + 80009ec: f000 f806 bl 80009fc <__udivmoddi4> + 80009f0: f8dd e004 ldr.w lr, [sp, #4] + 80009f4: e9dd 2302 ldrd r2, r3, [sp, #8] + 80009f8: b004 add sp, #16 + 80009fa: 4770 bx lr + +080009fc <__udivmoddi4>: + 80009fc: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} + 8000a00: 9e08 ldr r6, [sp, #32] + 8000a02: 4604 mov r4, r0 + 8000a04: 4688 mov r8, r1 + 8000a06: 2b00 cmp r3, #0 + 8000a08: d14b bne.n 8000aa2 <__udivmoddi4+0xa6> + 8000a0a: 428a cmp r2, r1 + 8000a0c: 4615 mov r5, r2 + 8000a0e: d967 bls.n 8000ae0 <__udivmoddi4+0xe4> + 8000a10: fab2 f282 clz r2, r2 + 8000a14: b14a cbz r2, 8000a2a <__udivmoddi4+0x2e> + 8000a16: f1c2 0720 rsb r7, r2, #32 + 8000a1a: fa01 f302 lsl.w r3, r1, r2 + 8000a1e: fa20 f707 lsr.w r7, r0, r7 + 8000a22: 4095 lsls r5, r2 + 8000a24: ea47 0803 orr.w r8, r7, r3 + 8000a28: 4094 lsls r4, r2 + 8000a2a: ea4f 4e15 mov.w lr, r5, lsr #16 + 8000a2e: 0c23 lsrs r3, r4, #16 + 8000a30: fbb8 f7fe udiv r7, r8, lr + 8000a34: fa1f fc85 uxth.w ip, r5 + 8000a38: fb0e 8817 mls r8, lr, r7, r8 + 8000a3c: ea43 4308 orr.w r3, r3, r8, lsl #16 + 8000a40: fb07 f10c mul.w r1, r7, ip + 8000a44: 4299 cmp r1, r3 + 8000a46: d909 bls.n 8000a5c <__udivmoddi4+0x60> + 8000a48: 18eb adds r3, r5, r3 + 8000a4a: f107 30ff add.w r0, r7, #4294967295 + 8000a4e: f080 811b bcs.w 8000c88 <__udivmoddi4+0x28c> + 8000a52: 4299 cmp r1, r3 + 8000a54: f240 8118 bls.w 8000c88 <__udivmoddi4+0x28c> + 8000a58: 3f02 subs r7, #2 + 8000a5a: 442b add r3, r5 + 8000a5c: 1a5b subs r3, r3, r1 + 8000a5e: b2a4 uxth r4, r4 + 8000a60: fbb3 f0fe udiv r0, r3, lr + 8000a64: fb0e 3310 mls r3, lr, r0, r3 + 8000a68: ea44 4403 orr.w r4, r4, r3, lsl #16 + 8000a6c: fb00 fc0c mul.w ip, r0, ip + 8000a70: 45a4 cmp ip, r4 + 8000a72: d909 bls.n 8000a88 <__udivmoddi4+0x8c> + 8000a74: 192c adds r4, r5, r4 + 8000a76: f100 33ff add.w r3, r0, #4294967295 + 8000a7a: f080 8107 bcs.w 8000c8c <__udivmoddi4+0x290> + 8000a7e: 45a4 cmp ip, r4 + 8000a80: f240 8104 bls.w 8000c8c <__udivmoddi4+0x290> + 8000a84: 3802 subs r0, #2 + 8000a86: 442c add r4, r5 + 8000a88: ea40 4007 orr.w r0, r0, r7, lsl #16 + 8000a8c: eba4 040c sub.w r4, r4, ip + 8000a90: 2700 movs r7, #0 + 8000a92: b11e cbz r6, 8000a9c <__udivmoddi4+0xa0> + 8000a94: 40d4 lsrs r4, r2 + 8000a96: 2300 movs r3, #0 + 8000a98: e9c6 4300 strd r4, r3, [r6] + 8000a9c: 4639 mov r1, r7 + 8000a9e: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} + 8000aa2: 428b cmp r3, r1 + 8000aa4: d909 bls.n 8000aba <__udivmoddi4+0xbe> + 8000aa6: 2e00 cmp r6, #0 + 8000aa8: f000 80eb beq.w 8000c82 <__udivmoddi4+0x286> + 8000aac: 2700 movs r7, #0 + 8000aae: e9c6 0100 strd r0, r1, [r6] + 8000ab2: 4638 mov r0, r7 + 8000ab4: 4639 mov r1, r7 + 8000ab6: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} + 8000aba: fab3 f783 clz r7, r3 + 8000abe: 2f00 cmp r7, #0 + 8000ac0: d147 bne.n 8000b52 <__udivmoddi4+0x156> + 8000ac2: 428b cmp r3, r1 + 8000ac4: d302 bcc.n 8000acc <__udivmoddi4+0xd0> + 8000ac6: 4282 cmp r2, r0 + 8000ac8: f200 80fa bhi.w 8000cc0 <__udivmoddi4+0x2c4> + 8000acc: 1a84 subs r4, r0, r2 + 8000ace: eb61 0303 sbc.w r3, r1, r3 + 8000ad2: 2001 movs r0, #1 + 8000ad4: 4698 mov r8, r3 + 8000ad6: 2e00 cmp r6, #0 + 8000ad8: d0e0 beq.n 8000a9c <__udivmoddi4+0xa0> + 8000ada: e9c6 4800 strd r4, r8, [r6] + 8000ade: e7dd b.n 8000a9c <__udivmoddi4+0xa0> + 8000ae0: b902 cbnz r2, 8000ae4 <__udivmoddi4+0xe8> + 8000ae2: deff udf #255 ; 0xff + 8000ae4: fab2 f282 clz r2, r2 + 8000ae8: 2a00 cmp r2, #0 + 8000aea: f040 808f bne.w 8000c0c <__udivmoddi4+0x210> + 8000aee: 1b49 subs r1, r1, r5 + 8000af0: ea4f 4e15 mov.w lr, r5, lsr #16 + 8000af4: fa1f f885 uxth.w r8, r5 + 8000af8: 2701 movs r7, #1 + 8000afa: fbb1 fcfe udiv ip, r1, lr + 8000afe: 0c23 lsrs r3, r4, #16 + 8000b00: fb0e 111c mls r1, lr, ip, r1 + 8000b04: ea43 4301 orr.w r3, r3, r1, lsl #16 + 8000b08: fb08 f10c mul.w r1, r8, ip + 8000b0c: 4299 cmp r1, r3 + 8000b0e: d907 bls.n 8000b20 <__udivmoddi4+0x124> + 8000b10: 18eb adds r3, r5, r3 + 8000b12: f10c 30ff add.w r0, ip, #4294967295 + 8000b16: d202 bcs.n 8000b1e <__udivmoddi4+0x122> + 8000b18: 4299 cmp r1, r3 + 8000b1a: f200 80cd bhi.w 8000cb8 <__udivmoddi4+0x2bc> + 8000b1e: 4684 mov ip, r0 + 8000b20: 1a59 subs r1, r3, r1 + 8000b22: b2a3 uxth r3, r4 + 8000b24: fbb1 f0fe udiv r0, r1, lr + 8000b28: fb0e 1410 mls r4, lr, r0, r1 + 8000b2c: ea43 4404 orr.w r4, r3, r4, lsl #16 + 8000b30: fb08 f800 mul.w r8, r8, r0 + 8000b34: 45a0 cmp r8, r4 + 8000b36: d907 bls.n 8000b48 <__udivmoddi4+0x14c> + 8000b38: 192c adds r4, r5, r4 + 8000b3a: f100 33ff add.w r3, r0, #4294967295 + 8000b3e: d202 bcs.n 8000b46 <__udivmoddi4+0x14a> + 8000b40: 45a0 cmp r8, r4 + 8000b42: f200 80b6 bhi.w 8000cb2 <__udivmoddi4+0x2b6> + 8000b46: 4618 mov r0, r3 + 8000b48: eba4 0408 sub.w r4, r4, r8 + 8000b4c: ea40 400c orr.w r0, r0, ip, lsl #16 + 8000b50: e79f b.n 8000a92 <__udivmoddi4+0x96> + 8000b52: f1c7 0c20 rsb ip, r7, #32 + 8000b56: 40bb lsls r3, r7 + 8000b58: fa22 fe0c lsr.w lr, r2, ip + 8000b5c: ea4e 0e03 orr.w lr, lr, r3 + 8000b60: fa01 f407 lsl.w r4, r1, r7 + 8000b64: fa20 f50c lsr.w r5, r0, ip + 8000b68: fa21 f30c lsr.w r3, r1, ip + 8000b6c: ea4f 481e mov.w r8, lr, lsr #16 + 8000b70: 4325 orrs r5, r4 + 8000b72: fbb3 f9f8 udiv r9, r3, r8 + 8000b76: 0c2c lsrs r4, r5, #16 + 8000b78: fb08 3319 mls r3, r8, r9, r3 + 8000b7c: fa1f fa8e uxth.w sl, lr + 8000b80: ea44 4303 orr.w r3, r4, r3, lsl #16 + 8000b84: fb09 f40a mul.w r4, r9, sl + 8000b88: 429c cmp r4, r3 + 8000b8a: fa02 f207 lsl.w r2, r2, r7 + 8000b8e: fa00 f107 lsl.w r1, r0, r7 + 8000b92: d90b bls.n 8000bac <__udivmoddi4+0x1b0> + 8000b94: eb1e 0303 adds.w r3, lr, r3 + 8000b98: f109 30ff add.w r0, r9, #4294967295 + 8000b9c: f080 8087 bcs.w 8000cae <__udivmoddi4+0x2b2> + 8000ba0: 429c cmp r4, r3 + 8000ba2: f240 8084 bls.w 8000cae <__udivmoddi4+0x2b2> + 8000ba6: f1a9 0902 sub.w r9, r9, #2 + 8000baa: 4473 add r3, lr + 8000bac: 1b1b subs r3, r3, r4 + 8000bae: b2ad uxth r5, r5 + 8000bb0: fbb3 f0f8 udiv r0, r3, r8 + 8000bb4: fb08 3310 mls r3, r8, r0, r3 + 8000bb8: ea45 4403 orr.w r4, r5, r3, lsl #16 + 8000bbc: fb00 fa0a mul.w sl, r0, sl + 8000bc0: 45a2 cmp sl, r4 + 8000bc2: d908 bls.n 8000bd6 <__udivmoddi4+0x1da> + 8000bc4: eb1e 0404 adds.w r4, lr, r4 + 8000bc8: f100 33ff add.w r3, r0, #4294967295 + 8000bcc: d26b bcs.n 8000ca6 <__udivmoddi4+0x2aa> + 8000bce: 45a2 cmp sl, r4 + 8000bd0: d969 bls.n 8000ca6 <__udivmoddi4+0x2aa> + 8000bd2: 3802 subs r0, #2 + 8000bd4: 4474 add r4, lr + 8000bd6: ea40 4009 orr.w r0, r0, r9, lsl #16 + 8000bda: fba0 8902 umull r8, r9, r0, r2 + 8000bde: eba4 040a sub.w r4, r4, sl + 8000be2: 454c cmp r4, r9 + 8000be4: 46c2 mov sl, r8 + 8000be6: 464b mov r3, r9 + 8000be8: d354 bcc.n 8000c94 <__udivmoddi4+0x298> + 8000bea: d051 beq.n 8000c90 <__udivmoddi4+0x294> + 8000bec: 2e00 cmp r6, #0 + 8000bee: d069 beq.n 8000cc4 <__udivmoddi4+0x2c8> + 8000bf0: ebb1 050a subs.w r5, r1, sl + 8000bf4: eb64 0403 sbc.w r4, r4, r3 + 8000bf8: fa04 fc0c lsl.w ip, r4, ip + 8000bfc: 40fd lsrs r5, r7 + 8000bfe: 40fc lsrs r4, r7 + 8000c00: ea4c 0505 orr.w r5, ip, r5 + 8000c04: e9c6 5400 strd r5, r4, [r6] + 8000c08: 2700 movs r7, #0 + 8000c0a: e747 b.n 8000a9c <__udivmoddi4+0xa0> + 8000c0c: f1c2 0320 rsb r3, r2, #32 + 8000c10: fa20 f703 lsr.w r7, r0, r3 + 8000c14: 4095 lsls r5, r2 + 8000c16: fa01 f002 lsl.w r0, r1, r2 + 8000c1a: fa21 f303 lsr.w r3, r1, r3 + 8000c1e: ea4f 4e15 mov.w lr, r5, lsr #16 + 8000c22: 4338 orrs r0, r7 + 8000c24: 0c01 lsrs r1, r0, #16 + 8000c26: fbb3 f7fe udiv r7, r3, lr + 8000c2a: fa1f f885 uxth.w r8, r5 + 8000c2e: fb0e 3317 mls r3, lr, r7, r3 + 8000c32: ea41 4103 orr.w r1, r1, r3, lsl #16 + 8000c36: fb07 f308 mul.w r3, r7, r8 + 8000c3a: 428b cmp r3, r1 + 8000c3c: fa04 f402 lsl.w r4, r4, r2 + 8000c40: d907 bls.n 8000c52 <__udivmoddi4+0x256> + 8000c42: 1869 adds r1, r5, r1 + 8000c44: f107 3cff add.w ip, r7, #4294967295 + 8000c48: d22f bcs.n 8000caa <__udivmoddi4+0x2ae> + 8000c4a: 428b cmp r3, r1 + 8000c4c: d92d bls.n 8000caa <__udivmoddi4+0x2ae> + 8000c4e: 3f02 subs r7, #2 + 8000c50: 4429 add r1, r5 + 8000c52: 1acb subs r3, r1, r3 + 8000c54: b281 uxth r1, r0 + 8000c56: fbb3 f0fe udiv r0, r3, lr + 8000c5a: fb0e 3310 mls r3, lr, r0, r3 + 8000c5e: ea41 4103 orr.w r1, r1, r3, lsl #16 + 8000c62: fb00 f308 mul.w r3, r0, r8 + 8000c66: 428b cmp r3, r1 + 8000c68: d907 bls.n 8000c7a <__udivmoddi4+0x27e> + 8000c6a: 1869 adds r1, r5, r1 + 8000c6c: f100 3cff add.w ip, r0, #4294967295 + 8000c70: d217 bcs.n 8000ca2 <__udivmoddi4+0x2a6> + 8000c72: 428b cmp r3, r1 + 8000c74: d915 bls.n 8000ca2 <__udivmoddi4+0x2a6> + 8000c76: 3802 subs r0, #2 + 8000c78: 4429 add r1, r5 + 8000c7a: 1ac9 subs r1, r1, r3 + 8000c7c: ea40 4707 orr.w r7, r0, r7, lsl #16 + 8000c80: e73b b.n 8000afa <__udivmoddi4+0xfe> + 8000c82: 4637 mov r7, r6 + 8000c84: 4630 mov r0, r6 + 8000c86: e709 b.n 8000a9c <__udivmoddi4+0xa0> + 8000c88: 4607 mov r7, r0 + 8000c8a: e6e7 b.n 8000a5c <__udivmoddi4+0x60> + 8000c8c: 4618 mov r0, r3 + 8000c8e: e6fb b.n 8000a88 <__udivmoddi4+0x8c> + 8000c90: 4541 cmp r1, r8 + 8000c92: d2ab bcs.n 8000bec <__udivmoddi4+0x1f0> + 8000c94: ebb8 0a02 subs.w sl, r8, r2 + 8000c98: eb69 020e sbc.w r2, r9, lr + 8000c9c: 3801 subs r0, #1 + 8000c9e: 4613 mov r3, r2 + 8000ca0: e7a4 b.n 8000bec <__udivmoddi4+0x1f0> + 8000ca2: 4660 mov r0, ip + 8000ca4: e7e9 b.n 8000c7a <__udivmoddi4+0x27e> + 8000ca6: 4618 mov r0, r3 + 8000ca8: e795 b.n 8000bd6 <__udivmoddi4+0x1da> + 8000caa: 4667 mov r7, ip + 8000cac: e7d1 b.n 8000c52 <__udivmoddi4+0x256> + 8000cae: 4681 mov r9, r0 + 8000cb0: e77c b.n 8000bac <__udivmoddi4+0x1b0> + 8000cb2: 3802 subs r0, #2 + 8000cb4: 442c add r4, r5 + 8000cb6: e747 b.n 8000b48 <__udivmoddi4+0x14c> + 8000cb8: f1ac 0c02 sub.w ip, ip, #2 + 8000cbc: 442b add r3, r5 + 8000cbe: e72f b.n 8000b20 <__udivmoddi4+0x124> + 8000cc0: 4638 mov r0, r7 + 8000cc2: e708 b.n 8000ad6 <__udivmoddi4+0xda> + 8000cc4: 4637 mov r7, r6 + 8000cc6: e6e9 b.n 8000a9c <__udivmoddi4+0xa0> + +08000cc8 <__aeabi_idiv0>: + 8000cc8: 4770 bx lr + 8000cca: bf00 nop + +08000ccc
: /** * @brief The application entry point. * @retval int */ int main(void) { - 80004ec: b580 push {r7, lr} - 80004ee: af00 add r7, sp, #0 + 8000ccc: b580 push {r7, lr} + 8000cce: af00 add r7, sp, #0 /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); - 80004f0: f001 fcd8 bl 8001ea4 + 8000cd0: f002 f878 bl 8002dc4 /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); - 80004f4: f000 f854 bl 80005a0 + 8000cd4: f000 f854 bl 8000d80 /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); - 80004f8: f000 f986 bl 8000808 + 8000cd8: f000 f986 bl 8000fe8 MX_SPI4_Init(); - 80004fc: f000 f90e bl 800071c + 8000cdc: f000 f90e bl 8000efc MX_TIM6_Init(); - 8000500: f000 f942 bl 8000788 + 8000ce0: f000 f942 bl 8000f68 MX_ADC3_Init(); - 8000504: f000 f8b6 bl 8000674 + 8000ce4: f000 f8b6 bl 8000e54 /* USER CODE BEGIN 2 */ updateWS2812BData(); - 8000508: f001 f954 bl 80017b4 + 8000ce8: f001 fcf4 bl 80026d4 HAL_SPI_Transmit_IT(&hspi4, (uint8_t*) &LEDData, (uint16_t) 66 * 3 * 3); - 800050c: f240 2252 movw r2, #594 ; 0x252 - 8000510: 491e ldr r1, [pc, #120] ; (800058c ) - 8000512: 481f ldr r0, [pc, #124] ; (8000590 ) - 8000514: f003 f8d2 bl 80036bc + 8000cec: f240 2252 movw r2, #594 ; 0x252 + 8000cf0: 491e ldr r1, [pc, #120] ; (8000d6c ) + 8000cf2: 481f ldr r0, [pc, #124] ; (8000d70 ) + 8000cf4: f003 fc72 bl 80045dc HAL_ADC_Start(&hadc3); - 8000518: 481e ldr r0, [pc, #120] ; (8000594 ) - 800051a: f001 fd9b bl 8002054 + 8000cf8: 481e ldr r0, [pc, #120] ; (8000d74 ) + 8000cfa: f002 f93b bl 8002f74 /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { if(LEDDesign_PendingChange){ - 800051e: 4b1e ldr r3, [pc, #120] ; (8000598 ) - 8000520: 781b ldrb r3, [r3, #0] - 8000522: 2b00 cmp r3, #0 - 8000524: d002 beq.n 800052c + 8000cfe: 4b1e ldr r3, [pc, #120] ; (8000d78 ) + 8000d00: 781b ldrb r3, [r3, #0] + 8000d02: 2b00 cmp r3, #0 + 8000d04: d002 beq.n 8000d0c LEDDesign_Off(); - 8000526: f000 fc83 bl 8000e30 - 800052a: e02c b.n 8000586 + 8000d06: f000 fc61 bl 80015cc + 8000d0a: e02c b.n 8000d66 }else{ switch (LEDMode) { - 800052c: 4b1b ldr r3, [pc, #108] ; (800059c ) - 800052e: 781b ldrb r3, [r3, #0] - 8000530: 2b06 cmp r3, #6 - 8000532: d826 bhi.n 8000582 - 8000534: a201 add r2, pc, #4 ; (adr r2, 800053c ) - 8000536: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 800053a: bf00 nop - 800053c: 08000559 .word 0x08000559 - 8000540: 0800055f .word 0x0800055f - 8000544: 08000565 .word 0x08000565 - 8000548: 0800056b .word 0x0800056b - 800054c: 08000571 .word 0x08000571 - 8000550: 08000577 .word 0x08000577 - 8000554: 0800057d .word 0x0800057d + 8000d0c: 4b1b ldr r3, [pc, #108] ; (8000d7c ) + 8000d0e: 781b ldrb r3, [r3, #0] + 8000d10: 2b06 cmp r3, #6 + 8000d12: d826 bhi.n 8000d62 + 8000d14: a201 add r2, pc, #4 ; (adr r2, 8000d1c ) + 8000d16: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8000d1a: bf00 nop + 8000d1c: 08000d39 .word 0x08000d39 + 8000d20: 08000d3f .word 0x08000d3f + 8000d24: 08000d45 .word 0x08000d45 + 8000d28: 08000d4b .word 0x08000d4b + 8000d2c: 08000d51 .word 0x08000d51 + 8000d30: 08000d57 .word 0x08000d57 + 8000d34: 08000d5d .word 0x08000d5d case 0: LEDDesign_Smile(); - 8000558: f000 fdba bl 80010d0 + 8000d38: f000 fd9a bl 8001870 break; - 800055c: e013 b.n 8000586 + 8000d3c: e013 b.n 8000d66 case 1: LEDDesign_Crazy(); - 800055e: f000 fd77 bl 8001050 + 8000d3e: f000 fd55 bl 80017ec break; - 8000562: e010 b.n 8000586 + 8000d42: e010 b.n 8000d66 case 2: LEDDesign_SuperCrazy(); - 8000564: f001 f8a4 bl 80016b0 + 8000d44: f001 faa4 bl 8002290 break; - 8000568: e00d b.n 8000586 + 8000d48: e00d b.n 8000d66 case 3: LEDDesign_ColorWhite(); - 800056a: f000 fc89 bl 8000e80 + 8000d4a: f000 fc67 bl 800161c break; - 800056e: e00a b.n 8000586 + 8000d4e: e00a b.n 8000d66 case 4: LEDDesign_ColorRed(); - 8000570: f000 fd2e bl 8000fd0 + 8000d50: f000 fd0c bl 800176c break; - 8000574: e007 b.n 8000586 + 8000d54: e007 b.n 8000d66 case 5: LEDDesign_ColorGreen(); - 8000576: f000 fceb bl 8000f50 + 8000d56: f000 fcc9 bl 80016ec break; - 800057a: e004 b.n 8000586 + 8000d5a: e004 b.n 8000d66 case 6: LEDDesign_ColorBlue(); - 800057c: f000 fca8 bl 8000ed0 + 8000d5c: f000 fc86 bl 800166c break; - 8000580: e001 b.n 8000586 + 8000d60: e001 b.n 8000d66 default: LEDDesign_Off(); - 8000582: f000 fc55 bl 8000e30 + 8000d62: f000 fc33 bl 80015cc } } updateWS2812BData(); - 8000586: f001 f915 bl 80017b4 + 8000d66: f001 fcb5 bl 80026d4 if(LEDDesign_PendingChange){ - 800058a: e7c8 b.n 800051e - 800058c: 20000094 .word 0x20000094 - 8000590: 20000400 .word 0x20000400 - 8000594: 200003b8 .word 0x200003b8 - 8000598: 20000091 .word 0x20000091 - 800059c: 20000090 .word 0x20000090 + 8000d6a: e7c8 b.n 8000cfe + 8000d6c: 20000094 .word 0x20000094 + 8000d70: 200003fc .word 0x200003fc + 8000d74: 200003b4 .word 0x200003b4 + 8000d78: 20000091 .word 0x20000091 + 8000d7c: 20000090 .word 0x20000090 -080005a0 : +08000d80 : /** * @brief System Clock Configuration * @retval None */ void SystemClock_Config(void) { - 80005a0: b580 push {r7, lr} - 80005a2: b094 sub sp, #80 ; 0x50 - 80005a4: af00 add r7, sp, #0 + 8000d80: b580 push {r7, lr} + 8000d82: b094 sub sp, #80 ; 0x50 + 8000d84: af00 add r7, sp, #0 RCC_OscInitTypeDef RCC_OscInitStruct = {0}; - 80005a6: f107 0320 add.w r3, r7, #32 - 80005aa: 2230 movs r2, #48 ; 0x30 - 80005ac: 2100 movs r1, #0 - 80005ae: 4618 mov r0, r3 - 80005b0: f003 feac bl 800430c + 8000d86: f107 0320 add.w r3, r7, #32 + 8000d8a: 2230 movs r2, #48 ; 0x30 + 8000d8c: 2100 movs r1, #0 + 8000d8e: 4618 mov r0, r3 + 8000d90: f004 fa4c bl 800522c RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; - 80005b4: f107 030c add.w r3, r7, #12 - 80005b8: 2200 movs r2, #0 - 80005ba: 601a str r2, [r3, #0] - 80005bc: 605a str r2, [r3, #4] - 80005be: 609a str r2, [r3, #8] - 80005c0: 60da str r2, [r3, #12] - 80005c2: 611a str r2, [r3, #16] + 8000d94: f107 030c add.w r3, r7, #12 + 8000d98: 2200 movs r2, #0 + 8000d9a: 601a str r2, [r3, #0] + 8000d9c: 605a str r2, [r3, #4] + 8000d9e: 609a str r2, [r3, #8] + 8000da0: 60da str r2, [r3, #12] + 8000da2: 611a str r2, [r3, #16] /** Configure the main internal regulator output voltage */ __HAL_RCC_PWR_CLK_ENABLE(); - 80005c4: 2300 movs r3, #0 - 80005c6: 60bb str r3, [r7, #8] - 80005c8: 4b28 ldr r3, [pc, #160] ; (800066c ) - 80005ca: 6c1b ldr r3, [r3, #64] ; 0x40 - 80005cc: 4a27 ldr r2, [pc, #156] ; (800066c ) - 80005ce: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 - 80005d2: 6413 str r3, [r2, #64] ; 0x40 - 80005d4: 4b25 ldr r3, [pc, #148] ; (800066c ) - 80005d6: 6c1b ldr r3, [r3, #64] ; 0x40 - 80005d8: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 - 80005dc: 60bb str r3, [r7, #8] - 80005de: 68bb ldr r3, [r7, #8] + 8000da4: 2300 movs r3, #0 + 8000da6: 60bb str r3, [r7, #8] + 8000da8: 4b28 ldr r3, [pc, #160] ; (8000e4c ) + 8000daa: 6c1b ldr r3, [r3, #64] ; 0x40 + 8000dac: 4a27 ldr r2, [pc, #156] ; (8000e4c ) + 8000dae: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 + 8000db2: 6413 str r3, [r2, #64] ; 0x40 + 8000db4: 4b25 ldr r3, [pc, #148] ; (8000e4c ) + 8000db6: 6c1b ldr r3, [r3, #64] ; 0x40 + 8000db8: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 + 8000dbc: 60bb str r3, [r7, #8] + 8000dbe: 68bb ldr r3, [r7, #8] __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); - 80005e0: 2300 movs r3, #0 - 80005e2: 607b str r3, [r7, #4] - 80005e4: 4b22 ldr r3, [pc, #136] ; (8000670 ) - 80005e6: 681b ldr r3, [r3, #0] - 80005e8: 4a21 ldr r2, [pc, #132] ; (8000670 ) - 80005ea: f443 4340 orr.w r3, r3, #49152 ; 0xc000 - 80005ee: 6013 str r3, [r2, #0] - 80005f0: 4b1f ldr r3, [pc, #124] ; (8000670 ) - 80005f2: 681b ldr r3, [r3, #0] - 80005f4: f403 4340 and.w r3, r3, #49152 ; 0xc000 - 80005f8: 607b str r3, [r7, #4] - 80005fa: 687b ldr r3, [r7, #4] + 8000dc0: 2300 movs r3, #0 + 8000dc2: 607b str r3, [r7, #4] + 8000dc4: 4b22 ldr r3, [pc, #136] ; (8000e50 ) + 8000dc6: 681b ldr r3, [r3, #0] + 8000dc8: 4a21 ldr r2, [pc, #132] ; (8000e50 ) + 8000dca: f443 4340 orr.w r3, r3, #49152 ; 0xc000 + 8000dce: 6013 str r3, [r2, #0] + 8000dd0: 4b1f ldr r3, [pc, #124] ; (8000e50 ) + 8000dd2: 681b ldr r3, [r3, #0] + 8000dd4: f403 4340 and.w r3, r3, #49152 ; 0xc000 + 8000dd8: 607b str r3, [r7, #4] + 8000dda: 687b ldr r3, [r7, #4] /** Initializes the RCC Oscillators according to the specified parameters * in the RCC_OscInitTypeDef structure. */ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; - 80005fc: 2301 movs r3, #1 - 80005fe: 623b str r3, [r7, #32] + 8000ddc: 2301 movs r3, #1 + 8000dde: 623b str r3, [r7, #32] RCC_OscInitStruct.HSEState = RCC_HSE_ON; - 8000600: f44f 3380 mov.w r3, #65536 ; 0x10000 - 8000604: 627b str r3, [r7, #36] ; 0x24 + 8000de0: f44f 3380 mov.w r3, #65536 ; 0x10000 + 8000de4: 627b str r3, [r7, #36] ; 0x24 RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; - 8000606: 2302 movs r3, #2 - 8000608: 63bb str r3, [r7, #56] ; 0x38 + 8000de6: 2302 movs r3, #2 + 8000de8: 63bb str r3, [r7, #56] ; 0x38 RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; - 800060a: f44f 0380 mov.w r3, #4194304 ; 0x400000 - 800060e: 63fb str r3, [r7, #60] ; 0x3c + 8000dea: f44f 0380 mov.w r3, #4194304 ; 0x400000 + 8000dee: 63fb str r3, [r7, #60] ; 0x3c RCC_OscInitStruct.PLL.PLLM = 4; - 8000610: 2304 movs r3, #4 - 8000612: 643b str r3, [r7, #64] ; 0x40 + 8000df0: 2304 movs r3, #4 + 8000df2: 643b str r3, [r7, #64] ; 0x40 RCC_OscInitStruct.PLL.PLLN = 160; - 8000614: 23a0 movs r3, #160 ; 0xa0 - 8000616: 647b str r3, [r7, #68] ; 0x44 + 8000df4: 23a0 movs r3, #160 ; 0xa0 + 8000df6: 647b str r3, [r7, #68] ; 0x44 RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; - 8000618: 2302 movs r3, #2 - 800061a: 64bb str r3, [r7, #72] ; 0x48 + 8000df8: 2302 movs r3, #2 + 8000dfa: 64bb str r3, [r7, #72] ; 0x48 RCC_OscInitStruct.PLL.PLLQ = 7; - 800061c: 2307 movs r3, #7 - 800061e: 64fb str r3, [r7, #76] ; 0x4c + 8000dfc: 2307 movs r3, #7 + 8000dfe: 64fb str r3, [r7, #76] ; 0x4c if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) - 8000620: f107 0320 add.w r3, r7, #32 - 8000624: 4618 mov r0, r3 - 8000626: f002 fbb7 bl 8002d98 - 800062a: 4603 mov r3, r0 - 800062c: 2b00 cmp r3, #0 - 800062e: d001 beq.n 8000634 + 8000e00: f107 0320 add.w r3, r7, #32 + 8000e04: 4618 mov r0, r3 + 8000e06: f002 ff57 bl 8003cb8 + 8000e0a: 4603 mov r3, r0 + 8000e0c: 2b00 cmp r3, #0 + 8000e0e: d001 beq.n 8000e14 { Error_Handler(); - 8000630: f001 fa60 bl 8001af4 + 8000e10: f001 fe00 bl 8002a14 } /** Initializes the CPU, AHB and APB buses clocks */ RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK - 8000634: 230f movs r3, #15 - 8000636: 60fb str r3, [r7, #12] + 8000e14: 230f movs r3, #15 + 8000e16: 60fb str r3, [r7, #12] |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; - 8000638: 2302 movs r3, #2 - 800063a: 613b str r3, [r7, #16] + 8000e18: 2302 movs r3, #2 + 8000e1a: 613b str r3, [r7, #16] RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; - 800063c: 2300 movs r3, #0 - 800063e: 617b str r3, [r7, #20] + 8000e1c: 2300 movs r3, #0 + 8000e1e: 617b str r3, [r7, #20] RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4; - 8000640: f44f 53a0 mov.w r3, #5120 ; 0x1400 - 8000644: 61bb str r3, [r7, #24] + 8000e20: f44f 53a0 mov.w r3, #5120 ; 0x1400 + 8000e24: 61bb str r3, [r7, #24] RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2; - 8000646: f44f 5380 mov.w r3, #4096 ; 0x1000 - 800064a: 61fb str r3, [r7, #28] + 8000e26: f44f 5380 mov.w r3, #4096 ; 0x1000 + 8000e2a: 61fb str r3, [r7, #28] if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK) - 800064c: f107 030c add.w r3, r7, #12 - 8000650: 2105 movs r1, #5 - 8000652: 4618 mov r0, r3 - 8000654: f002 fe10 bl 8003278 - 8000658: 4603 mov r3, r0 - 800065a: 2b00 cmp r3, #0 - 800065c: d001 beq.n 8000662 + 8000e2c: f107 030c add.w r3, r7, #12 + 8000e30: 2105 movs r1, #5 + 8000e32: 4618 mov r0, r3 + 8000e34: f003 f9b0 bl 8004198 + 8000e38: 4603 mov r3, r0 + 8000e3a: 2b00 cmp r3, #0 + 8000e3c: d001 beq.n 8000e42 { Error_Handler(); - 800065e: f001 fa49 bl 8001af4 + 8000e3e: f001 fde9 bl 8002a14 } } - 8000662: bf00 nop - 8000664: 3750 adds r7, #80 ; 0x50 - 8000666: 46bd mov sp, r7 - 8000668: bd80 pop {r7, pc} - 800066a: bf00 nop - 800066c: 40023800 .word 0x40023800 - 8000670: 40007000 .word 0x40007000 + 8000e42: bf00 nop + 8000e44: 3750 adds r7, #80 ; 0x50 + 8000e46: 46bd mov sp, r7 + 8000e48: bd80 pop {r7, pc} + 8000e4a: bf00 nop + 8000e4c: 40023800 .word 0x40023800 + 8000e50: 40007000 .word 0x40007000 -08000674 : +08000e54 : * @brief ADC3 Initialization Function * @param None * @retval None */ static void MX_ADC3_Init(void) { - 8000674: b580 push {r7, lr} - 8000676: b084 sub sp, #16 - 8000678: af00 add r7, sp, #0 + 8000e54: b580 push {r7, lr} + 8000e56: b084 sub sp, #16 + 8000e58: af00 add r7, sp, #0 /* USER CODE BEGIN ADC3_Init 0 */ /* USER CODE END ADC3_Init 0 */ ADC_ChannelConfTypeDef sConfig = {0}; - 800067a: 463b mov r3, r7 - 800067c: 2200 movs r2, #0 - 800067e: 601a str r2, [r3, #0] - 8000680: 605a str r2, [r3, #4] - 8000682: 609a str r2, [r3, #8] - 8000684: 60da str r2, [r3, #12] + 8000e5a: 463b mov r3, r7 + 8000e5c: 2200 movs r2, #0 + 8000e5e: 601a str r2, [r3, #0] + 8000e60: 605a str r2, [r3, #4] + 8000e62: 609a str r2, [r3, #8] + 8000e64: 60da str r2, [r3, #12] /* USER CODE BEGIN ADC3_Init 1 */ /* USER CODE END ADC3_Init 1 */ /** Configure the global features of the ADC (Clock, Resolution, Data Alignment and number of conversion) */ hadc3.Instance = ADC3; - 8000686: 4b22 ldr r3, [pc, #136] ; (8000710 ) - 8000688: 4a22 ldr r2, [pc, #136] ; (8000714 ) - 800068a: 601a str r2, [r3, #0] + 8000e66: 4b22 ldr r3, [pc, #136] ; (8000ef0 ) + 8000e68: 4a22 ldr r2, [pc, #136] ; (8000ef4 ) + 8000e6a: 601a str r2, [r3, #0] hadc3.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4; - 800068c: 4b20 ldr r3, [pc, #128] ; (8000710 ) - 800068e: f44f 3280 mov.w r2, #65536 ; 0x10000 - 8000692: 605a str r2, [r3, #4] + 8000e6c: 4b20 ldr r3, [pc, #128] ; (8000ef0 ) + 8000e6e: f44f 3280 mov.w r2, #65536 ; 0x10000 + 8000e72: 605a str r2, [r3, #4] hadc3.Init.Resolution = ADC_RESOLUTION_8B; - 8000694: 4b1e ldr r3, [pc, #120] ; (8000710 ) - 8000696: f04f 7200 mov.w r2, #33554432 ; 0x2000000 - 800069a: 609a str r2, [r3, #8] + 8000e74: 4b1e ldr r3, [pc, #120] ; (8000ef0 ) + 8000e76: f04f 7200 mov.w r2, #33554432 ; 0x2000000 + 8000e7a: 609a str r2, [r3, #8] hadc3.Init.ScanConvMode = DISABLE; - 800069c: 4b1c ldr r3, [pc, #112] ; (8000710 ) - 800069e: 2200 movs r2, #0 - 80006a0: 611a str r2, [r3, #16] + 8000e7c: 4b1c ldr r3, [pc, #112] ; (8000ef0 ) + 8000e7e: 2200 movs r2, #0 + 8000e80: 611a str r2, [r3, #16] hadc3.Init.ContinuousConvMode = DISABLE; - 80006a2: 4b1b ldr r3, [pc, #108] ; (8000710 ) - 80006a4: 2200 movs r2, #0 - 80006a6: 761a strb r2, [r3, #24] + 8000e82: 4b1b ldr r3, [pc, #108] ; (8000ef0 ) + 8000e84: 2200 movs r2, #0 + 8000e86: 761a strb r2, [r3, #24] hadc3.Init.DiscontinuousConvMode = DISABLE; - 80006a8: 4b19 ldr r3, [pc, #100] ; (8000710 ) - 80006aa: 2200 movs r2, #0 - 80006ac: f883 2020 strb.w r2, [r3, #32] + 8000e88: 4b19 ldr r3, [pc, #100] ; (8000ef0 ) + 8000e8a: 2200 movs r2, #0 + 8000e8c: f883 2020 strb.w r2, [r3, #32] hadc3.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; - 80006b0: 4b17 ldr r3, [pc, #92] ; (8000710 ) - 80006b2: 2200 movs r2, #0 - 80006b4: 62da str r2, [r3, #44] ; 0x2c + 8000e90: 4b17 ldr r3, [pc, #92] ; (8000ef0 ) + 8000e92: 2200 movs r2, #0 + 8000e94: 62da str r2, [r3, #44] ; 0x2c hadc3.Init.ExternalTrigConv = ADC_SOFTWARE_START; - 80006b6: 4b16 ldr r3, [pc, #88] ; (8000710 ) - 80006b8: 4a17 ldr r2, [pc, #92] ; (8000718 ) - 80006ba: 629a str r2, [r3, #40] ; 0x28 + 8000e96: 4b16 ldr r3, [pc, #88] ; (8000ef0 ) + 8000e98: 4a17 ldr r2, [pc, #92] ; (8000ef8 ) + 8000e9a: 629a str r2, [r3, #40] ; 0x28 hadc3.Init.DataAlign = ADC_DATAALIGN_RIGHT; - 80006bc: 4b14 ldr r3, [pc, #80] ; (8000710 ) - 80006be: 2200 movs r2, #0 - 80006c0: 60da str r2, [r3, #12] + 8000e9c: 4b14 ldr r3, [pc, #80] ; (8000ef0 ) + 8000e9e: 2200 movs r2, #0 + 8000ea0: 60da str r2, [r3, #12] hadc3.Init.NbrOfConversion = 1; - 80006c2: 4b13 ldr r3, [pc, #76] ; (8000710 ) - 80006c4: 2201 movs r2, #1 - 80006c6: 61da str r2, [r3, #28] + 8000ea2: 4b13 ldr r3, [pc, #76] ; (8000ef0 ) + 8000ea4: 2201 movs r2, #1 + 8000ea6: 61da str r2, [r3, #28] hadc3.Init.DMAContinuousRequests = DISABLE; - 80006c8: 4b11 ldr r3, [pc, #68] ; (8000710 ) - 80006ca: 2200 movs r2, #0 - 80006cc: f883 2030 strb.w r2, [r3, #48] ; 0x30 + 8000ea8: 4b11 ldr r3, [pc, #68] ; (8000ef0 ) + 8000eaa: 2200 movs r2, #0 + 8000eac: f883 2030 strb.w r2, [r3, #48] ; 0x30 hadc3.Init.EOCSelection = ADC_EOC_SINGLE_CONV; - 80006d0: 4b0f ldr r3, [pc, #60] ; (8000710 ) - 80006d2: 2201 movs r2, #1 - 80006d4: 615a str r2, [r3, #20] + 8000eb0: 4b0f ldr r3, [pc, #60] ; (8000ef0 ) + 8000eb2: 2201 movs r2, #1 + 8000eb4: 615a str r2, [r3, #20] if (HAL_ADC_Init(&hadc3) != HAL_OK) - 80006d6: 480e ldr r0, [pc, #56] ; (8000710 ) - 80006d8: f001 fc78 bl 8001fcc - 80006dc: 4603 mov r3, r0 - 80006de: 2b00 cmp r3, #0 - 80006e0: d001 beq.n 80006e6 + 8000eb6: 480e ldr r0, [pc, #56] ; (8000ef0 ) + 8000eb8: f002 f818 bl 8002eec + 8000ebc: 4603 mov r3, r0 + 8000ebe: 2b00 cmp r3, #0 + 8000ec0: d001 beq.n 8000ec6 { Error_Handler(); - 80006e2: f001 fa07 bl 8001af4 + 8000ec2: f001 fda7 bl 8002a14 } /** Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time. */ sConfig.Channel = ADC_CHANNEL_4; - 80006e6: 2304 movs r3, #4 - 80006e8: 603b str r3, [r7, #0] + 8000ec6: 2304 movs r3, #4 + 8000ec8: 603b str r3, [r7, #0] sConfig.Rank = 1; - 80006ea: 2301 movs r3, #1 - 80006ec: 607b str r3, [r7, #4] + 8000eca: 2301 movs r3, #1 + 8000ecc: 607b str r3, [r7, #4] sConfig.SamplingTime = ADC_SAMPLETIME_3CYCLES; - 80006ee: 2300 movs r3, #0 - 80006f0: 60bb str r3, [r7, #8] + 8000ece: 2300 movs r3, #0 + 8000ed0: 60bb str r3, [r7, #8] if (HAL_ADC_ConfigChannel(&hadc3, &sConfig) != HAL_OK) - 80006f2: 463b mov r3, r7 - 80006f4: 4619 mov r1, r3 - 80006f6: 4806 ldr r0, [pc, #24] ; (8000710 ) - 80006f8: f001 fe04 bl 8002304 - 80006fc: 4603 mov r3, r0 - 80006fe: 2b00 cmp r3, #0 - 8000700: d001 beq.n 8000706 + 8000ed2: 463b mov r3, r7 + 8000ed4: 4619 mov r1, r3 + 8000ed6: 4806 ldr r0, [pc, #24] ; (8000ef0 ) + 8000ed8: f002 f9a4 bl 8003224 + 8000edc: 4603 mov r3, r0 + 8000ede: 2b00 cmp r3, #0 + 8000ee0: d001 beq.n 8000ee6 { Error_Handler(); - 8000702: f001 f9f7 bl 8001af4 + 8000ee2: f001 fd97 bl 8002a14 } /* USER CODE BEGIN ADC3_Init 2 */ /* USER CODE END ADC3_Init 2 */ } - 8000706: bf00 nop - 8000708: 3710 adds r7, #16 - 800070a: 46bd mov sp, r7 - 800070c: bd80 pop {r7, pc} - 800070e: bf00 nop - 8000710: 200003b8 .word 0x200003b8 - 8000714: 40012200 .word 0x40012200 - 8000718: 0f000001 .word 0x0f000001 + 8000ee6: bf00 nop + 8000ee8: 3710 adds r7, #16 + 8000eea: 46bd mov sp, r7 + 8000eec: bd80 pop {r7, pc} + 8000eee: bf00 nop + 8000ef0: 200003b4 .word 0x200003b4 + 8000ef4: 40012200 .word 0x40012200 + 8000ef8: 0f000001 .word 0x0f000001 -0800071c : +08000efc : * @brief SPI4 Initialization Function * @param None * @retval None */ static void MX_SPI4_Init(void) { - 800071c: b580 push {r7, lr} - 800071e: af00 add r7, sp, #0 + 8000efc: b580 push {r7, lr} + 8000efe: af00 add r7, sp, #0 /* USER CODE BEGIN SPI4_Init 1 */ /* USER CODE END SPI4_Init 1 */ /* SPI4 parameter configuration*/ hspi4.Instance = SPI4; - 8000720: 4b17 ldr r3, [pc, #92] ; (8000780 ) - 8000722: 4a18 ldr r2, [pc, #96] ; (8000784 ) - 8000724: 601a str r2, [r3, #0] + 8000f00: 4b17 ldr r3, [pc, #92] ; (8000f60 ) + 8000f02: 4a18 ldr r2, [pc, #96] ; (8000f64 ) + 8000f04: 601a str r2, [r3, #0] hspi4.Init.Mode = SPI_MODE_MASTER; - 8000726: 4b16 ldr r3, [pc, #88] ; (8000780 ) - 8000728: f44f 7282 mov.w r2, #260 ; 0x104 - 800072c: 605a str r2, [r3, #4] + 8000f06: 4b16 ldr r3, [pc, #88] ; (8000f60 ) + 8000f08: f44f 7282 mov.w r2, #260 ; 0x104 + 8000f0c: 605a str r2, [r3, #4] hspi4.Init.Direction = SPI_DIRECTION_2LINES; - 800072e: 4b14 ldr r3, [pc, #80] ; (8000780 ) - 8000730: 2200 movs r2, #0 - 8000732: 609a str r2, [r3, #8] + 8000f0e: 4b14 ldr r3, [pc, #80] ; (8000f60 ) + 8000f10: 2200 movs r2, #0 + 8000f12: 609a str r2, [r3, #8] hspi4.Init.DataSize = SPI_DATASIZE_8BIT; - 8000734: 4b12 ldr r3, [pc, #72] ; (8000780 ) - 8000736: 2200 movs r2, #0 - 8000738: 60da str r2, [r3, #12] + 8000f14: 4b12 ldr r3, [pc, #72] ; (8000f60 ) + 8000f16: 2200 movs r2, #0 + 8000f18: 60da str r2, [r3, #12] hspi4.Init.CLKPolarity = SPI_POLARITY_LOW; - 800073a: 4b11 ldr r3, [pc, #68] ; (8000780 ) - 800073c: 2200 movs r2, #0 - 800073e: 611a str r2, [r3, #16] + 8000f1a: 4b11 ldr r3, [pc, #68] ; (8000f60 ) + 8000f1c: 2200 movs r2, #0 + 8000f1e: 611a str r2, [r3, #16] hspi4.Init.CLKPhase = SPI_PHASE_1EDGE; - 8000740: 4b0f ldr r3, [pc, #60] ; (8000780 ) - 8000742: 2200 movs r2, #0 - 8000744: 615a str r2, [r3, #20] + 8000f20: 4b0f ldr r3, [pc, #60] ; (8000f60 ) + 8000f22: 2200 movs r2, #0 + 8000f24: 615a str r2, [r3, #20] hspi4.Init.NSS = SPI_NSS_SOFT; - 8000746: 4b0e ldr r3, [pc, #56] ; (8000780 ) - 8000748: f44f 7200 mov.w r2, #512 ; 0x200 - 800074c: 619a str r2, [r3, #24] + 8000f26: 4b0e ldr r3, [pc, #56] ; (8000f60 ) + 8000f28: f44f 7200 mov.w r2, #512 ; 0x200 + 8000f2c: 619a str r2, [r3, #24] hspi4.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_32; - 800074e: 4b0c ldr r3, [pc, #48] ; (8000780 ) - 8000750: 2220 movs r2, #32 - 8000752: 61da str r2, [r3, #28] + 8000f2e: 4b0c ldr r3, [pc, #48] ; (8000f60 ) + 8000f30: 2220 movs r2, #32 + 8000f32: 61da str r2, [r3, #28] hspi4.Init.FirstBit = SPI_FIRSTBIT_MSB; - 8000754: 4b0a ldr r3, [pc, #40] ; (8000780 ) - 8000756: 2200 movs r2, #0 - 8000758: 621a str r2, [r3, #32] + 8000f34: 4b0a ldr r3, [pc, #40] ; (8000f60 ) + 8000f36: 2200 movs r2, #0 + 8000f38: 621a str r2, [r3, #32] hspi4.Init.TIMode = SPI_TIMODE_DISABLE; - 800075a: 4b09 ldr r3, [pc, #36] ; (8000780 ) - 800075c: 2200 movs r2, #0 - 800075e: 625a str r2, [r3, #36] ; 0x24 + 8000f3a: 4b09 ldr r3, [pc, #36] ; (8000f60 ) + 8000f3c: 2200 movs r2, #0 + 8000f3e: 625a str r2, [r3, #36] ; 0x24 hspi4.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; - 8000760: 4b07 ldr r3, [pc, #28] ; (8000780 ) - 8000762: 2200 movs r2, #0 - 8000764: 629a str r2, [r3, #40] ; 0x28 + 8000f40: 4b07 ldr r3, [pc, #28] ; (8000f60 ) + 8000f42: 2200 movs r2, #0 + 8000f44: 629a str r2, [r3, #40] ; 0x28 hspi4.Init.CRCPolynomial = 10; - 8000766: 4b06 ldr r3, [pc, #24] ; (8000780 ) - 8000768: 220a movs r2, #10 - 800076a: 62da str r2, [r3, #44] ; 0x2c + 8000f46: 4b06 ldr r3, [pc, #24] ; (8000f60 ) + 8000f48: 220a movs r2, #10 + 8000f4a: 62da str r2, [r3, #44] ; 0x2c if (HAL_SPI_Init(&hspi4) != HAL_OK) - 800076c: 4804 ldr r0, [pc, #16] ; (8000780 ) - 800076e: f002 ff41 bl 80035f4 - 8000772: 4603 mov r3, r0 - 8000774: 2b00 cmp r3, #0 - 8000776: d001 beq.n 800077c + 8000f4c: 4804 ldr r0, [pc, #16] ; (8000f60 ) + 8000f4e: f003 fae1 bl 8004514 + 8000f52: 4603 mov r3, r0 + 8000f54: 2b00 cmp r3, #0 + 8000f56: d001 beq.n 8000f5c { Error_Handler(); - 8000778: f001 f9bc bl 8001af4 + 8000f58: f001 fd5c bl 8002a14 } /* USER CODE BEGIN SPI4_Init 2 */ /* USER CODE END SPI4_Init 2 */ } - 800077c: bf00 nop - 800077e: bd80 pop {r7, pc} - 8000780: 20000400 .word 0x20000400 - 8000784: 40013400 .word 0x40013400 + 8000f5c: bf00 nop + 8000f5e: bd80 pop {r7, pc} + 8000f60: 200003fc .word 0x200003fc + 8000f64: 40013400 .word 0x40013400 -08000788 : +08000f68 : * @brief TIM6 Initialization Function * @param None * @retval None */ static void MX_TIM6_Init(void) { - 8000788: b580 push {r7, lr} - 800078a: b082 sub sp, #8 - 800078c: af00 add r7, sp, #0 + 8000f68: b580 push {r7, lr} + 8000f6a: b082 sub sp, #8 + 8000f6c: af00 add r7, sp, #0 /* USER CODE BEGIN TIM6_Init 0 */ /* USER CODE END TIM6_Init 0 */ TIM_MasterConfigTypeDef sMasterConfig = {0}; - 800078e: 463b mov r3, r7 - 8000790: 2200 movs r2, #0 - 8000792: 601a str r2, [r3, #0] - 8000794: 605a str r2, [r3, #4] + 8000f6e: 463b mov r3, r7 + 8000f70: 2200 movs r2, #0 + 8000f72: 601a str r2, [r3, #0] + 8000f74: 605a str r2, [r3, #4] /* USER CODE BEGIN TIM6_Init 1 */ /* USER CODE END TIM6_Init 1 */ htim6.Instance = TIM6; - 8000796: 4b1a ldr r3, [pc, #104] ; (8000800 ) - 8000798: 4a1a ldr r2, [pc, #104] ; (8000804 ) - 800079a: 601a str r2, [r3, #0] + 8000f76: 4b1a ldr r3, [pc, #104] ; (8000fe0 ) + 8000f78: 4a1a ldr r2, [pc, #104] ; (8000fe4 ) + 8000f7a: 601a str r2, [r3, #0] htim6.Init.Prescaler = 4000; - 800079c: 4b18 ldr r3, [pc, #96] ; (8000800 ) - 800079e: f44f 627a mov.w r2, #4000 ; 0xfa0 - 80007a2: 605a str r2, [r3, #4] + 8000f7c: 4b18 ldr r3, [pc, #96] ; (8000fe0 ) + 8000f7e: f44f 627a mov.w r2, #4000 ; 0xfa0 + 8000f82: 605a str r2, [r3, #4] htim6.Init.CounterMode = TIM_COUNTERMODE_UP; - 80007a4: 4b16 ldr r3, [pc, #88] ; (8000800 ) - 80007a6: 2200 movs r2, #0 - 80007a8: 609a str r2, [r3, #8] + 8000f84: 4b16 ldr r3, [pc, #88] ; (8000fe0 ) + 8000f86: 2200 movs r2, #0 + 8000f88: 609a str r2, [r3, #8] htim6.Init.Period = 10000; - 80007aa: 4b15 ldr r3, [pc, #84] ; (8000800 ) - 80007ac: f242 7210 movw r2, #10000 ; 0x2710 - 80007b0: 60da str r2, [r3, #12] + 8000f8a: 4b15 ldr r3, [pc, #84] ; (8000fe0 ) + 8000f8c: f242 7210 movw r2, #10000 ; 0x2710 + 8000f90: 60da str r2, [r3, #12] htim6.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE; - 80007b2: 4b13 ldr r3, [pc, #76] ; (8000800 ) - 80007b4: 2280 movs r2, #128 ; 0x80 - 80007b6: 619a str r2, [r3, #24] + 8000f92: 4b13 ldr r3, [pc, #76] ; (8000fe0 ) + 8000f94: 2280 movs r2, #128 ; 0x80 + 8000f96: 619a str r2, [r3, #24] if (HAL_TIM_Base_Init(&htim6) != HAL_OK) - 80007b8: 4811 ldr r0, [pc, #68] ; (8000800 ) - 80007ba: f003 fa7d bl 8003cb8 - 80007be: 4603 mov r3, r0 - 80007c0: 2b00 cmp r3, #0 - 80007c2: d001 beq.n 80007c8 + 8000f98: 4811 ldr r0, [pc, #68] ; (8000fe0 ) + 8000f9a: f003 fe1d bl 8004bd8 + 8000f9e: 4603 mov r3, r0 + 8000fa0: 2b00 cmp r3, #0 + 8000fa2: d001 beq.n 8000fa8 { Error_Handler(); - 80007c4: f001 f996 bl 8001af4 + 8000fa4: f001 fd36 bl 8002a14 } if (HAL_TIM_OnePulse_Init(&htim6, TIM_OPMODE_SINGLE) != HAL_OK) - 80007c8: 2108 movs r1, #8 - 80007ca: 480d ldr r0, [pc, #52] ; (8000800 ) - 80007cc: f003 fac3 bl 8003d56 - 80007d0: 4603 mov r3, r0 - 80007d2: 2b00 cmp r3, #0 - 80007d4: d001 beq.n 80007da + 8000fa8: 2108 movs r1, #8 + 8000faa: 480d ldr r0, [pc, #52] ; (8000fe0 ) + 8000fac: f003 fe63 bl 8004c76 + 8000fb0: 4603 mov r3, r0 + 8000fb2: 2b00 cmp r3, #0 + 8000fb4: d001 beq.n 8000fba { Error_Handler(); - 80007d6: f001 f98d bl 8001af4 + 8000fb6: f001 fd2d bl 8002a14 } sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; - 80007da: 2300 movs r3, #0 - 80007dc: 603b str r3, [r7, #0] + 8000fba: 2300 movs r3, #0 + 8000fbc: 603b str r3, [r7, #0] sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; - 80007de: 2300 movs r3, #0 - 80007e0: 607b str r3, [r7, #4] + 8000fbe: 2300 movs r3, #0 + 8000fc0: 607b str r3, [r7, #4] if (HAL_TIMEx_MasterConfigSynchronization(&htim6, &sMasterConfig) != HAL_OK) - 80007e2: 463b mov r3, r7 - 80007e4: 4619 mov r1, r3 - 80007e6: 4806 ldr r0, [pc, #24] ; (8000800 ) - 80007e8: f003 fcd6 bl 8004198 - 80007ec: 4603 mov r3, r0 - 80007ee: 2b00 cmp r3, #0 - 80007f0: d001 beq.n 80007f6 + 8000fc2: 463b mov r3, r7 + 8000fc4: 4619 mov r1, r3 + 8000fc6: 4806 ldr r0, [pc, #24] ; (8000fe0 ) + 8000fc8: f004 f876 bl 80050b8 + 8000fcc: 4603 mov r3, r0 + 8000fce: 2b00 cmp r3, #0 + 8000fd0: d001 beq.n 8000fd6 { Error_Handler(); - 80007f2: f001 f97f bl 8001af4 + 8000fd2: f001 fd1f bl 8002a14 } /* USER CODE BEGIN TIM6_Init 2 */ /* USER CODE END TIM6_Init 2 */ } - 80007f6: bf00 nop - 80007f8: 3708 adds r7, #8 - 80007fa: 46bd mov sp, r7 - 80007fc: bd80 pop {r7, pc} - 80007fe: bf00 nop - 8000800: 20000458 .word 0x20000458 - 8000804: 40001000 .word 0x40001000 + 8000fd6: bf00 nop + 8000fd8: 3708 adds r7, #8 + 8000fda: 46bd mov sp, r7 + 8000fdc: bd80 pop {r7, pc} + 8000fde: bf00 nop + 8000fe0: 20000454 .word 0x20000454 + 8000fe4: 40001000 .word 0x40001000 -08000808 : +08000fe8 : * @brief GPIO Initialization Function * @param None * @retval None */ static void MX_GPIO_Init(void) { - 8000808: b580 push {r7, lr} - 800080a: b08e sub sp, #56 ; 0x38 - 800080c: af00 add r7, sp, #0 + 8000fe8: b580 push {r7, lr} + 8000fea: b08e sub sp, #56 ; 0x38 + 8000fec: af00 add r7, sp, #0 GPIO_InitTypeDef GPIO_InitStruct = {0}; - 800080e: f107 0324 add.w r3, r7, #36 ; 0x24 - 8000812: 2200 movs r2, #0 - 8000814: 601a str r2, [r3, #0] - 8000816: 605a str r2, [r3, #4] - 8000818: 609a str r2, [r3, #8] - 800081a: 60da str r2, [r3, #12] - 800081c: 611a str r2, [r3, #16] + 8000fee: f107 0324 add.w r3, r7, #36 ; 0x24 + 8000ff2: 2200 movs r2, #0 + 8000ff4: 601a str r2, [r3, #0] + 8000ff6: 605a str r2, [r3, #4] + 8000ff8: 609a str r2, [r3, #8] + 8000ffa: 60da str r2, [r3, #12] + 8000ffc: 611a str r2, [r3, #16] /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOE_CLK_ENABLE(); - 800081e: 2300 movs r3, #0 - 8000820: 623b str r3, [r7, #32] - 8000822: 4bb0 ldr r3, [pc, #704] ; (8000ae4 ) - 8000824: 6b1b ldr r3, [r3, #48] ; 0x30 - 8000826: 4aaf ldr r2, [pc, #700] ; (8000ae4 ) - 8000828: f043 0310 orr.w r3, r3, #16 - 800082c: 6313 str r3, [r2, #48] ; 0x30 - 800082e: 4bad ldr r3, [pc, #692] ; (8000ae4 ) - 8000830: 6b1b ldr r3, [r3, #48] ; 0x30 - 8000832: f003 0310 and.w r3, r3, #16 - 8000836: 623b str r3, [r7, #32] - 8000838: 6a3b ldr r3, [r7, #32] + 8000ffe: 2300 movs r3, #0 + 8001000: 623b str r3, [r7, #32] + 8001002: 4bb0 ldr r3, [pc, #704] ; (80012c4 ) + 8001004: 6b1b ldr r3, [r3, #48] ; 0x30 + 8001006: 4aaf ldr r2, [pc, #700] ; (80012c4 ) + 8001008: f043 0310 orr.w r3, r3, #16 + 800100c: 6313 str r3, [r2, #48] ; 0x30 + 800100e: 4bad ldr r3, [pc, #692] ; (80012c4 ) + 8001010: 6b1b ldr r3, [r3, #48] ; 0x30 + 8001012: f003 0310 and.w r3, r3, #16 + 8001016: 623b str r3, [r7, #32] + 8001018: 6a3b ldr r3, [r7, #32] __HAL_RCC_GPIOC_CLK_ENABLE(); - 800083a: 2300 movs r3, #0 - 800083c: 61fb str r3, [r7, #28] - 800083e: 4ba9 ldr r3, [pc, #676] ; (8000ae4 ) - 8000840: 6b1b ldr r3, [r3, #48] ; 0x30 - 8000842: 4aa8 ldr r2, [pc, #672] ; (8000ae4 ) - 8000844: f043 0304 orr.w r3, r3, #4 - 8000848: 6313 str r3, [r2, #48] ; 0x30 - 800084a: 4ba6 ldr r3, [pc, #664] ; (8000ae4 ) - 800084c: 6b1b ldr r3, [r3, #48] ; 0x30 - 800084e: f003 0304 and.w r3, r3, #4 - 8000852: 61fb str r3, [r7, #28] - 8000854: 69fb ldr r3, [r7, #28] + 800101a: 2300 movs r3, #0 + 800101c: 61fb str r3, [r7, #28] + 800101e: 4ba9 ldr r3, [pc, #676] ; (80012c4 ) + 8001020: 6b1b ldr r3, [r3, #48] ; 0x30 + 8001022: 4aa8 ldr r2, [pc, #672] ; (80012c4 ) + 8001024: f043 0304 orr.w r3, r3, #4 + 8001028: 6313 str r3, [r2, #48] ; 0x30 + 800102a: 4ba6 ldr r3, [pc, #664] ; (80012c4 ) + 800102c: 6b1b ldr r3, [r3, #48] ; 0x30 + 800102e: f003 0304 and.w r3, r3, #4 + 8001032: 61fb str r3, [r7, #28] + 8001034: 69fb ldr r3, [r7, #28] __HAL_RCC_GPIOF_CLK_ENABLE(); - 8000856: 2300 movs r3, #0 - 8000858: 61bb str r3, [r7, #24] - 800085a: 4ba2 ldr r3, [pc, #648] ; (8000ae4 ) - 800085c: 6b1b ldr r3, [r3, #48] ; 0x30 - 800085e: 4aa1 ldr r2, [pc, #644] ; (8000ae4 ) - 8000860: f043 0320 orr.w r3, r3, #32 - 8000864: 6313 str r3, [r2, #48] ; 0x30 - 8000866: 4b9f ldr r3, [pc, #636] ; (8000ae4 ) - 8000868: 6b1b ldr r3, [r3, #48] ; 0x30 - 800086a: f003 0320 and.w r3, r3, #32 - 800086e: 61bb str r3, [r7, #24] - 8000870: 69bb ldr r3, [r7, #24] + 8001036: 2300 movs r3, #0 + 8001038: 61bb str r3, [r7, #24] + 800103a: 4ba2 ldr r3, [pc, #648] ; (80012c4 ) + 800103c: 6b1b ldr r3, [r3, #48] ; 0x30 + 800103e: 4aa1 ldr r2, [pc, #644] ; (80012c4 ) + 8001040: f043 0320 orr.w r3, r3, #32 + 8001044: 6313 str r3, [r2, #48] ; 0x30 + 8001046: 4b9f ldr r3, [pc, #636] ; (80012c4 ) + 8001048: 6b1b ldr r3, [r3, #48] ; 0x30 + 800104a: f003 0320 and.w r3, r3, #32 + 800104e: 61bb str r3, [r7, #24] + 8001050: 69bb ldr r3, [r7, #24] __HAL_RCC_GPIOH_CLK_ENABLE(); - 8000872: 2300 movs r3, #0 - 8000874: 617b str r3, [r7, #20] - 8000876: 4b9b ldr r3, [pc, #620] ; (8000ae4 ) - 8000878: 6b1b ldr r3, [r3, #48] ; 0x30 - 800087a: 4a9a ldr r2, [pc, #616] ; (8000ae4 ) - 800087c: f043 0380 orr.w r3, r3, #128 ; 0x80 - 8000880: 6313 str r3, [r2, #48] ; 0x30 - 8000882: 4b98 ldr r3, [pc, #608] ; (8000ae4 ) - 8000884: 6b1b ldr r3, [r3, #48] ; 0x30 - 8000886: f003 0380 and.w r3, r3, #128 ; 0x80 - 800088a: 617b str r3, [r7, #20] - 800088c: 697b ldr r3, [r7, #20] + 8001052: 2300 movs r3, #0 + 8001054: 617b str r3, [r7, #20] + 8001056: 4b9b ldr r3, [pc, #620] ; (80012c4 ) + 8001058: 6b1b ldr r3, [r3, #48] ; 0x30 + 800105a: 4a9a ldr r2, [pc, #616] ; (80012c4 ) + 800105c: f043 0380 orr.w r3, r3, #128 ; 0x80 + 8001060: 6313 str r3, [r2, #48] ; 0x30 + 8001062: 4b98 ldr r3, [pc, #608] ; (80012c4 ) + 8001064: 6b1b ldr r3, [r3, #48] ; 0x30 + 8001066: f003 0380 and.w r3, r3, #128 ; 0x80 + 800106a: 617b str r3, [r7, #20] + 800106c: 697b ldr r3, [r7, #20] __HAL_RCC_GPIOA_CLK_ENABLE(); - 800088e: 2300 movs r3, #0 - 8000890: 613b str r3, [r7, #16] - 8000892: 4b94 ldr r3, [pc, #592] ; (8000ae4 ) - 8000894: 6b1b ldr r3, [r3, #48] ; 0x30 - 8000896: 4a93 ldr r2, [pc, #588] ; (8000ae4 ) - 8000898: f043 0301 orr.w r3, r3, #1 - 800089c: 6313 str r3, [r2, #48] ; 0x30 - 800089e: 4b91 ldr r3, [pc, #580] ; (8000ae4 ) - 80008a0: 6b1b ldr r3, [r3, #48] ; 0x30 - 80008a2: f003 0301 and.w r3, r3, #1 - 80008a6: 613b str r3, [r7, #16] - 80008a8: 693b ldr r3, [r7, #16] + 800106e: 2300 movs r3, #0 + 8001070: 613b str r3, [r7, #16] + 8001072: 4b94 ldr r3, [pc, #592] ; (80012c4 ) + 8001074: 6b1b ldr r3, [r3, #48] ; 0x30 + 8001076: 4a93 ldr r2, [pc, #588] ; (80012c4 ) + 8001078: f043 0301 orr.w r3, r3, #1 + 800107c: 6313 str r3, [r2, #48] ; 0x30 + 800107e: 4b91 ldr r3, [pc, #580] ; (80012c4 ) + 8001080: 6b1b ldr r3, [r3, #48] ; 0x30 + 8001082: f003 0301 and.w r3, r3, #1 + 8001086: 613b str r3, [r7, #16] + 8001088: 693b ldr r3, [r7, #16] __HAL_RCC_GPIOB_CLK_ENABLE(); - 80008aa: 2300 movs r3, #0 - 80008ac: 60fb str r3, [r7, #12] - 80008ae: 4b8d ldr r3, [pc, #564] ; (8000ae4 ) - 80008b0: 6b1b ldr r3, [r3, #48] ; 0x30 - 80008b2: 4a8c ldr r2, [pc, #560] ; (8000ae4 ) - 80008b4: f043 0302 orr.w r3, r3, #2 - 80008b8: 6313 str r3, [r2, #48] ; 0x30 - 80008ba: 4b8a ldr r3, [pc, #552] ; (8000ae4 ) - 80008bc: 6b1b ldr r3, [r3, #48] ; 0x30 - 80008be: f003 0302 and.w r3, r3, #2 - 80008c2: 60fb str r3, [r7, #12] - 80008c4: 68fb ldr r3, [r7, #12] + 800108a: 2300 movs r3, #0 + 800108c: 60fb str r3, [r7, #12] + 800108e: 4b8d ldr r3, [pc, #564] ; (80012c4 ) + 8001090: 6b1b ldr r3, [r3, #48] ; 0x30 + 8001092: 4a8c ldr r2, [pc, #560] ; (80012c4 ) + 8001094: f043 0302 orr.w r3, r3, #2 + 8001098: 6313 str r3, [r2, #48] ; 0x30 + 800109a: 4b8a ldr r3, [pc, #552] ; (80012c4 ) + 800109c: 6b1b ldr r3, [r3, #48] ; 0x30 + 800109e: f003 0302 and.w r3, r3, #2 + 80010a2: 60fb str r3, [r7, #12] + 80010a4: 68fb ldr r3, [r7, #12] __HAL_RCC_GPIOG_CLK_ENABLE(); - 80008c6: 2300 movs r3, #0 - 80008c8: 60bb str r3, [r7, #8] - 80008ca: 4b86 ldr r3, [pc, #536] ; (8000ae4 ) - 80008cc: 6b1b ldr r3, [r3, #48] ; 0x30 - 80008ce: 4a85 ldr r2, [pc, #532] ; (8000ae4 ) - 80008d0: f043 0340 orr.w r3, r3, #64 ; 0x40 - 80008d4: 6313 str r3, [r2, #48] ; 0x30 - 80008d6: 4b83 ldr r3, [pc, #524] ; (8000ae4 ) - 80008d8: 6b1b ldr r3, [r3, #48] ; 0x30 - 80008da: f003 0340 and.w r3, r3, #64 ; 0x40 - 80008de: 60bb str r3, [r7, #8] - 80008e0: 68bb ldr r3, [r7, #8] + 80010a6: 2300 movs r3, #0 + 80010a8: 60bb str r3, [r7, #8] + 80010aa: 4b86 ldr r3, [pc, #536] ; (80012c4 ) + 80010ac: 6b1b ldr r3, [r3, #48] ; 0x30 + 80010ae: 4a85 ldr r2, [pc, #532] ; (80012c4 ) + 80010b0: f043 0340 orr.w r3, r3, #64 ; 0x40 + 80010b4: 6313 str r3, [r2, #48] ; 0x30 + 80010b6: 4b83 ldr r3, [pc, #524] ; (80012c4 ) + 80010b8: 6b1b ldr r3, [r3, #48] ; 0x30 + 80010ba: f003 0340 and.w r3, r3, #64 ; 0x40 + 80010be: 60bb str r3, [r7, #8] + 80010c0: 68bb ldr r3, [r7, #8] __HAL_RCC_GPIOD_CLK_ENABLE(); - 80008e2: 2300 movs r3, #0 - 80008e4: 607b str r3, [r7, #4] - 80008e6: 4b7f ldr r3, [pc, #508] ; (8000ae4 ) - 80008e8: 6b1b ldr r3, [r3, #48] ; 0x30 - 80008ea: 4a7e ldr r2, [pc, #504] ; (8000ae4 ) - 80008ec: f043 0308 orr.w r3, r3, #8 - 80008f0: 6313 str r3, [r2, #48] ; 0x30 - 80008f2: 4b7c ldr r3, [pc, #496] ; (8000ae4 ) - 80008f4: 6b1b ldr r3, [r3, #48] ; 0x30 - 80008f6: f003 0308 and.w r3, r3, #8 - 80008fa: 607b str r3, [r7, #4] - 80008fc: 687b ldr r3, [r7, #4] + 80010c2: 2300 movs r3, #0 + 80010c4: 607b str r3, [r7, #4] + 80010c6: 4b7f ldr r3, [pc, #508] ; (80012c4 ) + 80010c8: 6b1b ldr r3, [r3, #48] ; 0x30 + 80010ca: 4a7e ldr r2, [pc, #504] ; (80012c4 ) + 80010cc: f043 0308 orr.w r3, r3, #8 + 80010d0: 6313 str r3, [r2, #48] ; 0x30 + 80010d2: 4b7c ldr r3, [pc, #496] ; (80012c4 ) + 80010d4: 6b1b ldr r3, [r3, #48] ; 0x30 + 80010d6: f003 0308 and.w r3, r3, #8 + 80010da: 607b str r3, [r7, #4] + 80010dc: 687b ldr r3, [r7, #4] /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOC, NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin, GPIO_PIN_RESET); - 80008fe: 2200 movs r2, #0 - 8000900: 2116 movs r1, #22 - 8000902: 4879 ldr r0, [pc, #484] ; (8000ae8 ) - 8000904: f002 fa0a bl 8002d1c + 80010de: 2200 movs r2, #0 + 80010e0: 2116 movs r1, #22 + 80010e2: 4879 ldr r0, [pc, #484] ; (80012c8 ) + 80010e4: f002 fdaa bl 8003c3c /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(ACP_RST_GPIO_Port, ACP_RST_Pin, GPIO_PIN_RESET); - 8000908: 2200 movs r2, #0 - 800090a: 2180 movs r1, #128 ; 0x80 - 800090c: 4877 ldr r0, [pc, #476] ; (8000aec ) - 800090e: f002 fa05 bl 8002d1c + 80010e8: 2200 movs r2, #0 + 80010ea: 2180 movs r1, #128 ; 0x80 + 80010ec: 4877 ldr r0, [pc, #476] ; (80012cc ) + 80010ee: f002 fda5 bl 8003c3c /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOD, RDX_Pin|WRX_DCX_Pin, GPIO_PIN_RESET); - 8000912: 2200 movs r2, #0 - 8000914: f44f 5140 mov.w r1, #12288 ; 0x3000 - 8000918: 4875 ldr r0, [pc, #468] ; (8000af0 ) - 800091a: f002 f9ff bl 8002d1c + 80010f2: 2200 movs r2, #0 + 80010f4: f44f 5140 mov.w r1, #12288 ; 0x3000 + 80010f8: 4875 ldr r0, [pc, #468] ; (80012d0 ) + 80010fa: f002 fd9f bl 8003c3c /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOG, LD3_Pin|LD4_Pin, GPIO_PIN_RESET); - 800091e: 2200 movs r2, #0 - 8000920: f44f 41c0 mov.w r1, #24576 ; 0x6000 - 8000924: 4873 ldr r0, [pc, #460] ; (8000af4 ) - 8000926: f002 f9f9 bl 8002d1c + 80010fe: 2200 movs r2, #0 + 8001100: f44f 41c0 mov.w r1, #24576 ; 0x6000 + 8001104: 4873 ldr r0, [pc, #460] ; (80012d4 ) + 8001106: f002 fd99 bl 8003c3c /*Configure GPIO pins : A0_Pin A1_Pin A2_Pin A3_Pin A4_Pin A5_Pin SDNRAS_Pin A6_Pin A7_Pin A8_Pin A9_Pin */ GPIO_InitStruct.Pin = A0_Pin|A1_Pin|A2_Pin|A3_Pin - 800092a: f64f 033f movw r3, #63551 ; 0xf83f - 800092e: 627b str r3, [r7, #36] ; 0x24 + 800110a: f64f 033f movw r3, #63551 ; 0xf83f + 800110e: 627b str r3, [r7, #36] ; 0x24 |A4_Pin|A5_Pin|SDNRAS_Pin|A6_Pin |A7_Pin|A8_Pin|A9_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8000930: 2302 movs r3, #2 - 8000932: 62bb str r3, [r7, #40] ; 0x28 + 8001110: 2302 movs r3, #2 + 8001112: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8000934: 2300 movs r3, #0 - 8000936: 62fb str r3, [r7, #44] ; 0x2c + 8001114: 2300 movs r3, #0 + 8001116: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - 8000938: 2303 movs r3, #3 - 800093a: 633b str r3, [r7, #48] ; 0x30 + 8001118: 2303 movs r3, #3 + 800111a: 633b str r3, [r7, #48] ; 0x30 GPIO_InitStruct.Alternate = GPIO_AF12_FMC; - 800093c: 230c movs r3, #12 - 800093e: 637b str r3, [r7, #52] ; 0x34 + 800111c: 230c movs r3, #12 + 800111e: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); - 8000940: f107 0324 add.w r3, r7, #36 ; 0x24 - 8000944: 4619 mov r1, r3 - 8000946: 486c ldr r0, [pc, #432] ; (8000af8 ) - 8000948: f002 f83e bl 80029c8 + 8001120: f107 0324 add.w r3, r7, #36 ; 0x24 + 8001124: 4619 mov r1, r3 + 8001126: 486c ldr r0, [pc, #432] ; (80012d8 ) + 8001128: f002 fbde bl 80038e8 /*Configure GPIO pins : SPI5_SCK_Pin SPI5_MISO_Pin SPI5_MOSI_Pin */ GPIO_InitStruct.Pin = SPI5_SCK_Pin|SPI5_MISO_Pin|SPI5_MOSI_Pin; - 800094c: f44f 7360 mov.w r3, #896 ; 0x380 - 8000950: 627b str r3, [r7, #36] ; 0x24 + 800112c: f44f 7360 mov.w r3, #896 ; 0x380 + 8001130: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8000952: 2302 movs r3, #2 - 8000954: 62bb str r3, [r7, #40] ; 0x28 + 8001132: 2302 movs r3, #2 + 8001134: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8000956: 2300 movs r3, #0 - 8000958: 62fb str r3, [r7, #44] ; 0x2c + 8001136: 2300 movs r3, #0 + 8001138: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 800095a: 2300 movs r3, #0 - 800095c: 633b str r3, [r7, #48] ; 0x30 + 800113a: 2300 movs r3, #0 + 800113c: 633b str r3, [r7, #48] ; 0x30 GPIO_InitStruct.Alternate = GPIO_AF5_SPI5; - 800095e: 2305 movs r3, #5 - 8000960: 637b str r3, [r7, #52] ; 0x34 + 800113e: 2305 movs r3, #5 + 8001140: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); - 8000962: f107 0324 add.w r3, r7, #36 ; 0x24 - 8000966: 4619 mov r1, r3 - 8000968: 4863 ldr r0, [pc, #396] ; (8000af8 ) - 800096a: f002 f82d bl 80029c8 + 8001142: f107 0324 add.w r3, r7, #36 ; 0x24 + 8001146: 4619 mov r1, r3 + 8001148: 4863 ldr r0, [pc, #396] ; (80012d8 ) + 800114a: f002 fbcd bl 80038e8 /*Configure GPIO pin : ENABLE_Pin */ GPIO_InitStruct.Pin = ENABLE_Pin; - 800096e: f44f 6380 mov.w r3, #1024 ; 0x400 - 8000972: 627b str r3, [r7, #36] ; 0x24 + 800114e: f44f 6380 mov.w r3, #1024 ; 0x400 + 8001152: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8000974: 2302 movs r3, #2 - 8000976: 62bb str r3, [r7, #40] ; 0x28 + 8001154: 2302 movs r3, #2 + 8001156: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8000978: 2300 movs r3, #0 - 800097a: 62fb str r3, [r7, #44] ; 0x2c + 8001158: 2300 movs r3, #0 + 800115a: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 800097c: 2300 movs r3, #0 - 800097e: 633b str r3, [r7, #48] ; 0x30 + 800115c: 2300 movs r3, #0 + 800115e: 633b str r3, [r7, #48] ; 0x30 GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; - 8000980: 230e movs r3, #14 - 8000982: 637b str r3, [r7, #52] ; 0x34 + 8001160: 230e movs r3, #14 + 8001162: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(ENABLE_GPIO_Port, &GPIO_InitStruct); - 8000984: f107 0324 add.w r3, r7, #36 ; 0x24 - 8000988: 4619 mov r1, r3 - 800098a: 485b ldr r0, [pc, #364] ; (8000af8 ) - 800098c: f002 f81c bl 80029c8 + 8001164: f107 0324 add.w r3, r7, #36 ; 0x24 + 8001168: 4619 mov r1, r3 + 800116a: 485b ldr r0, [pc, #364] ; (80012d8 ) + 800116c: f002 fbbc bl 80038e8 /*Configure GPIO pin : SDNWE_Pin */ GPIO_InitStruct.Pin = SDNWE_Pin; - 8000990: 2301 movs r3, #1 - 8000992: 627b str r3, [r7, #36] ; 0x24 + 8001170: 2301 movs r3, #1 + 8001172: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8000994: 2302 movs r3, #2 - 8000996: 62bb str r3, [r7, #40] ; 0x28 + 8001174: 2302 movs r3, #2 + 8001176: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8000998: 2300 movs r3, #0 - 800099a: 62fb str r3, [r7, #44] ; 0x2c + 8001178: 2300 movs r3, #0 + 800117a: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - 800099c: 2303 movs r3, #3 - 800099e: 633b str r3, [r7, #48] ; 0x30 + 800117c: 2303 movs r3, #3 + 800117e: 633b str r3, [r7, #48] ; 0x30 GPIO_InitStruct.Alternate = GPIO_AF12_FMC; - 80009a0: 230c movs r3, #12 - 80009a2: 637b str r3, [r7, #52] ; 0x34 + 8001180: 230c movs r3, #12 + 8001182: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(SDNWE_GPIO_Port, &GPIO_InitStruct); - 80009a4: f107 0324 add.w r3, r7, #36 ; 0x24 - 80009a8: 4619 mov r1, r3 - 80009aa: 484f ldr r0, [pc, #316] ; (8000ae8 ) - 80009ac: f002 f80c bl 80029c8 + 8001184: f107 0324 add.w r3, r7, #36 ; 0x24 + 8001188: 4619 mov r1, r3 + 800118a: 484f ldr r0, [pc, #316] ; (80012c8 ) + 800118c: f002 fbac bl 80038e8 /*Configure GPIO pins : NCS_MEMS_SPI_Pin CSX_Pin OTG_FS_PSO_Pin */ GPIO_InitStruct.Pin = NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin; - 80009b0: 2316 movs r3, #22 - 80009b2: 627b str r3, [r7, #36] ; 0x24 + 8001190: 2316 movs r3, #22 + 8001192: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - 80009b4: 2301 movs r3, #1 - 80009b6: 62bb str r3, [r7, #40] ; 0x28 + 8001194: 2301 movs r3, #1 + 8001196: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 80009b8: 2300 movs r3, #0 - 80009ba: 62fb str r3, [r7, #44] ; 0x2c + 8001198: 2300 movs r3, #0 + 800119a: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 80009bc: 2300 movs r3, #0 - 80009be: 633b str r3, [r7, #48] ; 0x30 + 800119c: 2300 movs r3, #0 + 800119e: 633b str r3, [r7, #48] ; 0x30 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); - 80009c0: f107 0324 add.w r3, r7, #36 ; 0x24 - 80009c4: 4619 mov r1, r3 - 80009c6: 4848 ldr r0, [pc, #288] ; (8000ae8 ) - 80009c8: f001 fffe bl 80029c8 + 80011a0: f107 0324 add.w r3, r7, #36 ; 0x24 + 80011a4: 4619 mov r1, r3 + 80011a6: 4848 ldr r0, [pc, #288] ; (80012c8 ) + 80011a8: f002 fb9e bl 80038e8 /*Configure GPIO pin : B1_Pin */ GPIO_InitStruct.Pin = B1_Pin; - 80009cc: 2301 movs r3, #1 - 80009ce: 627b str r3, [r7, #36] ; 0x24 + 80011ac: 2301 movs r3, #1 + 80011ae: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; - 80009d0: 4b4a ldr r3, [pc, #296] ; (8000afc ) - 80009d2: 62bb str r3, [r7, #40] ; 0x28 + 80011b0: 4b4a ldr r3, [pc, #296] ; (80012dc ) + 80011b2: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 80009d4: 2300 movs r3, #0 - 80009d6: 62fb str r3, [r7, #44] ; 0x2c + 80011b4: 2300 movs r3, #0 + 80011b6: 62fb str r3, [r7, #44] ; 0x2c HAL_GPIO_Init(B1_GPIO_Port, &GPIO_InitStruct); - 80009d8: f107 0324 add.w r3, r7, #36 ; 0x24 - 80009dc: 4619 mov r1, r3 - 80009de: 4843 ldr r0, [pc, #268] ; (8000aec ) - 80009e0: f001 fff2 bl 80029c8 + 80011b8: f107 0324 add.w r3, r7, #36 ; 0x24 + 80011bc: 4619 mov r1, r3 + 80011be: 4843 ldr r0, [pc, #268] ; (80012cc ) + 80011c0: f002 fb92 bl 80038e8 /*Configure GPIO pins : MEMS_INT1_Pin MEMS_INT2_Pin TP_INT1_Pin */ GPIO_InitStruct.Pin = MEMS_INT1_Pin|MEMS_INT2_Pin|TP_INT1_Pin; - 80009e4: f248 0306 movw r3, #32774 ; 0x8006 - 80009e8: 627b str r3, [r7, #36] ; 0x24 + 80011c4: f248 0306 movw r3, #32774 ; 0x8006 + 80011c8: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING; - 80009ea: 4b45 ldr r3, [pc, #276] ; (8000b00 ) - 80009ec: 62bb str r3, [r7, #40] ; 0x28 + 80011ca: 4b45 ldr r3, [pc, #276] ; (80012e0 ) + 80011cc: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 80009ee: 2300 movs r3, #0 - 80009f0: 62fb str r3, [r7, #44] ; 0x2c + 80011ce: 2300 movs r3, #0 + 80011d0: 62fb str r3, [r7, #44] ; 0x2c HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - 80009f2: f107 0324 add.w r3, r7, #36 ; 0x24 - 80009f6: 4619 mov r1, r3 - 80009f8: 483c ldr r0, [pc, #240] ; (8000aec ) - 80009fa: f001 ffe5 bl 80029c8 + 80011d2: f107 0324 add.w r3, r7, #36 ; 0x24 + 80011d6: 4619 mov r1, r3 + 80011d8: 483c ldr r0, [pc, #240] ; (80012cc ) + 80011da: f002 fb85 bl 80038e8 /*Configure GPIO pins : B5_Pin VSYNC_Pin G2_Pin R4_Pin R5_Pin */ GPIO_InitStruct.Pin = B5_Pin|VSYNC_Pin|G2_Pin|R4_Pin - 80009fe: f641 0358 movw r3, #6232 ; 0x1858 - 8000a02: 627b str r3, [r7, #36] ; 0x24 + 80011de: f641 0358 movw r3, #6232 ; 0x1858 + 80011e2: 627b str r3, [r7, #36] ; 0x24 |R5_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8000a04: 2302 movs r3, #2 - 8000a06: 62bb str r3, [r7, #40] ; 0x28 + 80011e4: 2302 movs r3, #2 + 80011e6: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8000a08: 2300 movs r3, #0 - 8000a0a: 62fb str r3, [r7, #44] ; 0x2c + 80011e8: 2300 movs r3, #0 + 80011ea: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 8000a0c: 2300 movs r3, #0 - 8000a0e: 633b str r3, [r7, #48] ; 0x30 + 80011ec: 2300 movs r3, #0 + 80011ee: 633b str r3, [r7, #48] ; 0x30 GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; - 8000a10: 230e movs r3, #14 - 8000a12: 637b str r3, [r7, #52] ; 0x34 + 80011f0: 230e movs r3, #14 + 80011f2: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - 8000a14: f107 0324 add.w r3, r7, #36 ; 0x24 - 8000a18: 4619 mov r1, r3 - 8000a1a: 4834 ldr r0, [pc, #208] ; (8000aec ) - 8000a1c: f001 ffd4 bl 80029c8 + 80011f4: f107 0324 add.w r3, r7, #36 ; 0x24 + 80011f8: 4619 mov r1, r3 + 80011fa: 4834 ldr r0, [pc, #208] ; (80012cc ) + 80011fc: f002 fb74 bl 80038e8 /*Configure GPIO pin : ACP_RST_Pin */ GPIO_InitStruct.Pin = ACP_RST_Pin; - 8000a20: 2380 movs r3, #128 ; 0x80 - 8000a22: 627b str r3, [r7, #36] ; 0x24 + 8001200: 2380 movs r3, #128 ; 0x80 + 8001202: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - 8000a24: 2301 movs r3, #1 - 8000a26: 62bb str r3, [r7, #40] ; 0x28 + 8001204: 2301 movs r3, #1 + 8001206: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8000a28: 2300 movs r3, #0 - 8000a2a: 62fb str r3, [r7, #44] ; 0x2c + 8001208: 2300 movs r3, #0 + 800120a: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 8000a2c: 2300 movs r3, #0 - 8000a2e: 633b str r3, [r7, #48] ; 0x30 + 800120c: 2300 movs r3, #0 + 800120e: 633b str r3, [r7, #48] ; 0x30 HAL_GPIO_Init(ACP_RST_GPIO_Port, &GPIO_InitStruct); - 8000a30: f107 0324 add.w r3, r7, #36 ; 0x24 - 8000a34: 4619 mov r1, r3 - 8000a36: 482d ldr r0, [pc, #180] ; (8000aec ) - 8000a38: f001 ffc6 bl 80029c8 + 8001210: f107 0324 add.w r3, r7, #36 ; 0x24 + 8001214: 4619 mov r1, r3 + 8001216: 482d ldr r0, [pc, #180] ; (80012cc ) + 8001218: f002 fb66 bl 80038e8 /*Configure GPIO pin : OTG_FS_OC_Pin */ GPIO_InitStruct.Pin = OTG_FS_OC_Pin; - 8000a3c: 2320 movs r3, #32 - 8000a3e: 627b str r3, [r7, #36] ; 0x24 + 800121c: 2320 movs r3, #32 + 800121e: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING; - 8000a40: 4b2f ldr r3, [pc, #188] ; (8000b00 ) - 8000a42: 62bb str r3, [r7, #40] ; 0x28 + 8001220: 4b2f ldr r3, [pc, #188] ; (80012e0 ) + 8001222: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8000a44: 2300 movs r3, #0 - 8000a46: 62fb str r3, [r7, #44] ; 0x2c + 8001224: 2300 movs r3, #0 + 8001226: 62fb str r3, [r7, #44] ; 0x2c HAL_GPIO_Init(OTG_FS_OC_GPIO_Port, &GPIO_InitStruct); - 8000a48: f107 0324 add.w r3, r7, #36 ; 0x24 - 8000a4c: 4619 mov r1, r3 - 8000a4e: 4826 ldr r0, [pc, #152] ; (8000ae8 ) - 8000a50: f001 ffba bl 80029c8 + 8001228: f107 0324 add.w r3, r7, #36 ; 0x24 + 800122c: 4619 mov r1, r3 + 800122e: 4826 ldr r0, [pc, #152] ; (80012c8 ) + 8001230: f002 fb5a bl 80038e8 /*Configure GPIO pins : R3_Pin R6_Pin */ GPIO_InitStruct.Pin = R3_Pin|R6_Pin; - 8000a54: 2303 movs r3, #3 - 8000a56: 627b str r3, [r7, #36] ; 0x24 + 8001234: 2303 movs r3, #3 + 8001236: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8000a58: 2302 movs r3, #2 - 8000a5a: 62bb str r3, [r7, #40] ; 0x28 + 8001238: 2302 movs r3, #2 + 800123a: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8000a5c: 2300 movs r3, #0 - 8000a5e: 62fb str r3, [r7, #44] ; 0x2c + 800123c: 2300 movs r3, #0 + 800123e: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 8000a60: 2300 movs r3, #0 - 8000a62: 633b str r3, [r7, #48] ; 0x30 + 8001240: 2300 movs r3, #0 + 8001242: 633b str r3, [r7, #48] ; 0x30 GPIO_InitStruct.Alternate = GPIO_AF9_LTDC; - 8000a64: 2309 movs r3, #9 - 8000a66: 637b str r3, [r7, #52] ; 0x34 + 8001244: 2309 movs r3, #9 + 8001246: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - 8000a68: f107 0324 add.w r3, r7, #36 ; 0x24 - 8000a6c: 4619 mov r1, r3 - 8000a6e: 4825 ldr r0, [pc, #148] ; (8000b04 ) - 8000a70: f001 ffaa bl 80029c8 + 8001248: f107 0324 add.w r3, r7, #36 ; 0x24 + 800124c: 4619 mov r1, r3 + 800124e: 4825 ldr r0, [pc, #148] ; (80012e4 ) + 8001250: f002 fb4a bl 80038e8 /*Configure GPIO pin : BOOT1_Pin */ GPIO_InitStruct.Pin = BOOT1_Pin; - 8000a74: 2304 movs r3, #4 - 8000a76: 627b str r3, [r7, #36] ; 0x24 + 8001254: 2304 movs r3, #4 + 8001256: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_INPUT; - 8000a78: 2300 movs r3, #0 - 8000a7a: 62bb str r3, [r7, #40] ; 0x28 + 8001258: 2300 movs r3, #0 + 800125a: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8000a7c: 2300 movs r3, #0 - 8000a7e: 62fb str r3, [r7, #44] ; 0x2c + 800125c: 2300 movs r3, #0 + 800125e: 62fb str r3, [r7, #44] ; 0x2c HAL_GPIO_Init(BOOT1_GPIO_Port, &GPIO_InitStruct); - 8000a80: f107 0324 add.w r3, r7, #36 ; 0x24 - 8000a84: 4619 mov r1, r3 - 8000a86: 481f ldr r0, [pc, #124] ; (8000b04 ) - 8000a88: f001 ff9e bl 80029c8 + 8001260: f107 0324 add.w r3, r7, #36 ; 0x24 + 8001264: 4619 mov r1, r3 + 8001266: 481f ldr r0, [pc, #124] ; (80012e4 ) + 8001268: f002 fb3e bl 80038e8 /*Configure GPIO pins : A10_Pin A11_Pin BA0_Pin BA1_Pin SDCLK_Pin SDNCAS_Pin */ GPIO_InitStruct.Pin = A10_Pin|A11_Pin|BA0_Pin|BA1_Pin - 8000a8c: f248 1333 movw r3, #33075 ; 0x8133 - 8000a90: 627b str r3, [r7, #36] ; 0x24 + 800126c: f248 1333 movw r3, #33075 ; 0x8133 + 8001270: 627b str r3, [r7, #36] ; 0x24 |SDCLK_Pin|SDNCAS_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8000a92: 2302 movs r3, #2 - 8000a94: 62bb str r3, [r7, #40] ; 0x28 + 8001272: 2302 movs r3, #2 + 8001274: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8000a96: 2300 movs r3, #0 - 8000a98: 62fb str r3, [r7, #44] ; 0x2c + 8001276: 2300 movs r3, #0 + 8001278: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - 8000a9a: 2303 movs r3, #3 - 8000a9c: 633b str r3, [r7, #48] ; 0x30 + 800127a: 2303 movs r3, #3 + 800127c: 633b str r3, [r7, #48] ; 0x30 GPIO_InitStruct.Alternate = GPIO_AF12_FMC; - 8000a9e: 230c movs r3, #12 - 8000aa0: 637b str r3, [r7, #52] ; 0x34 + 800127e: 230c movs r3, #12 + 8001280: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); - 8000aa2: f107 0324 add.w r3, r7, #36 ; 0x24 - 8000aa6: 4619 mov r1, r3 - 8000aa8: 4812 ldr r0, [pc, #72] ; (8000af4 ) - 8000aaa: f001 ff8d bl 80029c8 + 8001282: f107 0324 add.w r3, r7, #36 ; 0x24 + 8001286: 4619 mov r1, r3 + 8001288: 4812 ldr r0, [pc, #72] ; (80012d4 ) + 800128a: f002 fb2d bl 80038e8 /*Configure GPIO pins : D4_Pin D5_Pin D6_Pin D7_Pin D8_Pin D9_Pin D10_Pin D11_Pin D12_Pin NBL0_Pin NBL1_Pin */ GPIO_InitStruct.Pin = D4_Pin|D5_Pin|D6_Pin|D7_Pin - 8000aae: f64f 7383 movw r3, #65411 ; 0xff83 - 8000ab2: 627b str r3, [r7, #36] ; 0x24 + 800128e: f64f 7383 movw r3, #65411 ; 0xff83 + 8001292: 627b str r3, [r7, #36] ; 0x24 |D8_Pin|D9_Pin|D10_Pin|D11_Pin |D12_Pin|NBL0_Pin|NBL1_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8000ab4: 2302 movs r3, #2 - 8000ab6: 62bb str r3, [r7, #40] ; 0x28 + 8001294: 2302 movs r3, #2 + 8001296: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8000ab8: 2300 movs r3, #0 - 8000aba: 62fb str r3, [r7, #44] ; 0x2c + 8001298: 2300 movs r3, #0 + 800129a: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - 8000abc: 2303 movs r3, #3 - 8000abe: 633b str r3, [r7, #48] ; 0x30 + 800129c: 2303 movs r3, #3 + 800129e: 633b str r3, [r7, #48] ; 0x30 GPIO_InitStruct.Alternate = GPIO_AF12_FMC; - 8000ac0: 230c movs r3, #12 - 8000ac2: 637b str r3, [r7, #52] ; 0x34 + 80012a0: 230c movs r3, #12 + 80012a2: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); - 8000ac4: f107 0324 add.w r3, r7, #36 ; 0x24 - 8000ac8: 4619 mov r1, r3 - 8000aca: 480f ldr r0, [pc, #60] ; (8000b08 ) - 8000acc: f001 ff7c bl 80029c8 + 80012a4: f107 0324 add.w r3, r7, #36 ; 0x24 + 80012a8: 4619 mov r1, r3 + 80012aa: 480f ldr r0, [pc, #60] ; (80012e8 ) + 80012ac: f002 fb1c bl 80038e8 /*Configure GPIO pins : G4_Pin G5_Pin B6_Pin B7_Pin */ GPIO_InitStruct.Pin = G4_Pin|G5_Pin|B6_Pin|B7_Pin; - 8000ad0: f44f 6370 mov.w r3, #3840 ; 0xf00 - 8000ad4: 627b str r3, [r7, #36] ; 0x24 + 80012b0: f44f 6370 mov.w r3, #3840 ; 0xf00 + 80012b4: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8000ad6: 2302 movs r3, #2 - 8000ad8: 62bb str r3, [r7, #40] ; 0x28 + 80012b6: 2302 movs r3, #2 + 80012b8: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8000ada: 2300 movs r3, #0 - 8000adc: 62fb str r3, [r7, #44] ; 0x2c + 80012ba: 2300 movs r3, #0 + 80012bc: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 8000ade: 2300 movs r3, #0 - 8000ae0: 633b str r3, [r7, #48] ; 0x30 - 8000ae2: e013 b.n 8000b0c - 8000ae4: 40023800 .word 0x40023800 - 8000ae8: 40020800 .word 0x40020800 - 8000aec: 40020000 .word 0x40020000 - 8000af0: 40020c00 .word 0x40020c00 - 8000af4: 40021800 .word 0x40021800 - 8000af8: 40021400 .word 0x40021400 - 8000afc: 10110000 .word 0x10110000 - 8000b00: 10120000 .word 0x10120000 - 8000b04: 40020400 .word 0x40020400 - 8000b08: 40021000 .word 0x40021000 + 80012be: 2300 movs r3, #0 + 80012c0: 633b str r3, [r7, #48] ; 0x30 + 80012c2: e013 b.n 80012ec + 80012c4: 40023800 .word 0x40023800 + 80012c8: 40020800 .word 0x40020800 + 80012cc: 40020000 .word 0x40020000 + 80012d0: 40020c00 .word 0x40020c00 + 80012d4: 40021800 .word 0x40021800 + 80012d8: 40021400 .word 0x40021400 + 80012dc: 10110000 .word 0x10110000 + 80012e0: 10120000 .word 0x10120000 + 80012e4: 40020400 .word 0x40020400 + 80012e8: 40021000 .word 0x40021000 GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; - 8000b0c: 230e movs r3, #14 - 8000b0e: 637b str r3, [r7, #52] ; 0x34 + 80012ec: 230e movs r3, #14 + 80012ee: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - 8000b10: f107 0324 add.w r3, r7, #36 ; 0x24 - 8000b14: 4619 mov r1, r3 - 8000b16: 4877 ldr r0, [pc, #476] ; (8000cf4 ) - 8000b18: f001 ff56 bl 80029c8 + 80012f0: f107 0324 add.w r3, r7, #36 ; 0x24 + 80012f4: 4619 mov r1, r3 + 80012f6: 4877 ldr r0, [pc, #476] ; (80014d4 ) + 80012f8: f002 faf6 bl 80038e8 /*Configure GPIO pins : OTG_HS_ID_Pin OTG_HS_DM_Pin OTG_HS_DP_Pin */ GPIO_InitStruct.Pin = OTG_HS_ID_Pin|OTG_HS_DM_Pin|OTG_HS_DP_Pin; - 8000b1c: f44f 4350 mov.w r3, #53248 ; 0xd000 - 8000b20: 627b str r3, [r7, #36] ; 0x24 + 80012fc: f44f 4350 mov.w r3, #53248 ; 0xd000 + 8001300: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8000b22: 2302 movs r3, #2 - 8000b24: 62bb str r3, [r7, #40] ; 0x28 + 8001302: 2302 movs r3, #2 + 8001304: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8000b26: 2300 movs r3, #0 - 8000b28: 62fb str r3, [r7, #44] ; 0x2c + 8001306: 2300 movs r3, #0 + 8001308: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 8000b2a: 2300 movs r3, #0 - 8000b2c: 633b str r3, [r7, #48] ; 0x30 + 800130a: 2300 movs r3, #0 + 800130c: 633b str r3, [r7, #48] ; 0x30 GPIO_InitStruct.Alternate = GPIO_AF12_OTG_HS_FS; - 8000b2e: 230c movs r3, #12 - 8000b30: 637b str r3, [r7, #52] ; 0x34 + 800130e: 230c movs r3, #12 + 8001310: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - 8000b32: f107 0324 add.w r3, r7, #36 ; 0x24 - 8000b36: 4619 mov r1, r3 - 8000b38: 486e ldr r0, [pc, #440] ; (8000cf4 ) - 8000b3a: f001 ff45 bl 80029c8 + 8001312: f107 0324 add.w r3, r7, #36 ; 0x24 + 8001316: 4619 mov r1, r3 + 8001318: 486e ldr r0, [pc, #440] ; (80014d4 ) + 800131a: f002 fae5 bl 80038e8 /*Configure GPIO pin : VBUS_HS_Pin */ GPIO_InitStruct.Pin = VBUS_HS_Pin; - 8000b3e: f44f 5300 mov.w r3, #8192 ; 0x2000 - 8000b42: 627b str r3, [r7, #36] ; 0x24 + 800131e: f44f 5300 mov.w r3, #8192 ; 0x2000 + 8001322: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_INPUT; - 8000b44: 2300 movs r3, #0 - 8000b46: 62bb str r3, [r7, #40] ; 0x28 + 8001324: 2300 movs r3, #0 + 8001326: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8000b48: 2300 movs r3, #0 - 8000b4a: 62fb str r3, [r7, #44] ; 0x2c + 8001328: 2300 movs r3, #0 + 800132a: 62fb str r3, [r7, #44] ; 0x2c HAL_GPIO_Init(VBUS_HS_GPIO_Port, &GPIO_InitStruct); - 8000b4c: f107 0324 add.w r3, r7, #36 ; 0x24 - 8000b50: 4619 mov r1, r3 - 8000b52: 4868 ldr r0, [pc, #416] ; (8000cf4 ) - 8000b54: f001 ff38 bl 80029c8 + 800132c: f107 0324 add.w r3, r7, #36 ; 0x24 + 8001330: 4619 mov r1, r3 + 8001332: 4868 ldr r0, [pc, #416] ; (80014d4 ) + 8001334: f002 fad8 bl 80038e8 /*Configure GPIO pins : D13_Pin D14_Pin D15_Pin D0_Pin D1_Pin D2_Pin D3_Pin */ GPIO_InitStruct.Pin = D13_Pin|D14_Pin|D15_Pin|D0_Pin - 8000b58: f24c 7303 movw r3, #50947 ; 0xc703 - 8000b5c: 627b str r3, [r7, #36] ; 0x24 + 8001338: f24c 7303 movw r3, #50947 ; 0xc703 + 800133c: 627b str r3, [r7, #36] ; 0x24 |D1_Pin|D2_Pin|D3_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8000b5e: 2302 movs r3, #2 - 8000b60: 62bb str r3, [r7, #40] ; 0x28 + 800133e: 2302 movs r3, #2 + 8001340: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8000b62: 2300 movs r3, #0 - 8000b64: 62fb str r3, [r7, #44] ; 0x2c + 8001342: 2300 movs r3, #0 + 8001344: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - 8000b66: 2303 movs r3, #3 - 8000b68: 633b str r3, [r7, #48] ; 0x30 + 8001346: 2303 movs r3, #3 + 8001348: 633b str r3, [r7, #48] ; 0x30 GPIO_InitStruct.Alternate = GPIO_AF12_FMC; - 8000b6a: 230c movs r3, #12 - 8000b6c: 637b str r3, [r7, #52] ; 0x34 + 800134a: 230c movs r3, #12 + 800134c: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); - 8000b6e: f107 0324 add.w r3, r7, #36 ; 0x24 - 8000b72: 4619 mov r1, r3 - 8000b74: 4860 ldr r0, [pc, #384] ; (8000cf8 ) - 8000b76: f001 ff27 bl 80029c8 + 800134e: f107 0324 add.w r3, r7, #36 ; 0x24 + 8001352: 4619 mov r1, r3 + 8001354: 4860 ldr r0, [pc, #384] ; (80014d8 ) + 8001356: f002 fac7 bl 80038e8 /*Configure GPIO pin : TE_Pin */ GPIO_InitStruct.Pin = TE_Pin; - 8000b7a: f44f 6300 mov.w r3, #2048 ; 0x800 - 8000b7e: 627b str r3, [r7, #36] ; 0x24 + 800135a: f44f 6300 mov.w r3, #2048 ; 0x800 + 800135e: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_INPUT; - 8000b80: 2300 movs r3, #0 - 8000b82: 62bb str r3, [r7, #40] ; 0x28 + 8001360: 2300 movs r3, #0 + 8001362: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8000b84: 2300 movs r3, #0 - 8000b86: 62fb str r3, [r7, #44] ; 0x2c + 8001364: 2300 movs r3, #0 + 8001366: 62fb str r3, [r7, #44] ; 0x2c HAL_GPIO_Init(TE_GPIO_Port, &GPIO_InitStruct); - 8000b88: f107 0324 add.w r3, r7, #36 ; 0x24 - 8000b8c: 4619 mov r1, r3 - 8000b8e: 485a ldr r0, [pc, #360] ; (8000cf8 ) - 8000b90: f001 ff1a bl 80029c8 + 8001368: f107 0324 add.w r3, r7, #36 ; 0x24 + 800136c: 4619 mov r1, r3 + 800136e: 485a ldr r0, [pc, #360] ; (80014d8 ) + 8001370: f002 faba bl 80038e8 /*Configure GPIO pins : RDX_Pin WRX_DCX_Pin */ GPIO_InitStruct.Pin = RDX_Pin|WRX_DCX_Pin; - 8000b94: f44f 5340 mov.w r3, #12288 ; 0x3000 - 8000b98: 627b str r3, [r7, #36] ; 0x24 + 8001374: f44f 5340 mov.w r3, #12288 ; 0x3000 + 8001378: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - 8000b9a: 2301 movs r3, #1 - 8000b9c: 62bb str r3, [r7, #40] ; 0x28 + 800137a: 2301 movs r3, #1 + 800137c: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8000b9e: 2300 movs r3, #0 - 8000ba0: 62fb str r3, [r7, #44] ; 0x2c + 800137e: 2300 movs r3, #0 + 8001380: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 8000ba2: 2300 movs r3, #0 - 8000ba4: 633b str r3, [r7, #48] ; 0x30 + 8001382: 2300 movs r3, #0 + 8001384: 633b str r3, [r7, #48] ; 0x30 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); - 8000ba6: f107 0324 add.w r3, r7, #36 ; 0x24 - 8000baa: 4619 mov r1, r3 - 8000bac: 4852 ldr r0, [pc, #328] ; (8000cf8 ) - 8000bae: f001 ff0b bl 80029c8 + 8001386: f107 0324 add.w r3, r7, #36 ; 0x24 + 800138a: 4619 mov r1, r3 + 800138c: 4852 ldr r0, [pc, #328] ; (80014d8 ) + 800138e: f002 faab bl 80038e8 /*Configure GPIO pins : R7_Pin DOTCLK_Pin B3_Pin */ GPIO_InitStruct.Pin = R7_Pin|DOTCLK_Pin|B3_Pin; - 8000bb2: f44f 630c mov.w r3, #2240 ; 0x8c0 - 8000bb6: 627b str r3, [r7, #36] ; 0x24 + 8001392: f44f 630c mov.w r3, #2240 ; 0x8c0 + 8001396: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8000bb8: 2302 movs r3, #2 - 8000bba: 62bb str r3, [r7, #40] ; 0x28 + 8001398: 2302 movs r3, #2 + 800139a: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8000bbc: 2300 movs r3, #0 - 8000bbe: 62fb str r3, [r7, #44] ; 0x2c + 800139c: 2300 movs r3, #0 + 800139e: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 8000bc0: 2300 movs r3, #0 - 8000bc2: 633b str r3, [r7, #48] ; 0x30 + 80013a0: 2300 movs r3, #0 + 80013a2: 633b str r3, [r7, #48] ; 0x30 GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; - 8000bc4: 230e movs r3, #14 - 8000bc6: 637b str r3, [r7, #52] ; 0x34 + 80013a4: 230e movs r3, #14 + 80013a6: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); - 8000bc8: f107 0324 add.w r3, r7, #36 ; 0x24 - 8000bcc: 4619 mov r1, r3 - 8000bce: 484b ldr r0, [pc, #300] ; (8000cfc ) - 8000bd0: f001 fefa bl 80029c8 + 80013a8: f107 0324 add.w r3, r7, #36 ; 0x24 + 80013ac: 4619 mov r1, r3 + 80013ae: 484b ldr r0, [pc, #300] ; (80014dc ) + 80013b0: f002 fa9a bl 80038e8 /*Configure GPIO pins : HSYNC_Pin G6_Pin R2_Pin */ GPIO_InitStruct.Pin = HSYNC_Pin|G6_Pin|R2_Pin; - 8000bd4: f44f 6398 mov.w r3, #1216 ; 0x4c0 - 8000bd8: 627b str r3, [r7, #36] ; 0x24 + 80013b4: f44f 6398 mov.w r3, #1216 ; 0x4c0 + 80013b8: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8000bda: 2302 movs r3, #2 - 8000bdc: 62bb str r3, [r7, #40] ; 0x28 + 80013ba: 2302 movs r3, #2 + 80013bc: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8000bde: 2300 movs r3, #0 - 8000be0: 62fb str r3, [r7, #44] ; 0x2c + 80013be: 2300 movs r3, #0 + 80013c0: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 8000be2: 2300 movs r3, #0 - 8000be4: 633b str r3, [r7, #48] ; 0x30 + 80013c2: 2300 movs r3, #0 + 80013c4: 633b str r3, [r7, #48] ; 0x30 GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; - 8000be6: 230e movs r3, #14 - 8000be8: 637b str r3, [r7, #52] ; 0x34 + 80013c6: 230e movs r3, #14 + 80013c8: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); - 8000bea: f107 0324 add.w r3, r7, #36 ; 0x24 - 8000bee: 4619 mov r1, r3 - 8000bf0: 4843 ldr r0, [pc, #268] ; (8000d00 ) - 8000bf2: f001 fee9 bl 80029c8 + 80013ca: f107 0324 add.w r3, r7, #36 ; 0x24 + 80013ce: 4619 mov r1, r3 + 80013d0: 4843 ldr r0, [pc, #268] ; (80014e0 ) + 80013d2: f002 fa89 bl 80038e8 /*Configure GPIO pin : I2C3_SDA_Pin */ GPIO_InitStruct.Pin = I2C3_SDA_Pin; - 8000bf6: f44f 7300 mov.w r3, #512 ; 0x200 - 8000bfa: 627b str r3, [r7, #36] ; 0x24 + 80013d6: f44f 7300 mov.w r3, #512 ; 0x200 + 80013da: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; - 8000bfc: 2312 movs r3, #18 - 8000bfe: 62bb str r3, [r7, #40] ; 0x28 + 80013dc: 2312 movs r3, #18 + 80013de: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_PULLUP; - 8000c00: 2301 movs r3, #1 - 8000c02: 62fb str r3, [r7, #44] ; 0x2c + 80013e0: 2301 movs r3, #1 + 80013e2: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 8000c04: 2300 movs r3, #0 - 8000c06: 633b str r3, [r7, #48] ; 0x30 + 80013e4: 2300 movs r3, #0 + 80013e6: 633b str r3, [r7, #48] ; 0x30 GPIO_InitStruct.Alternate = GPIO_AF4_I2C3; - 8000c08: 2304 movs r3, #4 - 8000c0a: 637b str r3, [r7, #52] ; 0x34 + 80013e8: 2304 movs r3, #4 + 80013ea: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(I2C3_SDA_GPIO_Port, &GPIO_InitStruct); - 8000c0c: f107 0324 add.w r3, r7, #36 ; 0x24 - 8000c10: 4619 mov r1, r3 - 8000c12: 483b ldr r0, [pc, #236] ; (8000d00 ) - 8000c14: f001 fed8 bl 80029c8 + 80013ec: f107 0324 add.w r3, r7, #36 ; 0x24 + 80013f0: 4619 mov r1, r3 + 80013f2: 483b ldr r0, [pc, #236] ; (80014e0 ) + 80013f4: f002 fa78 bl 80038e8 /*Configure GPIO pin : I2C3_SCL_Pin */ GPIO_InitStruct.Pin = I2C3_SCL_Pin; - 8000c18: f44f 7380 mov.w r3, #256 ; 0x100 - 8000c1c: 627b str r3, [r7, #36] ; 0x24 + 80013f8: f44f 7380 mov.w r3, #256 ; 0x100 + 80013fc: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; - 8000c1e: 2312 movs r3, #18 - 8000c20: 62bb str r3, [r7, #40] ; 0x28 + 80013fe: 2312 movs r3, #18 + 8001400: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_PULLUP; - 8000c22: 2301 movs r3, #1 - 8000c24: 62fb str r3, [r7, #44] ; 0x2c + 8001402: 2301 movs r3, #1 + 8001404: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 8000c26: 2300 movs r3, #0 - 8000c28: 633b str r3, [r7, #48] ; 0x30 + 8001406: 2300 movs r3, #0 + 8001408: 633b str r3, [r7, #48] ; 0x30 GPIO_InitStruct.Alternate = GPIO_AF4_I2C3; - 8000c2a: 2304 movs r3, #4 - 8000c2c: 637b str r3, [r7, #52] ; 0x34 + 800140a: 2304 movs r3, #4 + 800140c: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(I2C3_SCL_GPIO_Port, &GPIO_InitStruct); - 8000c2e: f107 0324 add.w r3, r7, #36 ; 0x24 - 8000c32: 4619 mov r1, r3 - 8000c34: 4833 ldr r0, [pc, #204] ; (8000d04 ) - 8000c36: f001 fec7 bl 80029c8 + 800140e: f107 0324 add.w r3, r7, #36 ; 0x24 + 8001412: 4619 mov r1, r3 + 8001414: 4833 ldr r0, [pc, #204] ; (80014e4 ) + 8001416: f002 fa67 bl 80038e8 /*Configure GPIO pins : STLINK_RX_Pin STLINK_TX_Pin */ GPIO_InitStruct.Pin = STLINK_RX_Pin|STLINK_TX_Pin; - 8000c3a: f44f 63c0 mov.w r3, #1536 ; 0x600 - 8000c3e: 627b str r3, [r7, #36] ; 0x24 + 800141a: f44f 63c0 mov.w r3, #1536 ; 0x600 + 800141e: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8000c40: 2302 movs r3, #2 - 8000c42: 62bb str r3, [r7, #40] ; 0x28 + 8001420: 2302 movs r3, #2 + 8001422: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8000c44: 2300 movs r3, #0 - 8000c46: 62fb str r3, [r7, #44] ; 0x2c + 8001424: 2300 movs r3, #0 + 8001426: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - 8000c48: 2303 movs r3, #3 - 8000c4a: 633b str r3, [r7, #48] ; 0x30 + 8001428: 2303 movs r3, #3 + 800142a: 633b str r3, [r7, #48] ; 0x30 GPIO_InitStruct.Alternate = GPIO_AF7_USART1; - 8000c4c: 2307 movs r3, #7 - 8000c4e: 637b str r3, [r7, #52] ; 0x34 + 800142c: 2307 movs r3, #7 + 800142e: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - 8000c50: f107 0324 add.w r3, r7, #36 ; 0x24 - 8000c54: 4619 mov r1, r3 - 8000c56: 482b ldr r0, [pc, #172] ; (8000d04 ) - 8000c58: f001 feb6 bl 80029c8 + 8001430: f107 0324 add.w r3, r7, #36 ; 0x24 + 8001434: 4619 mov r1, r3 + 8001436: 482b ldr r0, [pc, #172] ; (80014e4 ) + 8001438: f002 fa56 bl 80038e8 /*Configure GPIO pins : G7_Pin B2_Pin */ GPIO_InitStruct.Pin = G7_Pin|B2_Pin; - 8000c5c: 2348 movs r3, #72 ; 0x48 - 8000c5e: 627b str r3, [r7, #36] ; 0x24 + 800143c: 2348 movs r3, #72 ; 0x48 + 800143e: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8000c60: 2302 movs r3, #2 - 8000c62: 62bb str r3, [r7, #40] ; 0x28 + 8001440: 2302 movs r3, #2 + 8001442: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8000c64: 2300 movs r3, #0 - 8000c66: 62fb str r3, [r7, #44] ; 0x2c + 8001444: 2300 movs r3, #0 + 8001446: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 8000c68: 2300 movs r3, #0 - 8000c6a: 633b str r3, [r7, #48] ; 0x30 + 8001448: 2300 movs r3, #0 + 800144a: 633b str r3, [r7, #48] ; 0x30 GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; - 8000c6c: 230e movs r3, #14 - 8000c6e: 637b str r3, [r7, #52] ; 0x34 + 800144c: 230e movs r3, #14 + 800144e: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); - 8000c70: f107 0324 add.w r3, r7, #36 ; 0x24 - 8000c74: 4619 mov r1, r3 - 8000c76: 4820 ldr r0, [pc, #128] ; (8000cf8 ) - 8000c78: f001 fea6 bl 80029c8 + 8001450: f107 0324 add.w r3, r7, #36 ; 0x24 + 8001454: 4619 mov r1, r3 + 8001456: 4820 ldr r0, [pc, #128] ; (80014d8 ) + 8001458: f002 fa46 bl 80038e8 /*Configure GPIO pins : G3_Pin B4_Pin */ GPIO_InitStruct.Pin = G3_Pin|B4_Pin; - 8000c7c: f44f 53a0 mov.w r3, #5120 ; 0x1400 - 8000c80: 627b str r3, [r7, #36] ; 0x24 + 800145c: f44f 53a0 mov.w r3, #5120 ; 0x1400 + 8001460: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8000c82: 2302 movs r3, #2 - 8000c84: 62bb str r3, [r7, #40] ; 0x28 + 8001462: 2302 movs r3, #2 + 8001464: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8000c86: 2300 movs r3, #0 - 8000c88: 62fb str r3, [r7, #44] ; 0x2c + 8001466: 2300 movs r3, #0 + 8001468: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 8000c8a: 2300 movs r3, #0 - 8000c8c: 633b str r3, [r7, #48] ; 0x30 + 800146a: 2300 movs r3, #0 + 800146c: 633b str r3, [r7, #48] ; 0x30 GPIO_InitStruct.Alternate = GPIO_AF9_LTDC; - 8000c8e: 2309 movs r3, #9 - 8000c90: 637b str r3, [r7, #52] ; 0x34 + 800146e: 2309 movs r3, #9 + 8001470: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); - 8000c92: f107 0324 add.w r3, r7, #36 ; 0x24 - 8000c96: 4619 mov r1, r3 - 8000c98: 4818 ldr r0, [pc, #96] ; (8000cfc ) - 8000c9a: f001 fe95 bl 80029c8 + 8001472: f107 0324 add.w r3, r7, #36 ; 0x24 + 8001476: 4619 mov r1, r3 + 8001478: 4818 ldr r0, [pc, #96] ; (80014dc ) + 800147a: f002 fa35 bl 80038e8 /*Configure GPIO pins : LD3_Pin LD4_Pin */ GPIO_InitStruct.Pin = LD3_Pin|LD4_Pin; - 8000c9e: f44f 43c0 mov.w r3, #24576 ; 0x6000 - 8000ca2: 627b str r3, [r7, #36] ; 0x24 + 800147e: f44f 43c0 mov.w r3, #24576 ; 0x6000 + 8001482: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - 8000ca4: 2301 movs r3, #1 - 8000ca6: 62bb str r3, [r7, #40] ; 0x28 + 8001484: 2301 movs r3, #1 + 8001486: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8000ca8: 2300 movs r3, #0 - 8000caa: 62fb str r3, [r7, #44] ; 0x2c + 8001488: 2300 movs r3, #0 + 800148a: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 8000cac: 2300 movs r3, #0 - 8000cae: 633b str r3, [r7, #48] ; 0x30 + 800148c: 2300 movs r3, #0 + 800148e: 633b str r3, [r7, #48] ; 0x30 HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); - 8000cb0: f107 0324 add.w r3, r7, #36 ; 0x24 - 8000cb4: 4619 mov r1, r3 - 8000cb6: 4811 ldr r0, [pc, #68] ; (8000cfc ) - 8000cb8: f001 fe86 bl 80029c8 + 8001490: f107 0324 add.w r3, r7, #36 ; 0x24 + 8001494: 4619 mov r1, r3 + 8001496: 4811 ldr r0, [pc, #68] ; (80014dc ) + 8001498: f002 fa26 bl 80038e8 /*Configure GPIO pins : SDCKE1_Pin SDNE1_Pin */ GPIO_InitStruct.Pin = SDCKE1_Pin|SDNE1_Pin; - 8000cbc: 2360 movs r3, #96 ; 0x60 - 8000cbe: 627b str r3, [r7, #36] ; 0x24 + 800149c: 2360 movs r3, #96 ; 0x60 + 800149e: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8000cc0: 2302 movs r3, #2 - 8000cc2: 62bb str r3, [r7, #40] ; 0x28 + 80014a0: 2302 movs r3, #2 + 80014a2: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8000cc4: 2300 movs r3, #0 - 8000cc6: 62fb str r3, [r7, #44] ; 0x2c + 80014a4: 2300 movs r3, #0 + 80014a6: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - 8000cc8: 2303 movs r3, #3 - 8000cca: 633b str r3, [r7, #48] ; 0x30 + 80014a8: 2303 movs r3, #3 + 80014aa: 633b str r3, [r7, #48] ; 0x30 GPIO_InitStruct.Alternate = GPIO_AF12_FMC; - 8000ccc: 230c movs r3, #12 - 8000cce: 637b str r3, [r7, #52] ; 0x34 + 80014ac: 230c movs r3, #12 + 80014ae: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - 8000cd0: f107 0324 add.w r3, r7, #36 ; 0x24 - 8000cd4: 4619 mov r1, r3 - 8000cd6: 4807 ldr r0, [pc, #28] ; (8000cf4 ) - 8000cd8: f001 fe76 bl 80029c8 + 80014b0: f107 0324 add.w r3, r7, #36 ; 0x24 + 80014b4: 4619 mov r1, r3 + 80014b6: 4807 ldr r0, [pc, #28] ; (80014d4 ) + 80014b8: f002 fa16 bl 80038e8 /* EXTI interrupt init*/ HAL_NVIC_SetPriority(EXTI0_IRQn, 0, 0); - 8000cdc: 2200 movs r2, #0 - 8000cde: 2100 movs r1, #0 - 8000ce0: 2006 movs r0, #6 - 8000ce2: f001 fe18 bl 8002916 + 80014bc: 2200 movs r2, #0 + 80014be: 2100 movs r1, #0 + 80014c0: 2006 movs r0, #6 + 80014c2: f002 f9b8 bl 8003836 HAL_NVIC_EnableIRQ(EXTI0_IRQn); - 8000ce6: 2006 movs r0, #6 - 8000ce8: f001 fe31 bl 800294e + 80014c6: 2006 movs r0, #6 + 80014c8: f002 f9d1 bl 800386e } - 8000cec: bf00 nop - 8000cee: 3738 adds r7, #56 ; 0x38 - 8000cf0: 46bd mov sp, r7 - 8000cf2: bd80 pop {r7, pc} - 8000cf4: 40020400 .word 0x40020400 - 8000cf8: 40020c00 .word 0x40020c00 - 8000cfc: 40021800 .word 0x40021800 - 8000d00: 40020800 .word 0x40020800 - 8000d04: 40020000 .word 0x40020000 + 80014cc: bf00 nop + 80014ce: 3738 adds r7, #56 ; 0x38 + 80014d0: 46bd mov sp, r7 + 80014d2: bd80 pop {r7, pc} + 80014d4: 40020400 .word 0x40020400 + 80014d8: 40020c00 .word 0x40020c00 + 80014dc: 40021800 .word 0x40021800 + 80014e0: 40020800 .word 0x40020800 + 80014e4: 40020000 .word 0x40020000 -08000d08 : +080014e8 : /* USER CODE BEGIN 4 */ uint8_t getSoundLevel(void){ - 8000d08: b580 push {r7, lr} - 8000d0a: b086 sub sp, #24 - 8000d0c: af00 add r7, sp, #0 - static uint8_t multiplier = 3; + 80014e8: b580 push {r7, lr} + 80014ea: b084 sub sp, #16 + 80014ec: af00 add r7, sp, #0 + // Adjustment / Calibration + static uint8_t cutoff = 90; - static uint16_t averagedDifferences = 0; + // By order of process + uint8_t samples[8]; + uint16_t estimatedSoundLevel = 0; + 80014ee: 2300 movs r3, #0 + 80014f0: 81fb strh r3, [r7, #14] + static uint16_t averagedReturnValue = 0; uint16_t returnValue; - uint8_t samples[16]; - uint16_t sumOfDifferences = 0; - 8000d0e: 2300 movs r3, #0 - 8000d10: 82bb strh r3, [r7, #20] for(uint8_t i = 0; i < sizeof(samples); ++i){ - 8000d12: 2300 movs r3, #0 - 8000d14: 74fb strb r3, [r7, #19] - 8000d16: e017 b.n 8000d48 - HAL_Delay(1); - 8000d18: 2001 movs r0, #1 - 8000d1a: f001 f935 bl 8001f88 + 80014f2: 2300 movs r3, #0 + 80014f4: 72fb strb r3, [r7, #11] + 80014f6: e014 b.n 8001522 HAL_ADC_Start(&hadc3); - 8000d1e: 483e ldr r0, [pc, #248] ; (8000e18 ) - 8000d20: f001 f998 bl 8002054 + 80014f8: 4830 ldr r0, [pc, #192] ; (80015bc ) + 80014fa: f001 fd3b bl 8002f74 HAL_ADC_PollForConversion(&hadc3, (uint32_t) 20); - 8000d24: 2114 movs r1, #20 - 8000d26: 483c ldr r0, [pc, #240] ; (8000e18 ) - 8000d28: f001 fa5a bl 80021e0 + 80014fe: 2114 movs r1, #20 + 8001500: 482e ldr r0, [pc, #184] ; (80015bc ) + 8001502: f001 fdfd bl 8003100 samples[i] = HAL_ADC_GetValue(&hadc3); - 8000d2c: 483a ldr r0, [pc, #232] ; (8000e18 ) - 8000d2e: f001 fadb bl 80022e8 - 8000d32: 4602 mov r2, r0 - 8000d34: 7cfb ldrb r3, [r7, #19] - 8000d36: b2d2 uxtb r2, r2 - 8000d38: f107 0118 add.w r1, r7, #24 - 8000d3c: 440b add r3, r1 - 8000d3e: f803 2c18 strb.w r2, [r3, #-24] + 8001506: 482d ldr r0, [pc, #180] ; (80015bc ) + 8001508: f001 fe7e bl 8003208 + 800150c: 4602 mov r2, r0 + 800150e: 7afb ldrb r3, [r7, #11] + 8001510: b2d2 uxtb r2, r2 + 8001512: f107 0110 add.w r1, r7, #16 + 8001516: 440b add r3, r1 + 8001518: f803 2c10 strb.w r2, [r3, #-16] for(uint8_t i = 0; i < sizeof(samples); ++i){ - 8000d42: 7cfb ldrb r3, [r7, #19] - 8000d44: 3301 adds r3, #1 - 8000d46: 74fb strb r3, [r7, #19] - 8000d48: 7cfb ldrb r3, [r7, #19] - 8000d4a: 2b0f cmp r3, #15 - 8000d4c: d9e4 bls.n 8000d18 + 800151c: 7afb ldrb r3, [r7, #11] + 800151e: 3301 adds r3, #1 + 8001520: 72fb strb r3, [r7, #11] + 8001522: 7afb ldrb r3, [r7, #11] + 8001524: 2b07 cmp r3, #7 + 8001526: d9e7 bls.n 80014f8 } - for(uint8_t i = 0; i < sizeof(samples) - 1; ++i){ - 8000d4e: 2300 movs r3, #0 - 8000d50: 74bb strb r3, [r7, #18] - 8000d52: e018 b.n 8000d86 - sumOfDifferences += abs(samples[i] - samples[i + 1]); - 8000d54: 7cbb ldrb r3, [r7, #18] - 8000d56: f107 0218 add.w r2, r7, #24 - 8000d5a: 4413 add r3, r2 - 8000d5c: f813 3c18 ldrb.w r3, [r3, #-24] - 8000d60: 461a mov r2, r3 - 8000d62: 7cbb ldrb r3, [r7, #18] - 8000d64: 3301 adds r3, #1 - 8000d66: f107 0118 add.w r1, r7, #24 - 8000d6a: 440b add r3, r1 - 8000d6c: f813 3c18 ldrb.w r3, [r3, #-24] - 8000d70: 1ad3 subs r3, r2, r3 - 8000d72: 2b00 cmp r3, #0 - 8000d74: bfb8 it lt - 8000d76: 425b neglt r3, r3 - 8000d78: b29a uxth r2, r3 - 8000d7a: 8abb ldrh r3, [r7, #20] - 8000d7c: 4413 add r3, r2 - 8000d7e: 82bb strh r3, [r7, #20] - for(uint8_t i = 0; i < sizeof(samples) - 1; ++i){ - 8000d80: 7cbb ldrb r3, [r7, #18] - 8000d82: 3301 adds r3, #1 - 8000d84: 74bb strb r3, [r7, #18] - 8000d86: 7cbb ldrb r3, [r7, #18] - 8000d88: 2b0e cmp r3, #14 - 8000d8a: d9e3 bls.n 8000d54 + for(uint8_t i = 0; i < sizeof(samples); ++i){ + 8001528: 2300 movs r3, #0 + 800152a: 72bb strb r3, [r7, #10] + 800152c: e00c b.n 8001548 + estimatedSoundLevel += samples[i]; + 800152e: 7abb ldrb r3, [r7, #10] + 8001530: f107 0210 add.w r2, r7, #16 + 8001534: 4413 add r3, r2 + 8001536: f813 3c10 ldrb.w r3, [r3, #-16] + 800153a: b29a uxth r2, r3 + 800153c: 89fb ldrh r3, [r7, #14] + 800153e: 4413 add r3, r2 + 8001540: 81fb strh r3, [r7, #14] + for(uint8_t i = 0; i < sizeof(samples); ++i){ + 8001542: 7abb ldrb r3, [r7, #10] + 8001544: 3301 adds r3, #1 + 8001546: 72bb strb r3, [r7, #10] + 8001548: 7abb ldrb r3, [r7, #10] + 800154a: 2b07 cmp r3, #7 + 800154c: d9ef bls.n 800152e + } + estimatedSoundLevel /= sizeof(samples); + 800154e: 89fb ldrh r3, [r7, #14] + 8001550: 08db lsrs r3, r3, #3 + 8001552: 81fb strh r3, [r7, #14] + + if(estimatedSoundLevel <= cutoff){ + 8001554: 4b1a ldr r3, [pc, #104] ; (80015c0 ) + 8001556: 781b ldrb r3, [r3, #0] + 8001558: b29b uxth r3, r3 + 800155a: 89fa ldrh r2, [r7, #14] + 800155c: 429a cmp r2, r3 + 800155e: d802 bhi.n 8001566 + returnValue = 0; + 8001560: 2300 movs r3, #0 + 8001562: 81bb strh r3, [r7, #12] + 8001564: e006 b.n 8001574 + }else{ + returnValue = (uint16_t) (2 * (estimatedSoundLevel - cutoff)); + 8001566: 89fb ldrh r3, [r7, #14] + 8001568: 4a15 ldr r2, [pc, #84] ; (80015c0 ) + 800156a: 7812 ldrb r2, [r2, #0] + 800156c: 1a9b subs r3, r3, r2 + 800156e: b29b uxth r3, r3 + 8001570: 005b lsls r3, r3, #1 + 8001572: 81bb strh r3, [r7, #12] } - averagedDifferences += ((int32_t) sumOfDifferences - (int32_t) averagedDifferences) / 4; - 8000d8c: 8abb ldrh r3, [r7, #20] - 8000d8e: 4a23 ldr r2, [pc, #140] ; (8000e1c ) - 8000d90: 8812 ldrh r2, [r2, #0] - 8000d92: 1a9b subs r3, r3, r2 - 8000d94: 2b00 cmp r3, #0 - 8000d96: da00 bge.n 8000d9a - 8000d98: 3303 adds r3, #3 - 8000d9a: 109b asrs r3, r3, #2 - 8000d9c: b29a uxth r2, r3 - 8000d9e: 4b1f ldr r3, [pc, #124] ; (8000e1c ) - 8000da0: 881b ldrh r3, [r3, #0] - 8000da2: 4413 add r3, r2 - 8000da4: b29a uxth r2, r3 - 8000da6: 4b1d ldr r3, [pc, #116] ; (8000e1c ) - 8000da8: 801a strh r2, [r3, #0] + averagedReturnValue += ((int32_t) returnValue - (int32_t) averagedReturnValue) / 3; + 8001574: 89bb ldrh r3, [r7, #12] + 8001576: 4a13 ldr r2, [pc, #76] ; (80015c4 ) + 8001578: 8812 ldrh r2, [r2, #0] + 800157a: 1a9b subs r3, r3, r2 + 800157c: 4a12 ldr r2, [pc, #72] ; (80015c8 ) + 800157e: fb82 1203 smull r1, r2, r2, r3 + 8001582: 17db asrs r3, r3, #31 + 8001584: 1ad3 subs r3, r2, r3 + 8001586: b29a uxth r2, r3 + 8001588: 4b0e ldr r3, [pc, #56] ; (80015c4 ) + 800158a: 881b ldrh r3, [r3, #0] + 800158c: 4413 add r3, r2 + 800158e: b29a uxth r2, r3 + 8001590: 4b0c ldr r3, [pc, #48] ; (80015c4 ) + 8001592: 801a strh r2, [r3, #0] - if(averagedDifferences < prescale_DownShift){returnValue = 0;}else{returnValue = averagedDifferences - prescale_DownShift;} - 8000daa: 4b1d ldr r3, [pc, #116] ; (8000e20 ) - 8000dac: 781b ldrb r3, [r3, #0] - 8000dae: b29a uxth r2, r3 - 8000db0: 4b1a ldr r3, [pc, #104] ; (8000e1c ) - 8000db2: 881b ldrh r3, [r3, #0] - 8000db4: 429a cmp r2, r3 - 8000db6: d902 bls.n 8000dbe - 8000db8: 2300 movs r3, #0 - 8000dba: 82fb strh r3, [r7, #22] - 8000dbc: e006 b.n 8000dcc - 8000dbe: 4b17 ldr r3, [pc, #92] ; (8000e1c ) - 8000dc0: 881a ldrh r2, [r3, #0] - 8000dc2: 4b17 ldr r3, [pc, #92] ; (8000e20 ) - 8000dc4: 781b ldrb r3, [r3, #0] - 8000dc6: b29b uxth r3, r3 - 8000dc8: 1ad3 subs r3, r2, r3 - 8000dca: 82fb strh r3, [r7, #22] - returnValue = (returnValue / divisor) * multiplier; - 8000dcc: 8afb ldrh r3, [r7, #22] - 8000dce: 4a15 ldr r2, [pc, #84] ; (8000e24 ) - 8000dd0: 7812 ldrb r2, [r2, #0] - 8000dd2: fb93 f3f2 sdiv r3, r3, r2 - 8000dd6: b29a uxth r2, r3 - 8000dd8: 4b13 ldr r3, [pc, #76] ; (8000e28 ) - 8000dda: 781b ldrb r3, [r3, #0] - 8000ddc: b29b uxth r3, r3 - 8000dde: fb12 f303 smulbb r3, r2, r3 - 8000de2: 82fb strh r3, [r7, #22] - if(returnValue < postscale_DownShift){returnValue = 0;}else{returnValue -= postscale_DownShift;} - 8000de4: 4b11 ldr r3, [pc, #68] ; (8000e2c ) - 8000de6: 781b ldrb r3, [r3, #0] - 8000de8: b29b uxth r3, r3 - 8000dea: 8afa ldrh r2, [r7, #22] - 8000dec: 429a cmp r2, r3 - 8000dee: d202 bcs.n 8000df6 - 8000df0: 2300 movs r3, #0 - 8000df2: 82fb strh r3, [r7, #22] - 8000df4: e005 b.n 8000e02 - 8000df6: 4b0d ldr r3, [pc, #52] ; (8000e2c ) - 8000df8: 781b ldrb r3, [r3, #0] - 8000dfa: b29b uxth r3, r3 - 8000dfc: 8afa ldrh r2, [r7, #22] - 8000dfe: 1ad3 subs r3, r2, r3 - 8000e00: 82fb strh r3, [r7, #22] - - if(returnValue >= 0xFF){return 0xFF;} else{return returnValue;} - 8000e02: 8afb ldrh r3, [r7, #22] - 8000e04: 2bfe cmp r3, #254 ; 0xfe - 8000e06: d901 bls.n 8000e0c - 8000e08: 23ff movs r3, #255 ; 0xff - 8000e0a: e001 b.n 8000e10 - 8000e0c: 8afb ldrh r3, [r7, #22] - 8000e0e: b2db uxtb r3, r3 + if(averagedReturnValue >= 0xFF){ + 8001594: 4b0b ldr r3, [pc, #44] ; (80015c4 ) + 8001596: 881b ldrh r3, [r3, #0] + 8001598: 2bfe cmp r3, #254 ; 0xfe + 800159a: d901 bls.n 80015a0 + return 0xFF; + 800159c: 23ff movs r3, #255 ; 0xff + 800159e: e008 b.n 80015b2 + }else if(averagedReturnValue <= 10){ + 80015a0: 4b08 ldr r3, [pc, #32] ; (80015c4 ) + 80015a2: 881b ldrh r3, [r3, #0] + 80015a4: 2b0a cmp r3, #10 + 80015a6: d801 bhi.n 80015ac + return 0x00; + 80015a8: 2300 movs r3, #0 + 80015aa: e002 b.n 80015b2 + }else{ + return averagedReturnValue; + 80015ac: 4b05 ldr r3, [pc, #20] ; (80015c4 ) + 80015ae: 881b ldrh r3, [r3, #0] + 80015b0: b2db uxtb r3, r3 + } } - 8000e10: 4618 mov r0, r3 - 8000e12: 3718 adds r7, #24 - 8000e14: 46bd mov sp, r7 - 8000e16: bd80 pop {r7, pc} - 8000e18: 200003b8 .word 0x200003b8 - 8000e1c: 200003a6 .word 0x200003a6 - 8000e20: 20000000 .word 0x20000000 - 8000e24: 20000001 .word 0x20000001 - 8000e28: 20000002 .word 0x20000002 - 8000e2c: 200003a8 .word 0x200003a8 + 80015b2: 4618 mov r0, r3 + 80015b4: 3710 adds r7, #16 + 80015b6: 46bd mov sp, r7 + 80015b8: bd80 pop {r7, pc} + 80015ba: bf00 nop + 80015bc: 200003b4 .word 0x200003b4 + 80015c0: 20000000 .word 0x20000000 + 80015c4: 200003a6 .word 0x200003a6 + 80015c8: 55555556 .word 0x55555556 -08000e30 : +080015cc : void LEDDesign_Off(void){ - 8000e30: b480 push {r7} - 8000e32: b083 sub sp, #12 - 8000e34: af00 add r7, sp, #0 + 80015cc: b480 push {r7} + 80015ce: b083 sub sp, #12 + 80015d0: af00 add r7, sp, #0 for(uint8_t i = 0; i < 64; ++i){ - 8000e36: 2300 movs r3, #0 - 8000e38: 71fb strb r3, [r7, #7] - 8000e3a: e015 b.n 8000e68 + 80015d2: 2300 movs r3, #0 + 80015d4: 71fb strb r3, [r7, #7] + 80015d6: e015 b.n 8001604 for(uint8_t j = 0; j < 3; ++j){ - 8000e3c: 2300 movs r3, #0 - 8000e3e: 71bb strb r3, [r7, #6] - 8000e40: e00c b.n 8000e5c + 80015d8: 2300 movs r3, #0 + 80015da: 71bb strb r3, [r7, #6] + 80015dc: e00c b.n 80015f8 LEDData[i][j] = 0x00; - 8000e42: 79fa ldrb r2, [r7, #7] - 8000e44: 79b9 ldrb r1, [r7, #6] - 8000e46: 480d ldr r0, [pc, #52] ; (8000e7c ) - 8000e48: 4613 mov r3, r2 - 8000e4a: 005b lsls r3, r3, #1 - 8000e4c: 4413 add r3, r2 - 8000e4e: 4403 add r3, r0 - 8000e50: 440b add r3, r1 - 8000e52: 2200 movs r2, #0 - 8000e54: 701a strb r2, [r3, #0] - for(uint8_t j = 0; j < 3; ++j){ - 8000e56: 79bb ldrb r3, [r7, #6] - 8000e58: 3301 adds r3, #1 - 8000e5a: 71bb strb r3, [r7, #6] - 8000e5c: 79bb ldrb r3, [r7, #6] - 8000e5e: 2b02 cmp r3, #2 - 8000e60: d9ef bls.n 8000e42 - for(uint8_t i = 0; i < 64; ++i){ - 8000e62: 79fb ldrb r3, [r7, #7] - 8000e64: 3301 adds r3, #1 - 8000e66: 71fb strb r3, [r7, #7] - 8000e68: 79fb ldrb r3, [r7, #7] - 8000e6a: 2b3f cmp r3, #63 ; 0x3f - 8000e6c: d9e6 bls.n 8000e3c - } - } -} - 8000e6e: bf00 nop - 8000e70: 370c adds r7, #12 - 8000e72: 46bd mov sp, r7 - 8000e74: f85d 7b04 ldr.w r7, [sp], #4 - 8000e78: 4770 bx lr - 8000e7a: bf00 nop - 8000e7c: 20000094 .word 0x20000094 - -08000e80 : -void LEDDesign_ColorWhite(void){ - 8000e80: b480 push {r7} - 8000e82: b083 sub sp, #12 - 8000e84: af00 add r7, sp, #0 - for(uint8_t i = 0; i < 64; ++i){ - 8000e86: 2300 movs r3, #0 - 8000e88: 71fb strb r3, [r7, #7] - 8000e8a: e015 b.n 8000eb8 - for(uint8_t j = 0; j < 3; ++j){ - 8000e8c: 2300 movs r3, #0 - 8000e8e: 71bb strb r3, [r7, #6] - 8000e90: e00c b.n 8000eac - LEDData[i][j] = 0xFF; - 8000e92: 79fa ldrb r2, [r7, #7] - 8000e94: 79b9 ldrb r1, [r7, #6] - 8000e96: 480d ldr r0, [pc, #52] ; (8000ecc ) - 8000e98: 4613 mov r3, r2 - 8000e9a: 005b lsls r3, r3, #1 - 8000e9c: 4413 add r3, r2 - 8000e9e: 4403 add r3, r0 - 8000ea0: 440b add r3, r1 - 8000ea2: 22ff movs r2, #255 ; 0xff - 8000ea4: 701a strb r2, [r3, #0] - for(uint8_t j = 0; j < 3; ++j){ - 8000ea6: 79bb ldrb r3, [r7, #6] - 8000ea8: 3301 adds r3, #1 - 8000eaa: 71bb strb r3, [r7, #6] - 8000eac: 79bb ldrb r3, [r7, #6] - 8000eae: 2b02 cmp r3, #2 - 8000eb0: d9ef bls.n 8000e92 - for(uint8_t i = 0; i < 64; ++i){ - 8000eb2: 79fb ldrb r3, [r7, #7] - 8000eb4: 3301 adds r3, #1 - 8000eb6: 71fb strb r3, [r7, #7] - 8000eb8: 79fb ldrb r3, [r7, #7] - 8000eba: 2b3f cmp r3, #63 ; 0x3f - 8000ebc: d9e6 bls.n 8000e8c - } - } -} - 8000ebe: bf00 nop - 8000ec0: 370c adds r7, #12 - 8000ec2: 46bd mov sp, r7 - 8000ec4: f85d 7b04 ldr.w r7, [sp], #4 - 8000ec8: 4770 bx lr - 8000eca: bf00 nop - 8000ecc: 20000094 .word 0x20000094 - -08000ed0 : -void LEDDesign_ColorBlue(void){ - 8000ed0: b480 push {r7} - 8000ed2: b083 sub sp, #12 - 8000ed4: af00 add r7, sp, #0 - for(uint8_t i = 0; i < 64; ++i){ - 8000ed6: 2300 movs r3, #0 - 8000ed8: 71fb strb r3, [r7, #7] - 8000eda: e00a b.n 8000ef2 - LEDData[i][0] = 0x00; - 8000edc: 79fa ldrb r2, [r7, #7] - 8000ede: 491b ldr r1, [pc, #108] ; (8000f4c ) - 8000ee0: 4613 mov r3, r2 - 8000ee2: 005b lsls r3, r3, #1 - 8000ee4: 4413 add r3, r2 - 8000ee6: 440b add r3, r1 - 8000ee8: 2200 movs r2, #0 - 8000eea: 701a strb r2, [r3, #0] - for(uint8_t i = 0; i < 64; ++i){ - 8000eec: 79fb ldrb r3, [r7, #7] - 8000eee: 3301 adds r3, #1 - 8000ef0: 71fb strb r3, [r7, #7] - 8000ef2: 79fb ldrb r3, [r7, #7] - 8000ef4: 2b3f cmp r3, #63 ; 0x3f - 8000ef6: d9f1 bls.n 8000edc - } - for(uint8_t i = 0; i < 64; ++i){ - 8000ef8: 2300 movs r3, #0 - 8000efa: 71bb strb r3, [r7, #6] - 8000efc: e00b b.n 8000f16 - LEDData[i][1] = 0x00; - 8000efe: 79ba ldrb r2, [r7, #6] - 8000f00: 4912 ldr r1, [pc, #72] ; (8000f4c ) - 8000f02: 4613 mov r3, r2 - 8000f04: 005b lsls r3, r3, #1 - 8000f06: 4413 add r3, r2 - 8000f08: 440b add r3, r1 - 8000f0a: 3301 adds r3, #1 - 8000f0c: 2200 movs r2, #0 - 8000f0e: 701a strb r2, [r3, #0] - for(uint8_t i = 0; i < 64; ++i){ - 8000f10: 79bb ldrb r3, [r7, #6] - 8000f12: 3301 adds r3, #1 - 8000f14: 71bb strb r3, [r7, #6] - 8000f16: 79bb ldrb r3, [r7, #6] - 8000f18: 2b3f cmp r3, #63 ; 0x3f - 8000f1a: d9f0 bls.n 8000efe - } - for(uint8_t i = 0; i < 64; ++i){ - 8000f1c: 2300 movs r3, #0 - 8000f1e: 717b strb r3, [r7, #5] - 8000f20: e00b b.n 8000f3a - LEDData[i][2] = 0xFF; - 8000f22: 797a ldrb r2, [r7, #5] - 8000f24: 4909 ldr r1, [pc, #36] ; (8000f4c ) - 8000f26: 4613 mov r3, r2 - 8000f28: 005b lsls r3, r3, #1 - 8000f2a: 4413 add r3, r2 - 8000f2c: 440b add r3, r1 - 8000f2e: 3302 adds r3, #2 - 8000f30: 22ff movs r2, #255 ; 0xff - 8000f32: 701a strb r2, [r3, #0] - for(uint8_t i = 0; i < 64; ++i){ - 8000f34: 797b ldrb r3, [r7, #5] - 8000f36: 3301 adds r3, #1 - 8000f38: 717b strb r3, [r7, #5] - 8000f3a: 797b ldrb r3, [r7, #5] - 8000f3c: 2b3f cmp r3, #63 ; 0x3f - 8000f3e: d9f0 bls.n 8000f22 - } -} - 8000f40: bf00 nop - 8000f42: 370c adds r7, #12 - 8000f44: 46bd mov sp, r7 - 8000f46: f85d 7b04 ldr.w r7, [sp], #4 - 8000f4a: 4770 bx lr - 8000f4c: 20000094 .word 0x20000094 - -08000f50 : -void LEDDesign_ColorGreen(void){ - 8000f50: b480 push {r7} - 8000f52: b083 sub sp, #12 - 8000f54: af00 add r7, sp, #0 - for(uint8_t i = 0; i < 64; ++i){ - 8000f56: 2300 movs r3, #0 - 8000f58: 71fb strb r3, [r7, #7] - 8000f5a: e00a b.n 8000f72 - LEDData[i][0] = 0xFF; - 8000f5c: 79fa ldrb r2, [r7, #7] - 8000f5e: 491b ldr r1, [pc, #108] ; (8000fcc ) - 8000f60: 4613 mov r3, r2 - 8000f62: 005b lsls r3, r3, #1 - 8000f64: 4413 add r3, r2 - 8000f66: 440b add r3, r1 - 8000f68: 22ff movs r2, #255 ; 0xff - 8000f6a: 701a strb r2, [r3, #0] - for(uint8_t i = 0; i < 64; ++i){ - 8000f6c: 79fb ldrb r3, [r7, #7] - 8000f6e: 3301 adds r3, #1 - 8000f70: 71fb strb r3, [r7, #7] - 8000f72: 79fb ldrb r3, [r7, #7] - 8000f74: 2b3f cmp r3, #63 ; 0x3f - 8000f76: d9f1 bls.n 8000f5c - } - for(uint8_t i = 0; i < 64; ++i){ - 8000f78: 2300 movs r3, #0 - 8000f7a: 71bb strb r3, [r7, #6] - 8000f7c: e00b b.n 8000f96 - LEDData[i][1] = 0x00; - 8000f7e: 79ba ldrb r2, [r7, #6] - 8000f80: 4912 ldr r1, [pc, #72] ; (8000fcc ) - 8000f82: 4613 mov r3, r2 - 8000f84: 005b lsls r3, r3, #1 - 8000f86: 4413 add r3, r2 - 8000f88: 440b add r3, r1 - 8000f8a: 3301 adds r3, #1 - 8000f8c: 2200 movs r2, #0 - 8000f8e: 701a strb r2, [r3, #0] - for(uint8_t i = 0; i < 64; ++i){ - 8000f90: 79bb ldrb r3, [r7, #6] - 8000f92: 3301 adds r3, #1 - 8000f94: 71bb strb r3, [r7, #6] - 8000f96: 79bb ldrb r3, [r7, #6] - 8000f98: 2b3f cmp r3, #63 ; 0x3f - 8000f9a: d9f0 bls.n 8000f7e - } - for(uint8_t i = 0; i < 64; ++i){ - 8000f9c: 2300 movs r3, #0 - 8000f9e: 717b strb r3, [r7, #5] - 8000fa0: e00b b.n 8000fba - LEDData[i][2] = 0x00; - 8000fa2: 797a ldrb r2, [r7, #5] - 8000fa4: 4909 ldr r1, [pc, #36] ; (8000fcc ) - 8000fa6: 4613 mov r3, r2 - 8000fa8: 005b lsls r3, r3, #1 - 8000faa: 4413 add r3, r2 - 8000fac: 440b add r3, r1 - 8000fae: 3302 adds r3, #2 - 8000fb0: 2200 movs r2, #0 - 8000fb2: 701a strb r2, [r3, #0] - for(uint8_t i = 0; i < 64; ++i){ - 8000fb4: 797b ldrb r3, [r7, #5] - 8000fb6: 3301 adds r3, #1 - 8000fb8: 717b strb r3, [r7, #5] - 8000fba: 797b ldrb r3, [r7, #5] - 8000fbc: 2b3f cmp r3, #63 ; 0x3f - 8000fbe: d9f0 bls.n 8000fa2 - } -} - 8000fc0: bf00 nop - 8000fc2: 370c adds r7, #12 - 8000fc4: 46bd mov sp, r7 - 8000fc6: f85d 7b04 ldr.w r7, [sp], #4 - 8000fca: 4770 bx lr - 8000fcc: 20000094 .word 0x20000094 - -08000fd0 : -void LEDDesign_ColorRed(void){ - 8000fd0: b480 push {r7} - 8000fd2: b083 sub sp, #12 - 8000fd4: af00 add r7, sp, #0 - for(uint8_t i = 0; i < 64; ++i){ - 8000fd6: 2300 movs r3, #0 - 8000fd8: 71fb strb r3, [r7, #7] - 8000fda: e00a b.n 8000ff2 - LEDData[i][0] = 0x00; - 8000fdc: 79fa ldrb r2, [r7, #7] - 8000fde: 491b ldr r1, [pc, #108] ; (800104c ) - 8000fe0: 4613 mov r3, r2 - 8000fe2: 005b lsls r3, r3, #1 - 8000fe4: 4413 add r3, r2 - 8000fe6: 440b add r3, r1 - 8000fe8: 2200 movs r2, #0 - 8000fea: 701a strb r2, [r3, #0] - for(uint8_t i = 0; i < 64; ++i){ - 8000fec: 79fb ldrb r3, [r7, #7] - 8000fee: 3301 adds r3, #1 - 8000ff0: 71fb strb r3, [r7, #7] - 8000ff2: 79fb ldrb r3, [r7, #7] - 8000ff4: 2b3f cmp r3, #63 ; 0x3f - 8000ff6: d9f1 bls.n 8000fdc - } - for(uint8_t i = 0; i < 64; ++i){ - 8000ff8: 2300 movs r3, #0 - 8000ffa: 71bb strb r3, [r7, #6] - 8000ffc: e00b b.n 8001016 - LEDData[i][1] = 0xFF; - 8000ffe: 79ba ldrb r2, [r7, #6] - 8001000: 4912 ldr r1, [pc, #72] ; (800104c ) - 8001002: 4613 mov r3, r2 - 8001004: 005b lsls r3, r3, #1 - 8001006: 4413 add r3, r2 - 8001008: 440b add r3, r1 - 800100a: 3301 adds r3, #1 - 800100c: 22ff movs r2, #255 ; 0xff - 800100e: 701a strb r2, [r3, #0] - for(uint8_t i = 0; i < 64; ++i){ - 8001010: 79bb ldrb r3, [r7, #6] - 8001012: 3301 adds r3, #1 - 8001014: 71bb strb r3, [r7, #6] - 8001016: 79bb ldrb r3, [r7, #6] - 8001018: 2b3f cmp r3, #63 ; 0x3f - 800101a: d9f0 bls.n 8000ffe - } - for(uint8_t i = 0; i < 64; ++i){ - 800101c: 2300 movs r3, #0 - 800101e: 717b strb r3, [r7, #5] - 8001020: e00b b.n 800103a - LEDData[i][2] = 0x00; - 8001022: 797a ldrb r2, [r7, #5] - 8001024: 4909 ldr r1, [pc, #36] ; (800104c ) - 8001026: 4613 mov r3, r2 - 8001028: 005b lsls r3, r3, #1 - 800102a: 4413 add r3, r2 - 800102c: 440b add r3, r1 - 800102e: 3302 adds r3, #2 - 8001030: 2200 movs r2, #0 - 8001032: 701a strb r2, [r3, #0] - for(uint8_t i = 0; i < 64; ++i){ - 8001034: 797b ldrb r3, [r7, #5] - 8001036: 3301 adds r3, #1 - 8001038: 717b strb r3, [r7, #5] - 800103a: 797b ldrb r3, [r7, #5] - 800103c: 2b3f cmp r3, #63 ; 0x3f - 800103e: d9f0 bls.n 8001022 - } -} - 8001040: bf00 nop - 8001042: 370c adds r7, #12 - 8001044: 46bd mov sp, r7 - 8001046: f85d 7b04 ldr.w r7, [sp], #4 - 800104a: 4770 bx lr - 800104c: 20000094 .word 0x20000094 - -08001050 : -void LEDDesign_Crazy(void){ - 8001050: b590 push {r4, r7, lr} - 8001052: b085 sub sp, #20 - 8001054: af00 add r7, sp, #0 - HAL_Delay(50); - 8001056: 2032 movs r0, #50 ; 0x32 - 8001058: f000 ff96 bl 8001f88 - for(uint8_t i = 0; i < 64; ++i){ - 800105c: 2300 movs r3, #0 - 800105e: 73fb strb r3, [r7, #15] - 8001060: e029 b.n 80010b6 - for(uint8_t j = 0; j < 3; ++j){ - 8001062: 2300 movs r3, #0 - 8001064: 73bb strb r3, [r7, #14] - 8001066: e020 b.n 80010aa - LEDData[i][j] = (uint8_t) (0xFF * (((float) rand()) / RAND_MAX)); - 8001068: f003 f958 bl 800431c - 800106c: ee07 0a90 vmov s15, r0 - 8001070: eeb8 7ae7 vcvt.f32.s32 s14, s15 - 8001074: eddf 6a13 vldr s13, [pc, #76] ; 80010c4 - 8001078: eec7 7a26 vdiv.f32 s15, s14, s13 - 800107c: ed9f 7a12 vldr s14, [pc, #72] ; 80010c8 - 8001080: ee67 7a87 vmul.f32 s15, s15, s14 - 8001084: 7bfa ldrb r2, [r7, #15] - 8001086: 7bb9 ldrb r1, [r7, #14] - 8001088: eefc 7ae7 vcvt.u32.f32 s15, s15 - 800108c: edc7 7a01 vstr s15, [r7, #4] - 8001090: 793b ldrb r3, [r7, #4] - 8001092: b2dc uxtb r4, r3 - 8001094: 480d ldr r0, [pc, #52] ; (80010cc ) - 8001096: 4613 mov r3, r2 - 8001098: 005b lsls r3, r3, #1 - 800109a: 4413 add r3, r2 - 800109c: 4403 add r3, r0 - 800109e: 440b add r3, r1 - 80010a0: 4622 mov r2, r4 - 80010a2: 701a strb r2, [r3, #0] - for(uint8_t j = 0; j < 3; ++j){ - 80010a4: 7bbb ldrb r3, [r7, #14] - 80010a6: 3301 adds r3, #1 - 80010a8: 73bb strb r3, [r7, #14] - 80010aa: 7bbb ldrb r3, [r7, #14] - 80010ac: 2b02 cmp r3, #2 - 80010ae: d9db bls.n 8001068 - for(uint8_t i = 0; i < 64; ++i){ - 80010b0: 7bfb ldrb r3, [r7, #15] - 80010b2: 3301 adds r3, #1 - 80010b4: 73fb strb r3, [r7, #15] - 80010b6: 7bfb ldrb r3, [r7, #15] - 80010b8: 2b3f cmp r3, #63 ; 0x3f - 80010ba: d9d2 bls.n 8001062 - } - } -} - 80010bc: bf00 nop - 80010be: 3714 adds r7, #20 - 80010c0: 46bd mov sp, r7 - 80010c2: bd90 pop {r4, r7, pc} - 80010c4: 4f000000 .word 0x4f000000 - 80010c8: 437f0000 .word 0x437f0000 - 80010cc: 20000094 .word 0x20000094 - -080010d0 : -void LEDDesign_Smile(void){ - 80010d0: b580 push {r7, lr} - 80010d2: b082 sub sp, #8 - 80010d4: af00 add r7, sp, #0 - uint8_t currentSoundLevel = getSoundLevel(); - 80010d6: f7ff fe17 bl 8000d08 - 80010da: 4603 mov r3, r0 - 80010dc: 71fb strb r3, [r7, #7] - LEDData[0][0] = currentSoundLevel; - 80010de: 4ac8 ldr r2, [pc, #800] ; (8001400 ) - 80010e0: 79fb ldrb r3, [r7, #7] - 80010e2: 7013 strb r3, [r2, #0] - LEDData[0][1] = currentSoundLevel; - 80010e4: 4ac6 ldr r2, [pc, #792] ; (8001400 ) - 80010e6: 79fb ldrb r3, [r7, #7] - 80010e8: 7053 strb r3, [r2, #1] - LEDData[0][2] = currentSoundLevel; - 80010ea: 4ac5 ldr r2, [pc, #788] ; (8001400 ) - 80010ec: 79fb ldrb r3, [r7, #7] - 80010ee: 7093 strb r3, [r2, #2] - LEDData[1][0] = 0x00; - 80010f0: 4bc3 ldr r3, [pc, #780] ; (8001400 ) - 80010f2: 2200 movs r2, #0 - 80010f4: 70da strb r2, [r3, #3] - LEDData[1][1] = 0x00; - 80010f6: 4bc2 ldr r3, [pc, #776] ; (8001400 ) - 80010f8: 2200 movs r2, #0 - 80010fa: 711a strb r2, [r3, #4] - LEDData[1][2] = 0x00; - 80010fc: 4bc0 ldr r3, [pc, #768] ; (8001400 ) - 80010fe: 2200 movs r2, #0 - 8001100: 715a strb r2, [r3, #5] - LEDData[2][0] = 0x00; - 8001102: 4bbf ldr r3, [pc, #764] ; (8001400 ) - 8001104: 2200 movs r2, #0 - 8001106: 719a strb r2, [r3, #6] - LEDData[2][1] = 0x00; - 8001108: 4bbd ldr r3, [pc, #756] ; (8001400 ) - 800110a: 2200 movs r2, #0 - 800110c: 71da strb r2, [r3, #7] - LEDData[2][2] = 0x00; - 800110e: 4bbc ldr r3, [pc, #752] ; (8001400 ) - 8001110: 2200 movs r2, #0 - 8001112: 721a strb r2, [r3, #8] - LEDData[3][0] = 0x00; - 8001114: 4bba ldr r3, [pc, #744] ; (8001400 ) - 8001116: 2200 movs r2, #0 - 8001118: 725a strb r2, [r3, #9] - LEDData[3][1] = 0x00; - 800111a: 4bb9 ldr r3, [pc, #740] ; (8001400 ) - 800111c: 2200 movs r2, #0 - 800111e: 729a strb r2, [r3, #10] - LEDData[3][2] = 0x00; - 8001120: 4bb7 ldr r3, [pc, #732] ; (8001400 ) - 8001122: 2200 movs r2, #0 - 8001124: 72da strb r2, [r3, #11] - LEDData[4][0] = 0x00; - 8001126: 4bb6 ldr r3, [pc, #728] ; (8001400 ) - 8001128: 2200 movs r2, #0 - 800112a: 731a strb r2, [r3, #12] - LEDData[4][1] = 0x00; - 800112c: 4bb4 ldr r3, [pc, #720] ; (8001400 ) - 800112e: 2200 movs r2, #0 - 8001130: 735a strb r2, [r3, #13] - LEDData[4][2] = 0x7F; - 8001132: 4bb3 ldr r3, [pc, #716] ; (8001400 ) - 8001134: 227f movs r2, #127 ; 0x7f - 8001136: 739a strb r2, [r3, #14] - LEDData[5][0] = 0x00; - 8001138: 4bb1 ldr r3, [pc, #708] ; (8001400 ) - 800113a: 2200 movs r2, #0 - 800113c: 73da strb r2, [r3, #15] - LEDData[5][1] = 0x00; - 800113e: 4bb0 ldr r3, [pc, #704] ; (8001400 ) - 8001140: 2200 movs r2, #0 - 8001142: 741a strb r2, [r3, #16] - LEDData[5][2] = 0x00; - 8001144: 4bae ldr r3, [pc, #696] ; (8001400 ) - 8001146: 2200 movs r2, #0 - 8001148: 745a strb r2, [r3, #17] - LEDData[6][0] = 0x00; - 800114a: 4bad ldr r3, [pc, #692] ; (8001400 ) - 800114c: 2200 movs r2, #0 - 800114e: 749a strb r2, [r3, #18] - LEDData[6][1] = 0x00; - 8001150: 4bab ldr r3, [pc, #684] ; (8001400 ) - 8001152: 2200 movs r2, #0 - 8001154: 74da strb r2, [r3, #19] - LEDData[6][2] = 0x00; - 8001156: 4baa ldr r3, [pc, #680] ; (8001400 ) - 8001158: 2200 movs r2, #0 - 800115a: 751a strb r2, [r3, #20] - LEDData[7][0] = 0x00; - 800115c: 4ba8 ldr r3, [pc, #672] ; (8001400 ) - 800115e: 2200 movs r2, #0 - 8001160: 755a strb r2, [r3, #21] - LEDData[7][1] = 0x00; - 8001162: 4ba7 ldr r3, [pc, #668] ; (8001400 ) - 8001164: 2200 movs r2, #0 - 8001166: 759a strb r2, [r3, #22] - LEDData[7][2] = 0x00; - 8001168: 4ba5 ldr r3, [pc, #660] ; (8001400 ) - 800116a: 2200 movs r2, #0 - 800116c: 75da strb r2, [r3, #23] - LEDData[8][0] = 0x00; - 800116e: 4ba4 ldr r3, [pc, #656] ; (8001400 ) - 8001170: 2200 movs r2, #0 - 8001172: 761a strb r2, [r3, #24] - LEDData[8][1] = 0x00; - 8001174: 4ba2 ldr r3, [pc, #648] ; (8001400 ) - 8001176: 2200 movs r2, #0 - 8001178: 765a strb r2, [r3, #25] - LEDData[8][2] = 0x00; - 800117a: 4ba1 ldr r3, [pc, #644] ; (8001400 ) - 800117c: 2200 movs r2, #0 - 800117e: 769a strb r2, [r3, #26] - LEDData[9][0] = 0x00; - 8001180: 4b9f ldr r3, [pc, #636] ; (8001400 ) - 8001182: 2200 movs r2, #0 - 8001184: 76da strb r2, [r3, #27] - LEDData[9][1] = 0x00; - 8001186: 4b9e ldr r3, [pc, #632] ; (8001400 ) - 8001188: 2200 movs r2, #0 - 800118a: 771a strb r2, [r3, #28] - LEDData[9][2] = 0x00; - 800118c: 4b9c ldr r3, [pc, #624] ; (8001400 ) - 800118e: 2200 movs r2, #0 - 8001190: 775a strb r2, [r3, #29] - LEDData[10][0] = 0x00; - 8001192: 4b9b ldr r3, [pc, #620] ; (8001400 ) - 8001194: 2200 movs r2, #0 - 8001196: 779a strb r2, [r3, #30] - LEDData[10][1] = 0x00; - 8001198: 4b99 ldr r3, [pc, #612] ; (8001400 ) - 800119a: 2200 movs r2, #0 - 800119c: 77da strb r2, [r3, #31] - LEDData[10][2] = 0x7F; - 800119e: 4b98 ldr r3, [pc, #608] ; (8001400 ) - 80011a0: 227f movs r2, #127 ; 0x7f - 80011a2: f883 2020 strb.w r2, [r3, #32] - LEDData[11][0] = 0x00; - 80011a6: 4b96 ldr r3, [pc, #600] ; (8001400 ) - 80011a8: 2200 movs r2, #0 - 80011aa: f883 2021 strb.w r2, [r3, #33] ; 0x21 - LEDData[11][1] = 0x00; - 80011ae: 4b94 ldr r3, [pc, #592] ; (8001400 ) - 80011b0: 2200 movs r2, #0 - 80011b2: f883 2022 strb.w r2, [r3, #34] ; 0x22 - LEDData[11][2] = 0x00; - 80011b6: 4b92 ldr r3, [pc, #584] ; (8001400 ) - 80011b8: 2200 movs r2, #0 - 80011ba: f883 2023 strb.w r2, [r3, #35] ; 0x23 - LEDData[12][0] = 0x00; - 80011be: 4b90 ldr r3, [pc, #576] ; (8001400 ) - 80011c0: 2200 movs r2, #0 - 80011c2: f883 2024 strb.w r2, [r3, #36] ; 0x24 - LEDData[12][1] = 0x00; - 80011c6: 4b8e ldr r3, [pc, #568] ; (8001400 ) - 80011c8: 2200 movs r2, #0 - 80011ca: f883 2025 strb.w r2, [r3, #37] ; 0x25 - LEDData[12][2] = 0x00; - 80011ce: 4b8c ldr r3, [pc, #560] ; (8001400 ) - 80011d0: 2200 movs r2, #0 - 80011d2: f883 2026 strb.w r2, [r3, #38] ; 0x26 - LEDData[13][0] = 0x00; - 80011d6: 4b8a ldr r3, [pc, #552] ; (8001400 ) - 80011d8: 2200 movs r2, #0 - 80011da: f883 2027 strb.w r2, [r3, #39] ; 0x27 - LEDData[13][1] = 0x00; - 80011de: 4b88 ldr r3, [pc, #544] ; (8001400 ) - 80011e0: 2200 movs r2, #0 - 80011e2: f883 2028 strb.w r2, [r3, #40] ; 0x28 - LEDData[13][2] = 0x00; - 80011e6: 4b86 ldr r3, [pc, #536] ; (8001400 ) - 80011e8: 2200 movs r2, #0 - 80011ea: f883 2029 strb.w r2, [r3, #41] ; 0x29 - LEDData[14][0] = 0x00; - 80011ee: 4b84 ldr r3, [pc, #528] ; (8001400 ) - 80011f0: 2200 movs r2, #0 - 80011f2: f883 202a strb.w r2, [r3, #42] ; 0x2a - LEDData[14][1] = 0x00; - 80011f6: 4b82 ldr r3, [pc, #520] ; (8001400 ) - 80011f8: 2200 movs r2, #0 - 80011fa: f883 202b strb.w r2, [r3, #43] ; 0x2b - LEDData[14][2] = 0x00; - 80011fe: 4b80 ldr r3, [pc, #512] ; (8001400 ) - 8001200: 2200 movs r2, #0 - 8001202: f883 202c strb.w r2, [r3, #44] ; 0x2c - LEDData[15][0] = 0x00; - 8001206: 4b7e ldr r3, [pc, #504] ; (8001400 ) - 8001208: 2200 movs r2, #0 - 800120a: f883 202d strb.w r2, [r3, #45] ; 0x2d - LEDData[15][1] = 0x00; - 800120e: 4b7c ldr r3, [pc, #496] ; (8001400 ) - 8001210: 2200 movs r2, #0 - 8001212: f883 202e strb.w r2, [r3, #46] ; 0x2e - LEDData[15][2] = 0x00; - 8001216: 4b7a ldr r3, [pc, #488] ; (8001400 ) - 8001218: 2200 movs r2, #0 - 800121a: f883 202f strb.w r2, [r3, #47] ; 0x2f - LEDData[16][0] = 0x00; - 800121e: 4b78 ldr r3, [pc, #480] ; (8001400 ) - 8001220: 2200 movs r2, #0 - 8001222: f883 2030 strb.w r2, [r3, #48] ; 0x30 - LEDData[16][1] = 0x00; - 8001226: 4b76 ldr r3, [pc, #472] ; (8001400 ) - 8001228: 2200 movs r2, #0 - 800122a: f883 2031 strb.w r2, [r3, #49] ; 0x31 - LEDData[16][2] = 0x00; - 800122e: 4b74 ldr r3, [pc, #464] ; (8001400 ) - 8001230: 2200 movs r2, #0 - 8001232: f883 2032 strb.w r2, [r3, #50] ; 0x32 - LEDData[17][0] = 0x00; - 8001236: 4b72 ldr r3, [pc, #456] ; (8001400 ) - 8001238: 2200 movs r2, #0 - 800123a: f883 2033 strb.w r2, [r3, #51] ; 0x33 - LEDData[17][1] = 0x00; - 800123e: 4b70 ldr r3, [pc, #448] ; (8001400 ) - 8001240: 2200 movs r2, #0 - 8001242: f883 2034 strb.w r2, [r3, #52] ; 0x34 - LEDData[17][2] = 0x00; - 8001246: 4b6e ldr r3, [pc, #440] ; (8001400 ) - 8001248: 2200 movs r2, #0 - 800124a: f883 2035 strb.w r2, [r3, #53] ; 0x35 - LEDData[18][0] = 0x00; - 800124e: 4b6c ldr r3, [pc, #432] ; (8001400 ) - 8001250: 2200 movs r2, #0 - 8001252: f883 2036 strb.w r2, [r3, #54] ; 0x36 - LEDData[18][1] = 0x00; - 8001256: 4b6a ldr r3, [pc, #424] ; (8001400 ) - 8001258: 2200 movs r2, #0 - 800125a: f883 2037 strb.w r2, [r3, #55] ; 0x37 - LEDData[18][2] = 0x00; - 800125e: 4b68 ldr r3, [pc, #416] ; (8001400 ) - 8001260: 2200 movs r2, #0 - 8001262: f883 2038 strb.w r2, [r3, #56] ; 0x38 - LEDData[19][0] = 0x00; - 8001266: 4b66 ldr r3, [pc, #408] ; (8001400 ) - 8001268: 2200 movs r2, #0 - 800126a: f883 2039 strb.w r2, [r3, #57] ; 0x39 - LEDData[19][1] = 0x00; - 800126e: 4b64 ldr r3, [pc, #400] ; (8001400 ) - 8001270: 2200 movs r2, #0 - 8001272: f883 203a strb.w r2, [r3, #58] ; 0x3a - LEDData[19][2] = 0x00; - 8001276: 4b62 ldr r3, [pc, #392] ; (8001400 ) - 8001278: 2200 movs r2, #0 - 800127a: f883 203b strb.w r2, [r3, #59] ; 0x3b - LEDData[20][0] = 0x00; - 800127e: 4b60 ldr r3, [pc, #384] ; (8001400 ) - 8001280: 2200 movs r2, #0 - 8001282: f883 203c strb.w r2, [r3, #60] ; 0x3c - LEDData[20][1] = 0x00; - 8001286: 4b5e ldr r3, [pc, #376] ; (8001400 ) - 8001288: 2200 movs r2, #0 - 800128a: f883 203d strb.w r2, [r3, #61] ; 0x3d - LEDData[20][2] = 0x00; - 800128e: 4b5c ldr r3, [pc, #368] ; (8001400 ) - 8001290: 2200 movs r2, #0 - 8001292: f883 203e strb.w r2, [r3, #62] ; 0x3e - LEDData[21][0] = 0x00; - 8001296: 4b5a ldr r3, [pc, #360] ; (8001400 ) - 8001298: 2200 movs r2, #0 - 800129a: f883 203f strb.w r2, [r3, #63] ; 0x3f - LEDData[21][1] = 0x00; - 800129e: 4b58 ldr r3, [pc, #352] ; (8001400 ) - 80012a0: 2200 movs r2, #0 - 80012a2: f883 2040 strb.w r2, [r3, #64] ; 0x40 - LEDData[21][2] = 0x7F; - 80012a6: 4b56 ldr r3, [pc, #344] ; (8001400 ) - 80012a8: 227f movs r2, #127 ; 0x7f - 80012aa: f883 2041 strb.w r2, [r3, #65] ; 0x41 - LEDData[22][0] = 0x00; - 80012ae: 4b54 ldr r3, [pc, #336] ; (8001400 ) - 80012b0: 2200 movs r2, #0 - 80012b2: f883 2042 strb.w r2, [r3, #66] ; 0x42 - LEDData[22][1] = 0x00; - 80012b6: 4b52 ldr r3, [pc, #328] ; (8001400 ) - 80012b8: 2200 movs r2, #0 - 80012ba: f883 2043 strb.w r2, [r3, #67] ; 0x43 - LEDData[22][2] = 0x00; - 80012be: 4b50 ldr r3, [pc, #320] ; (8001400 ) - 80012c0: 2200 movs r2, #0 - 80012c2: f883 2044 strb.w r2, [r3, #68] ; 0x44 - LEDData[23][0] = 0x00; - 80012c6: 4b4e ldr r3, [pc, #312] ; (8001400 ) - 80012c8: 2200 movs r2, #0 - 80012ca: f883 2045 strb.w r2, [r3, #69] ; 0x45 - LEDData[23][1] = 0x00; - 80012ce: 4b4c ldr r3, [pc, #304] ; (8001400 ) - 80012d0: 2200 movs r2, #0 - 80012d2: f883 2046 strb.w r2, [r3, #70] ; 0x46 - LEDData[23][2] = 0x00; - 80012d6: 4b4a ldr r3, [pc, #296] ; (8001400 ) - 80012d8: 2200 movs r2, #0 - 80012da: f883 2047 strb.w r2, [r3, #71] ; 0x47 - LEDData[24][0] = 0x00; - 80012de: 4b48 ldr r3, [pc, #288] ; (8001400 ) - 80012e0: 2200 movs r2, #0 - 80012e2: f883 2048 strb.w r2, [r3, #72] ; 0x48 - LEDData[24][1] = 0x00; - 80012e6: 4b46 ldr r3, [pc, #280] ; (8001400 ) - 80012e8: 2200 movs r2, #0 - 80012ea: f883 2049 strb.w r2, [r3, #73] ; 0x49 - LEDData[24][2] = 0x00; - 80012ee: 4b44 ldr r3, [pc, #272] ; (8001400 ) - 80012f0: 2200 movs r2, #0 - 80012f2: f883 204a strb.w r2, [r3, #74] ; 0x4a - LEDData[25][0] = 0x00; - 80012f6: 4b42 ldr r3, [pc, #264] ; (8001400 ) - 80012f8: 2200 movs r2, #0 - 80012fa: f883 204b strb.w r2, [r3, #75] ; 0x4b - LEDData[25][1] = 0x00; - 80012fe: 4b40 ldr r3, [pc, #256] ; (8001400 ) - 8001300: 2200 movs r2, #0 - 8001302: f883 204c strb.w r2, [r3, #76] ; 0x4c - LEDData[25][2] = 0x00; - 8001306: 4b3e ldr r3, [pc, #248] ; (8001400 ) - 8001308: 2200 movs r2, #0 - 800130a: f883 204d strb.w r2, [r3, #77] ; 0x4d - LEDData[26][0] = 0x00; - 800130e: 4b3c ldr r3, [pc, #240] ; (8001400 ) - 8001310: 2200 movs r2, #0 - 8001312: f883 204e strb.w r2, [r3, #78] ; 0x4e - LEDData[26][1] = 0x00; - 8001316: 4b3a ldr r3, [pc, #232] ; (8001400 ) - 8001318: 2200 movs r2, #0 - 800131a: f883 204f strb.w r2, [r3, #79] ; 0x4f - LEDData[26][2] = 0x7F; - 800131e: 4b38 ldr r3, [pc, #224] ; (8001400 ) - 8001320: 227f movs r2, #127 ; 0x7f - 8001322: f883 2050 strb.w r2, [r3, #80] ; 0x50 - LEDData[27][0] = 0x00; - 8001326: 4b36 ldr r3, [pc, #216] ; (8001400 ) - 8001328: 2200 movs r2, #0 - 800132a: f883 2051 strb.w r2, [r3, #81] ; 0x51 - LEDData[27][1] = 0x00; - 800132e: 4b34 ldr r3, [pc, #208] ; (8001400 ) - 8001330: 2200 movs r2, #0 - 8001332: f883 2052 strb.w r2, [r3, #82] ; 0x52 - LEDData[27][2] = 0x00; - 8001336: 4b32 ldr r3, [pc, #200] ; (8001400 ) - 8001338: 2200 movs r2, #0 - 800133a: f883 2053 strb.w r2, [r3, #83] ; 0x53 - LEDData[28][0] = 0x00; - 800133e: 4b30 ldr r3, [pc, #192] ; (8001400 ) - 8001340: 2200 movs r2, #0 - 8001342: f883 2054 strb.w r2, [r3, #84] ; 0x54 - LEDData[28][1] = 0x00; - 8001346: 4b2e ldr r3, [pc, #184] ; (8001400 ) - 8001348: 2200 movs r2, #0 - 800134a: f883 2055 strb.w r2, [r3, #85] ; 0x55 - LEDData[28][2] = 0x00; - 800134e: 4b2c ldr r3, [pc, #176] ; (8001400 ) - 8001350: 2200 movs r2, #0 - 8001352: f883 2056 strb.w r2, [r3, #86] ; 0x56 - LEDData[29][0] = 0x00; - 8001356: 4b2a ldr r3, [pc, #168] ; (8001400 ) - 8001358: 2200 movs r2, #0 - 800135a: f883 2057 strb.w r2, [r3, #87] ; 0x57 - LEDData[29][1] = 0x00; - 800135e: 4b28 ldr r3, [pc, #160] ; (8001400 ) - 8001360: 2200 movs r2, #0 - 8001362: f883 2058 strb.w r2, [r3, #88] ; 0x58 - LEDData[29][2] = 0x00; - 8001366: 4b26 ldr r3, [pc, #152] ; (8001400 ) - 8001368: 2200 movs r2, #0 - 800136a: f883 2059 strb.w r2, [r3, #89] ; 0x59 - LEDData[30][0] = 0x00; - 800136e: 4b24 ldr r3, [pc, #144] ; (8001400 ) - 8001370: 2200 movs r2, #0 - 8001372: f883 205a strb.w r2, [r3, #90] ; 0x5a - LEDData[30][1] = 0x00; - 8001376: 4b22 ldr r3, [pc, #136] ; (8001400 ) - 8001378: 2200 movs r2, #0 - 800137a: f883 205b strb.w r2, [r3, #91] ; 0x5b - LEDData[30][2] = 0x00; - 800137e: 4b20 ldr r3, [pc, #128] ; (8001400 ) - 8001380: 2200 movs r2, #0 - 8001382: f883 205c strb.w r2, [r3, #92] ; 0x5c - LEDData[31][0] = 0x00; - 8001386: 4b1e ldr r3, [pc, #120] ; (8001400 ) - 8001388: 2200 movs r2, #0 - 800138a: f883 205d strb.w r2, [r3, #93] ; 0x5d - LEDData[31][1] = 0x00; - 800138e: 4b1c ldr r3, [pc, #112] ; (8001400 ) - 8001390: 2200 movs r2, #0 - 8001392: f883 205e strb.w r2, [r3, #94] ; 0x5e - LEDData[31][2] = 0x00; - 8001396: 4b1a ldr r3, [pc, #104] ; (8001400 ) - 8001398: 2200 movs r2, #0 - 800139a: f883 205f strb.w r2, [r3, #95] ; 0x5f - LEDData[32][0] = 0x00; - 800139e: 4b18 ldr r3, [pc, #96] ; (8001400 ) - 80013a0: 2200 movs r2, #0 - 80013a2: f883 2060 strb.w r2, [r3, #96] ; 0x60 - LEDData[32][1] = 0x00; - 80013a6: 4b16 ldr r3, [pc, #88] ; (8001400 ) - 80013a8: 2200 movs r2, #0 - 80013aa: f883 2061 strb.w r2, [r3, #97] ; 0x61 - LEDData[32][2] = 0x00; - 80013ae: 4b14 ldr r3, [pc, #80] ; (8001400 ) - 80013b0: 2200 movs r2, #0 - 80013b2: f883 2062 strb.w r2, [r3, #98] ; 0x62 - LEDData[33][0] = 0x00; - 80013b6: 4b12 ldr r3, [pc, #72] ; (8001400 ) - 80013b8: 2200 movs r2, #0 - 80013ba: f883 2063 strb.w r2, [r3, #99] ; 0x63 - LEDData[33][1] = 0x00; - 80013be: 4b10 ldr r3, [pc, #64] ; (8001400 ) - 80013c0: 2200 movs r2, #0 - 80013c2: f883 2064 strb.w r2, [r3, #100] ; 0x64 - LEDData[33][2] = 0x00; - 80013c6: 4b0e ldr r3, [pc, #56] ; (8001400 ) - 80013c8: 2200 movs r2, #0 - 80013ca: f883 2065 strb.w r2, [r3, #101] ; 0x65 - LEDData[34][0] = 0x00; - 80013ce: 4b0c ldr r3, [pc, #48] ; (8001400 ) - 80013d0: 2200 movs r2, #0 - 80013d2: f883 2066 strb.w r2, [r3, #102] ; 0x66 - LEDData[34][1] = 0x00; - 80013d6: 4b0a ldr r3, [pc, #40] ; (8001400 ) - 80013d8: 2200 movs r2, #0 - 80013da: f883 2067 strb.w r2, [r3, #103] ; 0x67 - LEDData[34][2] = 0x00; - 80013de: 4b08 ldr r3, [pc, #32] ; (8001400 ) - 80013e0: 2200 movs r2, #0 - 80013e2: f883 2068 strb.w r2, [r3, #104] ; 0x68 - LEDData[35][0] = 0x00; - 80013e6: 4b06 ldr r3, [pc, #24] ; (8001400 ) - 80013e8: 2200 movs r2, #0 - 80013ea: f883 2069 strb.w r2, [r3, #105] ; 0x69 - LEDData[35][1] = 0x00; - 80013ee: 4b04 ldr r3, [pc, #16] ; (8001400 ) - 80013f0: 2200 movs r2, #0 - 80013f2: f883 206a strb.w r2, [r3, #106] ; 0x6a - LEDData[35][2] = 0x00; - 80013f6: 4b02 ldr r3, [pc, #8] ; (8001400 ) - 80013f8: 2200 movs r2, #0 - 80013fa: f883 206b strb.w r2, [r3, #107] ; 0x6b - 80013fe: e001 b.n 8001404 - 8001400: 20000094 .word 0x20000094 - LEDData[36][0] = 0x00; - 8001404: 4ba9 ldr r3, [pc, #676] ; (80016ac ) - 8001406: 2200 movs r2, #0 - 8001408: f883 206c strb.w r2, [r3, #108] ; 0x6c - LEDData[36][1] = 0x00; - 800140c: 4ba7 ldr r3, [pc, #668] ; (80016ac ) - 800140e: 2200 movs r2, #0 - 8001410: f883 206d strb.w r2, [r3, #109] ; 0x6d - LEDData[36][2] = 0x00; - 8001414: 4ba5 ldr r3, [pc, #660] ; (80016ac ) - 8001416: 2200 movs r2, #0 - 8001418: f883 206e strb.w r2, [r3, #110] ; 0x6e - LEDData[37][0] = 0x00; - 800141c: 4ba3 ldr r3, [pc, #652] ; (80016ac ) - 800141e: 2200 movs r2, #0 - 8001420: f883 206f strb.w r2, [r3, #111] ; 0x6f - LEDData[37][1] = 0x00; - 8001424: 4ba1 ldr r3, [pc, #644] ; (80016ac ) - 8001426: 2200 movs r2, #0 - 8001428: f883 2070 strb.w r2, [r3, #112] ; 0x70 - LEDData[37][2] = 0x7F; - 800142c: 4b9f ldr r3, [pc, #636] ; (80016ac ) - 800142e: 227f movs r2, #127 ; 0x7f - 8001430: f883 2071 strb.w r2, [r3, #113] ; 0x71 - LEDData[38][0] = 0x00; - 8001434: 4b9d ldr r3, [pc, #628] ; (80016ac ) - 8001436: 2200 movs r2, #0 - 8001438: f883 2072 strb.w r2, [r3, #114] ; 0x72 - LEDData[38][1] = 0x00; - 800143c: 4b9b ldr r3, [pc, #620] ; (80016ac ) - 800143e: 2200 movs r2, #0 - 8001440: f883 2073 strb.w r2, [r3, #115] ; 0x73 - LEDData[38][2] = 0x00; - 8001444: 4b99 ldr r3, [pc, #612] ; (80016ac ) - 8001446: 2200 movs r2, #0 - 8001448: f883 2074 strb.w r2, [r3, #116] ; 0x74 - LEDData[39][0] = 0x00; - 800144c: 4b97 ldr r3, [pc, #604] ; (80016ac ) - 800144e: 2200 movs r2, #0 - 8001450: f883 2075 strb.w r2, [r3, #117] ; 0x75 - LEDData[39][1] = 0x00; - 8001454: 4b95 ldr r3, [pc, #596] ; (80016ac ) - 8001456: 2200 movs r2, #0 - 8001458: f883 2076 strb.w r2, [r3, #118] ; 0x76 - LEDData[39][2] = 0x00; - 800145c: 4b93 ldr r3, [pc, #588] ; (80016ac ) - 800145e: 2200 movs r2, #0 - 8001460: f883 2077 strb.w r2, [r3, #119] ; 0x77 - LEDData[40][0] = 0x00; - 8001464: 4b91 ldr r3, [pc, #580] ; (80016ac ) - 8001466: 2200 movs r2, #0 - 8001468: f883 2078 strb.w r2, [r3, #120] ; 0x78 - LEDData[40][1] = 0x00; - 800146c: 4b8f ldr r3, [pc, #572] ; (80016ac ) - 800146e: 2200 movs r2, #0 - 8001470: f883 2079 strb.w r2, [r3, #121] ; 0x79 - LEDData[40][2] = 0x00; - 8001474: 4b8d ldr r3, [pc, #564] ; (80016ac ) - 8001476: 2200 movs r2, #0 - 8001478: f883 207a strb.w r2, [r3, #122] ; 0x7a - LEDData[41][0] = 0x00; - 800147c: 4b8b ldr r3, [pc, #556] ; (80016ac ) - 800147e: 2200 movs r2, #0 - 8001480: f883 207b strb.w r2, [r3, #123] ; 0x7b - LEDData[41][1] = 0x00; - 8001484: 4b89 ldr r3, [pc, #548] ; (80016ac ) - 8001486: 2200 movs r2, #0 - 8001488: f883 207c strb.w r2, [r3, #124] ; 0x7c - LEDData[41][2] = 0x00; - 800148c: 4b87 ldr r3, [pc, #540] ; (80016ac ) - 800148e: 2200 movs r2, #0 - 8001490: f883 207d strb.w r2, [r3, #125] ; 0x7d - LEDData[42][0] = 0x00; - 8001494: 4b85 ldr r3, [pc, #532] ; (80016ac ) - 8001496: 2200 movs r2, #0 - 8001498: f883 207e strb.w r2, [r3, #126] ; 0x7e - LEDData[42][1] = 0x00; - 800149c: 4b83 ldr r3, [pc, #524] ; (80016ac ) - 800149e: 2200 movs r2, #0 - 80014a0: f883 207f strb.w r2, [r3, #127] ; 0x7f - LEDData[42][2] = 0x7F; - 80014a4: 4b81 ldr r3, [pc, #516] ; (80016ac ) - 80014a6: 227f movs r2, #127 ; 0x7f - 80014a8: f883 2080 strb.w r2, [r3, #128] ; 0x80 - LEDData[43][0] = 0x00; - 80014ac: 4b7f ldr r3, [pc, #508] ; (80016ac ) - 80014ae: 2200 movs r2, #0 - 80014b0: f883 2081 strb.w r2, [r3, #129] ; 0x81 - LEDData[43][1] = 0x00; - 80014b4: 4b7d ldr r3, [pc, #500] ; (80016ac ) - 80014b6: 2200 movs r2, #0 - 80014b8: f883 2082 strb.w r2, [r3, #130] ; 0x82 - LEDData[43][2] = 0x00; - 80014bc: 4b7b ldr r3, [pc, #492] ; (80016ac ) - 80014be: 2200 movs r2, #0 - 80014c0: f883 2083 strb.w r2, [r3, #131] ; 0x83 - LEDData[44][0] = 0x00; - 80014c4: 4b79 ldr r3, [pc, #484] ; (80016ac ) - 80014c6: 2200 movs r2, #0 - 80014c8: f883 2084 strb.w r2, [r3, #132] ; 0x84 - LEDData[44][1] = 0x00; - 80014cc: 4b77 ldr r3, [pc, #476] ; (80016ac ) - 80014ce: 2200 movs r2, #0 - 80014d0: f883 2085 strb.w r2, [r3, #133] ; 0x85 - LEDData[44][2] = 0x00; - 80014d4: 4b75 ldr r3, [pc, #468] ; (80016ac ) - 80014d6: 2200 movs r2, #0 - 80014d8: f883 2086 strb.w r2, [r3, #134] ; 0x86 - LEDData[45][0] = 0x00; - 80014dc: 4b73 ldr r3, [pc, #460] ; (80016ac ) - 80014de: 2200 movs r2, #0 - 80014e0: f883 2087 strb.w r2, [r3, #135] ; 0x87 - LEDData[45][1] = 0x00; - 80014e4: 4b71 ldr r3, [pc, #452] ; (80016ac ) - 80014e6: 2200 movs r2, #0 - 80014e8: f883 2088 strb.w r2, [r3, #136] ; 0x88 - LEDData[45][2] = 0x00; - 80014ec: 4b6f ldr r3, [pc, #444] ; (80016ac ) - 80014ee: 2200 movs r2, #0 - 80014f0: f883 2089 strb.w r2, [r3, #137] ; 0x89 - LEDData[46][0] = 0x00; - 80014f4: 4b6d ldr r3, [pc, #436] ; (80016ac ) - 80014f6: 2200 movs r2, #0 - 80014f8: f883 208a strb.w r2, [r3, #138] ; 0x8a - LEDData[46][1] = 0x00; - 80014fc: 4b6b ldr r3, [pc, #428] ; (80016ac ) - 80014fe: 2200 movs r2, #0 - 8001500: f883 208b strb.w r2, [r3, #139] ; 0x8b - LEDData[46][2] = 0x00; - 8001504: 4b69 ldr r3, [pc, #420] ; (80016ac ) - 8001506: 2200 movs r2, #0 - 8001508: f883 208c strb.w r2, [r3, #140] ; 0x8c - LEDData[47][0] = 0x00; - 800150c: 4b67 ldr r3, [pc, #412] ; (80016ac ) - 800150e: 2200 movs r2, #0 - 8001510: f883 208d strb.w r2, [r3, #141] ; 0x8d - LEDData[47][1] = 0x00; - 8001514: 4b65 ldr r3, [pc, #404] ; (80016ac ) - 8001516: 2200 movs r2, #0 - 8001518: f883 208e strb.w r2, [r3, #142] ; 0x8e - LEDData[47][2] = 0x00; - 800151c: 4b63 ldr r3, [pc, #396] ; (80016ac ) - 800151e: 2200 movs r2, #0 - 8001520: f883 208f strb.w r2, [r3, #143] ; 0x8f - LEDData[48][0] = 0x00; - 8001524: 4b61 ldr r3, [pc, #388] ; (80016ac ) - 8001526: 2200 movs r2, #0 - 8001528: f883 2090 strb.w r2, [r3, #144] ; 0x90 - LEDData[48][1] = 0x00; - 800152c: 4b5f ldr r3, [pc, #380] ; (80016ac ) - 800152e: 2200 movs r2, #0 - 8001530: f883 2091 strb.w r2, [r3, #145] ; 0x91 - LEDData[48][2] = 0x00; - 8001534: 4b5d ldr r3, [pc, #372] ; (80016ac ) - 8001536: 2200 movs r2, #0 - 8001538: f883 2092 strb.w r2, [r3, #146] ; 0x92 - LEDData[49][0] = 0x00; - 800153c: 4b5b ldr r3, [pc, #364] ; (80016ac ) - 800153e: 2200 movs r2, #0 - 8001540: f883 2093 strb.w r2, [r3, #147] ; 0x93 - LEDData[49][1] = 0x00; - 8001544: 4b59 ldr r3, [pc, #356] ; (80016ac ) - 8001546: 2200 movs r2, #0 - 8001548: f883 2094 strb.w r2, [r3, #148] ; 0x94 - LEDData[49][2] = 0x00; - 800154c: 4b57 ldr r3, [pc, #348] ; (80016ac ) - 800154e: 2200 movs r2, #0 - 8001550: f883 2095 strb.w r2, [r3, #149] ; 0x95 - LEDData[50][0] = 0x00; - 8001554: 4b55 ldr r3, [pc, #340] ; (80016ac ) - 8001556: 2200 movs r2, #0 - 8001558: f883 2096 strb.w r2, [r3, #150] ; 0x96 - LEDData[50][1] = 0x00; - 800155c: 4b53 ldr r3, [pc, #332] ; (80016ac ) - 800155e: 2200 movs r2, #0 - 8001560: f883 2097 strb.w r2, [r3, #151] ; 0x97 - LEDData[50][2] = 0x00; - 8001564: 4b51 ldr r3, [pc, #324] ; (80016ac ) - 8001566: 2200 movs r2, #0 - 8001568: f883 2098 strb.w r2, [r3, #152] ; 0x98 - LEDData[51][0] = 0x00; - 800156c: 4b4f ldr r3, [pc, #316] ; (80016ac ) - 800156e: 2200 movs r2, #0 - 8001570: f883 2099 strb.w r2, [r3, #153] ; 0x99 - LEDData[51][1] = 0x00; - 8001574: 4b4d ldr r3, [pc, #308] ; (80016ac ) - 8001576: 2200 movs r2, #0 - 8001578: f883 209a strb.w r2, [r3, #154] ; 0x9a - LEDData[51][2] = 0x00; - 800157c: 4b4b ldr r3, [pc, #300] ; (80016ac ) - 800157e: 2200 movs r2, #0 - 8001580: f883 209b strb.w r2, [r3, #155] ; 0x9b - LEDData[52][0] = 0x00; - 8001584: 4b49 ldr r3, [pc, #292] ; (80016ac ) - 8001586: 2200 movs r2, #0 - 8001588: f883 209c strb.w r2, [r3, #156] ; 0x9c - LEDData[52][1] = 0x00; - 800158c: 4b47 ldr r3, [pc, #284] ; (80016ac ) - 800158e: 2200 movs r2, #0 - 8001590: f883 209d strb.w r2, [r3, #157] ; 0x9d - LEDData[52][2] = 0x00; - 8001594: 4b45 ldr r3, [pc, #276] ; (80016ac ) - 8001596: 2200 movs r2, #0 - 8001598: f883 209e strb.w r2, [r3, #158] ; 0x9e - LEDData[53][0] = 0x00; - 800159c: 4b43 ldr r3, [pc, #268] ; (80016ac ) - 800159e: 2200 movs r2, #0 - 80015a0: f883 209f strb.w r2, [r3, #159] ; 0x9f - LEDData[53][1] = 0x00; - 80015a4: 4b41 ldr r3, [pc, #260] ; (80016ac ) - 80015a6: 2200 movs r2, #0 - 80015a8: f883 20a0 strb.w r2, [r3, #160] ; 0xa0 - LEDData[53][2] = 0x7F; - 80015ac: 4b3f ldr r3, [pc, #252] ; (80016ac ) - 80015ae: 227f movs r2, #127 ; 0x7f - 80015b0: f883 20a1 strb.w r2, [r3, #161] ; 0xa1 - LEDData[54][0] = 0x00; - 80015b4: 4b3d ldr r3, [pc, #244] ; (80016ac ) - 80015b6: 2200 movs r2, #0 - 80015b8: f883 20a2 strb.w r2, [r3, #162] ; 0xa2 - LEDData[54][1] = 0x00; - 80015bc: 4b3b ldr r3, [pc, #236] ; (80016ac ) - 80015be: 2200 movs r2, #0 - 80015c0: f883 20a3 strb.w r2, [r3, #163] ; 0xa3 - LEDData[54][2] = 0x00; - 80015c4: 4b39 ldr r3, [pc, #228] ; (80016ac ) - 80015c6: 2200 movs r2, #0 - 80015c8: f883 20a4 strb.w r2, [r3, #164] ; 0xa4 - LEDData[55][0] = 0x00; - 80015cc: 4b37 ldr r3, [pc, #220] ; (80016ac ) - 80015ce: 2200 movs r2, #0 - 80015d0: f883 20a5 strb.w r2, [r3, #165] ; 0xa5 - LEDData[55][1] = 0x00; - 80015d4: 4b35 ldr r3, [pc, #212] ; (80016ac ) - 80015d6: 2200 movs r2, #0 - 80015d8: f883 20a6 strb.w r2, [r3, #166] ; 0xa6 - LEDData[55][2] = 0x00; - 80015dc: 4b33 ldr r3, [pc, #204] ; (80016ac ) - 80015de: 2200 movs r2, #0 - 80015e0: f883 20a7 strb.w r2, [r3, #167] ; 0xa7 - LEDData[56][0] = 0x00; - 80015e4: 4b31 ldr r3, [pc, #196] ; (80016ac ) - 80015e6: 2200 movs r2, #0 - 80015e8: f883 20a8 strb.w r2, [r3, #168] ; 0xa8 - LEDData[56][1] = 0x00; - 80015ec: 4b2f ldr r3, [pc, #188] ; (80016ac ) + 80015de: 79fa ldrb r2, [r7, #7] + 80015e0: 79b9 ldrb r1, [r7, #6] + 80015e2: 480d ldr r0, [pc, #52] ; (8001618 ) + 80015e4: 4613 mov r3, r2 + 80015e6: 005b lsls r3, r3, #1 + 80015e8: 4413 add r3, r2 + 80015ea: 4403 add r3, r0 + 80015ec: 440b add r3, r1 80015ee: 2200 movs r2, #0 - 80015f0: f883 20a9 strb.w r2, [r3, #169] ; 0xa9 - LEDData[56][2] = 0x00; - 80015f4: 4b2d ldr r3, [pc, #180] ; (80016ac ) - 80015f6: 2200 movs r2, #0 - 80015f8: f883 20aa strb.w r2, [r3, #170] ; 0xaa - LEDData[57][0] = 0x00; - 80015fc: 4b2b ldr r3, [pc, #172] ; (80016ac ) - 80015fe: 2200 movs r2, #0 - 8001600: f883 20ab strb.w r2, [r3, #171] ; 0xab - LEDData[57][1] = 0x00; - 8001604: 4b29 ldr r3, [pc, #164] ; (80016ac ) - 8001606: 2200 movs r2, #0 - 8001608: f883 20ac strb.w r2, [r3, #172] ; 0xac - LEDData[57][2] = 0x00; - 800160c: 4b27 ldr r3, [pc, #156] ; (80016ac ) - 800160e: 2200 movs r2, #0 - 8001610: f883 20ad strb.w r2, [r3, #173] ; 0xad - LEDData[58][0] = 0x00; - 8001614: 4b25 ldr r3, [pc, #148] ; (80016ac ) - 8001616: 2200 movs r2, #0 - 8001618: f883 20ae strb.w r2, [r3, #174] ; 0xae - LEDData[58][1] = 0x00; - 800161c: 4b23 ldr r3, [pc, #140] ; (80016ac ) - 800161e: 2200 movs r2, #0 - 8001620: f883 20af strb.w r2, [r3, #175] ; 0xaf - LEDData[58][2] = 0x00; - 8001624: 4b21 ldr r3, [pc, #132] ; (80016ac ) - 8001626: 2200 movs r2, #0 - 8001628: f883 20b0 strb.w r2, [r3, #176] ; 0xb0 - LEDData[59][0] = 0x00; - 800162c: 4b1f ldr r3, [pc, #124] ; (80016ac ) - 800162e: 2200 movs r2, #0 - 8001630: f883 20b1 strb.w r2, [r3, #177] ; 0xb1 - LEDData[59][1] = 0x00; - 8001634: 4b1d ldr r3, [pc, #116] ; (80016ac ) - 8001636: 2200 movs r2, #0 - 8001638: f883 20b2 strb.w r2, [r3, #178] ; 0xb2 - LEDData[59][2] = 0x7F; - 800163c: 4b1b ldr r3, [pc, #108] ; (80016ac ) - 800163e: 227f movs r2, #127 ; 0x7f - 8001640: f883 20b3 strb.w r2, [r3, #179] ; 0xb3 - LEDData[60][0] = 0x00; - 8001644: 4b19 ldr r3, [pc, #100] ; (80016ac ) - 8001646: 2200 movs r2, #0 - 8001648: f883 20b4 strb.w r2, [r3, #180] ; 0xb4 - LEDData[60][1] = 0x00; - 800164c: 4b17 ldr r3, [pc, #92] ; (80016ac ) - 800164e: 2200 movs r2, #0 - 8001650: f883 20b5 strb.w r2, [r3, #181] ; 0xb5 - LEDData[60][2] = 0x00; - 8001654: 4b15 ldr r3, [pc, #84] ; (80016ac ) - 8001656: 2200 movs r2, #0 - 8001658: f883 20b6 strb.w r2, [r3, #182] ; 0xb6 - LEDData[61][0] = 0x00; - 800165c: 4b13 ldr r3, [pc, #76] ; (80016ac ) - 800165e: 2200 movs r2, #0 - 8001660: f883 20b7 strb.w r2, [r3, #183] ; 0xb7 - LEDData[61][1] = 0x00; - 8001664: 4b11 ldr r3, [pc, #68] ; (80016ac ) - 8001666: 2200 movs r2, #0 - 8001668: f883 20b8 strb.w r2, [r3, #184] ; 0xb8 - LEDData[61][2] = 0x00; - 800166c: 4b0f ldr r3, [pc, #60] ; (80016ac ) - 800166e: 2200 movs r2, #0 - 8001670: f883 20b9 strb.w r2, [r3, #185] ; 0xb9 - LEDData[62][0] = 0x00; - 8001674: 4b0d ldr r3, [pc, #52] ; (80016ac ) - 8001676: 2200 movs r2, #0 - 8001678: f883 20ba strb.w r2, [r3, #186] ; 0xba - LEDData[62][1] = 0x00; - 800167c: 4b0b ldr r3, [pc, #44] ; (80016ac ) - 800167e: 2200 movs r2, #0 - 8001680: f883 20bb strb.w r2, [r3, #187] ; 0xbb - LEDData[62][2] = 0x00; - 8001684: 4b09 ldr r3, [pc, #36] ; (80016ac ) - 8001686: 2200 movs r2, #0 - 8001688: f883 20bc strb.w r2, [r3, #188] ; 0xbc - LEDData[63][0] = 0x00; - 800168c: 4b07 ldr r3, [pc, #28] ; (80016ac ) - 800168e: 2200 movs r2, #0 - 8001690: f883 20bd strb.w r2, [r3, #189] ; 0xbd - LEDData[63][1] = 0x00; - 8001694: 4b05 ldr r3, [pc, #20] ; (80016ac ) - 8001696: 2200 movs r2, #0 - 8001698: f883 20be strb.w r2, [r3, #190] ; 0xbe - LEDData[63][2] = 0x00; - 800169c: 4b03 ldr r3, [pc, #12] ; (80016ac ) - 800169e: 2200 movs r2, #0 - 80016a0: f883 20bf strb.w r2, [r3, #191] ; 0xbf + 80015f0: 701a strb r2, [r3, #0] + for(uint8_t j = 0; j < 3; ++j){ + 80015f2: 79bb ldrb r3, [r7, #6] + 80015f4: 3301 adds r3, #1 + 80015f6: 71bb strb r3, [r7, #6] + 80015f8: 79bb ldrb r3, [r7, #6] + 80015fa: 2b02 cmp r3, #2 + 80015fc: d9ef bls.n 80015de + for(uint8_t i = 0; i < 64; ++i){ + 80015fe: 79fb ldrb r3, [r7, #7] + 8001600: 3301 adds r3, #1 + 8001602: 71fb strb r3, [r7, #7] + 8001604: 79fb ldrb r3, [r7, #7] + 8001606: 2b3f cmp r3, #63 ; 0x3f + 8001608: d9e6 bls.n 80015d8 + } + } } - 80016a4: bf00 nop - 80016a6: 3708 adds r7, #8 - 80016a8: 46bd mov sp, r7 - 80016aa: bd80 pop {r7, pc} - 80016ac: 20000094 .word 0x20000094 + 800160a: bf00 nop + 800160c: 370c adds r7, #12 + 800160e: 46bd mov sp, r7 + 8001610: f85d 7b04 ldr.w r7, [sp], #4 + 8001614: 4770 bx lr + 8001616: bf00 nop + 8001618: 20000094 .word 0x20000094 -080016b0 : -void LEDDesign_SuperCrazy(void){ - 80016b0: b580 push {r7, lr} - 80016b2: b084 sub sp, #16 - 80016b4: af00 add r7, sp, #0 +0800161c : +void LEDDesign_ColorWhite(void){ + 800161c: b480 push {r7} + 800161e: b083 sub sp, #12 + 8001620: af00 add r7, sp, #0 + for(uint8_t i = 0; i < 64; ++i){ + 8001622: 2300 movs r3, #0 + 8001624: 71fb strb r3, [r7, #7] + 8001626: e015 b.n 8001654 + for(uint8_t j = 0; j < 3; ++j){ + 8001628: 2300 movs r3, #0 + 800162a: 71bb strb r3, [r7, #6] + 800162c: e00c b.n 8001648 + LEDData[i][j] = 0xFF; + 800162e: 79fa ldrb r2, [r7, #7] + 8001630: 79b9 ldrb r1, [r7, #6] + 8001632: 480d ldr r0, [pc, #52] ; (8001668 ) + 8001634: 4613 mov r3, r2 + 8001636: 005b lsls r3, r3, #1 + 8001638: 4413 add r3, r2 + 800163a: 4403 add r3, r0 + 800163c: 440b add r3, r1 + 800163e: 22ff movs r2, #255 ; 0xff + 8001640: 701a strb r2, [r3, #0] + for(uint8_t j = 0; j < 3; ++j){ + 8001642: 79bb ldrb r3, [r7, #6] + 8001644: 3301 adds r3, #1 + 8001646: 71bb strb r3, [r7, #6] + 8001648: 79bb ldrb r3, [r7, #6] + 800164a: 2b02 cmp r3, #2 + 800164c: d9ef bls.n 800162e + for(uint8_t i = 0; i < 64; ++i){ + 800164e: 79fb ldrb r3, [r7, #7] + 8001650: 3301 adds r3, #1 + 8001652: 71fb strb r3, [r7, #7] + 8001654: 79fb ldrb r3, [r7, #7] + 8001656: 2b3f cmp r3, #63 ; 0x3f + 8001658: d9e6 bls.n 8001628 + } + } +} + 800165a: bf00 nop + 800165c: 370c adds r7, #12 + 800165e: 46bd mov sp, r7 + 8001660: f85d 7b04 ldr.w r7, [sp], #4 + 8001664: 4770 bx lr + 8001666: bf00 nop + 8001668: 20000094 .word 0x20000094 + +0800166c : +void LEDDesign_ColorBlue(void){ + 800166c: b480 push {r7} + 800166e: b083 sub sp, #12 + 8001670: af00 add r7, sp, #0 + for(uint8_t i = 0; i < 64; ++i){ + 8001672: 2300 movs r3, #0 + 8001674: 71fb strb r3, [r7, #7] + 8001676: e00a b.n 800168e + LEDData[i][0] = 0x00; + 8001678: 79fa ldrb r2, [r7, #7] + 800167a: 491b ldr r1, [pc, #108] ; (80016e8 ) + 800167c: 4613 mov r3, r2 + 800167e: 005b lsls r3, r3, #1 + 8001680: 4413 add r3, r2 + 8001682: 440b add r3, r1 + 8001684: 2200 movs r2, #0 + 8001686: 701a strb r2, [r3, #0] + for(uint8_t i = 0; i < 64; ++i){ + 8001688: 79fb ldrb r3, [r7, #7] + 800168a: 3301 adds r3, #1 + 800168c: 71fb strb r3, [r7, #7] + 800168e: 79fb ldrb r3, [r7, #7] + 8001690: 2b3f cmp r3, #63 ; 0x3f + 8001692: d9f1 bls.n 8001678 + } + for(uint8_t i = 0; i < 64; ++i){ + 8001694: 2300 movs r3, #0 + 8001696: 71bb strb r3, [r7, #6] + 8001698: e00b b.n 80016b2 + LEDData[i][1] = 0x00; + 800169a: 79ba ldrb r2, [r7, #6] + 800169c: 4912 ldr r1, [pc, #72] ; (80016e8 ) + 800169e: 4613 mov r3, r2 + 80016a0: 005b lsls r3, r3, #1 + 80016a2: 4413 add r3, r2 + 80016a4: 440b add r3, r1 + 80016a6: 3301 adds r3, #1 + 80016a8: 2200 movs r2, #0 + 80016aa: 701a strb r2, [r3, #0] + for(uint8_t i = 0; i < 64; ++i){ + 80016ac: 79bb ldrb r3, [r7, #6] + 80016ae: 3301 adds r3, #1 + 80016b0: 71bb strb r3, [r7, #6] + 80016b2: 79bb ldrb r3, [r7, #6] + 80016b4: 2b3f cmp r3, #63 ; 0x3f + 80016b6: d9f0 bls.n 800169a + } + for(uint8_t i = 0; i < 64; ++i){ + 80016b8: 2300 movs r3, #0 + 80016ba: 717b strb r3, [r7, #5] + 80016bc: e00b b.n 80016d6 + LEDData[i][2] = 0xFF; + 80016be: 797a ldrb r2, [r7, #5] + 80016c0: 4909 ldr r1, [pc, #36] ; (80016e8 ) + 80016c2: 4613 mov r3, r2 + 80016c4: 005b lsls r3, r3, #1 + 80016c6: 4413 add r3, r2 + 80016c8: 440b add r3, r1 + 80016ca: 3302 adds r3, #2 + 80016cc: 22ff movs r2, #255 ; 0xff + 80016ce: 701a strb r2, [r3, #0] + for(uint8_t i = 0; i < 64; ++i){ + 80016d0: 797b ldrb r3, [r7, #5] + 80016d2: 3301 adds r3, #1 + 80016d4: 717b strb r3, [r7, #5] + 80016d6: 797b ldrb r3, [r7, #5] + 80016d8: 2b3f cmp r3, #63 ; 0x3f + 80016da: d9f0 bls.n 80016be + } +} + 80016dc: bf00 nop + 80016de: 370c adds r7, #12 + 80016e0: 46bd mov sp, r7 + 80016e2: f85d 7b04 ldr.w r7, [sp], #4 + 80016e6: 4770 bx lr + 80016e8: 20000094 .word 0x20000094 + +080016ec : +void LEDDesign_ColorGreen(void){ + 80016ec: b480 push {r7} + 80016ee: b083 sub sp, #12 + 80016f0: af00 add r7, sp, #0 + for(uint8_t i = 0; i < 64; ++i){ + 80016f2: 2300 movs r3, #0 + 80016f4: 71fb strb r3, [r7, #7] + 80016f6: e00a b.n 800170e + LEDData[i][0] = 0xFF; + 80016f8: 79fa ldrb r2, [r7, #7] + 80016fa: 491b ldr r1, [pc, #108] ; (8001768 ) + 80016fc: 4613 mov r3, r2 + 80016fe: 005b lsls r3, r3, #1 + 8001700: 4413 add r3, r2 + 8001702: 440b add r3, r1 + 8001704: 22ff movs r2, #255 ; 0xff + 8001706: 701a strb r2, [r3, #0] + for(uint8_t i = 0; i < 64; ++i){ + 8001708: 79fb ldrb r3, [r7, #7] + 800170a: 3301 adds r3, #1 + 800170c: 71fb strb r3, [r7, #7] + 800170e: 79fb ldrb r3, [r7, #7] + 8001710: 2b3f cmp r3, #63 ; 0x3f + 8001712: d9f1 bls.n 80016f8 + } + for(uint8_t i = 0; i < 64; ++i){ + 8001714: 2300 movs r3, #0 + 8001716: 71bb strb r3, [r7, #6] + 8001718: e00b b.n 8001732 + LEDData[i][1] = 0x00; + 800171a: 79ba ldrb r2, [r7, #6] + 800171c: 4912 ldr r1, [pc, #72] ; (8001768 ) + 800171e: 4613 mov r3, r2 + 8001720: 005b lsls r3, r3, #1 + 8001722: 4413 add r3, r2 + 8001724: 440b add r3, r1 + 8001726: 3301 adds r3, #1 + 8001728: 2200 movs r2, #0 + 800172a: 701a strb r2, [r3, #0] + for(uint8_t i = 0; i < 64; ++i){ + 800172c: 79bb ldrb r3, [r7, #6] + 800172e: 3301 adds r3, #1 + 8001730: 71bb strb r3, [r7, #6] + 8001732: 79bb ldrb r3, [r7, #6] + 8001734: 2b3f cmp r3, #63 ; 0x3f + 8001736: d9f0 bls.n 800171a + } + for(uint8_t i = 0; i < 64; ++i){ + 8001738: 2300 movs r3, #0 + 800173a: 717b strb r3, [r7, #5] + 800173c: e00b b.n 8001756 + LEDData[i][2] = 0x00; + 800173e: 797a ldrb r2, [r7, #5] + 8001740: 4909 ldr r1, [pc, #36] ; (8001768 ) + 8001742: 4613 mov r3, r2 + 8001744: 005b lsls r3, r3, #1 + 8001746: 4413 add r3, r2 + 8001748: 440b add r3, r1 + 800174a: 3302 adds r3, #2 + 800174c: 2200 movs r2, #0 + 800174e: 701a strb r2, [r3, #0] + for(uint8_t i = 0; i < 64; ++i){ + 8001750: 797b ldrb r3, [r7, #5] + 8001752: 3301 adds r3, #1 + 8001754: 717b strb r3, [r7, #5] + 8001756: 797b ldrb r3, [r7, #5] + 8001758: 2b3f cmp r3, #63 ; 0x3f + 800175a: d9f0 bls.n 800173e + } +} + 800175c: bf00 nop + 800175e: 370c adds r7, #12 + 8001760: 46bd mov sp, r7 + 8001762: f85d 7b04 ldr.w r7, [sp], #4 + 8001766: 4770 bx lr + 8001768: 20000094 .word 0x20000094 + +0800176c : +void LEDDesign_ColorRed(void){ + 800176c: b480 push {r7} + 800176e: b083 sub sp, #12 + 8001770: af00 add r7, sp, #0 + for(uint8_t i = 0; i < 64; ++i){ + 8001772: 2300 movs r3, #0 + 8001774: 71fb strb r3, [r7, #7] + 8001776: e00a b.n 800178e + LEDData[i][0] = 0x00; + 8001778: 79fa ldrb r2, [r7, #7] + 800177a: 491b ldr r1, [pc, #108] ; (80017e8 ) + 800177c: 4613 mov r3, r2 + 800177e: 005b lsls r3, r3, #1 + 8001780: 4413 add r3, r2 + 8001782: 440b add r3, r1 + 8001784: 2200 movs r2, #0 + 8001786: 701a strb r2, [r3, #0] + for(uint8_t i = 0; i < 64; ++i){ + 8001788: 79fb ldrb r3, [r7, #7] + 800178a: 3301 adds r3, #1 + 800178c: 71fb strb r3, [r7, #7] + 800178e: 79fb ldrb r3, [r7, #7] + 8001790: 2b3f cmp r3, #63 ; 0x3f + 8001792: d9f1 bls.n 8001778 + } + for(uint8_t i = 0; i < 64; ++i){ + 8001794: 2300 movs r3, #0 + 8001796: 71bb strb r3, [r7, #6] + 8001798: e00b b.n 80017b2 + LEDData[i][1] = 0xFF; + 800179a: 79ba ldrb r2, [r7, #6] + 800179c: 4912 ldr r1, [pc, #72] ; (80017e8 ) + 800179e: 4613 mov r3, r2 + 80017a0: 005b lsls r3, r3, #1 + 80017a2: 4413 add r3, r2 + 80017a4: 440b add r3, r1 + 80017a6: 3301 adds r3, #1 + 80017a8: 22ff movs r2, #255 ; 0xff + 80017aa: 701a strb r2, [r3, #0] + for(uint8_t i = 0; i < 64; ++i){ + 80017ac: 79bb ldrb r3, [r7, #6] + 80017ae: 3301 adds r3, #1 + 80017b0: 71bb strb r3, [r7, #6] + 80017b2: 79bb ldrb r3, [r7, #6] + 80017b4: 2b3f cmp r3, #63 ; 0x3f + 80017b6: d9f0 bls.n 800179a + } + for(uint8_t i = 0; i < 64; ++i){ + 80017b8: 2300 movs r3, #0 + 80017ba: 717b strb r3, [r7, #5] + 80017bc: e00b b.n 80017d6 + LEDData[i][2] = 0x00; + 80017be: 797a ldrb r2, [r7, #5] + 80017c0: 4909 ldr r1, [pc, #36] ; (80017e8 ) + 80017c2: 4613 mov r3, r2 + 80017c4: 005b lsls r3, r3, #1 + 80017c6: 4413 add r3, r2 + 80017c8: 440b add r3, r1 + 80017ca: 3302 adds r3, #2 + 80017cc: 2200 movs r2, #0 + 80017ce: 701a strb r2, [r3, #0] + for(uint8_t i = 0; i < 64; ++i){ + 80017d0: 797b ldrb r3, [r7, #5] + 80017d2: 3301 adds r3, #1 + 80017d4: 717b strb r3, [r7, #5] + 80017d6: 797b ldrb r3, [r7, #5] + 80017d8: 2b3f cmp r3, #63 ; 0x3f + 80017da: d9f0 bls.n 80017be + } +} + 80017dc: bf00 nop + 80017de: 370c adds r7, #12 + 80017e0: 46bd mov sp, r7 + 80017e2: f85d 7b04 ldr.w r7, [sp], #4 + 80017e6: 4770 bx lr + 80017e8: 20000094 .word 0x20000094 + +080017ec : +void LEDDesign_Crazy(void){ + 80017ec: b590 push {r4, r7, lr} + 80017ee: b085 sub sp, #20 + 80017f0: af00 add r7, sp, #0 HAL_Delay(50); - 80016b6: 2032 movs r0, #50 ; 0x32 - 80016b8: f000 fc66 bl 8001f88 - uint8_t randomByte = (uint8_t) (0xFF * (((float) rand()) / RAND_MAX)); - 80016bc: f002 fe2e bl 800431c - 80016c0: ee07 0a90 vmov s15, r0 - 80016c4: eeb8 7ae7 vcvt.f32.s32 s14, s15 - 80016c8: eddf 6a37 vldr s13, [pc, #220] ; 80017a8 - 80016cc: eec7 7a26 vdiv.f32 s15, s14, s13 - 80016d0: ed9f 7a36 vldr s14, [pc, #216] ; 80017ac - 80016d4: ee67 7a87 vmul.f32 s15, s15, s14 - 80016d8: eefc 7ae7 vcvt.u32.f32 s15, s15 - 80016dc: edc7 7a01 vstr s15, [r7, #4] - 80016e0: 793b ldrb r3, [r7, #4] - 80016e2: 733b strb r3, [r7, #12] + 80017f2: 2032 movs r0, #50 ; 0x32 + 80017f4: f001 fb58 bl 8002ea8 for(uint8_t i = 0; i < 64; ++i){ - 80016e4: 2300 movs r3, #0 - 80016e6: 73fb strb r3, [r7, #15] - 80016e8: e00a b.n 8001700 - LEDData[i][0] = randomByte; - 80016ea: 7bfa ldrb r2, [r7, #15] - 80016ec: 4930 ldr r1, [pc, #192] ; (80017b0 ) - 80016ee: 4613 mov r3, r2 - 80016f0: 005b lsls r3, r3, #1 - 80016f2: 4413 add r3, r2 - 80016f4: 440b add r3, r1 - 80016f6: 7b3a ldrb r2, [r7, #12] - 80016f8: 701a strb r2, [r3, #0] + 80017f8: 2300 movs r3, #0 + 80017fa: 73fb strb r3, [r7, #15] + 80017fc: e029 b.n 8001852 + for(uint8_t j = 0; j < 3; ++j){ + 80017fe: 2300 movs r3, #0 + 8001800: 73bb strb r3, [r7, #14] + 8001802: e020 b.n 8001846 + LEDData[i][j] = (uint8_t) (0xFF * (((float) rand()) / RAND_MAX)); + 8001804: f003 fd1a bl 800523c + 8001808: ee07 0a90 vmov s15, r0 + 800180c: eeb8 7ae7 vcvt.f32.s32 s14, s15 + 8001810: eddf 6a13 vldr s13, [pc, #76] ; 8001860 + 8001814: eec7 7a26 vdiv.f32 s15, s14, s13 + 8001818: ed9f 7a12 vldr s14, [pc, #72] ; 8001864 + 800181c: ee67 7a87 vmul.f32 s15, s15, s14 + 8001820: 7bfa ldrb r2, [r7, #15] + 8001822: 7bb9 ldrb r1, [r7, #14] + 8001824: eefc 7ae7 vcvt.u32.f32 s15, s15 + 8001828: edc7 7a01 vstr s15, [r7, #4] + 800182c: 793b ldrb r3, [r7, #4] + 800182e: b2dc uxtb r4, r3 + 8001830: 480d ldr r0, [pc, #52] ; (8001868 ) + 8001832: 4613 mov r3, r2 + 8001834: 005b lsls r3, r3, #1 + 8001836: 4413 add r3, r2 + 8001838: 4403 add r3, r0 + 800183a: 440b add r3, r1 + 800183c: 4622 mov r2, r4 + 800183e: 701a strb r2, [r3, #0] + for(uint8_t j = 0; j < 3; ++j){ + 8001840: 7bbb ldrb r3, [r7, #14] + 8001842: 3301 adds r3, #1 + 8001844: 73bb strb r3, [r7, #14] + 8001846: 7bbb ldrb r3, [r7, #14] + 8001848: 2b02 cmp r3, #2 + 800184a: d9db bls.n 8001804 for(uint8_t i = 0; i < 64; ++i){ - 80016fa: 7bfb ldrb r3, [r7, #15] - 80016fc: 3301 adds r3, #1 - 80016fe: 73fb strb r3, [r7, #15] - 8001700: 7bfb ldrb r3, [r7, #15] - 8001702: 2b3f cmp r3, #63 ; 0x3f - 8001704: d9f1 bls.n 80016ea - } - randomByte = (uint8_t) (0xFF * (((float) rand()) / RAND_MAX)); - 8001706: f002 fe09 bl 800431c - 800170a: ee07 0a90 vmov s15, r0 - 800170e: eeb8 7ae7 vcvt.f32.s32 s14, s15 - 8001712: eddf 6a25 vldr s13, [pc, #148] ; 80017a8 - 8001716: eec7 7a26 vdiv.f32 s15, s14, s13 - 800171a: ed9f 7a24 vldr s14, [pc, #144] ; 80017ac - 800171e: ee67 7a87 vmul.f32 s15, s15, s14 - 8001722: eefc 7ae7 vcvt.u32.f32 s15, s15 - 8001726: edc7 7a01 vstr s15, [r7, #4] - 800172a: 793b ldrb r3, [r7, #4] - 800172c: 733b strb r3, [r7, #12] - for(uint8_t i = 0; i < 64; ++i){ - 800172e: 2300 movs r3, #0 - 8001730: 73bb strb r3, [r7, #14] - 8001732: e00b b.n 800174c - LEDData[i][1] = randomByte; - 8001734: 7bba ldrb r2, [r7, #14] - 8001736: 491e ldr r1, [pc, #120] ; (80017b0 ) - 8001738: 4613 mov r3, r2 - 800173a: 005b lsls r3, r3, #1 - 800173c: 4413 add r3, r2 - 800173e: 440b add r3, r1 - 8001740: 3301 adds r3, #1 - 8001742: 7b3a ldrb r2, [r7, #12] - 8001744: 701a strb r2, [r3, #0] - for(uint8_t i = 0; i < 64; ++i){ - 8001746: 7bbb ldrb r3, [r7, #14] - 8001748: 3301 adds r3, #1 - 800174a: 73bb strb r3, [r7, #14] - 800174c: 7bbb ldrb r3, [r7, #14] - 800174e: 2b3f cmp r3, #63 ; 0x3f - 8001750: d9f0 bls.n 8001734 - } - randomByte = (uint8_t) (0xFF * (((float) rand()) / RAND_MAX)); - 8001752: f002 fde3 bl 800431c - 8001756: ee07 0a90 vmov s15, r0 - 800175a: eeb8 7ae7 vcvt.f32.s32 s14, s15 - 800175e: eddf 6a12 vldr s13, [pc, #72] ; 80017a8 - 8001762: eec7 7a26 vdiv.f32 s15, s14, s13 - 8001766: ed9f 7a11 vldr s14, [pc, #68] ; 80017ac - 800176a: ee67 7a87 vmul.f32 s15, s15, s14 - 800176e: eefc 7ae7 vcvt.u32.f32 s15, s15 - 8001772: edc7 7a01 vstr s15, [r7, #4] - 8001776: 793b ldrb r3, [r7, #4] - 8001778: 733b strb r3, [r7, #12] - for(uint8_t i = 0; i < 64; ++i){ - 800177a: 2300 movs r3, #0 - 800177c: 737b strb r3, [r7, #13] - 800177e: e00b b.n 8001798 - LEDData[i][2] = randomByte; - 8001780: 7b7a ldrb r2, [r7, #13] - 8001782: 490b ldr r1, [pc, #44] ; (80017b0 ) - 8001784: 4613 mov r3, r2 - 8001786: 005b lsls r3, r3, #1 - 8001788: 4413 add r3, r2 - 800178a: 440b add r3, r1 - 800178c: 3302 adds r3, #2 - 800178e: 7b3a ldrb r2, [r7, #12] - 8001790: 701a strb r2, [r3, #0] - for(uint8_t i = 0; i < 64; ++i){ - 8001792: 7b7b ldrb r3, [r7, #13] - 8001794: 3301 adds r3, #1 - 8001796: 737b strb r3, [r7, #13] - 8001798: 7b7b ldrb r3, [r7, #13] - 800179a: 2b3f cmp r3, #63 ; 0x3f - 800179c: d9f0 bls.n 8001780 + 800184c: 7bfb ldrb r3, [r7, #15] + 800184e: 3301 adds r3, #1 + 8001850: 73fb strb r3, [r7, #15] + 8001852: 7bfb ldrb r3, [r7, #15] + 8001854: 2b3f cmp r3, #63 ; 0x3f + 8001856: d9d2 bls.n 80017fe + } } } - 800179e: bf00 nop - 80017a0: 3710 adds r7, #16 - 80017a2: 46bd mov sp, r7 - 80017a4: bd80 pop {r7, pc} - 80017a6: bf00 nop - 80017a8: 4f000000 .word 0x4f000000 - 80017ac: 437f0000 .word 0x437f0000 - 80017b0: 20000094 .word 0x20000094 + 8001858: bf00 nop + 800185a: 3714 adds r7, #20 + 800185c: 46bd mov sp, r7 + 800185e: bd90 pop {r4, r7, pc} + 8001860: 4f000000 .word 0x4f000000 + 8001864: 437f0000 .word 0x437f0000 + 8001868: 20000094 .word 0x20000094 + 800186c: 00000000 .word 0x00000000 -080017b4 : +08001870 : +void LEDDesign_Smile(void){ + 8001870: b5b0 push {r4, r5, r7, lr} + 8001872: b082 sub sp, #8 + 8001874: af00 add r7, sp, #0 + uint8_t currentSoundLevel = getSoundLevel(); + 8001876: f7ff fe37 bl 80014e8 + 800187a: 4603 mov r3, r0 + 800187c: 71fb strb r3, [r7, #7] + setLED(lookupLED(0,0), 0x00, 0x00, 0x00); + 800187e: 2100 movs r1, #0 + 8001880: 2000 movs r0, #0 + 8001882: f000 fd87 bl 8002394 + 8001886: 4603 mov r3, r0 + 8001888: 4618 mov r0, r3 + 800188a: 2300 movs r3, #0 + 800188c: 2200 movs r2, #0 + 800188e: 2100 movs r1, #0 + 8001890: f000 fef0 bl 8002674 + setLED(lookupLED(0,1), 0x00, 0x00, 0x00); + 8001894: 2101 movs r1, #1 + 8001896: 2000 movs r0, #0 + 8001898: f000 fd7c bl 8002394 + 800189c: 4603 mov r3, r0 + 800189e: 4618 mov r0, r3 + 80018a0: 2300 movs r3, #0 + 80018a2: 2200 movs r2, #0 + 80018a4: 2100 movs r1, #0 + 80018a6: f000 fee5 bl 8002674 + setLED(lookupLED(0,2), 0x00, 0x00, currentSoundLevel * 0.25); + 80018aa: 2102 movs r1, #2 + 80018ac: 2000 movs r0, #0 + 80018ae: f000 fd71 bl 8002394 + 80018b2: 4603 mov r3, r0 + 80018b4: 461d mov r5, r3 + 80018b6: 79fb ldrb r3, [r7, #7] + 80018b8: 4618 mov r0, r3 + 80018ba: f7fe fdeb bl 8000494 <__aeabi_i2d> + 80018be: f04f 0200 mov.w r2, #0 + 80018c2: 4beb ldr r3, [pc, #940] ; (8001c70 ) + 80018c4: f7fe fe50 bl 8000568 <__aeabi_dmul> + 80018c8: 4603 mov r3, r0 + 80018ca: 460c mov r4, r1 + 80018cc: 4618 mov r0, r3 + 80018ce: 4621 mov r1, r4 + 80018d0: f7ff f85c bl 800098c <__aeabi_d2uiz> + 80018d4: 4603 mov r3, r0 + 80018d6: b2db uxtb r3, r3 + 80018d8: 2200 movs r2, #0 + 80018da: 2100 movs r1, #0 + 80018dc: 4628 mov r0, r5 + 80018de: f000 fec9 bl 8002674 + setLED(lookupLED(0,3), 0x00, 0x00, 0x7F + (currentSoundLevel * 0.5)); + 80018e2: 2103 movs r1, #3 + 80018e4: 2000 movs r0, #0 + 80018e6: f000 fd55 bl 8002394 + 80018ea: 4603 mov r3, r0 + 80018ec: 461d mov r5, r3 + 80018ee: 79fb ldrb r3, [r7, #7] + 80018f0: 4618 mov r0, r3 + 80018f2: f7fe fdcf bl 8000494 <__aeabi_i2d> + 80018f6: f04f 0200 mov.w r2, #0 + 80018fa: 4bde ldr r3, [pc, #888] ; (8001c74 ) + 80018fc: f7fe fe34 bl 8000568 <__aeabi_dmul> + 8001900: 4603 mov r3, r0 + 8001902: 460c mov r4, r1 + 8001904: 4618 mov r0, r3 + 8001906: 4621 mov r1, r4 + 8001908: a3d7 add r3, pc, #860 ; (adr r3, 8001c68 ) + 800190a: e9d3 2300 ldrd r2, r3, [r3] + 800190e: f7fe fc75 bl 80001fc <__adddf3> + 8001912: 4603 mov r3, r0 + 8001914: 460c mov r4, r1 + 8001916: 4618 mov r0, r3 + 8001918: 4621 mov r1, r4 + 800191a: f7ff f837 bl 800098c <__aeabi_d2uiz> + 800191e: 4603 mov r3, r0 + 8001920: b2db uxtb r3, r3 + 8001922: 2200 movs r2, #0 + 8001924: 2100 movs r1, #0 + 8001926: 4628 mov r0, r5 + 8001928: f000 fea4 bl 8002674 + setLED(lookupLED(0,4), 0x00, 0x00, currentSoundLevel * 0.25); + 800192c: 2104 movs r1, #4 + 800192e: 2000 movs r0, #0 + 8001930: f000 fd30 bl 8002394 + 8001934: 4603 mov r3, r0 + 8001936: 461d mov r5, r3 + 8001938: 79fb ldrb r3, [r7, #7] + 800193a: 4618 mov r0, r3 + 800193c: f7fe fdaa bl 8000494 <__aeabi_i2d> + 8001940: f04f 0200 mov.w r2, #0 + 8001944: 4bca ldr r3, [pc, #808] ; (8001c70 ) + 8001946: f7fe fe0f bl 8000568 <__aeabi_dmul> + 800194a: 4603 mov r3, r0 + 800194c: 460c mov r4, r1 + 800194e: 4618 mov r0, r3 + 8001950: 4621 mov r1, r4 + 8001952: f7ff f81b bl 800098c <__aeabi_d2uiz> + 8001956: 4603 mov r3, r0 + 8001958: b2db uxtb r3, r3 + 800195a: 2200 movs r2, #0 + 800195c: 2100 movs r1, #0 + 800195e: 4628 mov r0, r5 + 8001960: f000 fe88 bl 8002674 + setLED(lookupLED(0,5), 0x00, 0x00, 0x00); + 8001964: 2105 movs r1, #5 + 8001966: 2000 movs r0, #0 + 8001968: f000 fd14 bl 8002394 + 800196c: 4603 mov r3, r0 + 800196e: 4618 mov r0, r3 + 8001970: 2300 movs r3, #0 + 8001972: 2200 movs r2, #0 + 8001974: 2100 movs r1, #0 + 8001976: f000 fe7d bl 8002674 + setLED(lookupLED(0,6), 0x00, 0x00, 0x00); + 800197a: 2106 movs r1, #6 + 800197c: 2000 movs r0, #0 + 800197e: f000 fd09 bl 8002394 + 8001982: 4603 mov r3, r0 + 8001984: 4618 mov r0, r3 + 8001986: 2300 movs r3, #0 + 8001988: 2200 movs r2, #0 + 800198a: 2100 movs r1, #0 + 800198c: f000 fe72 bl 8002674 + setLED(lookupLED(0,7), 0x00, 0x00, 0x00); + 8001990: 2107 movs r1, #7 + 8001992: 2000 movs r0, #0 + 8001994: f000 fcfe bl 8002394 + 8001998: 4603 mov r3, r0 + 800199a: 4618 mov r0, r3 + 800199c: 2300 movs r3, #0 + 800199e: 2200 movs r2, #0 + 80019a0: 2100 movs r1, #0 + 80019a2: f000 fe67 bl 8002674 + setLED(lookupLED(1,0), 0x00, 0x00, 0x00); + 80019a6: 2100 movs r1, #0 + 80019a8: 2001 movs r0, #1 + 80019aa: f000 fcf3 bl 8002394 + 80019ae: 4603 mov r3, r0 + 80019b0: 4618 mov r0, r3 + 80019b2: 2300 movs r3, #0 + 80019b4: 2200 movs r2, #0 + 80019b6: 2100 movs r1, #0 + 80019b8: f000 fe5c bl 8002674 + setLED(lookupLED(1,1), 0x00, 0x00, currentSoundLevel * 0.5); + 80019bc: 2101 movs r1, #1 + 80019be: 2001 movs r0, #1 + 80019c0: f000 fce8 bl 8002394 + 80019c4: 4603 mov r3, r0 + 80019c6: 461d mov r5, r3 + 80019c8: 79fb ldrb r3, [r7, #7] + 80019ca: 4618 mov r0, r3 + 80019cc: f7fe fd62 bl 8000494 <__aeabi_i2d> + 80019d0: f04f 0200 mov.w r2, #0 + 80019d4: 4ba7 ldr r3, [pc, #668] ; (8001c74 ) + 80019d6: f7fe fdc7 bl 8000568 <__aeabi_dmul> + 80019da: 4603 mov r3, r0 + 80019dc: 460c mov r4, r1 + 80019de: 4618 mov r0, r3 + 80019e0: 4621 mov r1, r4 + 80019e2: f7fe ffd3 bl 800098c <__aeabi_d2uiz> + 80019e6: 4603 mov r3, r0 + 80019e8: b2db uxtb r3, r3 + 80019ea: 2200 movs r2, #0 + 80019ec: 2100 movs r1, #0 + 80019ee: 4628 mov r0, r5 + 80019f0: f000 fe40 bl 8002674 + setLED(lookupLED(1,2), 0x00, 0x00, 0x7F + (currentSoundLevel * 0.5)); + 80019f4: 2102 movs r1, #2 + 80019f6: 2001 movs r0, #1 + 80019f8: f000 fccc bl 8002394 + 80019fc: 4603 mov r3, r0 + 80019fe: 461d mov r5, r3 + 8001a00: 79fb ldrb r3, [r7, #7] + 8001a02: 4618 mov r0, r3 + 8001a04: f7fe fd46 bl 8000494 <__aeabi_i2d> + 8001a08: f04f 0200 mov.w r2, #0 + 8001a0c: 4b99 ldr r3, [pc, #612] ; (8001c74 ) + 8001a0e: f7fe fdab bl 8000568 <__aeabi_dmul> + 8001a12: 4603 mov r3, r0 + 8001a14: 460c mov r4, r1 + 8001a16: 4618 mov r0, r3 + 8001a18: 4621 mov r1, r4 + 8001a1a: a393 add r3, pc, #588 ; (adr r3, 8001c68 ) + 8001a1c: e9d3 2300 ldrd r2, r3, [r3] + 8001a20: f7fe fbec bl 80001fc <__adddf3> + 8001a24: 4603 mov r3, r0 + 8001a26: 460c mov r4, r1 + 8001a28: 4618 mov r0, r3 + 8001a2a: 4621 mov r1, r4 + 8001a2c: f7fe ffae bl 800098c <__aeabi_d2uiz> + 8001a30: 4603 mov r3, r0 + 8001a32: b2db uxtb r3, r3 + 8001a34: 2200 movs r2, #0 + 8001a36: 2100 movs r1, #0 + 8001a38: 4628 mov r0, r5 + 8001a3a: f000 fe1b bl 8002674 + setLED(lookupLED(1,3), 0x00, 0x00, currentSoundLevel); + 8001a3e: 2103 movs r1, #3 + 8001a40: 2001 movs r0, #1 + 8001a42: f000 fca7 bl 8002394 + 8001a46: 4603 mov r3, r0 + 8001a48: 4618 mov r0, r3 + 8001a4a: 79fb ldrb r3, [r7, #7] + 8001a4c: 2200 movs r2, #0 + 8001a4e: 2100 movs r1, #0 + 8001a50: f000 fe10 bl 8002674 + setLED(lookupLED(1,4), 0x00, 0x00, currentSoundLevel); + 8001a54: 2104 movs r1, #4 + 8001a56: 2001 movs r0, #1 + 8001a58: f000 fc9c bl 8002394 + 8001a5c: 4603 mov r3, r0 + 8001a5e: 4618 mov r0, r3 + 8001a60: 79fb ldrb r3, [r7, #7] + 8001a62: 2200 movs r2, #0 + 8001a64: 2100 movs r1, #0 + 8001a66: f000 fe05 bl 8002674 + setLED(lookupLED(1,5), 0x00, 0x00, currentSoundLevel * 0.5); + 8001a6a: 2105 movs r1, #5 + 8001a6c: 2001 movs r0, #1 + 8001a6e: f000 fc91 bl 8002394 + 8001a72: 4603 mov r3, r0 + 8001a74: 461d mov r5, r3 + 8001a76: 79fb ldrb r3, [r7, #7] + 8001a78: 4618 mov r0, r3 + 8001a7a: f7fe fd0b bl 8000494 <__aeabi_i2d> + 8001a7e: f04f 0200 mov.w r2, #0 + 8001a82: 4b7c ldr r3, [pc, #496] ; (8001c74 ) + 8001a84: f7fe fd70 bl 8000568 <__aeabi_dmul> + 8001a88: 4603 mov r3, r0 + 8001a8a: 460c mov r4, r1 + 8001a8c: 4618 mov r0, r3 + 8001a8e: 4621 mov r1, r4 + 8001a90: f7fe ff7c bl 800098c <__aeabi_d2uiz> + 8001a94: 4603 mov r3, r0 + 8001a96: b2db uxtb r3, r3 + 8001a98: 2200 movs r2, #0 + 8001a9a: 2100 movs r1, #0 + 8001a9c: 4628 mov r0, r5 + 8001a9e: f000 fde9 bl 8002674 + setLED(lookupLED(1,6), 0x00, 0x00, 0x00); + 8001aa2: 2106 movs r1, #6 + 8001aa4: 2001 movs r0, #1 + 8001aa6: f000 fc75 bl 8002394 + 8001aaa: 4603 mov r3, r0 + 8001aac: 4618 mov r0, r3 + 8001aae: 2300 movs r3, #0 + 8001ab0: 2200 movs r2, #0 + 8001ab2: 2100 movs r1, #0 + 8001ab4: f000 fdde bl 8002674 + setLED(lookupLED(1,7), 0x00, 0x00, 0x00); + 8001ab8: 2107 movs r1, #7 + 8001aba: 2001 movs r0, #1 + 8001abc: f000 fc6a bl 8002394 + 8001ac0: 4603 mov r3, r0 + 8001ac2: 4618 mov r0, r3 + 8001ac4: 2300 movs r3, #0 + 8001ac6: 2200 movs r2, #0 + 8001ac8: 2100 movs r1, #0 + 8001aca: f000 fdd3 bl 8002674 + setLED(lookupLED(2,0), 0x00, 0x00, 0x00); + 8001ace: 2100 movs r1, #0 + 8001ad0: 2002 movs r0, #2 + 8001ad2: f000 fc5f bl 8002394 + 8001ad6: 4603 mov r3, r0 + 8001ad8: 4618 mov r0, r3 + 8001ada: 2300 movs r3, #0 + 8001adc: 2200 movs r2, #0 + 8001ade: 2100 movs r1, #0 + 8001ae0: f000 fdc8 bl 8002674 + setLED(lookupLED(2,1), 0x00, 0x00, currentSoundLevel * 0.5); + 8001ae4: 2101 movs r1, #1 + 8001ae6: 2002 movs r0, #2 + 8001ae8: f000 fc54 bl 8002394 + 8001aec: 4603 mov r3, r0 + 8001aee: 461d mov r5, r3 + 8001af0: 79fb ldrb r3, [r7, #7] + 8001af2: 4618 mov r0, r3 + 8001af4: f7fe fcce bl 8000494 <__aeabi_i2d> + 8001af8: f04f 0200 mov.w r2, #0 + 8001afc: 4b5d ldr r3, [pc, #372] ; (8001c74 ) + 8001afe: f7fe fd33 bl 8000568 <__aeabi_dmul> + 8001b02: 4603 mov r3, r0 + 8001b04: 460c mov r4, r1 + 8001b06: 4618 mov r0, r3 + 8001b08: 4621 mov r1, r4 + 8001b0a: f7fe ff3f bl 800098c <__aeabi_d2uiz> + 8001b0e: 4603 mov r3, r0 + 8001b10: b2db uxtb r3, r3 + 8001b12: 2200 movs r2, #0 + 8001b14: 2100 movs r1, #0 + 8001b16: 4628 mov r0, r5 + 8001b18: f000 fdac bl 8002674 + setLED(lookupLED(2,2), 0x00, 0x00, 0x7F + (currentSoundLevel * 0.5)); + 8001b1c: 2102 movs r1, #2 + 8001b1e: 2002 movs r0, #2 + 8001b20: f000 fc38 bl 8002394 + 8001b24: 4603 mov r3, r0 + 8001b26: 461d mov r5, r3 + 8001b28: 79fb ldrb r3, [r7, #7] + 8001b2a: 4618 mov r0, r3 + 8001b2c: f7fe fcb2 bl 8000494 <__aeabi_i2d> + 8001b30: f04f 0200 mov.w r2, #0 + 8001b34: 4b4f ldr r3, [pc, #316] ; (8001c74 ) + 8001b36: f7fe fd17 bl 8000568 <__aeabi_dmul> + 8001b3a: 4603 mov r3, r0 + 8001b3c: 460c mov r4, r1 + 8001b3e: 4618 mov r0, r3 + 8001b40: 4621 mov r1, r4 + 8001b42: a349 add r3, pc, #292 ; (adr r3, 8001c68 ) + 8001b44: e9d3 2300 ldrd r2, r3, [r3] + 8001b48: f7fe fb58 bl 80001fc <__adddf3> + 8001b4c: 4603 mov r3, r0 + 8001b4e: 460c mov r4, r1 + 8001b50: 4618 mov r0, r3 + 8001b52: 4621 mov r1, r4 + 8001b54: f7fe ff1a bl 800098c <__aeabi_d2uiz> + 8001b58: 4603 mov r3, r0 + 8001b5a: b2db uxtb r3, r3 + 8001b5c: 2200 movs r2, #0 + 8001b5e: 2100 movs r1, #0 + 8001b60: 4628 mov r0, r5 + 8001b62: f000 fd87 bl 8002674 + setLED(lookupLED(2,3), 0x00, 0x00, currentSoundLevel); + 8001b66: 2103 movs r1, #3 + 8001b68: 2002 movs r0, #2 + 8001b6a: f000 fc13 bl 8002394 + 8001b6e: 4603 mov r3, r0 + 8001b70: 4618 mov r0, r3 + 8001b72: 79fb ldrb r3, [r7, #7] + 8001b74: 2200 movs r2, #0 + 8001b76: 2100 movs r1, #0 + 8001b78: f000 fd7c bl 8002674 + setLED(lookupLED(2,4), 0x00, 0x00, currentSoundLevel); + 8001b7c: 2104 movs r1, #4 + 8001b7e: 2002 movs r0, #2 + 8001b80: f000 fc08 bl 8002394 + 8001b84: 4603 mov r3, r0 + 8001b86: 4618 mov r0, r3 + 8001b88: 79fb ldrb r3, [r7, #7] + 8001b8a: 2200 movs r2, #0 + 8001b8c: 2100 movs r1, #0 + 8001b8e: f000 fd71 bl 8002674 + setLED(lookupLED(2,5), 0x00, 0x00, currentSoundLevel * 0.5); + 8001b92: 2105 movs r1, #5 + 8001b94: 2002 movs r0, #2 + 8001b96: f000 fbfd bl 8002394 + 8001b9a: 4603 mov r3, r0 + 8001b9c: 461d mov r5, r3 + 8001b9e: 79fb ldrb r3, [r7, #7] + 8001ba0: 4618 mov r0, r3 + 8001ba2: f7fe fc77 bl 8000494 <__aeabi_i2d> + 8001ba6: f04f 0200 mov.w r2, #0 + 8001baa: 4b32 ldr r3, [pc, #200] ; (8001c74 ) + 8001bac: f7fe fcdc bl 8000568 <__aeabi_dmul> + 8001bb0: 4603 mov r3, r0 + 8001bb2: 460c mov r4, r1 + 8001bb4: 4618 mov r0, r3 + 8001bb6: 4621 mov r1, r4 + 8001bb8: f7fe fee8 bl 800098c <__aeabi_d2uiz> + 8001bbc: 4603 mov r3, r0 + 8001bbe: b2db uxtb r3, r3 + 8001bc0: 2200 movs r2, #0 + 8001bc2: 2100 movs r1, #0 + 8001bc4: 4628 mov r0, r5 + 8001bc6: f000 fd55 bl 8002674 + setLED(lookupLED(2,6), 0x00, 0x00, 0x00); + 8001bca: 2106 movs r1, #6 + 8001bcc: 2002 movs r0, #2 + 8001bce: f000 fbe1 bl 8002394 + 8001bd2: 4603 mov r3, r0 + 8001bd4: 4618 mov r0, r3 + 8001bd6: 2300 movs r3, #0 + 8001bd8: 2200 movs r2, #0 + 8001bda: 2100 movs r1, #0 + 8001bdc: f000 fd4a bl 8002674 + setLED(lookupLED(2,7), 0x00, 0x00, 0x00); + 8001be0: 2107 movs r1, #7 + 8001be2: 2002 movs r0, #2 + 8001be4: f000 fbd6 bl 8002394 + 8001be8: 4603 mov r3, r0 + 8001bea: 4618 mov r0, r3 + 8001bec: 2300 movs r3, #0 + 8001bee: 2200 movs r2, #0 + 8001bf0: 2100 movs r1, #0 + 8001bf2: f000 fd3f bl 8002674 + setLED(lookupLED(3,0), 0x00, 0x00, currentSoundLevel * 0.25); + 8001bf6: 2100 movs r1, #0 + 8001bf8: 2003 movs r0, #3 + 8001bfa: f000 fbcb bl 8002394 + 8001bfe: 4603 mov r3, r0 + 8001c00: 461d mov r5, r3 + 8001c02: 79fb ldrb r3, [r7, #7] + 8001c04: 4618 mov r0, r3 + 8001c06: f7fe fc45 bl 8000494 <__aeabi_i2d> + 8001c0a: f04f 0200 mov.w r2, #0 + 8001c0e: 4b18 ldr r3, [pc, #96] ; (8001c70 ) + 8001c10: f7fe fcaa bl 8000568 <__aeabi_dmul> + 8001c14: 4603 mov r3, r0 + 8001c16: 460c mov r4, r1 + 8001c18: 4618 mov r0, r3 + 8001c1a: 4621 mov r1, r4 + 8001c1c: f7fe feb6 bl 800098c <__aeabi_d2uiz> + 8001c20: 4603 mov r3, r0 + 8001c22: b2db uxtb r3, r3 + 8001c24: 2200 movs r2, #0 + 8001c26: 2100 movs r1, #0 + 8001c28: 4628 mov r0, r5 + 8001c2a: f000 fd23 bl 8002674 + setLED(lookupLED(3,1), 0x00, 0x00, currentSoundLevel * 0.5); + 8001c2e: 2101 movs r1, #1 + 8001c30: 2003 movs r0, #3 + 8001c32: f000 fbaf bl 8002394 + 8001c36: 4603 mov r3, r0 + 8001c38: 461d mov r5, r3 + 8001c3a: 79fb ldrb r3, [r7, #7] + 8001c3c: 4618 mov r0, r3 + 8001c3e: f7fe fc29 bl 8000494 <__aeabi_i2d> + 8001c42: f04f 0200 mov.w r2, #0 + 8001c46: 4b0b ldr r3, [pc, #44] ; (8001c74 ) + 8001c48: f7fe fc8e bl 8000568 <__aeabi_dmul> + 8001c4c: 4603 mov r3, r0 + 8001c4e: 460c mov r4, r1 + 8001c50: 4618 mov r0, r3 + 8001c52: 4621 mov r1, r4 + 8001c54: f7fe fe9a bl 800098c <__aeabi_d2uiz> + 8001c58: 4603 mov r3, r0 + 8001c5a: b2db uxtb r3, r3 + 8001c5c: 2200 movs r2, #0 + 8001c5e: 2100 movs r1, #0 + 8001c60: e00a b.n 8001c78 + 8001c62: bf00 nop + 8001c64: f3af 8000 nop.w + 8001c68: 00000000 .word 0x00000000 + 8001c6c: 405fc000 .word 0x405fc000 + 8001c70: 3fd00000 .word 0x3fd00000 + 8001c74: 3fe00000 .word 0x3fe00000 + 8001c78: 4628 mov r0, r5 + 8001c7a: f000 fcfb bl 8002674 + setLED(lookupLED(3,2), 0x00, 0x00, 0x7F + (currentSoundLevel * 0.5)); + 8001c7e: 2102 movs r1, #2 + 8001c80: 2003 movs r0, #3 + 8001c82: f000 fb87 bl 8002394 + 8001c86: 4603 mov r3, r0 + 8001c88: 461d mov r5, r3 + 8001c8a: 79fb ldrb r3, [r7, #7] + 8001c8c: 4618 mov r0, r3 + 8001c8e: f7fe fc01 bl 8000494 <__aeabi_i2d> + 8001c92: f04f 0200 mov.w r2, #0 + 8001c96: 4bea ldr r3, [pc, #936] ; (8002040 ) + 8001c98: f7fe fc66 bl 8000568 <__aeabi_dmul> + 8001c9c: 4603 mov r3, r0 + 8001c9e: 460c mov r4, r1 + 8001ca0: 4618 mov r0, r3 + 8001ca2: 4621 mov r1, r4 + 8001ca4: a3e4 add r3, pc, #912 ; (adr r3, 8002038 ) + 8001ca6: e9d3 2300 ldrd r2, r3, [r3] + 8001caa: f7fe faa7 bl 80001fc <__adddf3> + 8001cae: 4603 mov r3, r0 + 8001cb0: 460c mov r4, r1 + 8001cb2: 4618 mov r0, r3 + 8001cb4: 4621 mov r1, r4 + 8001cb6: f7fe fe69 bl 800098c <__aeabi_d2uiz> + 8001cba: 4603 mov r3, r0 + 8001cbc: b2db uxtb r3, r3 + 8001cbe: 2200 movs r2, #0 + 8001cc0: 2100 movs r1, #0 + 8001cc2: 4628 mov r0, r5 + 8001cc4: f000 fcd6 bl 8002674 + setLED(lookupLED(3,3), 0x00, 0x00, currentSoundLevel); + 8001cc8: 2103 movs r1, #3 + 8001cca: 2003 movs r0, #3 + 8001ccc: f000 fb62 bl 8002394 + 8001cd0: 4603 mov r3, r0 + 8001cd2: 4618 mov r0, r3 + 8001cd4: 79fb ldrb r3, [r7, #7] + 8001cd6: 2200 movs r2, #0 + 8001cd8: 2100 movs r1, #0 + 8001cda: f000 fccb bl 8002674 + setLED(lookupLED(3,4), 0x00, 0x00, currentSoundLevel); + 8001cde: 2104 movs r1, #4 + 8001ce0: 2003 movs r0, #3 + 8001ce2: f000 fb57 bl 8002394 + 8001ce6: 4603 mov r3, r0 + 8001ce8: 4618 mov r0, r3 + 8001cea: 79fb ldrb r3, [r7, #7] + 8001cec: 2200 movs r2, #0 + 8001cee: 2100 movs r1, #0 + 8001cf0: f000 fcc0 bl 8002674 + setLED(lookupLED(3,5), 0x00, 0x00, currentSoundLevel * 0.5); + 8001cf4: 2105 movs r1, #5 + 8001cf6: 2003 movs r0, #3 + 8001cf8: f000 fb4c bl 8002394 + 8001cfc: 4603 mov r3, r0 + 8001cfe: 461d mov r5, r3 + 8001d00: 79fb ldrb r3, [r7, #7] + 8001d02: 4618 mov r0, r3 + 8001d04: f7fe fbc6 bl 8000494 <__aeabi_i2d> + 8001d08: f04f 0200 mov.w r2, #0 + 8001d0c: 4bcc ldr r3, [pc, #816] ; (8002040 ) + 8001d0e: f7fe fc2b bl 8000568 <__aeabi_dmul> + 8001d12: 4603 mov r3, r0 + 8001d14: 460c mov r4, r1 + 8001d16: 4618 mov r0, r3 + 8001d18: 4621 mov r1, r4 + 8001d1a: f7fe fe37 bl 800098c <__aeabi_d2uiz> + 8001d1e: 4603 mov r3, r0 + 8001d20: b2db uxtb r3, r3 + 8001d22: 2200 movs r2, #0 + 8001d24: 2100 movs r1, #0 + 8001d26: 4628 mov r0, r5 + 8001d28: f000 fca4 bl 8002674 + setLED(lookupLED(3,6), 0x00, 0x00, currentSoundLevel * 0.25); + 8001d2c: 2106 movs r1, #6 + 8001d2e: 2003 movs r0, #3 + 8001d30: f000 fb30 bl 8002394 + 8001d34: 4603 mov r3, r0 + 8001d36: 461d mov r5, r3 + 8001d38: 79fb ldrb r3, [r7, #7] + 8001d3a: 4618 mov r0, r3 + 8001d3c: f7fe fbaa bl 8000494 <__aeabi_i2d> + 8001d40: f04f 0200 mov.w r2, #0 + 8001d44: 4bbf ldr r3, [pc, #764] ; (8002044 ) + 8001d46: f7fe fc0f bl 8000568 <__aeabi_dmul> + 8001d4a: 4603 mov r3, r0 + 8001d4c: 460c mov r4, r1 + 8001d4e: 4618 mov r0, r3 + 8001d50: 4621 mov r1, r4 + 8001d52: f7fe fe1b bl 800098c <__aeabi_d2uiz> + 8001d56: 4603 mov r3, r0 + 8001d58: b2db uxtb r3, r3 + 8001d5a: 2200 movs r2, #0 + 8001d5c: 2100 movs r1, #0 + 8001d5e: 4628 mov r0, r5 + 8001d60: f000 fc88 bl 8002674 + setLED(lookupLED(3,7), 0x00, 0x00, 0x00); + 8001d64: 2107 movs r1, #7 + 8001d66: 2003 movs r0, #3 + 8001d68: f000 fb14 bl 8002394 + 8001d6c: 4603 mov r3, r0 + 8001d6e: 4618 mov r0, r3 + 8001d70: 2300 movs r3, #0 + 8001d72: 2200 movs r2, #0 + 8001d74: 2100 movs r1, #0 + 8001d76: f000 fc7d bl 8002674 + setLED(lookupLED(4,0), 0x00, 0x00, currentSoundLevel * 0.25); + 8001d7a: 2100 movs r1, #0 + 8001d7c: 2004 movs r0, #4 + 8001d7e: f000 fb09 bl 8002394 + 8001d82: 4603 mov r3, r0 + 8001d84: 461d mov r5, r3 + 8001d86: 79fb ldrb r3, [r7, #7] + 8001d88: 4618 mov r0, r3 + 8001d8a: f7fe fb83 bl 8000494 <__aeabi_i2d> + 8001d8e: f04f 0200 mov.w r2, #0 + 8001d92: 4bac ldr r3, [pc, #688] ; (8002044 ) + 8001d94: f7fe fbe8 bl 8000568 <__aeabi_dmul> + 8001d98: 4603 mov r3, r0 + 8001d9a: 460c mov r4, r1 + 8001d9c: 4618 mov r0, r3 + 8001d9e: 4621 mov r1, r4 + 8001da0: f7fe fdf4 bl 800098c <__aeabi_d2uiz> + 8001da4: 4603 mov r3, r0 + 8001da6: b2db uxtb r3, r3 + 8001da8: 2200 movs r2, #0 + 8001daa: 2100 movs r1, #0 + 8001dac: 4628 mov r0, r5 + 8001dae: f000 fc61 bl 8002674 + setLED(lookupLED(4,1), 0x00, 0x00, currentSoundLevel * 0.5); + 8001db2: 2101 movs r1, #1 + 8001db4: 2004 movs r0, #4 + 8001db6: f000 faed bl 8002394 + 8001dba: 4603 mov r3, r0 + 8001dbc: 461d mov r5, r3 + 8001dbe: 79fb ldrb r3, [r7, #7] + 8001dc0: 4618 mov r0, r3 + 8001dc2: f7fe fb67 bl 8000494 <__aeabi_i2d> + 8001dc6: f04f 0200 mov.w r2, #0 + 8001dca: 4b9d ldr r3, [pc, #628] ; (8002040 ) + 8001dcc: f7fe fbcc bl 8000568 <__aeabi_dmul> + 8001dd0: 4603 mov r3, r0 + 8001dd2: 460c mov r4, r1 + 8001dd4: 4618 mov r0, r3 + 8001dd6: 4621 mov r1, r4 + 8001dd8: f7fe fdd8 bl 800098c <__aeabi_d2uiz> + 8001ddc: 4603 mov r3, r0 + 8001dde: b2db uxtb r3, r3 + 8001de0: 2200 movs r2, #0 + 8001de2: 2100 movs r1, #0 + 8001de4: 4628 mov r0, r5 + 8001de6: f000 fc45 bl 8002674 + setLED(lookupLED(4,2), 0x00, 0x00, 0x7F + (currentSoundLevel * 0.5)); + 8001dea: 2102 movs r1, #2 + 8001dec: 2004 movs r0, #4 + 8001dee: f000 fad1 bl 8002394 + 8001df2: 4603 mov r3, r0 + 8001df4: 461d mov r5, r3 + 8001df6: 79fb ldrb r3, [r7, #7] + 8001df8: 4618 mov r0, r3 + 8001dfa: f7fe fb4b bl 8000494 <__aeabi_i2d> + 8001dfe: f04f 0200 mov.w r2, #0 + 8001e02: 4b8f ldr r3, [pc, #572] ; (8002040 ) + 8001e04: f7fe fbb0 bl 8000568 <__aeabi_dmul> + 8001e08: 4603 mov r3, r0 + 8001e0a: 460c mov r4, r1 + 8001e0c: 4618 mov r0, r3 + 8001e0e: 4621 mov r1, r4 + 8001e10: a389 add r3, pc, #548 ; (adr r3, 8002038 ) + 8001e12: e9d3 2300 ldrd r2, r3, [r3] + 8001e16: f7fe f9f1 bl 80001fc <__adddf3> + 8001e1a: 4603 mov r3, r0 + 8001e1c: 460c mov r4, r1 + 8001e1e: 4618 mov r0, r3 + 8001e20: 4621 mov r1, r4 + 8001e22: f7fe fdb3 bl 800098c <__aeabi_d2uiz> + 8001e26: 4603 mov r3, r0 + 8001e28: b2db uxtb r3, r3 + 8001e2a: 2200 movs r2, #0 + 8001e2c: 2100 movs r1, #0 + 8001e2e: 4628 mov r0, r5 + 8001e30: f000 fc20 bl 8002674 + setLED(lookupLED(4,3), 0x00, 0x00, currentSoundLevel); + 8001e34: 2103 movs r1, #3 + 8001e36: 2004 movs r0, #4 + 8001e38: f000 faac bl 8002394 + 8001e3c: 4603 mov r3, r0 + 8001e3e: 4618 mov r0, r3 + 8001e40: 79fb ldrb r3, [r7, #7] + 8001e42: 2200 movs r2, #0 + 8001e44: 2100 movs r1, #0 + 8001e46: f000 fc15 bl 8002674 + setLED(lookupLED(4,4), 0x00, 0x00, currentSoundLevel); + 8001e4a: 2104 movs r1, #4 + 8001e4c: 2004 movs r0, #4 + 8001e4e: f000 faa1 bl 8002394 + 8001e52: 4603 mov r3, r0 + 8001e54: 4618 mov r0, r3 + 8001e56: 79fb ldrb r3, [r7, #7] + 8001e58: 2200 movs r2, #0 + 8001e5a: 2100 movs r1, #0 + 8001e5c: f000 fc0a bl 8002674 + setLED(lookupLED(4,5), 0x00, 0x00, currentSoundLevel * 0.5); + 8001e60: 2105 movs r1, #5 + 8001e62: 2004 movs r0, #4 + 8001e64: f000 fa96 bl 8002394 + 8001e68: 4603 mov r3, r0 + 8001e6a: 461d mov r5, r3 + 8001e6c: 79fb ldrb r3, [r7, #7] + 8001e6e: 4618 mov r0, r3 + 8001e70: f7fe fb10 bl 8000494 <__aeabi_i2d> + 8001e74: f04f 0200 mov.w r2, #0 + 8001e78: 4b71 ldr r3, [pc, #452] ; (8002040 ) + 8001e7a: f7fe fb75 bl 8000568 <__aeabi_dmul> + 8001e7e: 4603 mov r3, r0 + 8001e80: 460c mov r4, r1 + 8001e82: 4618 mov r0, r3 + 8001e84: 4621 mov r1, r4 + 8001e86: f7fe fd81 bl 800098c <__aeabi_d2uiz> + 8001e8a: 4603 mov r3, r0 + 8001e8c: b2db uxtb r3, r3 + 8001e8e: 2200 movs r2, #0 + 8001e90: 2100 movs r1, #0 + 8001e92: 4628 mov r0, r5 + 8001e94: f000 fbee bl 8002674 + setLED(lookupLED(4,6), 0x00, 0x00, currentSoundLevel * 0.25); + 8001e98: 2106 movs r1, #6 + 8001e9a: 2004 movs r0, #4 + 8001e9c: f000 fa7a bl 8002394 + 8001ea0: 4603 mov r3, r0 + 8001ea2: 461d mov r5, r3 + 8001ea4: 79fb ldrb r3, [r7, #7] + 8001ea6: 4618 mov r0, r3 + 8001ea8: f7fe faf4 bl 8000494 <__aeabi_i2d> + 8001eac: f04f 0200 mov.w r2, #0 + 8001eb0: 4b64 ldr r3, [pc, #400] ; (8002044 ) + 8001eb2: f7fe fb59 bl 8000568 <__aeabi_dmul> + 8001eb6: 4603 mov r3, r0 + 8001eb8: 460c mov r4, r1 + 8001eba: 4618 mov r0, r3 + 8001ebc: 4621 mov r1, r4 + 8001ebe: f7fe fd65 bl 800098c <__aeabi_d2uiz> + 8001ec2: 4603 mov r3, r0 + 8001ec4: b2db uxtb r3, r3 + 8001ec6: 2200 movs r2, #0 + 8001ec8: 2100 movs r1, #0 + 8001eca: 4628 mov r0, r5 + 8001ecc: f000 fbd2 bl 8002674 + setLED(lookupLED(4,7), 0x00, 0x00, 0x00); + 8001ed0: 2107 movs r1, #7 + 8001ed2: 2004 movs r0, #4 + 8001ed4: f000 fa5e bl 8002394 + 8001ed8: 4603 mov r3, r0 + 8001eda: 4618 mov r0, r3 + 8001edc: 2300 movs r3, #0 + 8001ede: 2200 movs r2, #0 + 8001ee0: 2100 movs r1, #0 + 8001ee2: f000 fbc7 bl 8002674 + setLED(lookupLED(5,0), 0x00, 0x00, 0x00); + 8001ee6: 2100 movs r1, #0 + 8001ee8: 2005 movs r0, #5 + 8001eea: f000 fa53 bl 8002394 + 8001eee: 4603 mov r3, r0 + 8001ef0: 4618 mov r0, r3 + 8001ef2: 2300 movs r3, #0 + 8001ef4: 2200 movs r2, #0 + 8001ef6: 2100 movs r1, #0 + 8001ef8: f000 fbbc bl 8002674 + setLED(lookupLED(5,1), 0x00, 0x00, currentSoundLevel * 0.5); + 8001efc: 2101 movs r1, #1 + 8001efe: 2005 movs r0, #5 + 8001f00: f000 fa48 bl 8002394 + 8001f04: 4603 mov r3, r0 + 8001f06: 461d mov r5, r3 + 8001f08: 79fb ldrb r3, [r7, #7] + 8001f0a: 4618 mov r0, r3 + 8001f0c: f7fe fac2 bl 8000494 <__aeabi_i2d> + 8001f10: f04f 0200 mov.w r2, #0 + 8001f14: 4b4a ldr r3, [pc, #296] ; (8002040 ) + 8001f16: f7fe fb27 bl 8000568 <__aeabi_dmul> + 8001f1a: 4603 mov r3, r0 + 8001f1c: 460c mov r4, r1 + 8001f1e: 4618 mov r0, r3 + 8001f20: 4621 mov r1, r4 + 8001f22: f7fe fd33 bl 800098c <__aeabi_d2uiz> + 8001f26: 4603 mov r3, r0 + 8001f28: b2db uxtb r3, r3 + 8001f2a: 2200 movs r2, #0 + 8001f2c: 2100 movs r1, #0 + 8001f2e: 4628 mov r0, r5 + 8001f30: f000 fba0 bl 8002674 + setLED(lookupLED(5,2), 0x00, 0x00, 0x7F + (currentSoundLevel * 0.5)); + 8001f34: 2102 movs r1, #2 + 8001f36: 2005 movs r0, #5 + 8001f38: f000 fa2c bl 8002394 + 8001f3c: 4603 mov r3, r0 + 8001f3e: 461d mov r5, r3 + 8001f40: 79fb ldrb r3, [r7, #7] + 8001f42: 4618 mov r0, r3 + 8001f44: f7fe faa6 bl 8000494 <__aeabi_i2d> + 8001f48: f04f 0200 mov.w r2, #0 + 8001f4c: 4b3c ldr r3, [pc, #240] ; (8002040 ) + 8001f4e: f7fe fb0b bl 8000568 <__aeabi_dmul> + 8001f52: 4603 mov r3, r0 + 8001f54: 460c mov r4, r1 + 8001f56: 4618 mov r0, r3 + 8001f58: 4621 mov r1, r4 + 8001f5a: a337 add r3, pc, #220 ; (adr r3, 8002038 ) + 8001f5c: e9d3 2300 ldrd r2, r3, [r3] + 8001f60: f7fe f94c bl 80001fc <__adddf3> + 8001f64: 4603 mov r3, r0 + 8001f66: 460c mov r4, r1 + 8001f68: 4618 mov r0, r3 + 8001f6a: 4621 mov r1, r4 + 8001f6c: f7fe fd0e bl 800098c <__aeabi_d2uiz> + 8001f70: 4603 mov r3, r0 + 8001f72: b2db uxtb r3, r3 + 8001f74: 2200 movs r2, #0 + 8001f76: 2100 movs r1, #0 + 8001f78: 4628 mov r0, r5 + 8001f7a: f000 fb7b bl 8002674 + setLED(lookupLED(5,3), 0x00, 0x00, currentSoundLevel); + 8001f7e: 2103 movs r1, #3 + 8001f80: 2005 movs r0, #5 + 8001f82: f000 fa07 bl 8002394 + 8001f86: 4603 mov r3, r0 + 8001f88: 4618 mov r0, r3 + 8001f8a: 79fb ldrb r3, [r7, #7] + 8001f8c: 2200 movs r2, #0 + 8001f8e: 2100 movs r1, #0 + 8001f90: f000 fb70 bl 8002674 + setLED(lookupLED(5,4), 0x00, 0x00, currentSoundLevel); + 8001f94: 2104 movs r1, #4 + 8001f96: 2005 movs r0, #5 + 8001f98: f000 f9fc bl 8002394 + 8001f9c: 4603 mov r3, r0 + 8001f9e: 4618 mov r0, r3 + 8001fa0: 79fb ldrb r3, [r7, #7] + 8001fa2: 2200 movs r2, #0 + 8001fa4: 2100 movs r1, #0 + 8001fa6: f000 fb65 bl 8002674 + setLED(lookupLED(5,5), 0x00, 0x00, currentSoundLevel * 0.5); + 8001faa: 2105 movs r1, #5 + 8001fac: 2005 movs r0, #5 + 8001fae: f000 f9f1 bl 8002394 + 8001fb2: 4603 mov r3, r0 + 8001fb4: 461d mov r5, r3 + 8001fb6: 79fb ldrb r3, [r7, #7] + 8001fb8: 4618 mov r0, r3 + 8001fba: f7fe fa6b bl 8000494 <__aeabi_i2d> + 8001fbe: f04f 0200 mov.w r2, #0 + 8001fc2: 4b1f ldr r3, [pc, #124] ; (8002040 ) + 8001fc4: f7fe fad0 bl 8000568 <__aeabi_dmul> + 8001fc8: 4603 mov r3, r0 + 8001fca: 460c mov r4, r1 + 8001fcc: 4618 mov r0, r3 + 8001fce: 4621 mov r1, r4 + 8001fd0: f7fe fcdc bl 800098c <__aeabi_d2uiz> + 8001fd4: 4603 mov r3, r0 + 8001fd6: b2db uxtb r3, r3 + 8001fd8: 2200 movs r2, #0 + 8001fda: 2100 movs r1, #0 + 8001fdc: 4628 mov r0, r5 + 8001fde: f000 fb49 bl 8002674 + setLED(lookupLED(5,6), 0x00, 0x00, 0x00); + 8001fe2: 2106 movs r1, #6 + 8001fe4: 2005 movs r0, #5 + 8001fe6: f000 f9d5 bl 8002394 + 8001fea: 4603 mov r3, r0 + 8001fec: 4618 mov r0, r3 + 8001fee: 2300 movs r3, #0 + 8001ff0: 2200 movs r2, #0 + 8001ff2: 2100 movs r1, #0 + 8001ff4: f000 fb3e bl 8002674 + setLED(lookupLED(5,7), 0x00, 0x00, 0x00); + 8001ff8: 2107 movs r1, #7 + 8001ffa: 2005 movs r0, #5 + 8001ffc: f000 f9ca bl 8002394 + 8002000: 4603 mov r3, r0 + 8002002: 4618 mov r0, r3 + 8002004: 2300 movs r3, #0 + 8002006: 2200 movs r2, #0 + 8002008: 2100 movs r1, #0 + 800200a: f000 fb33 bl 8002674 + setLED(lookupLED(6,0), 0x00, 0x00, 0x00); + 800200e: 2100 movs r1, #0 + 8002010: 2006 movs r0, #6 + 8002012: f000 f9bf bl 8002394 + 8002016: 4603 mov r3, r0 + 8002018: 4618 mov r0, r3 + 800201a: 2300 movs r3, #0 + 800201c: 2200 movs r2, #0 + 800201e: 2100 movs r1, #0 + 8002020: f000 fb28 bl 8002674 + setLED(lookupLED(6,1), 0x00, 0x00, currentSoundLevel * 0.5); + 8002024: 2101 movs r1, #1 + 8002026: 2006 movs r0, #6 + 8002028: f000 f9b4 bl 8002394 + 800202c: 4603 mov r3, r0 + 800202e: 461d mov r5, r3 + 8002030: e00a b.n 8002048 + 8002032: bf00 nop + 8002034: f3af 8000 nop.w + 8002038: 00000000 .word 0x00000000 + 800203c: 405fc000 .word 0x405fc000 + 8002040: 3fe00000 .word 0x3fe00000 + 8002044: 3fd00000 .word 0x3fd00000 + 8002048: 79fb ldrb r3, [r7, #7] + 800204a: 4618 mov r0, r3 + 800204c: f7fe fa22 bl 8000494 <__aeabi_i2d> + 8002050: f04f 0200 mov.w r2, #0 + 8002054: 4b8c ldr r3, [pc, #560] ; (8002288 ) + 8002056: f7fe fa87 bl 8000568 <__aeabi_dmul> + 800205a: 4603 mov r3, r0 + 800205c: 460c mov r4, r1 + 800205e: 4618 mov r0, r3 + 8002060: 4621 mov r1, r4 + 8002062: f7fe fc93 bl 800098c <__aeabi_d2uiz> + 8002066: 4603 mov r3, r0 + 8002068: b2db uxtb r3, r3 + 800206a: 2200 movs r2, #0 + 800206c: 2100 movs r1, #0 + 800206e: 4628 mov r0, r5 + 8002070: f000 fb00 bl 8002674 + setLED(lookupLED(6,2), 0x00, 0x00, 0x7F + (currentSoundLevel * 0.5)); + 8002074: 2102 movs r1, #2 + 8002076: 2006 movs r0, #6 + 8002078: f000 f98c bl 8002394 + 800207c: 4603 mov r3, r0 + 800207e: 461d mov r5, r3 + 8002080: 79fb ldrb r3, [r7, #7] + 8002082: 4618 mov r0, r3 + 8002084: f7fe fa06 bl 8000494 <__aeabi_i2d> + 8002088: f04f 0200 mov.w r2, #0 + 800208c: 4b7e ldr r3, [pc, #504] ; (8002288 ) + 800208e: f7fe fa6b bl 8000568 <__aeabi_dmul> + 8002092: 4603 mov r3, r0 + 8002094: 460c mov r4, r1 + 8002096: 4618 mov r0, r3 + 8002098: 4621 mov r1, r4 + 800209a: a379 add r3, pc, #484 ; (adr r3, 8002280 ) + 800209c: e9d3 2300 ldrd r2, r3, [r3] + 80020a0: f7fe f8ac bl 80001fc <__adddf3> + 80020a4: 4603 mov r3, r0 + 80020a6: 460c mov r4, r1 + 80020a8: 4618 mov r0, r3 + 80020aa: 4621 mov r1, r4 + 80020ac: f7fe fc6e bl 800098c <__aeabi_d2uiz> + 80020b0: 4603 mov r3, r0 + 80020b2: b2db uxtb r3, r3 + 80020b4: 2200 movs r2, #0 + 80020b6: 2100 movs r1, #0 + 80020b8: 4628 mov r0, r5 + 80020ba: f000 fadb bl 8002674 + setLED(lookupLED(6,3), 0x00, 0x00, currentSoundLevel); + 80020be: 2103 movs r1, #3 + 80020c0: 2006 movs r0, #6 + 80020c2: f000 f967 bl 8002394 + 80020c6: 4603 mov r3, r0 + 80020c8: 4618 mov r0, r3 + 80020ca: 79fb ldrb r3, [r7, #7] + 80020cc: 2200 movs r2, #0 + 80020ce: 2100 movs r1, #0 + 80020d0: f000 fad0 bl 8002674 + setLED(lookupLED(6,4), 0x00, 0x00, currentSoundLevel); + 80020d4: 2104 movs r1, #4 + 80020d6: 2006 movs r0, #6 + 80020d8: f000 f95c bl 8002394 + 80020dc: 4603 mov r3, r0 + 80020de: 4618 mov r0, r3 + 80020e0: 79fb ldrb r3, [r7, #7] + 80020e2: 2200 movs r2, #0 + 80020e4: 2100 movs r1, #0 + 80020e6: f000 fac5 bl 8002674 + setLED(lookupLED(6,5), 0x00, 0x00, currentSoundLevel * 0.5); + 80020ea: 2105 movs r1, #5 + 80020ec: 2006 movs r0, #6 + 80020ee: f000 f951 bl 8002394 + 80020f2: 4603 mov r3, r0 + 80020f4: 461d mov r5, r3 + 80020f6: 79fb ldrb r3, [r7, #7] + 80020f8: 4618 mov r0, r3 + 80020fa: f7fe f9cb bl 8000494 <__aeabi_i2d> + 80020fe: f04f 0200 mov.w r2, #0 + 8002102: 4b61 ldr r3, [pc, #388] ; (8002288 ) + 8002104: f7fe fa30 bl 8000568 <__aeabi_dmul> + 8002108: 4603 mov r3, r0 + 800210a: 460c mov r4, r1 + 800210c: 4618 mov r0, r3 + 800210e: 4621 mov r1, r4 + 8002110: f7fe fc3c bl 800098c <__aeabi_d2uiz> + 8002114: 4603 mov r3, r0 + 8002116: b2db uxtb r3, r3 + 8002118: 2200 movs r2, #0 + 800211a: 2100 movs r1, #0 + 800211c: 4628 mov r0, r5 + 800211e: f000 faa9 bl 8002674 + setLED(lookupLED(6,6), 0x00, 0x00, 0x00); + 8002122: 2106 movs r1, #6 + 8002124: 2006 movs r0, #6 + 8002126: f000 f935 bl 8002394 + 800212a: 4603 mov r3, r0 + 800212c: 4618 mov r0, r3 + 800212e: 2300 movs r3, #0 + 8002130: 2200 movs r2, #0 + 8002132: 2100 movs r1, #0 + 8002134: f000 fa9e bl 8002674 + setLED(lookupLED(6,7), 0x00, 0x00, 0x00); + 8002138: 2107 movs r1, #7 + 800213a: 2006 movs r0, #6 + 800213c: f000 f92a bl 8002394 + 8002140: 4603 mov r3, r0 + 8002142: 4618 mov r0, r3 + 8002144: 2300 movs r3, #0 + 8002146: 2200 movs r2, #0 + 8002148: 2100 movs r1, #0 + 800214a: f000 fa93 bl 8002674 + setLED(lookupLED(7,0), 0x00, 0x00, 0x00); + 800214e: 2100 movs r1, #0 + 8002150: 2007 movs r0, #7 + 8002152: f000 f91f bl 8002394 + 8002156: 4603 mov r3, r0 + 8002158: 4618 mov r0, r3 + 800215a: 2300 movs r3, #0 + 800215c: 2200 movs r2, #0 + 800215e: 2100 movs r1, #0 + 8002160: f000 fa88 bl 8002674 + setLED(lookupLED(7,1), 0x00, 0x00, 0x00); + 8002164: 2101 movs r1, #1 + 8002166: 2007 movs r0, #7 + 8002168: f000 f914 bl 8002394 + 800216c: 4603 mov r3, r0 + 800216e: 4618 mov r0, r3 + 8002170: 2300 movs r3, #0 + 8002172: 2200 movs r2, #0 + 8002174: 2100 movs r1, #0 + 8002176: f000 fa7d bl 8002674 + setLED(lookupLED(7,2), 0x00, 0x00, currentSoundLevel * 0.25); + 800217a: 2102 movs r1, #2 + 800217c: 2007 movs r0, #7 + 800217e: f000 f909 bl 8002394 + 8002182: 4603 mov r3, r0 + 8002184: 461d mov r5, r3 + 8002186: 79fb ldrb r3, [r7, #7] + 8002188: 4618 mov r0, r3 + 800218a: f7fe f983 bl 8000494 <__aeabi_i2d> + 800218e: f04f 0200 mov.w r2, #0 + 8002192: 4b3e ldr r3, [pc, #248] ; (800228c ) + 8002194: f7fe f9e8 bl 8000568 <__aeabi_dmul> + 8002198: 4603 mov r3, r0 + 800219a: 460c mov r4, r1 + 800219c: 4618 mov r0, r3 + 800219e: 4621 mov r1, r4 + 80021a0: f7fe fbf4 bl 800098c <__aeabi_d2uiz> + 80021a4: 4603 mov r3, r0 + 80021a6: b2db uxtb r3, r3 + 80021a8: 2200 movs r2, #0 + 80021aa: 2100 movs r1, #0 + 80021ac: 4628 mov r0, r5 + 80021ae: f000 fa61 bl 8002674 + setLED(lookupLED(7,3), 0x00, 0x00, 0x7F + (currentSoundLevel * 0.5)); + 80021b2: 2103 movs r1, #3 + 80021b4: 2007 movs r0, #7 + 80021b6: f000 f8ed bl 8002394 + 80021ba: 4603 mov r3, r0 + 80021bc: 461d mov r5, r3 + 80021be: 79fb ldrb r3, [r7, #7] + 80021c0: 4618 mov r0, r3 + 80021c2: f7fe f967 bl 8000494 <__aeabi_i2d> + 80021c6: f04f 0200 mov.w r2, #0 + 80021ca: 4b2f ldr r3, [pc, #188] ; (8002288 ) + 80021cc: f7fe f9cc bl 8000568 <__aeabi_dmul> + 80021d0: 4603 mov r3, r0 + 80021d2: 460c mov r4, r1 + 80021d4: 4618 mov r0, r3 + 80021d6: 4621 mov r1, r4 + 80021d8: a329 add r3, pc, #164 ; (adr r3, 8002280 ) + 80021da: e9d3 2300 ldrd r2, r3, [r3] + 80021de: f7fe f80d bl 80001fc <__adddf3> + 80021e2: 4603 mov r3, r0 + 80021e4: 460c mov r4, r1 + 80021e6: 4618 mov r0, r3 + 80021e8: 4621 mov r1, r4 + 80021ea: f7fe fbcf bl 800098c <__aeabi_d2uiz> + 80021ee: 4603 mov r3, r0 + 80021f0: b2db uxtb r3, r3 + 80021f2: 2200 movs r2, #0 + 80021f4: 2100 movs r1, #0 + 80021f6: 4628 mov r0, r5 + 80021f8: f000 fa3c bl 8002674 + setLED(lookupLED(7,4), 0x00, 0x00, currentSoundLevel * 0.25); + 80021fc: 2104 movs r1, #4 + 80021fe: 2007 movs r0, #7 + 8002200: f000 f8c8 bl 8002394 + 8002204: 4603 mov r3, r0 + 8002206: 461d mov r5, r3 + 8002208: 79fb ldrb r3, [r7, #7] + 800220a: 4618 mov r0, r3 + 800220c: f7fe f942 bl 8000494 <__aeabi_i2d> + 8002210: f04f 0200 mov.w r2, #0 + 8002214: 4b1d ldr r3, [pc, #116] ; (800228c ) + 8002216: f7fe f9a7 bl 8000568 <__aeabi_dmul> + 800221a: 4603 mov r3, r0 + 800221c: 460c mov r4, r1 + 800221e: 4618 mov r0, r3 + 8002220: 4621 mov r1, r4 + 8002222: f7fe fbb3 bl 800098c <__aeabi_d2uiz> + 8002226: 4603 mov r3, r0 + 8002228: b2db uxtb r3, r3 + 800222a: 2200 movs r2, #0 + 800222c: 2100 movs r1, #0 + 800222e: 4628 mov r0, r5 + 8002230: f000 fa20 bl 8002674 + setLED(lookupLED(7,5), 0x00, 0x00, 0x00); + 8002234: 2105 movs r1, #5 + 8002236: 2007 movs r0, #7 + 8002238: f000 f8ac bl 8002394 + 800223c: 4603 mov r3, r0 + 800223e: 4618 mov r0, r3 + 8002240: 2300 movs r3, #0 + 8002242: 2200 movs r2, #0 + 8002244: 2100 movs r1, #0 + 8002246: f000 fa15 bl 8002674 + setLED(lookupLED(7,6), 0x00, 0x00, 0x00); + 800224a: 2106 movs r1, #6 + 800224c: 2007 movs r0, #7 + 800224e: f000 f8a1 bl 8002394 + 8002252: 4603 mov r3, r0 + 8002254: 4618 mov r0, r3 + 8002256: 2300 movs r3, #0 + 8002258: 2200 movs r2, #0 + 800225a: 2100 movs r1, #0 + 800225c: f000 fa0a bl 8002674 + setLED(lookupLED(7,7), 0x00, 0x00, 0x00); + 8002260: 2107 movs r1, #7 + 8002262: 2007 movs r0, #7 + 8002264: f000 f896 bl 8002394 + 8002268: 4603 mov r3, r0 + 800226a: 4618 mov r0, r3 + 800226c: 2300 movs r3, #0 + 800226e: 2200 movs r2, #0 + 8002270: 2100 movs r1, #0 + 8002272: f000 f9ff bl 8002674 +} + 8002276: bf00 nop + 8002278: 3708 adds r7, #8 + 800227a: 46bd mov sp, r7 + 800227c: bdb0 pop {r4, r5, r7, pc} + 800227e: bf00 nop + 8002280: 00000000 .word 0x00000000 + 8002284: 405fc000 .word 0x405fc000 + 8002288: 3fe00000 .word 0x3fe00000 + 800228c: 3fd00000 .word 0x3fd00000 + +08002290 : +void LEDDesign_SuperCrazy(void){ + 8002290: b580 push {r7, lr} + 8002292: b084 sub sp, #16 + 8002294: af00 add r7, sp, #0 + HAL_Delay(50); + 8002296: 2032 movs r0, #50 ; 0x32 + 8002298: f000 fe06 bl 8002ea8 + uint8_t randomByte = (uint8_t) (0xFF * (((float) rand()) / RAND_MAX)); + 800229c: f002 ffce bl 800523c + 80022a0: ee07 0a90 vmov s15, r0 + 80022a4: eeb8 7ae7 vcvt.f32.s32 s14, s15 + 80022a8: eddf 6a37 vldr s13, [pc, #220] ; 8002388 + 80022ac: eec7 7a26 vdiv.f32 s15, s14, s13 + 80022b0: ed9f 7a36 vldr s14, [pc, #216] ; 800238c + 80022b4: ee67 7a87 vmul.f32 s15, s15, s14 + 80022b8: eefc 7ae7 vcvt.u32.f32 s15, s15 + 80022bc: edc7 7a01 vstr s15, [r7, #4] + 80022c0: 793b ldrb r3, [r7, #4] + 80022c2: 733b strb r3, [r7, #12] + for(uint8_t i = 0; i < 64; ++i){ + 80022c4: 2300 movs r3, #0 + 80022c6: 73fb strb r3, [r7, #15] + 80022c8: e00a b.n 80022e0 + LEDData[i][0] = randomByte; + 80022ca: 7bfa ldrb r2, [r7, #15] + 80022cc: 4930 ldr r1, [pc, #192] ; (8002390 ) + 80022ce: 4613 mov r3, r2 + 80022d0: 005b lsls r3, r3, #1 + 80022d2: 4413 add r3, r2 + 80022d4: 440b add r3, r1 + 80022d6: 7b3a ldrb r2, [r7, #12] + 80022d8: 701a strb r2, [r3, #0] + for(uint8_t i = 0; i < 64; ++i){ + 80022da: 7bfb ldrb r3, [r7, #15] + 80022dc: 3301 adds r3, #1 + 80022de: 73fb strb r3, [r7, #15] + 80022e0: 7bfb ldrb r3, [r7, #15] + 80022e2: 2b3f cmp r3, #63 ; 0x3f + 80022e4: d9f1 bls.n 80022ca + } + randomByte = (uint8_t) (0xFF * (((float) rand()) / RAND_MAX)); + 80022e6: f002 ffa9 bl 800523c + 80022ea: ee07 0a90 vmov s15, r0 + 80022ee: eeb8 7ae7 vcvt.f32.s32 s14, s15 + 80022f2: eddf 6a25 vldr s13, [pc, #148] ; 8002388 + 80022f6: eec7 7a26 vdiv.f32 s15, s14, s13 + 80022fa: ed9f 7a24 vldr s14, [pc, #144] ; 800238c + 80022fe: ee67 7a87 vmul.f32 s15, s15, s14 + 8002302: eefc 7ae7 vcvt.u32.f32 s15, s15 + 8002306: edc7 7a01 vstr s15, [r7, #4] + 800230a: 793b ldrb r3, [r7, #4] + 800230c: 733b strb r3, [r7, #12] + for(uint8_t i = 0; i < 64; ++i){ + 800230e: 2300 movs r3, #0 + 8002310: 73bb strb r3, [r7, #14] + 8002312: e00b b.n 800232c + LEDData[i][1] = randomByte; + 8002314: 7bba ldrb r2, [r7, #14] + 8002316: 491e ldr r1, [pc, #120] ; (8002390 ) + 8002318: 4613 mov r3, r2 + 800231a: 005b lsls r3, r3, #1 + 800231c: 4413 add r3, r2 + 800231e: 440b add r3, r1 + 8002320: 3301 adds r3, #1 + 8002322: 7b3a ldrb r2, [r7, #12] + 8002324: 701a strb r2, [r3, #0] + for(uint8_t i = 0; i < 64; ++i){ + 8002326: 7bbb ldrb r3, [r7, #14] + 8002328: 3301 adds r3, #1 + 800232a: 73bb strb r3, [r7, #14] + 800232c: 7bbb ldrb r3, [r7, #14] + 800232e: 2b3f cmp r3, #63 ; 0x3f + 8002330: d9f0 bls.n 8002314 + } + randomByte = (uint8_t) (0xFF * (((float) rand()) / RAND_MAX)); + 8002332: f002 ff83 bl 800523c + 8002336: ee07 0a90 vmov s15, r0 + 800233a: eeb8 7ae7 vcvt.f32.s32 s14, s15 + 800233e: eddf 6a12 vldr s13, [pc, #72] ; 8002388 + 8002342: eec7 7a26 vdiv.f32 s15, s14, s13 + 8002346: ed9f 7a11 vldr s14, [pc, #68] ; 800238c + 800234a: ee67 7a87 vmul.f32 s15, s15, s14 + 800234e: eefc 7ae7 vcvt.u32.f32 s15, s15 + 8002352: edc7 7a01 vstr s15, [r7, #4] + 8002356: 793b ldrb r3, [r7, #4] + 8002358: 733b strb r3, [r7, #12] + for(uint8_t i = 0; i < 64; ++i){ + 800235a: 2300 movs r3, #0 + 800235c: 737b strb r3, [r7, #13] + 800235e: e00b b.n 8002378 + LEDData[i][2] = randomByte; + 8002360: 7b7a ldrb r2, [r7, #13] + 8002362: 490b ldr r1, [pc, #44] ; (8002390 ) + 8002364: 4613 mov r3, r2 + 8002366: 005b lsls r3, r3, #1 + 8002368: 4413 add r3, r2 + 800236a: 440b add r3, r1 + 800236c: 3302 adds r3, #2 + 800236e: 7b3a ldrb r2, [r7, #12] + 8002370: 701a strb r2, [r3, #0] + for(uint8_t i = 0; i < 64; ++i){ + 8002372: 7b7b ldrb r3, [r7, #13] + 8002374: 3301 adds r3, #1 + 8002376: 737b strb r3, [r7, #13] + 8002378: 7b7b ldrb r3, [r7, #13] + 800237a: 2b3f cmp r3, #63 ; 0x3f + 800237c: d9f0 bls.n 8002360 + } +} + 800237e: bf00 nop + 8002380: 3710 adds r7, #16 + 8002382: 46bd mov sp, r7 + 8002384: bd80 pop {r7, pc} + 8002386: bf00 nop + 8002388: 4f000000 .word 0x4f000000 + 800238c: 437f0000 .word 0x437f0000 + 8002390: 20000094 .word 0x20000094 + +08002394 : +uint8_t lookupLED(uint8_t column, uint8_t row){ + 8002394: b480 push {r7} + 8002396: b083 sub sp, #12 + 8002398: af00 add r7, sp, #0 + 800239a: 4603 mov r3, r0 + 800239c: 460a mov r2, r1 + 800239e: 71fb strb r3, [r7, #7] + 80023a0: 4613 mov r3, r2 + 80023a2: 71bb strb r3, [r7, #6] + switch(column){ + 80023a4: 79fb ldrb r3, [r7, #7] + 80023a6: 2b07 cmp r3, #7 + 80023a8: f200 815d bhi.w 8002666 + 80023ac: a201 add r2, pc, #4 ; (adr r2, 80023b4 ) + 80023ae: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 80023b2: bf00 nop + 80023b4: 080023d5 .word 0x080023d5 + 80023b8: 08002425 .word 0x08002425 + 80023bc: 08002475 .word 0x08002475 + 80023c0: 080024c5 .word 0x080024c5 + 80023c4: 08002515 .word 0x08002515 + 80023c8: 08002565 .word 0x08002565 + 80023cc: 080025b1 .word 0x080025b1 + 80023d0: 080025fd .word 0x080025fd + case 0: + switch(row){ + 80023d4: 79bb ldrb r3, [r7, #6] + 80023d6: 2b07 cmp r3, #7 + 80023d8: f200 8136 bhi.w 8002648 + 80023dc: a201 add r2, pc, #4 ; (adr r2, 80023e4 ) + 80023de: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 80023e2: bf00 nop + 80023e4: 08002405 .word 0x08002405 + 80023e8: 08002409 .word 0x08002409 + 80023ec: 0800240d .word 0x0800240d + 80023f0: 08002411 .word 0x08002411 + 80023f4: 08002415 .word 0x08002415 + 80023f8: 08002419 .word 0x08002419 + 80023fc: 0800241d .word 0x0800241d + 8002400: 08002421 .word 0x08002421 + case 0: + return 0; + 8002404: 2300 movs r3, #0 + 8002406: e12f b.n 8002668 + break; + case 1: + return 15; + 8002408: 230f movs r3, #15 + 800240a: e12d b.n 8002668 + break; + case 2: + return 16; + 800240c: 2310 movs r3, #16 + 800240e: e12b b.n 8002668 + break; + case 3: + return 31; + 8002410: 231f movs r3, #31 + 8002412: e129 b.n 8002668 + break; + case 4: + return 32; + 8002414: 2320 movs r3, #32 + 8002416: e127 b.n 8002668 + break; + case 5: + return 47; + 8002418: 232f movs r3, #47 ; 0x2f + 800241a: e125 b.n 8002668 + break; + case 6: + return 48; + 800241c: 2330 movs r3, #48 ; 0x30 + 800241e: e123 b.n 8002668 + break; + case 7: + return 63; + 8002420: 233f movs r3, #63 ; 0x3f + 8002422: e121 b.n 8002668 + break; + } + break; + case 1: + switch(row){ + 8002424: 79bb ldrb r3, [r7, #6] + 8002426: 2b07 cmp r3, #7 + 8002428: f200 8110 bhi.w 800264c + 800242c: a201 add r2, pc, #4 ; (adr r2, 8002434 ) + 800242e: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8002432: bf00 nop + 8002434: 08002455 .word 0x08002455 + 8002438: 08002459 .word 0x08002459 + 800243c: 0800245d .word 0x0800245d + 8002440: 08002461 .word 0x08002461 + 8002444: 08002465 .word 0x08002465 + 8002448: 08002469 .word 0x08002469 + 800244c: 0800246d .word 0x0800246d + 8002450: 08002471 .word 0x08002471 + case 0: + return 1; + 8002454: 2301 movs r3, #1 + 8002456: e107 b.n 8002668 + break; + case 1: + return 14; + 8002458: 230e movs r3, #14 + 800245a: e105 b.n 8002668 + break; + case 2: + return 17; + 800245c: 2311 movs r3, #17 + 800245e: e103 b.n 8002668 + break; + case 3: + return 30; + 8002460: 231e movs r3, #30 + 8002462: e101 b.n 8002668 + break; + case 4: + return 33; + 8002464: 2321 movs r3, #33 ; 0x21 + 8002466: e0ff b.n 8002668 + break; + case 5: + return 46; + 8002468: 232e movs r3, #46 ; 0x2e + 800246a: e0fd b.n 8002668 + break; + case 6: + return 49; + 800246c: 2331 movs r3, #49 ; 0x31 + 800246e: e0fb b.n 8002668 + break; + case 7: + return 62; + 8002470: 233e movs r3, #62 ; 0x3e + 8002472: e0f9 b.n 8002668 + break; + } + break; + case 2: + switch(row){ + 8002474: 79bb ldrb r3, [r7, #6] + 8002476: 2b07 cmp r3, #7 + 8002478: f200 80ea bhi.w 8002650 + 800247c: a201 add r2, pc, #4 ; (adr r2, 8002484 ) + 800247e: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8002482: bf00 nop + 8002484: 080024a5 .word 0x080024a5 + 8002488: 080024a9 .word 0x080024a9 + 800248c: 080024ad .word 0x080024ad + 8002490: 080024b1 .word 0x080024b1 + 8002494: 080024b5 .word 0x080024b5 + 8002498: 080024b9 .word 0x080024b9 + 800249c: 080024bd .word 0x080024bd + 80024a0: 080024c1 .word 0x080024c1 + case 0: + return 2; + 80024a4: 2302 movs r3, #2 + 80024a6: e0df b.n 8002668 + break; + case 1: + return 13; + 80024a8: 230d movs r3, #13 + 80024aa: e0dd b.n 8002668 + break; + case 2: + return 18; + 80024ac: 2312 movs r3, #18 + 80024ae: e0db b.n 8002668 + break; + case 3: + return 29; + 80024b0: 231d movs r3, #29 + 80024b2: e0d9 b.n 8002668 + break; + case 4: + return 34; + 80024b4: 2322 movs r3, #34 ; 0x22 + 80024b6: e0d7 b.n 8002668 + break; + case 5: + return 45; + 80024b8: 232d movs r3, #45 ; 0x2d + 80024ba: e0d5 b.n 8002668 + break; + case 6: + return 50; + 80024bc: 2332 movs r3, #50 ; 0x32 + 80024be: e0d3 b.n 8002668 + break; + case 7: + return 61; + 80024c0: 233d movs r3, #61 ; 0x3d + 80024c2: e0d1 b.n 8002668 + break; + } + break; + case 3: + switch(row){ + 80024c4: 79bb ldrb r3, [r7, #6] + 80024c6: 2b07 cmp r3, #7 + 80024c8: f200 80c4 bhi.w 8002654 + 80024cc: a201 add r2, pc, #4 ; (adr r2, 80024d4 ) + 80024ce: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 80024d2: bf00 nop + 80024d4: 080024f5 .word 0x080024f5 + 80024d8: 080024f9 .word 0x080024f9 + 80024dc: 080024fd .word 0x080024fd + 80024e0: 08002501 .word 0x08002501 + 80024e4: 08002505 .word 0x08002505 + 80024e8: 08002509 .word 0x08002509 + 80024ec: 0800250d .word 0x0800250d + 80024f0: 08002511 .word 0x08002511 + case 0: + return 3; + 80024f4: 2303 movs r3, #3 + 80024f6: e0b7 b.n 8002668 + break; + case 1: + return 12; + 80024f8: 230c movs r3, #12 + 80024fa: e0b5 b.n 8002668 + break; + case 2: + return 19; + 80024fc: 2313 movs r3, #19 + 80024fe: e0b3 b.n 8002668 + break; + case 3: + return 28; + 8002500: 231c movs r3, #28 + 8002502: e0b1 b.n 8002668 + break; + case 4: + return 35; + 8002504: 2323 movs r3, #35 ; 0x23 + 8002506: e0af b.n 8002668 + break; + case 5: + return 44; + 8002508: 232c movs r3, #44 ; 0x2c + 800250a: e0ad b.n 8002668 + break; + case 6: + return 51; + 800250c: 2333 movs r3, #51 ; 0x33 + 800250e: e0ab b.n 8002668 + break; + case 7: + return 60; + 8002510: 233c movs r3, #60 ; 0x3c + 8002512: e0a9 b.n 8002668 + break; + } + break; + case 4: + switch(row){ + 8002514: 79bb ldrb r3, [r7, #6] + 8002516: 2b07 cmp r3, #7 + 8002518: f200 809e bhi.w 8002658 + 800251c: a201 add r2, pc, #4 ; (adr r2, 8002524 ) + 800251e: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8002522: bf00 nop + 8002524: 08002545 .word 0x08002545 + 8002528: 08002549 .word 0x08002549 + 800252c: 0800254d .word 0x0800254d + 8002530: 08002551 .word 0x08002551 + 8002534: 08002555 .word 0x08002555 + 8002538: 08002559 .word 0x08002559 + 800253c: 0800255d .word 0x0800255d + 8002540: 08002561 .word 0x08002561 + case 0: + return 4; + 8002544: 2304 movs r3, #4 + 8002546: e08f b.n 8002668 + break; + case 1: + return 11; + 8002548: 230b movs r3, #11 + 800254a: e08d b.n 8002668 + break; + case 2: + return 20; + 800254c: 2314 movs r3, #20 + 800254e: e08b b.n 8002668 + break; + case 3: + return 27; + 8002550: 231b movs r3, #27 + 8002552: e089 b.n 8002668 + break; + case 4: + return 36; + 8002554: 2324 movs r3, #36 ; 0x24 + 8002556: e087 b.n 8002668 + break; + case 5: + return 43; + 8002558: 232b movs r3, #43 ; 0x2b + 800255a: e085 b.n 8002668 + break; + case 6: + return 52; + 800255c: 2334 movs r3, #52 ; 0x34 + 800255e: e083 b.n 8002668 + break; + case 7: + return 59; + 8002560: 233b movs r3, #59 ; 0x3b + 8002562: e081 b.n 8002668 + break; + } + break; + case 5: + switch(row){ + 8002564: 79bb ldrb r3, [r7, #6] + 8002566: 2b07 cmp r3, #7 + 8002568: d878 bhi.n 800265c + 800256a: a201 add r2, pc, #4 ; (adr r2, 8002570 ) + 800256c: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8002570: 08002591 .word 0x08002591 + 8002574: 08002595 .word 0x08002595 + 8002578: 08002599 .word 0x08002599 + 800257c: 0800259d .word 0x0800259d + 8002580: 080025a1 .word 0x080025a1 + 8002584: 080025a5 .word 0x080025a5 + 8002588: 080025a9 .word 0x080025a9 + 800258c: 080025ad .word 0x080025ad + case 0: + return 5; + 8002590: 2305 movs r3, #5 + 8002592: e069 b.n 8002668 + break; + case 1: + return 10; + 8002594: 230a movs r3, #10 + 8002596: e067 b.n 8002668 + break; + case 2: + return 21; + 8002598: 2315 movs r3, #21 + 800259a: e065 b.n 8002668 + break; + case 3: + return 26; + 800259c: 231a movs r3, #26 + 800259e: e063 b.n 8002668 + break; + case 4: + return 37; + 80025a0: 2325 movs r3, #37 ; 0x25 + 80025a2: e061 b.n 8002668 + break; + case 5: + return 42; + 80025a4: 232a movs r3, #42 ; 0x2a + 80025a6: e05f b.n 8002668 + break; + case 6: + return 53; + 80025a8: 2335 movs r3, #53 ; 0x35 + 80025aa: e05d b.n 8002668 + break; + case 7: + return 58; + 80025ac: 233a movs r3, #58 ; 0x3a + 80025ae: e05b b.n 8002668 + break; + } + break; + case 6: + switch(row){ + 80025b0: 79bb ldrb r3, [r7, #6] + 80025b2: 2b07 cmp r3, #7 + 80025b4: d854 bhi.n 8002660 + 80025b6: a201 add r2, pc, #4 ; (adr r2, 80025bc ) + 80025b8: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 80025bc: 080025dd .word 0x080025dd + 80025c0: 080025e1 .word 0x080025e1 + 80025c4: 080025e5 .word 0x080025e5 + 80025c8: 080025e9 .word 0x080025e9 + 80025cc: 080025ed .word 0x080025ed + 80025d0: 080025f1 .word 0x080025f1 + 80025d4: 080025f5 .word 0x080025f5 + 80025d8: 080025f9 .word 0x080025f9 + case 0: + return 6; + 80025dc: 2306 movs r3, #6 + 80025de: e043 b.n 8002668 + break; + case 1: + return 9; + 80025e0: 2309 movs r3, #9 + 80025e2: e041 b.n 8002668 + break; + case 2: + return 22; + 80025e4: 2316 movs r3, #22 + 80025e6: e03f b.n 8002668 + break; + case 3: + return 25; + 80025e8: 2319 movs r3, #25 + 80025ea: e03d b.n 8002668 + break; + case 4: + return 38; + 80025ec: 2326 movs r3, #38 ; 0x26 + 80025ee: e03b b.n 8002668 + break; + case 5: + return 41; + 80025f0: 2329 movs r3, #41 ; 0x29 + 80025f2: e039 b.n 8002668 + break; + case 6: + return 54; + 80025f4: 2336 movs r3, #54 ; 0x36 + 80025f6: e037 b.n 8002668 + break; + case 7: + return 57; + 80025f8: 2339 movs r3, #57 ; 0x39 + 80025fa: e035 b.n 8002668 + break; + } + break; + case 7: + switch(row){ + 80025fc: 79bb ldrb r3, [r7, #6] + 80025fe: 2b07 cmp r3, #7 + 8002600: d830 bhi.n 8002664 + 8002602: a201 add r2, pc, #4 ; (adr r2, 8002608 ) + 8002604: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8002608: 08002629 .word 0x08002629 + 800260c: 0800262d .word 0x0800262d + 8002610: 08002631 .word 0x08002631 + 8002614: 08002635 .word 0x08002635 + 8002618: 08002639 .word 0x08002639 + 800261c: 0800263d .word 0x0800263d + 8002620: 08002641 .word 0x08002641 + 8002624: 08002645 .word 0x08002645 + case 0: + return 7; + 8002628: 2307 movs r3, #7 + 800262a: e01d b.n 8002668 + break; + case 1: + return 8; + 800262c: 2308 movs r3, #8 + 800262e: e01b b.n 8002668 + break; + case 2: + return 23; + 8002630: 2317 movs r3, #23 + 8002632: e019 b.n 8002668 + break; + case 3: + return 24; + 8002634: 2318 movs r3, #24 + 8002636: e017 b.n 8002668 + break; + case 4: + return 39; + 8002638: 2327 movs r3, #39 ; 0x27 + 800263a: e015 b.n 8002668 + break; + case 5: + return 40; + 800263c: 2328 movs r3, #40 ; 0x28 + 800263e: e013 b.n 8002668 + break; + case 6: + return 55; + 8002640: 2337 movs r3, #55 ; 0x37 + 8002642: e011 b.n 8002668 + break; + case 7: + return 56; + 8002644: 2338 movs r3, #56 ; 0x38 + 8002646: e00f b.n 8002668 + break; + 8002648: bf00 nop + 800264a: e00c b.n 8002666 + break; + 800264c: bf00 nop + 800264e: e00a b.n 8002666 + break; + 8002650: bf00 nop + 8002652: e008 b.n 8002666 + break; + 8002654: bf00 nop + 8002656: e006 b.n 8002666 + break; + 8002658: bf00 nop + 800265a: e004 b.n 8002666 + break; + 800265c: bf00 nop + 800265e: e002 b.n 8002666 + break; + 8002660: bf00 nop + 8002662: e000 b.n 8002666 + break; + } + break; + 8002664: bf00 nop + } + return 0; + 8002666: 2300 movs r3, #0 +} + 8002668: 4618 mov r0, r3 + 800266a: 370c adds r7, #12 + 800266c: 46bd mov sp, r7 + 800266e: f85d 7b04 ldr.w r7, [sp], #4 + 8002672: 4770 bx lr + +08002674 : +void setLED(uint8_t pixelNumber, uint8_t redLevel, uint8_t greenLevel, uint8_t blueLevel){ + 8002674: b490 push {r4, r7} + 8002676: b082 sub sp, #8 + 8002678: af00 add r7, sp, #0 + 800267a: 4604 mov r4, r0 + 800267c: 4608 mov r0, r1 + 800267e: 4611 mov r1, r2 + 8002680: 461a mov r2, r3 + 8002682: 4623 mov r3, r4 + 8002684: 71fb strb r3, [r7, #7] + 8002686: 4603 mov r3, r0 + 8002688: 71bb strb r3, [r7, #6] + 800268a: 460b mov r3, r1 + 800268c: 717b strb r3, [r7, #5] + 800268e: 4613 mov r3, r2 + 8002690: 713b strb r3, [r7, #4] + LEDData[pixelNumber][0] = greenLevel; + 8002692: 79fa ldrb r2, [r7, #7] + 8002694: 490e ldr r1, [pc, #56] ; (80026d0 ) + 8002696: 4613 mov r3, r2 + 8002698: 005b lsls r3, r3, #1 + 800269a: 4413 add r3, r2 + 800269c: 440b add r3, r1 + 800269e: 797a ldrb r2, [r7, #5] + 80026a0: 701a strb r2, [r3, #0] + LEDData[pixelNumber][1] = redLevel; + 80026a2: 79fa ldrb r2, [r7, #7] + 80026a4: 490a ldr r1, [pc, #40] ; (80026d0 ) + 80026a6: 4613 mov r3, r2 + 80026a8: 005b lsls r3, r3, #1 + 80026aa: 4413 add r3, r2 + 80026ac: 440b add r3, r1 + 80026ae: 3301 adds r3, #1 + 80026b0: 79ba ldrb r2, [r7, #6] + 80026b2: 701a strb r2, [r3, #0] + LEDData[pixelNumber][2] = blueLevel; + 80026b4: 79fa ldrb r2, [r7, #7] + 80026b6: 4906 ldr r1, [pc, #24] ; (80026d0 ) + 80026b8: 4613 mov r3, r2 + 80026ba: 005b lsls r3, r3, #1 + 80026bc: 4413 add r3, r2 + 80026be: 440b add r3, r1 + 80026c0: 3302 adds r3, #2 + 80026c2: 793a ldrb r2, [r7, #4] + 80026c4: 701a strb r2, [r3, #0] +} + 80026c6: bf00 nop + 80026c8: 3708 adds r7, #8 + 80026ca: 46bd mov sp, r7 + 80026cc: bc90 pop {r4, r7} + 80026ce: 4770 bx lr + 80026d0: 20000094 .word 0x20000094 + +080026d4 : void updateWS2812BData(void){ - 80017b4: b490 push {r4, r7} - 80017b6: b082 sub sp, #8 - 80017b8: af00 add r7, sp, #0 + 80026d4: b490 push {r4, r7} + 80026d6: b082 sub sp, #8 + 80026d8: af00 add r7, sp, #0 uint8_t byteToConvert; for (uint8_t i = 0; i < 64; ++i) { - 80017ba: 2300 movs r3, #0 - 80017bc: 71fb strb r3, [r7, #7] - 80017be: e18b b.n 8001ad8 + 80026da: 2300 movs r3, #0 + 80026dc: 71fb strb r3, [r7, #7] + 80026de: e18b b.n 80029f8 for (uint8_t j = 0; j < 3; ++j) { - 80017c0: 2300 movs r3, #0 - 80017c2: 71bb strb r3, [r7, #6] - 80017c4: e181 b.n 8001aca + 80026e0: 2300 movs r3, #0 + 80026e2: 71bb strb r3, [r7, #6] + 80026e4: e181 b.n 80029ea byteToConvert = LEDData[i][j]; - 80017c6: 79fa ldrb r2, [r7, #7] - 80017c8: 79b9 ldrb r1, [r7, #6] - 80017ca: 488e ldr r0, [pc, #568] ; (8001a04 ) - 80017cc: 4613 mov r3, r2 - 80017ce: 005b lsls r3, r3, #1 - 80017d0: 4413 add r3, r2 - 80017d2: 4403 add r3, r0 - 80017d4: 440b add r3, r1 - 80017d6: 781b ldrb r3, [r3, #0] - 80017d8: 717b strb r3, [r7, #5] + 80026e6: 79fa ldrb r2, [r7, #7] + 80026e8: 79b9 ldrb r1, [r7, #6] + 80026ea: 488e ldr r0, [pc, #568] ; (8002924 ) + 80026ec: 4613 mov r3, r2 + 80026ee: 005b lsls r3, r3, #1 + 80026f0: 4413 add r3, r2 + 80026f2: 4403 add r3, r0 + 80026f4: 440b add r3, r1 + 80026f6: 781b ldrb r3, [r3, #0] + 80026f8: 717b strb r3, [r7, #5] switch((byteToConvert & 0xF0) >> 4){ - 80017da: 797b ldrb r3, [r7, #5] - 80017dc: 091b lsrs r3, r3, #4 - 80017de: b2db uxtb r3, r3 - 80017e0: 2b0e cmp r3, #14 - 80017e2: d85d bhi.n 80018a0 - 80017e4: a201 add r2, pc, #4 ; (adr r2, 80017ec ) - 80017e6: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 80017ea: bf00 nop - 80017ec: 08001829 .word 0x08001829 - 80017f0: 08001831 .word 0x08001831 - 80017f4: 08001839 .word 0x08001839 - 80017f8: 08001841 .word 0x08001841 - 80017fc: 08001849 .word 0x08001849 - 8001800: 08001851 .word 0x08001851 - 8001804: 08001859 .word 0x08001859 - 8001808: 08001861 .word 0x08001861 - 800180c: 08001869 .word 0x08001869 - 8001810: 08001871 .word 0x08001871 - 8001814: 08001879 .word 0x08001879 - 8001818: 08001881 .word 0x08001881 - 800181c: 08001889 .word 0x08001889 - 8001820: 08001891 .word 0x08001891 - 8001824: 08001899 .word 0x08001899 + 80026fa: 797b ldrb r3, [r7, #5] + 80026fc: 091b lsrs r3, r3, #4 + 80026fe: b2db uxtb r3, r3 + 8002700: 2b0e cmp r3, #14 + 8002702: d85d bhi.n 80027c0 + 8002704: a201 add r2, pc, #4 ; (adr r2, 800270c ) + 8002706: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 800270a: bf00 nop + 800270c: 08002749 .word 0x08002749 + 8002710: 08002751 .word 0x08002751 + 8002714: 08002759 .word 0x08002759 + 8002718: 08002761 .word 0x08002761 + 800271c: 08002769 .word 0x08002769 + 8002720: 08002771 .word 0x08002771 + 8002724: 08002779 .word 0x08002779 + 8002728: 08002781 .word 0x08002781 + 800272c: 08002789 .word 0x08002789 + 8002730: 08002791 .word 0x08002791 + 8002734: 08002799 .word 0x08002799 + 8002738: 080027a1 .word 0x080027a1 + 800273c: 080027a9 .word 0x080027a9 + 8002740: 080027b1 .word 0x080027b1 + 8002744: 080027b9 .word 0x080027b9 case 0x00: WS2812BConvertedData = 0x00924000; - 8001828: 4b77 ldr r3, [pc, #476] ; (8001a08 ) - 800182a: 4a78 ldr r2, [pc, #480] ; (8001a0c ) - 800182c: 601a str r2, [r3, #0] + 8002748: 4b77 ldr r3, [pc, #476] ; (8002928 ) + 800274a: 4a78 ldr r2, [pc, #480] ; (800292c ) + 800274c: 601a str r2, [r3, #0] break; - 800182e: e03a b.n 80018a6 + 800274e: e03a b.n 80027c6 case 0x01: WS2812BConvertedData = 0x00926000; - 8001830: 4b75 ldr r3, [pc, #468] ; (8001a08 ) - 8001832: 4a77 ldr r2, [pc, #476] ; (8001a10 ) - 8001834: 601a str r2, [r3, #0] + 8002750: 4b75 ldr r3, [pc, #468] ; (8002928 ) + 8002752: 4a77 ldr r2, [pc, #476] ; (8002930 ) + 8002754: 601a str r2, [r3, #0] break; - 8001836: e036 b.n 80018a6 + 8002756: e036 b.n 80027c6 case 0x02: WS2812BConvertedData = 0x00934000; - 8001838: 4b73 ldr r3, [pc, #460] ; (8001a08 ) - 800183a: 4a76 ldr r2, [pc, #472] ; (8001a14 ) - 800183c: 601a str r2, [r3, #0] + 8002758: 4b73 ldr r3, [pc, #460] ; (8002928 ) + 800275a: 4a76 ldr r2, [pc, #472] ; (8002934 ) + 800275c: 601a str r2, [r3, #0] break; - 800183e: e032 b.n 80018a6 + 800275e: e032 b.n 80027c6 case 0x03: WS2812BConvertedData = 0x00936000; - 8001840: 4b71 ldr r3, [pc, #452] ; (8001a08 ) - 8001842: 4a75 ldr r2, [pc, #468] ; (8001a18 ) - 8001844: 601a str r2, [r3, #0] + 8002760: 4b71 ldr r3, [pc, #452] ; (8002928 ) + 8002762: 4a75 ldr r2, [pc, #468] ; (8002938 ) + 8002764: 601a str r2, [r3, #0] break; - 8001846: e02e b.n 80018a6 + 8002766: e02e b.n 80027c6 case 0x04: WS2812BConvertedData = 0x009A4000; - 8001848: 4b6f ldr r3, [pc, #444] ; (8001a08 ) - 800184a: 4a74 ldr r2, [pc, #464] ; (8001a1c ) - 800184c: 601a str r2, [r3, #0] + 8002768: 4b6f ldr r3, [pc, #444] ; (8002928 ) + 800276a: 4a74 ldr r2, [pc, #464] ; (800293c ) + 800276c: 601a str r2, [r3, #0] break; - 800184e: e02a b.n 80018a6 + 800276e: e02a b.n 80027c6 case 0x05: WS2812BConvertedData = 0x009A6000; - 8001850: 4b6d ldr r3, [pc, #436] ; (8001a08 ) - 8001852: 4a73 ldr r2, [pc, #460] ; (8001a20 ) - 8001854: 601a str r2, [r3, #0] + 8002770: 4b6d ldr r3, [pc, #436] ; (8002928 ) + 8002772: 4a73 ldr r2, [pc, #460] ; (8002940 ) + 8002774: 601a str r2, [r3, #0] break; - 8001856: e026 b.n 80018a6 + 8002776: e026 b.n 80027c6 case 0x06: WS2812BConvertedData = 0x009B4000; - 8001858: 4b6b ldr r3, [pc, #428] ; (8001a08 ) - 800185a: 4a72 ldr r2, [pc, #456] ; (8001a24 ) - 800185c: 601a str r2, [r3, #0] + 8002778: 4b6b ldr r3, [pc, #428] ; (8002928 ) + 800277a: 4a72 ldr r2, [pc, #456] ; (8002944 ) + 800277c: 601a str r2, [r3, #0] break; - 800185e: e022 b.n 80018a6 + 800277e: e022 b.n 80027c6 case 0x07: WS2812BConvertedData = 0x009B6000; - 8001860: 4b69 ldr r3, [pc, #420] ; (8001a08 ) - 8001862: 4a71 ldr r2, [pc, #452] ; (8001a28 ) - 8001864: 601a str r2, [r3, #0] + 8002780: 4b69 ldr r3, [pc, #420] ; (8002928 ) + 8002782: 4a71 ldr r2, [pc, #452] ; (8002948 ) + 8002784: 601a str r2, [r3, #0] break; - 8001866: e01e b.n 80018a6 + 8002786: e01e b.n 80027c6 case 0x08: WS2812BConvertedData = 0x00D24000; - 8001868: 4b67 ldr r3, [pc, #412] ; (8001a08 ) - 800186a: 4a70 ldr r2, [pc, #448] ; (8001a2c ) - 800186c: 601a str r2, [r3, #0] + 8002788: 4b67 ldr r3, [pc, #412] ; (8002928 ) + 800278a: 4a70 ldr r2, [pc, #448] ; (800294c ) + 800278c: 601a str r2, [r3, #0] break; - 800186e: e01a b.n 80018a6 + 800278e: e01a b.n 80027c6 case 0x09: WS2812BConvertedData = 0x00D26000; - 8001870: 4b65 ldr r3, [pc, #404] ; (8001a08 ) - 8001872: 4a6f ldr r2, [pc, #444] ; (8001a30 ) - 8001874: 601a str r2, [r3, #0] + 8002790: 4b65 ldr r3, [pc, #404] ; (8002928 ) + 8002792: 4a6f ldr r2, [pc, #444] ; (8002950 ) + 8002794: 601a str r2, [r3, #0] break; - 8001876: e016 b.n 80018a6 + 8002796: e016 b.n 80027c6 case 0x0A: WS2812BConvertedData = 0x00D34000; - 8001878: 4b63 ldr r3, [pc, #396] ; (8001a08 ) - 800187a: 4a6e ldr r2, [pc, #440] ; (8001a34 ) - 800187c: 601a str r2, [r3, #0] + 8002798: 4b63 ldr r3, [pc, #396] ; (8002928 ) + 800279a: 4a6e ldr r2, [pc, #440] ; (8002954 ) + 800279c: 601a str r2, [r3, #0] break; - 800187e: e012 b.n 80018a6 + 800279e: e012 b.n 80027c6 case 0x0B: WS2812BConvertedData = 0x00D36000; - 8001880: 4b61 ldr r3, [pc, #388] ; (8001a08 ) - 8001882: 4a6d ldr r2, [pc, #436] ; (8001a38 ) - 8001884: 601a str r2, [r3, #0] + 80027a0: 4b61 ldr r3, [pc, #388] ; (8002928 ) + 80027a2: 4a6d ldr r2, [pc, #436] ; (8002958 ) + 80027a4: 601a str r2, [r3, #0] break; - 8001886: e00e b.n 80018a6 + 80027a6: e00e b.n 80027c6 case 0x0C: WS2812BConvertedData = 0x00DA4000; - 8001888: 4b5f ldr r3, [pc, #380] ; (8001a08 ) - 800188a: 4a6c ldr r2, [pc, #432] ; (8001a3c ) - 800188c: 601a str r2, [r3, #0] + 80027a8: 4b5f ldr r3, [pc, #380] ; (8002928 ) + 80027aa: 4a6c ldr r2, [pc, #432] ; (800295c ) + 80027ac: 601a str r2, [r3, #0] break; - 800188e: e00a b.n 80018a6 + 80027ae: e00a b.n 80027c6 case 0x0D: WS2812BConvertedData = 0x00DA6000; - 8001890: 4b5d ldr r3, [pc, #372] ; (8001a08 ) - 8001892: 4a6b ldr r2, [pc, #428] ; (8001a40 ) - 8001894: 601a str r2, [r3, #0] + 80027b0: 4b5d ldr r3, [pc, #372] ; (8002928 ) + 80027b2: 4a6b ldr r2, [pc, #428] ; (8002960 ) + 80027b4: 601a str r2, [r3, #0] break; - 8001896: e006 b.n 80018a6 + 80027b6: e006 b.n 80027c6 case 0x0E: WS2812BConvertedData = 0x00DB4000; - 8001898: 4b5b ldr r3, [pc, #364] ; (8001a08 ) - 800189a: 4a6a ldr r2, [pc, #424] ; (8001a44 ) - 800189c: 601a str r2, [r3, #0] + 80027b8: 4b5b ldr r3, [pc, #364] ; (8002928 ) + 80027ba: 4a6a ldr r2, [pc, #424] ; (8002964 ) + 80027bc: 601a str r2, [r3, #0] break; - 800189e: e002 b.n 80018a6 + 80027be: e002 b.n 80027c6 default: // 0x0F WS2812BConvertedData = 0x00DB6000; - 80018a0: 4b59 ldr r3, [pc, #356] ; (8001a08 ) - 80018a2: 4a69 ldr r2, [pc, #420] ; (8001a48 ) - 80018a4: 601a str r2, [r3, #0] + 80027c0: 4b59 ldr r3, [pc, #356] ; (8002928 ) + 80027c2: 4a69 ldr r2, [pc, #420] ; (8002968 ) + 80027c4: 601a str r2, [r3, #0] } switch(byteToConvert & 0x0F){ - 80018a6: 797b ldrb r3, [r7, #5] - 80018a8: f003 030f and.w r3, r3, #15 - 80018ac: 2b0e cmp r3, #14 - 80018ae: f200 80cd bhi.w 8001a4c - 80018b2: a201 add r2, pc, #4 ; (adr r2, 80018b8 ) - 80018b4: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 80018b8: 080018f5 .word 0x080018f5 - 80018bc: 08001907 .word 0x08001907 - 80018c0: 08001919 .word 0x08001919 - 80018c4: 0800192b .word 0x0800192b - 80018c8: 0800193d .word 0x0800193d - 80018cc: 0800194f .word 0x0800194f - 80018d0: 08001961 .word 0x08001961 - 80018d4: 08001973 .word 0x08001973 - 80018d8: 08001985 .word 0x08001985 - 80018dc: 08001997 .word 0x08001997 - 80018e0: 080019a9 .word 0x080019a9 - 80018e4: 080019bb .word 0x080019bb - 80018e8: 080019cd .word 0x080019cd - 80018ec: 080019df .word 0x080019df - 80018f0: 080019f1 .word 0x080019f1 + 80027c6: 797b ldrb r3, [r7, #5] + 80027c8: f003 030f and.w r3, r3, #15 + 80027cc: 2b0e cmp r3, #14 + 80027ce: f200 80cd bhi.w 800296c + 80027d2: a201 add r2, pc, #4 ; (adr r2, 80027d8 ) + 80027d4: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 80027d8: 08002815 .word 0x08002815 + 80027dc: 08002827 .word 0x08002827 + 80027e0: 08002839 .word 0x08002839 + 80027e4: 0800284b .word 0x0800284b + 80027e8: 0800285d .word 0x0800285d + 80027ec: 0800286f .word 0x0800286f + 80027f0: 08002881 .word 0x08002881 + 80027f4: 08002893 .word 0x08002893 + 80027f8: 080028a5 .word 0x080028a5 + 80027fc: 080028b7 .word 0x080028b7 + 8002800: 080028c9 .word 0x080028c9 + 8002804: 080028db .word 0x080028db + 8002808: 080028ed .word 0x080028ed + 800280c: 080028ff .word 0x080028ff + 8002810: 08002911 .word 0x08002911 case 0x00: WS2812BConvertedData |= 0x00000924; - 80018f4: 4b44 ldr r3, [pc, #272] ; (8001a08 ) - 80018f6: 681b ldr r3, [r3, #0] - 80018f8: f443 6312 orr.w r3, r3, #2336 ; 0x920 - 80018fc: f043 0304 orr.w r3, r3, #4 - 8001900: 4a41 ldr r2, [pc, #260] ; (8001a08 ) - 8001902: 6013 str r3, [r2, #0] + 8002814: 4b44 ldr r3, [pc, #272] ; (8002928 ) + 8002816: 681b ldr r3, [r3, #0] + 8002818: f443 6312 orr.w r3, r3, #2336 ; 0x920 + 800281c: f043 0304 orr.w r3, r3, #4 + 8002820: 4a41 ldr r2, [pc, #260] ; (8002928 ) + 8002822: 6013 str r3, [r2, #0] break; - 8001904: e0aa b.n 8001a5c + 8002824: e0aa b.n 800297c case 0x01: WS2812BConvertedData |= 0x00000926; - 8001906: 4b40 ldr r3, [pc, #256] ; (8001a08 ) - 8001908: 681b ldr r3, [r3, #0] - 800190a: f443 6312 orr.w r3, r3, #2336 ; 0x920 - 800190e: f043 0306 orr.w r3, r3, #6 - 8001912: 4a3d ldr r2, [pc, #244] ; (8001a08 ) - 8001914: 6013 str r3, [r2, #0] + 8002826: 4b40 ldr r3, [pc, #256] ; (8002928 ) + 8002828: 681b ldr r3, [r3, #0] + 800282a: f443 6312 orr.w r3, r3, #2336 ; 0x920 + 800282e: f043 0306 orr.w r3, r3, #6 + 8002832: 4a3d ldr r2, [pc, #244] ; (8002928 ) + 8002834: 6013 str r3, [r2, #0] break; - 8001916: e0a1 b.n 8001a5c + 8002836: e0a1 b.n 800297c case 0x02: WS2812BConvertedData |= 0x00000934; - 8001918: 4b3b ldr r3, [pc, #236] ; (8001a08 ) - 800191a: 681b ldr r3, [r3, #0] - 800191c: f443 6313 orr.w r3, r3, #2352 ; 0x930 - 8001920: f043 0304 orr.w r3, r3, #4 - 8001924: 4a38 ldr r2, [pc, #224] ; (8001a08 ) - 8001926: 6013 str r3, [r2, #0] + 8002838: 4b3b ldr r3, [pc, #236] ; (8002928 ) + 800283a: 681b ldr r3, [r3, #0] + 800283c: f443 6313 orr.w r3, r3, #2352 ; 0x930 + 8002840: f043 0304 orr.w r3, r3, #4 + 8002844: 4a38 ldr r2, [pc, #224] ; (8002928 ) + 8002846: 6013 str r3, [r2, #0] break; - 8001928: e098 b.n 8001a5c + 8002848: e098 b.n 800297c case 0x03: WS2812BConvertedData |= 0x00000936; - 800192a: 4b37 ldr r3, [pc, #220] ; (8001a08 ) - 800192c: 681b ldr r3, [r3, #0] - 800192e: f443 6313 orr.w r3, r3, #2352 ; 0x930 - 8001932: f043 0306 orr.w r3, r3, #6 - 8001936: 4a34 ldr r2, [pc, #208] ; (8001a08 ) - 8001938: 6013 str r3, [r2, #0] + 800284a: 4b37 ldr r3, [pc, #220] ; (8002928 ) + 800284c: 681b ldr r3, [r3, #0] + 800284e: f443 6313 orr.w r3, r3, #2352 ; 0x930 + 8002852: f043 0306 orr.w r3, r3, #6 + 8002856: 4a34 ldr r2, [pc, #208] ; (8002928 ) + 8002858: 6013 str r3, [r2, #0] break; - 800193a: e08f b.n 8001a5c + 800285a: e08f b.n 800297c case 0x04: WS2812BConvertedData |= 0x000009A4; - 800193c: 4b32 ldr r3, [pc, #200] ; (8001a08 ) - 800193e: 681b ldr r3, [r3, #0] - 8001940: f443 631a orr.w r3, r3, #2464 ; 0x9a0 - 8001944: f043 0304 orr.w r3, r3, #4 - 8001948: 4a2f ldr r2, [pc, #188] ; (8001a08 ) - 800194a: 6013 str r3, [r2, #0] + 800285c: 4b32 ldr r3, [pc, #200] ; (8002928 ) + 800285e: 681b ldr r3, [r3, #0] + 8002860: f443 631a orr.w r3, r3, #2464 ; 0x9a0 + 8002864: f043 0304 orr.w r3, r3, #4 + 8002868: 4a2f ldr r2, [pc, #188] ; (8002928 ) + 800286a: 6013 str r3, [r2, #0] break; - 800194c: e086 b.n 8001a5c + 800286c: e086 b.n 800297c case 0x05: WS2812BConvertedData |= 0x000009A6; - 800194e: 4b2e ldr r3, [pc, #184] ; (8001a08 ) - 8001950: 681b ldr r3, [r3, #0] - 8001952: f443 631a orr.w r3, r3, #2464 ; 0x9a0 - 8001956: f043 0306 orr.w r3, r3, #6 - 800195a: 4a2b ldr r2, [pc, #172] ; (8001a08 ) - 800195c: 6013 str r3, [r2, #0] + 800286e: 4b2e ldr r3, [pc, #184] ; (8002928 ) + 8002870: 681b ldr r3, [r3, #0] + 8002872: f443 631a orr.w r3, r3, #2464 ; 0x9a0 + 8002876: f043 0306 orr.w r3, r3, #6 + 800287a: 4a2b ldr r2, [pc, #172] ; (8002928 ) + 800287c: 6013 str r3, [r2, #0] break; - 800195e: e07d b.n 8001a5c + 800287e: e07d b.n 800297c case 0x06: WS2812BConvertedData |= 0x000009B4; - 8001960: 4b29 ldr r3, [pc, #164] ; (8001a08 ) - 8001962: 681b ldr r3, [r3, #0] - 8001964: f443 631b orr.w r3, r3, #2480 ; 0x9b0 - 8001968: f043 0304 orr.w r3, r3, #4 - 800196c: 4a26 ldr r2, [pc, #152] ; (8001a08 ) - 800196e: 6013 str r3, [r2, #0] + 8002880: 4b29 ldr r3, [pc, #164] ; (8002928 ) + 8002882: 681b ldr r3, [r3, #0] + 8002884: f443 631b orr.w r3, r3, #2480 ; 0x9b0 + 8002888: f043 0304 orr.w r3, r3, #4 + 800288c: 4a26 ldr r2, [pc, #152] ; (8002928 ) + 800288e: 6013 str r3, [r2, #0] break; - 8001970: e074 b.n 8001a5c + 8002890: e074 b.n 800297c case 0x07: WS2812BConvertedData |= 0x000009B6; - 8001972: 4b25 ldr r3, [pc, #148] ; (8001a08 ) - 8001974: 681b ldr r3, [r3, #0] - 8001976: f443 631b orr.w r3, r3, #2480 ; 0x9b0 - 800197a: f043 0306 orr.w r3, r3, #6 - 800197e: 4a22 ldr r2, [pc, #136] ; (8001a08 ) - 8001980: 6013 str r3, [r2, #0] + 8002892: 4b25 ldr r3, [pc, #148] ; (8002928 ) + 8002894: 681b ldr r3, [r3, #0] + 8002896: f443 631b orr.w r3, r3, #2480 ; 0x9b0 + 800289a: f043 0306 orr.w r3, r3, #6 + 800289e: 4a22 ldr r2, [pc, #136] ; (8002928 ) + 80028a0: 6013 str r3, [r2, #0] break; - 8001982: e06b b.n 8001a5c + 80028a2: e06b b.n 800297c case 0x08: WS2812BConvertedData |= 0x00000D24; - 8001984: 4b20 ldr r3, [pc, #128] ; (8001a08 ) - 8001986: 681b ldr r3, [r3, #0] - 8001988: f443 6352 orr.w r3, r3, #3360 ; 0xd20 - 800198c: f043 0304 orr.w r3, r3, #4 - 8001990: 4a1d ldr r2, [pc, #116] ; (8001a08 ) - 8001992: 6013 str r3, [r2, #0] + 80028a4: 4b20 ldr r3, [pc, #128] ; (8002928 ) + 80028a6: 681b ldr r3, [r3, #0] + 80028a8: f443 6352 orr.w r3, r3, #3360 ; 0xd20 + 80028ac: f043 0304 orr.w r3, r3, #4 + 80028b0: 4a1d ldr r2, [pc, #116] ; (8002928 ) + 80028b2: 6013 str r3, [r2, #0] break; - 8001994: e062 b.n 8001a5c + 80028b4: e062 b.n 800297c case 0x09: WS2812BConvertedData |= 0x00000D26; - 8001996: 4b1c ldr r3, [pc, #112] ; (8001a08 ) - 8001998: 681b ldr r3, [r3, #0] - 800199a: f443 6352 orr.w r3, r3, #3360 ; 0xd20 - 800199e: f043 0306 orr.w r3, r3, #6 - 80019a2: 4a19 ldr r2, [pc, #100] ; (8001a08 ) - 80019a4: 6013 str r3, [r2, #0] + 80028b6: 4b1c ldr r3, [pc, #112] ; (8002928 ) + 80028b8: 681b ldr r3, [r3, #0] + 80028ba: f443 6352 orr.w r3, r3, #3360 ; 0xd20 + 80028be: f043 0306 orr.w r3, r3, #6 + 80028c2: 4a19 ldr r2, [pc, #100] ; (8002928 ) + 80028c4: 6013 str r3, [r2, #0] break; - 80019a6: e059 b.n 8001a5c + 80028c6: e059 b.n 800297c case 0x0A: WS2812BConvertedData |= 0x00000D34; - 80019a8: 4b17 ldr r3, [pc, #92] ; (8001a08 ) - 80019aa: 681b ldr r3, [r3, #0] - 80019ac: f443 6353 orr.w r3, r3, #3376 ; 0xd30 - 80019b0: f043 0304 orr.w r3, r3, #4 - 80019b4: 4a14 ldr r2, [pc, #80] ; (8001a08 ) - 80019b6: 6013 str r3, [r2, #0] + 80028c8: 4b17 ldr r3, [pc, #92] ; (8002928 ) + 80028ca: 681b ldr r3, [r3, #0] + 80028cc: f443 6353 orr.w r3, r3, #3376 ; 0xd30 + 80028d0: f043 0304 orr.w r3, r3, #4 + 80028d4: 4a14 ldr r2, [pc, #80] ; (8002928 ) + 80028d6: 6013 str r3, [r2, #0] break; - 80019b8: e050 b.n 8001a5c + 80028d8: e050 b.n 800297c case 0x0B: WS2812BConvertedData |= 0x00000D36; - 80019ba: 4b13 ldr r3, [pc, #76] ; (8001a08 ) - 80019bc: 681b ldr r3, [r3, #0] - 80019be: f443 6353 orr.w r3, r3, #3376 ; 0xd30 - 80019c2: f043 0306 orr.w r3, r3, #6 - 80019c6: 4a10 ldr r2, [pc, #64] ; (8001a08 ) - 80019c8: 6013 str r3, [r2, #0] + 80028da: 4b13 ldr r3, [pc, #76] ; (8002928 ) + 80028dc: 681b ldr r3, [r3, #0] + 80028de: f443 6353 orr.w r3, r3, #3376 ; 0xd30 + 80028e2: f043 0306 orr.w r3, r3, #6 + 80028e6: 4a10 ldr r2, [pc, #64] ; (8002928 ) + 80028e8: 6013 str r3, [r2, #0] break; - 80019ca: e047 b.n 8001a5c + 80028ea: e047 b.n 800297c case 0x0C: WS2812BConvertedData |= 0x00000DA4; - 80019cc: 4b0e ldr r3, [pc, #56] ; (8001a08 ) - 80019ce: 681b ldr r3, [r3, #0] - 80019d0: f443 635a orr.w r3, r3, #3488 ; 0xda0 - 80019d4: f043 0304 orr.w r3, r3, #4 - 80019d8: 4a0b ldr r2, [pc, #44] ; (8001a08 ) - 80019da: 6013 str r3, [r2, #0] + 80028ec: 4b0e ldr r3, [pc, #56] ; (8002928 ) + 80028ee: 681b ldr r3, [r3, #0] + 80028f0: f443 635a orr.w r3, r3, #3488 ; 0xda0 + 80028f4: f043 0304 orr.w r3, r3, #4 + 80028f8: 4a0b ldr r2, [pc, #44] ; (8002928 ) + 80028fa: 6013 str r3, [r2, #0] break; - 80019dc: e03e b.n 8001a5c + 80028fc: e03e b.n 800297c case 0x0D: WS2812BConvertedData |= 0x00000DA6; - 80019de: 4b0a ldr r3, [pc, #40] ; (8001a08 ) - 80019e0: 681b ldr r3, [r3, #0] - 80019e2: f443 635a orr.w r3, r3, #3488 ; 0xda0 - 80019e6: f043 0306 orr.w r3, r3, #6 - 80019ea: 4a07 ldr r2, [pc, #28] ; (8001a08 ) - 80019ec: 6013 str r3, [r2, #0] + 80028fe: 4b0a ldr r3, [pc, #40] ; (8002928 ) + 8002900: 681b ldr r3, [r3, #0] + 8002902: f443 635a orr.w r3, r3, #3488 ; 0xda0 + 8002906: f043 0306 orr.w r3, r3, #6 + 800290a: 4a07 ldr r2, [pc, #28] ; (8002928 ) + 800290c: 6013 str r3, [r2, #0] break; - 80019ee: e035 b.n 8001a5c + 800290e: e035 b.n 800297c case 0x0E: WS2812BConvertedData |= 0x00000DB4; - 80019f0: 4b05 ldr r3, [pc, #20] ; (8001a08 ) - 80019f2: 681b ldr r3, [r3, #0] - 80019f4: f443 635b orr.w r3, r3, #3504 ; 0xdb0 - 80019f8: f043 0304 orr.w r3, r3, #4 - 80019fc: 4a02 ldr r2, [pc, #8] ; (8001a08 ) - 80019fe: 6013 str r3, [r2, #0] + 8002910: 4b05 ldr r3, [pc, #20] ; (8002928 ) + 8002912: 681b ldr r3, [r3, #0] + 8002914: f443 635b orr.w r3, r3, #3504 ; 0xdb0 + 8002918: f043 0304 orr.w r3, r3, #4 + 800291c: 4a02 ldr r2, [pc, #8] ; (8002928 ) + 800291e: 6013 str r3, [r2, #0] break; - 8001a00: e02c b.n 8001a5c - 8001a02: bf00 nop - 8001a04: 20000094 .word 0x20000094 - 8001a08: 20000498 .word 0x20000498 - 8001a0c: 00924000 .word 0x00924000 - 8001a10: 00926000 .word 0x00926000 - 8001a14: 00934000 .word 0x00934000 - 8001a18: 00936000 .word 0x00936000 - 8001a1c: 009a4000 .word 0x009a4000 - 8001a20: 009a6000 .word 0x009a6000 - 8001a24: 009b4000 .word 0x009b4000 - 8001a28: 009b6000 .word 0x009b6000 - 8001a2c: 00d24000 .word 0x00d24000 - 8001a30: 00d26000 .word 0x00d26000 - 8001a34: 00d34000 .word 0x00d34000 - 8001a38: 00d36000 .word 0x00d36000 - 8001a3c: 00da4000 .word 0x00da4000 - 8001a40: 00da6000 .word 0x00da6000 - 8001a44: 00db4000 .word 0x00db4000 - 8001a48: 00db6000 .word 0x00db6000 + 8002920: e02c b.n 800297c + 8002922: bf00 nop + 8002924: 20000094 .word 0x20000094 + 8002928: 20000494 .word 0x20000494 + 800292c: 00924000 .word 0x00924000 + 8002930: 00926000 .word 0x00926000 + 8002934: 00934000 .word 0x00934000 + 8002938: 00936000 .word 0x00936000 + 800293c: 009a4000 .word 0x009a4000 + 8002940: 009a6000 .word 0x009a6000 + 8002944: 009b4000 .word 0x009b4000 + 8002948: 009b6000 .word 0x009b6000 + 800294c: 00d24000 .word 0x00d24000 + 8002950: 00d26000 .word 0x00d26000 + 8002954: 00d34000 .word 0x00d34000 + 8002958: 00d36000 .word 0x00d36000 + 800295c: 00da4000 .word 0x00da4000 + 8002960: 00da6000 .word 0x00da6000 + 8002964: 00db4000 .word 0x00db4000 + 8002968: 00db6000 .word 0x00db6000 default: // 0x0F WS2812BConvertedData |= 0x00000DB6; - 8001a4c: 4b27 ldr r3, [pc, #156] ; (8001aec ) - 8001a4e: 681b ldr r3, [r3, #0] - 8001a50: f443 635b orr.w r3, r3, #3504 ; 0xdb0 - 8001a54: f043 0306 orr.w r3, r3, #6 - 8001a58: 4a24 ldr r2, [pc, #144] ; (8001aec ) - 8001a5a: 6013 str r3, [r2, #0] + 800296c: 4b27 ldr r3, [pc, #156] ; (8002a0c ) + 800296e: 681b ldr r3, [r3, #0] + 8002970: f443 635b orr.w r3, r3, #3504 ; 0xdb0 + 8002974: f043 0306 orr.w r3, r3, #6 + 8002978: 4a24 ldr r2, [pc, #144] ; (8002a0c ) + 800297a: 6013 str r3, [r2, #0] } LEDData_WS2812B[i][j][0] = (WS2812BConvertedData & 0x00FF0000) >> 16; - 8001a5c: 4b23 ldr r3, [pc, #140] ; (8001aec ) - 8001a5e: 681b ldr r3, [r3, #0] - 8001a60: 0c1a lsrs r2, r3, #16 - 8001a62: 79f9 ldrb r1, [r7, #7] - 8001a64: 79bb ldrb r3, [r7, #6] - 8001a66: b2d4 uxtb r4, r2 - 8001a68: 4821 ldr r0, [pc, #132] ; (8001af0 ) - 8001a6a: 461a mov r2, r3 - 8001a6c: 0052 lsls r2, r2, #1 - 8001a6e: 441a add r2, r3 - 8001a70: 460b mov r3, r1 - 8001a72: 00db lsls r3, r3, #3 - 8001a74: 440b add r3, r1 - 8001a76: 4413 add r3, r2 - 8001a78: 4403 add r3, r0 - 8001a7a: 4622 mov r2, r4 - 8001a7c: 701a strb r2, [r3, #0] + 800297c: 4b23 ldr r3, [pc, #140] ; (8002a0c ) + 800297e: 681b ldr r3, [r3, #0] + 8002980: 0c1a lsrs r2, r3, #16 + 8002982: 79f9 ldrb r1, [r7, #7] + 8002984: 79bb ldrb r3, [r7, #6] + 8002986: b2d4 uxtb r4, r2 + 8002988: 4821 ldr r0, [pc, #132] ; (8002a10 ) + 800298a: 461a mov r2, r3 + 800298c: 0052 lsls r2, r2, #1 + 800298e: 441a add r2, r3 + 8002990: 460b mov r3, r1 + 8002992: 00db lsls r3, r3, #3 + 8002994: 440b add r3, r1 + 8002996: 4413 add r3, r2 + 8002998: 4403 add r3, r0 + 800299a: 4622 mov r2, r4 + 800299c: 701a strb r2, [r3, #0] LEDData_WS2812B[i][j][1] = (WS2812BConvertedData & 0x0000FF00) >> 8; - 8001a7e: 4b1b ldr r3, [pc, #108] ; (8001aec ) - 8001a80: 681b ldr r3, [r3, #0] - 8001a82: 0a1a lsrs r2, r3, #8 - 8001a84: 79f9 ldrb r1, [r7, #7] - 8001a86: 79bb ldrb r3, [r7, #6] - 8001a88: b2d4 uxtb r4, r2 - 8001a8a: 4819 ldr r0, [pc, #100] ; (8001af0 ) - 8001a8c: 461a mov r2, r3 - 8001a8e: 0052 lsls r2, r2, #1 - 8001a90: 441a add r2, r3 - 8001a92: 460b mov r3, r1 - 8001a94: 00db lsls r3, r3, #3 - 8001a96: 440b add r3, r1 - 8001a98: 4413 add r3, r2 - 8001a9a: 4403 add r3, r0 - 8001a9c: 3301 adds r3, #1 - 8001a9e: 4622 mov r2, r4 - 8001aa0: 701a strb r2, [r3, #0] + 800299e: 4b1b ldr r3, [pc, #108] ; (8002a0c ) + 80029a0: 681b ldr r3, [r3, #0] + 80029a2: 0a1a lsrs r2, r3, #8 + 80029a4: 79f9 ldrb r1, [r7, #7] + 80029a6: 79bb ldrb r3, [r7, #6] + 80029a8: b2d4 uxtb r4, r2 + 80029aa: 4819 ldr r0, [pc, #100] ; (8002a10 ) + 80029ac: 461a mov r2, r3 + 80029ae: 0052 lsls r2, r2, #1 + 80029b0: 441a add r2, r3 + 80029b2: 460b mov r3, r1 + 80029b4: 00db lsls r3, r3, #3 + 80029b6: 440b add r3, r1 + 80029b8: 4413 add r3, r2 + 80029ba: 4403 add r3, r0 + 80029bc: 3301 adds r3, #1 + 80029be: 4622 mov r2, r4 + 80029c0: 701a strb r2, [r3, #0] LEDData_WS2812B[i][j][2] = WS2812BConvertedData & 0x000000FF; - 8001aa2: 4b12 ldr r3, [pc, #72] ; (8001aec ) - 8001aa4: 681a ldr r2, [r3, #0] - 8001aa6: 79f9 ldrb r1, [r7, #7] - 8001aa8: 79bb ldrb r3, [r7, #6] - 8001aaa: b2d4 uxtb r4, r2 - 8001aac: 4810 ldr r0, [pc, #64] ; (8001af0 ) - 8001aae: 461a mov r2, r3 - 8001ab0: 0052 lsls r2, r2, #1 - 8001ab2: 441a add r2, r3 - 8001ab4: 460b mov r3, r1 - 8001ab6: 00db lsls r3, r3, #3 - 8001ab8: 440b add r3, r1 - 8001aba: 4413 add r3, r2 - 8001abc: 4403 add r3, r0 - 8001abe: 3302 adds r3, #2 - 8001ac0: 4622 mov r2, r4 - 8001ac2: 701a strb r2, [r3, #0] + 80029c2: 4b12 ldr r3, [pc, #72] ; (8002a0c ) + 80029c4: 681a ldr r2, [r3, #0] + 80029c6: 79f9 ldrb r1, [r7, #7] + 80029c8: 79bb ldrb r3, [r7, #6] + 80029ca: b2d4 uxtb r4, r2 + 80029cc: 4810 ldr r0, [pc, #64] ; (8002a10 ) + 80029ce: 461a mov r2, r3 + 80029d0: 0052 lsls r2, r2, #1 + 80029d2: 441a add r2, r3 + 80029d4: 460b mov r3, r1 + 80029d6: 00db lsls r3, r3, #3 + 80029d8: 440b add r3, r1 + 80029da: 4413 add r3, r2 + 80029dc: 4403 add r3, r0 + 80029de: 3302 adds r3, #2 + 80029e0: 4622 mov r2, r4 + 80029e2: 701a strb r2, [r3, #0] for (uint8_t j = 0; j < 3; ++j) { - 8001ac4: 79bb ldrb r3, [r7, #6] - 8001ac6: 3301 adds r3, #1 - 8001ac8: 71bb strb r3, [r7, #6] - 8001aca: 79bb ldrb r3, [r7, #6] - 8001acc: 2b02 cmp r3, #2 - 8001ace: f67f ae7a bls.w 80017c6 + 80029e4: 79bb ldrb r3, [r7, #6] + 80029e6: 3301 adds r3, #1 + 80029e8: 71bb strb r3, [r7, #6] + 80029ea: 79bb ldrb r3, [r7, #6] + 80029ec: 2b02 cmp r3, #2 + 80029ee: f67f ae7a bls.w 80026e6 for (uint8_t i = 0; i < 64; ++i) { - 8001ad2: 79fb ldrb r3, [r7, #7] - 8001ad4: 3301 adds r3, #1 - 8001ad6: 71fb strb r3, [r7, #7] - 8001ad8: 79fb ldrb r3, [r7, #7] - 8001ada: 2b3f cmp r3, #63 ; 0x3f - 8001adc: f67f ae70 bls.w 80017c0 + 80029f2: 79fb ldrb r3, [r7, #7] + 80029f4: 3301 adds r3, #1 + 80029f6: 71fb strb r3, [r7, #7] + 80029f8: 79fb ldrb r3, [r7, #7] + 80029fa: 2b3f cmp r3, #63 ; 0x3f + 80029fc: f67f ae70 bls.w 80026e0 } } } - 8001ae0: bf00 nop - 8001ae2: 3708 adds r7, #8 - 8001ae4: 46bd mov sp, r7 - 8001ae6: bc90 pop {r4, r7} - 8001ae8: 4770 bx lr - 8001aea: bf00 nop - 8001aec: 20000498 .word 0x20000498 - 8001af0: 20000154 .word 0x20000154 + 8002a00: bf00 nop + 8002a02: 3708 adds r7, #8 + 8002a04: 46bd mov sp, r7 + 8002a06: bc90 pop {r4, r7} + 8002a08: 4770 bx lr + 8002a0a: bf00 nop + 8002a0c: 20000494 .word 0x20000494 + 8002a10: 20000154 .word 0x20000154 -08001af4 : +08002a14 : /** * @brief This function is executed in case of error occurrence. * @retval None */ void Error_Handler(void) { - 8001af4: b480 push {r7} - 8001af6: af00 add r7, sp, #0 + 8002a14: b480 push {r7} + 8002a16: af00 add r7, sp, #0 /* USER CODE BEGIN Error_Handler_Debug */ /* User can add his own implementation to report the HAL error return state */ /* USER CODE END Error_Handler_Debug */ } - 8001af8: bf00 nop - 8001afa: 46bd mov sp, r7 - 8001afc: f85d 7b04 ldr.w r7, [sp], #4 - 8001b00: 4770 bx lr + 8002a18: bf00 nop + 8002a1a: 46bd mov sp, r7 + 8002a1c: f85d 7b04 ldr.w r7, [sp], #4 + 8002a20: 4770 bx lr ... -08001b04 : +08002a24 : /* USER CODE END 0 */ /** * Initializes the Global MSP. */ void HAL_MspInit(void) { - 8001b04: b580 push {r7, lr} - 8001b06: b082 sub sp, #8 - 8001b08: af00 add r7, sp, #0 + 8002a24: b580 push {r7, lr} + 8002a26: b082 sub sp, #8 + 8002a28: af00 add r7, sp, #0 /* USER CODE BEGIN MspInit 0 */ /* USER CODE END MspInit 0 */ __HAL_RCC_SYSCFG_CLK_ENABLE(); - 8001b0a: 2300 movs r3, #0 - 8001b0c: 607b str r3, [r7, #4] - 8001b0e: 4b10 ldr r3, [pc, #64] ; (8001b50 ) - 8001b10: 6c5b ldr r3, [r3, #68] ; 0x44 - 8001b12: 4a0f ldr r2, [pc, #60] ; (8001b50 ) - 8001b14: f443 4380 orr.w r3, r3, #16384 ; 0x4000 - 8001b18: 6453 str r3, [r2, #68] ; 0x44 - 8001b1a: 4b0d ldr r3, [pc, #52] ; (8001b50 ) - 8001b1c: 6c5b ldr r3, [r3, #68] ; 0x44 - 8001b1e: f403 4380 and.w r3, r3, #16384 ; 0x4000 - 8001b22: 607b str r3, [r7, #4] - 8001b24: 687b ldr r3, [r7, #4] + 8002a2a: 2300 movs r3, #0 + 8002a2c: 607b str r3, [r7, #4] + 8002a2e: 4b10 ldr r3, [pc, #64] ; (8002a70 ) + 8002a30: 6c5b ldr r3, [r3, #68] ; 0x44 + 8002a32: 4a0f ldr r2, [pc, #60] ; (8002a70 ) + 8002a34: f443 4380 orr.w r3, r3, #16384 ; 0x4000 + 8002a38: 6453 str r3, [r2, #68] ; 0x44 + 8002a3a: 4b0d ldr r3, [pc, #52] ; (8002a70 ) + 8002a3c: 6c5b ldr r3, [r3, #68] ; 0x44 + 8002a3e: f403 4380 and.w r3, r3, #16384 ; 0x4000 + 8002a42: 607b str r3, [r7, #4] + 8002a44: 687b ldr r3, [r7, #4] __HAL_RCC_PWR_CLK_ENABLE(); - 8001b26: 2300 movs r3, #0 - 8001b28: 603b str r3, [r7, #0] - 8001b2a: 4b09 ldr r3, [pc, #36] ; (8001b50 ) - 8001b2c: 6c1b ldr r3, [r3, #64] ; 0x40 - 8001b2e: 4a08 ldr r2, [pc, #32] ; (8001b50 ) - 8001b30: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 - 8001b34: 6413 str r3, [r2, #64] ; 0x40 - 8001b36: 4b06 ldr r3, [pc, #24] ; (8001b50 ) - 8001b38: 6c1b ldr r3, [r3, #64] ; 0x40 - 8001b3a: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 - 8001b3e: 603b str r3, [r7, #0] - 8001b40: 683b ldr r3, [r7, #0] + 8002a46: 2300 movs r3, #0 + 8002a48: 603b str r3, [r7, #0] + 8002a4a: 4b09 ldr r3, [pc, #36] ; (8002a70 ) + 8002a4c: 6c1b ldr r3, [r3, #64] ; 0x40 + 8002a4e: 4a08 ldr r2, [pc, #32] ; (8002a70 ) + 8002a50: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 + 8002a54: 6413 str r3, [r2, #64] ; 0x40 + 8002a56: 4b06 ldr r3, [pc, #24] ; (8002a70 ) + 8002a58: 6c1b ldr r3, [r3, #64] ; 0x40 + 8002a5a: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 + 8002a5e: 603b str r3, [r7, #0] + 8002a60: 683b ldr r3, [r7, #0] HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_0); - 8001b42: 2007 movs r0, #7 - 8001b44: f000 fedc bl 8002900 + 8002a62: 2007 movs r0, #7 + 8002a64: f000 fedc bl 8003820 /* System interrupt init*/ /* USER CODE BEGIN MspInit 1 */ /* USER CODE END MspInit 1 */ } - 8001b48: bf00 nop - 8001b4a: 3708 adds r7, #8 - 8001b4c: 46bd mov sp, r7 - 8001b4e: bd80 pop {r7, pc} - 8001b50: 40023800 .word 0x40023800 + 8002a68: bf00 nop + 8002a6a: 3708 adds r7, #8 + 8002a6c: 46bd mov sp, r7 + 8002a6e: bd80 pop {r7, pc} + 8002a70: 40023800 .word 0x40023800 -08001b54 : +08002a74 : * This function configures the hardware resources used in this example * @param hadc: ADC handle pointer * @retval None */ void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc) { - 8001b54: b580 push {r7, lr} - 8001b56: b08a sub sp, #40 ; 0x28 - 8001b58: af00 add r7, sp, #0 - 8001b5a: 6078 str r0, [r7, #4] + 8002a74: b580 push {r7, lr} + 8002a76: b08a sub sp, #40 ; 0x28 + 8002a78: af00 add r7, sp, #0 + 8002a7a: 6078 str r0, [r7, #4] GPIO_InitTypeDef GPIO_InitStruct = {0}; - 8001b5c: f107 0314 add.w r3, r7, #20 - 8001b60: 2200 movs r2, #0 - 8001b62: 601a str r2, [r3, #0] - 8001b64: 605a str r2, [r3, #4] - 8001b66: 609a str r2, [r3, #8] - 8001b68: 60da str r2, [r3, #12] - 8001b6a: 611a str r2, [r3, #16] + 8002a7c: f107 0314 add.w r3, r7, #20 + 8002a80: 2200 movs r2, #0 + 8002a82: 601a str r2, [r3, #0] + 8002a84: 605a str r2, [r3, #4] + 8002a86: 609a str r2, [r3, #8] + 8002a88: 60da str r2, [r3, #12] + 8002a8a: 611a str r2, [r3, #16] if(hadc->Instance==ADC3) - 8001b6c: 687b ldr r3, [r7, #4] - 8001b6e: 681b ldr r3, [r3, #0] - 8001b70: 4a17 ldr r2, [pc, #92] ; (8001bd0 ) - 8001b72: 4293 cmp r3, r2 - 8001b74: d127 bne.n 8001bc6 + 8002a8c: 687b ldr r3, [r7, #4] + 8002a8e: 681b ldr r3, [r3, #0] + 8002a90: 4a17 ldr r2, [pc, #92] ; (8002af0 ) + 8002a92: 4293 cmp r3, r2 + 8002a94: d127 bne.n 8002ae6 { /* USER CODE BEGIN ADC3_MspInit 0 */ /* USER CODE END ADC3_MspInit 0 */ /* Peripheral clock enable */ __HAL_RCC_ADC3_CLK_ENABLE(); - 8001b76: 2300 movs r3, #0 - 8001b78: 613b str r3, [r7, #16] - 8001b7a: 4b16 ldr r3, [pc, #88] ; (8001bd4 ) - 8001b7c: 6c5b ldr r3, [r3, #68] ; 0x44 - 8001b7e: 4a15 ldr r2, [pc, #84] ; (8001bd4 ) - 8001b80: f443 6380 orr.w r3, r3, #1024 ; 0x400 - 8001b84: 6453 str r3, [r2, #68] ; 0x44 - 8001b86: 4b13 ldr r3, [pc, #76] ; (8001bd4 ) - 8001b88: 6c5b ldr r3, [r3, #68] ; 0x44 - 8001b8a: f403 6380 and.w r3, r3, #1024 ; 0x400 - 8001b8e: 613b str r3, [r7, #16] - 8001b90: 693b ldr r3, [r7, #16] + 8002a96: 2300 movs r3, #0 + 8002a98: 613b str r3, [r7, #16] + 8002a9a: 4b16 ldr r3, [pc, #88] ; (8002af4 ) + 8002a9c: 6c5b ldr r3, [r3, #68] ; 0x44 + 8002a9e: 4a15 ldr r2, [pc, #84] ; (8002af4 ) + 8002aa0: f443 6380 orr.w r3, r3, #1024 ; 0x400 + 8002aa4: 6453 str r3, [r2, #68] ; 0x44 + 8002aa6: 4b13 ldr r3, [pc, #76] ; (8002af4 ) + 8002aa8: 6c5b ldr r3, [r3, #68] ; 0x44 + 8002aaa: f403 6380 and.w r3, r3, #1024 ; 0x400 + 8002aae: 613b str r3, [r7, #16] + 8002ab0: 693b ldr r3, [r7, #16] __HAL_RCC_GPIOF_CLK_ENABLE(); - 8001b92: 2300 movs r3, #0 - 8001b94: 60fb str r3, [r7, #12] - 8001b96: 4b0f ldr r3, [pc, #60] ; (8001bd4 ) - 8001b98: 6b1b ldr r3, [r3, #48] ; 0x30 - 8001b9a: 4a0e ldr r2, [pc, #56] ; (8001bd4 ) - 8001b9c: f043 0320 orr.w r3, r3, #32 - 8001ba0: 6313 str r3, [r2, #48] ; 0x30 - 8001ba2: 4b0c ldr r3, [pc, #48] ; (8001bd4 ) - 8001ba4: 6b1b ldr r3, [r3, #48] ; 0x30 - 8001ba6: f003 0320 and.w r3, r3, #32 - 8001baa: 60fb str r3, [r7, #12] - 8001bac: 68fb ldr r3, [r7, #12] + 8002ab2: 2300 movs r3, #0 + 8002ab4: 60fb str r3, [r7, #12] + 8002ab6: 4b0f ldr r3, [pc, #60] ; (8002af4 ) + 8002ab8: 6b1b ldr r3, [r3, #48] ; 0x30 + 8002aba: 4a0e ldr r2, [pc, #56] ; (8002af4 ) + 8002abc: f043 0320 orr.w r3, r3, #32 + 8002ac0: 6313 str r3, [r2, #48] ; 0x30 + 8002ac2: 4b0c ldr r3, [pc, #48] ; (8002af4 ) + 8002ac4: 6b1b ldr r3, [r3, #48] ; 0x30 + 8002ac6: f003 0320 and.w r3, r3, #32 + 8002aca: 60fb str r3, [r7, #12] + 8002acc: 68fb ldr r3, [r7, #12] /**ADC3 GPIO Configuration PF6 ------> ADC3_IN4 */ GPIO_InitStruct.Pin = GPIO_PIN_6; - 8001bae: 2340 movs r3, #64 ; 0x40 - 8001bb0: 617b str r3, [r7, #20] + 8002ace: 2340 movs r3, #64 ; 0x40 + 8002ad0: 617b str r3, [r7, #20] GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; - 8001bb2: 2303 movs r3, #3 - 8001bb4: 61bb str r3, [r7, #24] + 8002ad2: 2303 movs r3, #3 + 8002ad4: 61bb str r3, [r7, #24] GPIO_InitStruct.Pull = GPIO_NOPULL; - 8001bb6: 2300 movs r3, #0 - 8001bb8: 61fb str r3, [r7, #28] + 8002ad6: 2300 movs r3, #0 + 8002ad8: 61fb str r3, [r7, #28] HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); - 8001bba: f107 0314 add.w r3, r7, #20 - 8001bbe: 4619 mov r1, r3 - 8001bc0: 4805 ldr r0, [pc, #20] ; (8001bd8 ) - 8001bc2: f000 ff01 bl 80029c8 + 8002ada: f107 0314 add.w r3, r7, #20 + 8002ade: 4619 mov r1, r3 + 8002ae0: 4805 ldr r0, [pc, #20] ; (8002af8 ) + 8002ae2: f000 ff01 bl 80038e8 /* USER CODE BEGIN ADC3_MspInit 1 */ /* USER CODE END ADC3_MspInit 1 */ } } - 8001bc6: bf00 nop - 8001bc8: 3728 adds r7, #40 ; 0x28 - 8001bca: 46bd mov sp, r7 - 8001bcc: bd80 pop {r7, pc} - 8001bce: bf00 nop - 8001bd0: 40012200 .word 0x40012200 - 8001bd4: 40023800 .word 0x40023800 - 8001bd8: 40021400 .word 0x40021400 + 8002ae6: bf00 nop + 8002ae8: 3728 adds r7, #40 ; 0x28 + 8002aea: 46bd mov sp, r7 + 8002aec: bd80 pop {r7, pc} + 8002aee: bf00 nop + 8002af0: 40012200 .word 0x40012200 + 8002af4: 40023800 .word 0x40023800 + 8002af8: 40021400 .word 0x40021400 -08001bdc : +08002afc : * This function configures the hardware resources used in this example * @param hspi: SPI handle pointer * @retval None */ void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi) { - 8001bdc: b580 push {r7, lr} - 8001bde: b08a sub sp, #40 ; 0x28 - 8001be0: af00 add r7, sp, #0 - 8001be2: 6078 str r0, [r7, #4] + 8002afc: b580 push {r7, lr} + 8002afe: b08a sub sp, #40 ; 0x28 + 8002b00: af00 add r7, sp, #0 + 8002b02: 6078 str r0, [r7, #4] GPIO_InitTypeDef GPIO_InitStruct = {0}; - 8001be4: f107 0314 add.w r3, r7, #20 - 8001be8: 2200 movs r2, #0 - 8001bea: 601a str r2, [r3, #0] - 8001bec: 605a str r2, [r3, #4] - 8001bee: 609a str r2, [r3, #8] - 8001bf0: 60da str r2, [r3, #12] - 8001bf2: 611a str r2, [r3, #16] + 8002b04: f107 0314 add.w r3, r7, #20 + 8002b08: 2200 movs r2, #0 + 8002b0a: 601a str r2, [r3, #0] + 8002b0c: 605a str r2, [r3, #4] + 8002b0e: 609a str r2, [r3, #8] + 8002b10: 60da str r2, [r3, #12] + 8002b12: 611a str r2, [r3, #16] if(hspi->Instance==SPI4) - 8001bf4: 687b ldr r3, [r7, #4] - 8001bf6: 681b ldr r3, [r3, #0] - 8001bf8: 4a1d ldr r2, [pc, #116] ; (8001c70 ) - 8001bfa: 4293 cmp r3, r2 - 8001bfc: d133 bne.n 8001c66 + 8002b14: 687b ldr r3, [r7, #4] + 8002b16: 681b ldr r3, [r3, #0] + 8002b18: 4a1d ldr r2, [pc, #116] ; (8002b90 ) + 8002b1a: 4293 cmp r3, r2 + 8002b1c: d133 bne.n 8002b86 { /* USER CODE BEGIN SPI4_MspInit 0 */ /* USER CODE END SPI4_MspInit 0 */ /* Peripheral clock enable */ __HAL_RCC_SPI4_CLK_ENABLE(); - 8001bfe: 2300 movs r3, #0 - 8001c00: 613b str r3, [r7, #16] - 8001c02: 4b1c ldr r3, [pc, #112] ; (8001c74 ) - 8001c04: 6c5b ldr r3, [r3, #68] ; 0x44 - 8001c06: 4a1b ldr r2, [pc, #108] ; (8001c74 ) - 8001c08: f443 5300 orr.w r3, r3, #8192 ; 0x2000 - 8001c0c: 6453 str r3, [r2, #68] ; 0x44 - 8001c0e: 4b19 ldr r3, [pc, #100] ; (8001c74 ) - 8001c10: 6c5b ldr r3, [r3, #68] ; 0x44 - 8001c12: f403 5300 and.w r3, r3, #8192 ; 0x2000 - 8001c16: 613b str r3, [r7, #16] - 8001c18: 693b ldr r3, [r7, #16] + 8002b1e: 2300 movs r3, #0 + 8002b20: 613b str r3, [r7, #16] + 8002b22: 4b1c ldr r3, [pc, #112] ; (8002b94 ) + 8002b24: 6c5b ldr r3, [r3, #68] ; 0x44 + 8002b26: 4a1b ldr r2, [pc, #108] ; (8002b94 ) + 8002b28: f443 5300 orr.w r3, r3, #8192 ; 0x2000 + 8002b2c: 6453 str r3, [r2, #68] ; 0x44 + 8002b2e: 4b19 ldr r3, [pc, #100] ; (8002b94 ) + 8002b30: 6c5b ldr r3, [r3, #68] ; 0x44 + 8002b32: f403 5300 and.w r3, r3, #8192 ; 0x2000 + 8002b36: 613b str r3, [r7, #16] + 8002b38: 693b ldr r3, [r7, #16] __HAL_RCC_GPIOE_CLK_ENABLE(); - 8001c1a: 2300 movs r3, #0 - 8001c1c: 60fb str r3, [r7, #12] - 8001c1e: 4b15 ldr r3, [pc, #84] ; (8001c74 ) - 8001c20: 6b1b ldr r3, [r3, #48] ; 0x30 - 8001c22: 4a14 ldr r2, [pc, #80] ; (8001c74 ) - 8001c24: f043 0310 orr.w r3, r3, #16 - 8001c28: 6313 str r3, [r2, #48] ; 0x30 - 8001c2a: 4b12 ldr r3, [pc, #72] ; (8001c74 ) - 8001c2c: 6b1b ldr r3, [r3, #48] ; 0x30 - 8001c2e: f003 0310 and.w r3, r3, #16 - 8001c32: 60fb str r3, [r7, #12] - 8001c34: 68fb ldr r3, [r7, #12] + 8002b3a: 2300 movs r3, #0 + 8002b3c: 60fb str r3, [r7, #12] + 8002b3e: 4b15 ldr r3, [pc, #84] ; (8002b94 ) + 8002b40: 6b1b ldr r3, [r3, #48] ; 0x30 + 8002b42: 4a14 ldr r2, [pc, #80] ; (8002b94 ) + 8002b44: f043 0310 orr.w r3, r3, #16 + 8002b48: 6313 str r3, [r2, #48] ; 0x30 + 8002b4a: 4b12 ldr r3, [pc, #72] ; (8002b94 ) + 8002b4c: 6b1b ldr r3, [r3, #48] ; 0x30 + 8002b4e: f003 0310 and.w r3, r3, #16 + 8002b52: 60fb str r3, [r7, #12] + 8002b54: 68fb ldr r3, [r7, #12] /**SPI4 GPIO Configuration PE2 ------> SPI4_SCK PE6 ------> SPI4_MOSI */ GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_6; - 8001c36: 2344 movs r3, #68 ; 0x44 - 8001c38: 617b str r3, [r7, #20] + 8002b56: 2344 movs r3, #68 ; 0x44 + 8002b58: 617b str r3, [r7, #20] GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8001c3a: 2302 movs r3, #2 - 8001c3c: 61bb str r3, [r7, #24] + 8002b5a: 2302 movs r3, #2 + 8002b5c: 61bb str r3, [r7, #24] GPIO_InitStruct.Pull = GPIO_NOPULL; - 8001c3e: 2300 movs r3, #0 - 8001c40: 61fb str r3, [r7, #28] + 8002b5e: 2300 movs r3, #0 + 8002b60: 61fb str r3, [r7, #28] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - 8001c42: 2303 movs r3, #3 - 8001c44: 623b str r3, [r7, #32] + 8002b62: 2303 movs r3, #3 + 8002b64: 623b str r3, [r7, #32] GPIO_InitStruct.Alternate = GPIO_AF5_SPI4; - 8001c46: 2305 movs r3, #5 - 8001c48: 627b str r3, [r7, #36] ; 0x24 + 8002b66: 2305 movs r3, #5 + 8002b68: 627b str r3, [r7, #36] ; 0x24 HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); - 8001c4a: f107 0314 add.w r3, r7, #20 - 8001c4e: 4619 mov r1, r3 - 8001c50: 4809 ldr r0, [pc, #36] ; (8001c78 ) - 8001c52: f000 feb9 bl 80029c8 + 8002b6a: f107 0314 add.w r3, r7, #20 + 8002b6e: 4619 mov r1, r3 + 8002b70: 4809 ldr r0, [pc, #36] ; (8002b98 ) + 8002b72: f000 feb9 bl 80038e8 /* SPI4 interrupt Init */ HAL_NVIC_SetPriority(SPI4_IRQn, 0, 0); - 8001c56: 2200 movs r2, #0 - 8001c58: 2100 movs r1, #0 - 8001c5a: 2054 movs r0, #84 ; 0x54 - 8001c5c: f000 fe5b bl 8002916 + 8002b76: 2200 movs r2, #0 + 8002b78: 2100 movs r1, #0 + 8002b7a: 2054 movs r0, #84 ; 0x54 + 8002b7c: f000 fe5b bl 8003836 HAL_NVIC_EnableIRQ(SPI4_IRQn); - 8001c60: 2054 movs r0, #84 ; 0x54 - 8001c62: f000 fe74 bl 800294e + 8002b80: 2054 movs r0, #84 ; 0x54 + 8002b82: f000 fe74 bl 800386e /* USER CODE BEGIN SPI4_MspInit 1 */ /* USER CODE END SPI4_MspInit 1 */ } } - 8001c66: bf00 nop - 8001c68: 3728 adds r7, #40 ; 0x28 - 8001c6a: 46bd mov sp, r7 - 8001c6c: bd80 pop {r7, pc} - 8001c6e: bf00 nop - 8001c70: 40013400 .word 0x40013400 - 8001c74: 40023800 .word 0x40023800 - 8001c78: 40021000 .word 0x40021000 + 8002b86: bf00 nop + 8002b88: 3728 adds r7, #40 ; 0x28 + 8002b8a: 46bd mov sp, r7 + 8002b8c: bd80 pop {r7, pc} + 8002b8e: bf00 nop + 8002b90: 40013400 .word 0x40013400 + 8002b94: 40023800 .word 0x40023800 + 8002b98: 40021000 .word 0x40021000 -08001c7c : +08002b9c : * This function configures the hardware resources used in this example * @param htim_base: TIM_Base handle pointer * @retval None */ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base) { - 8001c7c: b580 push {r7, lr} - 8001c7e: b084 sub sp, #16 - 8001c80: af00 add r7, sp, #0 - 8001c82: 6078 str r0, [r7, #4] + 8002b9c: b580 push {r7, lr} + 8002b9e: b084 sub sp, #16 + 8002ba0: af00 add r7, sp, #0 + 8002ba2: 6078 str r0, [r7, #4] if(htim_base->Instance==TIM6) - 8001c84: 687b ldr r3, [r7, #4] - 8001c86: 681b ldr r3, [r3, #0] - 8001c88: 4a0e ldr r2, [pc, #56] ; (8001cc4 ) - 8001c8a: 4293 cmp r3, r2 - 8001c8c: d115 bne.n 8001cba + 8002ba4: 687b ldr r3, [r7, #4] + 8002ba6: 681b ldr r3, [r3, #0] + 8002ba8: 4a0e ldr r2, [pc, #56] ; (8002be4 ) + 8002baa: 4293 cmp r3, r2 + 8002bac: d115 bne.n 8002bda { /* USER CODE BEGIN TIM6_MspInit 0 */ /* USER CODE END TIM6_MspInit 0 */ /* Peripheral clock enable */ __HAL_RCC_TIM6_CLK_ENABLE(); - 8001c8e: 2300 movs r3, #0 - 8001c90: 60fb str r3, [r7, #12] - 8001c92: 4b0d ldr r3, [pc, #52] ; (8001cc8 ) - 8001c94: 6c1b ldr r3, [r3, #64] ; 0x40 - 8001c96: 4a0c ldr r2, [pc, #48] ; (8001cc8 ) - 8001c98: f043 0310 orr.w r3, r3, #16 - 8001c9c: 6413 str r3, [r2, #64] ; 0x40 - 8001c9e: 4b0a ldr r3, [pc, #40] ; (8001cc8 ) - 8001ca0: 6c1b ldr r3, [r3, #64] ; 0x40 - 8001ca2: f003 0310 and.w r3, r3, #16 - 8001ca6: 60fb str r3, [r7, #12] - 8001ca8: 68fb ldr r3, [r7, #12] + 8002bae: 2300 movs r3, #0 + 8002bb0: 60fb str r3, [r7, #12] + 8002bb2: 4b0d ldr r3, [pc, #52] ; (8002be8 ) + 8002bb4: 6c1b ldr r3, [r3, #64] ; 0x40 + 8002bb6: 4a0c ldr r2, [pc, #48] ; (8002be8 ) + 8002bb8: f043 0310 orr.w r3, r3, #16 + 8002bbc: 6413 str r3, [r2, #64] ; 0x40 + 8002bbe: 4b0a ldr r3, [pc, #40] ; (8002be8 ) + 8002bc0: 6c1b ldr r3, [r3, #64] ; 0x40 + 8002bc2: f003 0310 and.w r3, r3, #16 + 8002bc6: 60fb str r3, [r7, #12] + 8002bc8: 68fb ldr r3, [r7, #12] /* TIM6 interrupt Init */ HAL_NVIC_SetPriority(TIM6_DAC_IRQn, 0, 0); - 8001caa: 2200 movs r2, #0 - 8001cac: 2100 movs r1, #0 - 8001cae: 2036 movs r0, #54 ; 0x36 - 8001cb0: f000 fe31 bl 8002916 + 8002bca: 2200 movs r2, #0 + 8002bcc: 2100 movs r1, #0 + 8002bce: 2036 movs r0, #54 ; 0x36 + 8002bd0: f000 fe31 bl 8003836 HAL_NVIC_EnableIRQ(TIM6_DAC_IRQn); - 8001cb4: 2036 movs r0, #54 ; 0x36 - 8001cb6: f000 fe4a bl 800294e + 8002bd4: 2036 movs r0, #54 ; 0x36 + 8002bd6: f000 fe4a bl 800386e /* USER CODE BEGIN TIM6_MspInit 1 */ /* USER CODE END TIM6_MspInit 1 */ } } - 8001cba: bf00 nop - 8001cbc: 3710 adds r7, #16 - 8001cbe: 46bd mov sp, r7 - 8001cc0: bd80 pop {r7, pc} - 8001cc2: bf00 nop - 8001cc4: 40001000 .word 0x40001000 - 8001cc8: 40023800 .word 0x40023800 + 8002bda: bf00 nop + 8002bdc: 3710 adds r7, #16 + 8002bde: 46bd mov sp, r7 + 8002be0: bd80 pop {r7, pc} + 8002be2: bf00 nop + 8002be4: 40001000 .word 0x40001000 + 8002be8: 40023800 .word 0x40023800 -08001ccc : +08002bec : /******************************************************************************/ /** * @brief This function handles Non maskable interrupt. */ void NMI_Handler(void) { - 8001ccc: b480 push {r7} - 8001cce: af00 add r7, sp, #0 + 8002bec: b480 push {r7} + 8002bee: af00 add r7, sp, #0 /* USER CODE END NonMaskableInt_IRQn 0 */ /* USER CODE BEGIN NonMaskableInt_IRQn 1 */ /* USER CODE END NonMaskableInt_IRQn 1 */ } - 8001cd0: bf00 nop - 8001cd2: 46bd mov sp, r7 - 8001cd4: f85d 7b04 ldr.w r7, [sp], #4 - 8001cd8: 4770 bx lr + 8002bf0: bf00 nop + 8002bf2: 46bd mov sp, r7 + 8002bf4: f85d 7b04 ldr.w r7, [sp], #4 + 8002bf8: 4770 bx lr -08001cda : +08002bfa : /** * @brief This function handles Hard fault interrupt. */ void HardFault_Handler(void) { - 8001cda: b480 push {r7} - 8001cdc: af00 add r7, sp, #0 + 8002bfa: b480 push {r7} + 8002bfc: af00 add r7, sp, #0 /* USER CODE BEGIN HardFault_IRQn 0 */ /* USER CODE END HardFault_IRQn 0 */ while (1) - 8001cde: e7fe b.n 8001cde + 8002bfe: e7fe b.n 8002bfe -08001ce0 : +08002c00 : /** * @brief This function handles Memory management fault. */ void MemManage_Handler(void) { - 8001ce0: b480 push {r7} - 8001ce2: af00 add r7, sp, #0 + 8002c00: b480 push {r7} + 8002c02: af00 add r7, sp, #0 /* USER CODE BEGIN MemoryManagement_IRQn 0 */ /* USER CODE END MemoryManagement_IRQn 0 */ while (1) - 8001ce4: e7fe b.n 8001ce4 + 8002c04: e7fe b.n 8002c04 -08001ce6 : +08002c06 : /** * @brief This function handles Pre-fetch fault, memory access fault. */ void BusFault_Handler(void) { - 8001ce6: b480 push {r7} - 8001ce8: af00 add r7, sp, #0 + 8002c06: b480 push {r7} + 8002c08: af00 add r7, sp, #0 /* USER CODE BEGIN BusFault_IRQn 0 */ /* USER CODE END BusFault_IRQn 0 */ while (1) - 8001cea: e7fe b.n 8001cea + 8002c0a: e7fe b.n 8002c0a -08001cec : +08002c0c : /** * @brief This function handles Undefined instruction or illegal state. */ void UsageFault_Handler(void) { - 8001cec: b480 push {r7} - 8001cee: af00 add r7, sp, #0 + 8002c0c: b480 push {r7} + 8002c0e: af00 add r7, sp, #0 /* USER CODE BEGIN UsageFault_IRQn 0 */ /* USER CODE END UsageFault_IRQn 0 */ while (1) - 8001cf0: e7fe b.n 8001cf0 + 8002c10: e7fe b.n 8002c10 -08001cf2 : +08002c12 : /** * @brief This function handles System service call via SWI instruction. */ void SVC_Handler(void) { - 8001cf2: b480 push {r7} - 8001cf4: af00 add r7, sp, #0 + 8002c12: b480 push {r7} + 8002c14: af00 add r7, sp, #0 /* USER CODE END SVCall_IRQn 0 */ /* USER CODE BEGIN SVCall_IRQn 1 */ /* USER CODE END SVCall_IRQn 1 */ } - 8001cf6: bf00 nop - 8001cf8: 46bd mov sp, r7 - 8001cfa: f85d 7b04 ldr.w r7, [sp], #4 - 8001cfe: 4770 bx lr + 8002c16: bf00 nop + 8002c18: 46bd mov sp, r7 + 8002c1a: f85d 7b04 ldr.w r7, [sp], #4 + 8002c1e: 4770 bx lr -08001d00 : +08002c20 : /** * @brief This function handles Debug monitor. */ void DebugMon_Handler(void) { - 8001d00: b480 push {r7} - 8001d02: af00 add r7, sp, #0 + 8002c20: b480 push {r7} + 8002c22: af00 add r7, sp, #0 /* USER CODE END DebugMonitor_IRQn 0 */ /* USER CODE BEGIN DebugMonitor_IRQn 1 */ /* USER CODE END DebugMonitor_IRQn 1 */ } - 8001d04: bf00 nop - 8001d06: 46bd mov sp, r7 - 8001d08: f85d 7b04 ldr.w r7, [sp], #4 - 8001d0c: 4770 bx lr + 8002c24: bf00 nop + 8002c26: 46bd mov sp, r7 + 8002c28: f85d 7b04 ldr.w r7, [sp], #4 + 8002c2c: 4770 bx lr -08001d0e : +08002c2e : /** * @brief This function handles Pendable request for system service. */ void PendSV_Handler(void) { - 8001d0e: b480 push {r7} - 8001d10: af00 add r7, sp, #0 + 8002c2e: b480 push {r7} + 8002c30: af00 add r7, sp, #0 /* USER CODE END PendSV_IRQn 0 */ /* USER CODE BEGIN PendSV_IRQn 1 */ /* USER CODE END PendSV_IRQn 1 */ } - 8001d12: bf00 nop - 8001d14: 46bd mov sp, r7 - 8001d16: f85d 7b04 ldr.w r7, [sp], #4 - 8001d1a: 4770 bx lr + 8002c32: bf00 nop + 8002c34: 46bd mov sp, r7 + 8002c36: f85d 7b04 ldr.w r7, [sp], #4 + 8002c3a: 4770 bx lr -08001d1c : +08002c3c : /** * @brief This function handles System tick timer. */ void SysTick_Handler(void) { - 8001d1c: b580 push {r7, lr} - 8001d1e: af00 add r7, sp, #0 + 8002c3c: b580 push {r7, lr} + 8002c3e: af00 add r7, sp, #0 /* USER CODE BEGIN SysTick_IRQn 0 */ /* USER CODE END SysTick_IRQn 0 */ HAL_IncTick(); - 8001d20: f000 f912 bl 8001f48 + 8002c40: f000 f912 bl 8002e68 /* USER CODE BEGIN SysTick_IRQn 1 */ /* USER CODE END SysTick_IRQn 1 */ } - 8001d24: bf00 nop - 8001d26: bd80 pop {r7, pc} + 8002c44: bf00 nop + 8002c46: bd80 pop {r7, pc} -08001d28 : +08002c48 : /** * @brief This function handles EXTI line0 interrupt. */ void EXTI0_IRQHandler(void) { - 8001d28: b580 push {r7, lr} - 8001d2a: af00 add r7, sp, #0 + 8002c48: b580 push {r7, lr} + 8002c4a: af00 add r7, sp, #0 /* USER CODE BEGIN EXTI0_IRQn 0 */ /* USER CODE END EXTI0_IRQn 0 */ HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0); - 8001d2c: 2001 movs r0, #1 - 8001d2e: f001 f80f bl 8002d50 + 8002c4c: 2001 movs r0, #1 + 8002c4e: f001 f80f bl 8003c70 /* USER CODE BEGIN EXTI0_IRQn 1 */ HAL_TIM_Base_Start_IT(&htim6); - 8001d32: 4804 ldr r0, [pc, #16] ; (8001d44 ) - 8001d34: f001 ffeb bl 8003d0e + 8002c52: 4804 ldr r0, [pc, #16] ; (8002c64 ) + 8002c54: f001 ffeb bl 8004c2e LEDDesign_PendingChange = true; - 8001d38: 4b03 ldr r3, [pc, #12] ; (8001d48 ) - 8001d3a: 2201 movs r2, #1 - 8001d3c: 701a strb r2, [r3, #0] + 8002c58: 4b03 ldr r3, [pc, #12] ; (8002c68 ) + 8002c5a: 2201 movs r2, #1 + 8002c5c: 701a strb r2, [r3, #0] /* USER CODE END EXTI0_IRQn 1 */ } - 8001d3e: bf00 nop - 8001d40: bd80 pop {r7, pc} - 8001d42: bf00 nop - 8001d44: 20000458 .word 0x20000458 - 8001d48: 20000091 .word 0x20000091 + 8002c5e: bf00 nop + 8002c60: bd80 pop {r7, pc} + 8002c62: bf00 nop + 8002c64: 20000454 .word 0x20000454 + 8002c68: 20000091 .word 0x20000091 -08001d4c : +08002c6c : /** * @brief This function handles TIM6 global interrupt, DAC1 and DAC2 underrun error interrupts. */ void TIM6_DAC_IRQHandler(void) { - 8001d4c: b580 push {r7, lr} - 8001d4e: af00 add r7, sp, #0 + 8002c6c: b580 push {r7, lr} + 8002c6e: af00 add r7, sp, #0 /* USER CODE BEGIN TIM6_DAC_IRQn 0 */ /* USER CODE END TIM6_DAC_IRQn 0 */ HAL_TIM_IRQHandler(&htim6); - 8001d50: 480c ldr r0, [pc, #48] ; (8001d84 ) - 8001d52: f002 f846 bl 8003de2 + 8002c70: 480c ldr r0, [pc, #48] ; (8002ca4 ) + 8002c72: f002 f846 bl 8004d02 /* USER CODE BEGIN TIM6_DAC_IRQn 1 */ LEDMode = (LEDMode + 1) % 7; - 8001d56: 4b0c ldr r3, [pc, #48] ; (8001d88 ) - 8001d58: 781b ldrb r3, [r3, #0] - 8001d5a: 1c5a adds r2, r3, #1 - 8001d5c: 4b0b ldr r3, [pc, #44] ; (8001d8c ) - 8001d5e: fb83 1302 smull r1, r3, r3, r2 - 8001d62: 4413 add r3, r2 - 8001d64: 1099 asrs r1, r3, #2 - 8001d66: 17d3 asrs r3, r2, #31 - 8001d68: 1ac9 subs r1, r1, r3 - 8001d6a: 460b mov r3, r1 - 8001d6c: 00db lsls r3, r3, #3 - 8001d6e: 1a5b subs r3, r3, r1 - 8001d70: 1ad1 subs r1, r2, r3 - 8001d72: b2ca uxtb r2, r1 - 8001d74: 4b04 ldr r3, [pc, #16] ; (8001d88 ) - 8001d76: 701a strb r2, [r3, #0] + 8002c76: 4b0c ldr r3, [pc, #48] ; (8002ca8 ) + 8002c78: 781b ldrb r3, [r3, #0] + 8002c7a: 1c5a adds r2, r3, #1 + 8002c7c: 4b0b ldr r3, [pc, #44] ; (8002cac ) + 8002c7e: fb83 1302 smull r1, r3, r3, r2 + 8002c82: 4413 add r3, r2 + 8002c84: 1099 asrs r1, r3, #2 + 8002c86: 17d3 asrs r3, r2, #31 + 8002c88: 1ac9 subs r1, r1, r3 + 8002c8a: 460b mov r3, r1 + 8002c8c: 00db lsls r3, r3, #3 + 8002c8e: 1a5b subs r3, r3, r1 + 8002c90: 1ad1 subs r1, r2, r3 + 8002c92: b2ca uxtb r2, r1 + 8002c94: 4b04 ldr r3, [pc, #16] ; (8002ca8 ) + 8002c96: 701a strb r2, [r3, #0] LEDDesign_PendingChange = false; - 8001d78: 4b05 ldr r3, [pc, #20] ; (8001d90 ) - 8001d7a: 2200 movs r2, #0 - 8001d7c: 701a strb r2, [r3, #0] + 8002c98: 4b05 ldr r3, [pc, #20] ; (8002cb0 ) + 8002c9a: 2200 movs r2, #0 + 8002c9c: 701a strb r2, [r3, #0] /* USER CODE END TIM6_DAC_IRQn 1 */ } - 8001d7e: bf00 nop - 8001d80: bd80 pop {r7, pc} - 8001d82: bf00 nop - 8001d84: 20000458 .word 0x20000458 - 8001d88: 20000090 .word 0x20000090 - 8001d8c: 92492493 .word 0x92492493 - 8001d90: 20000091 .word 0x20000091 + 8002c9e: bf00 nop + 8002ca0: bd80 pop {r7, pc} + 8002ca2: bf00 nop + 8002ca4: 20000454 .word 0x20000454 + 8002ca8: 20000090 .word 0x20000090 + 8002cac: 92492493 .word 0x92492493 + 8002cb0: 20000091 .word 0x20000091 -08001d94 : +08002cb4 : /** * @brief This function handles SPI4 global interrupt. */ void SPI4_IRQHandler(void) { - 8001d94: b580 push {r7, lr} - 8001d96: af00 add r7, sp, #0 + 8002cb4: b580 push {r7, lr} + 8002cb6: af00 add r7, sp, #0 /* USER CODE BEGIN SPI4_IRQn 0 */ /* USER CODE END SPI4_IRQn 0 */ HAL_SPI_IRQHandler(&hspi4); - 8001d98: 4805 ldr r0, [pc, #20] ; (8001db0 ) - 8001d9a: f001 fd11 bl 80037c0 + 8002cb8: 4805 ldr r0, [pc, #20] ; (8002cd0 ) + 8002cba: f001 fd11 bl 80046e0 /* USER CODE BEGIN SPI4_IRQn 1 */ HAL_SPI_Transmit_IT(&hspi4, (uint8_t *) &LEDData_WS2812B, (uint16_t) 66 * 3 * 3); - 8001d9e: f240 2252 movw r2, #594 ; 0x252 - 8001da2: 4904 ldr r1, [pc, #16] ; (8001db4 ) - 8001da4: 4802 ldr r0, [pc, #8] ; (8001db0 ) - 8001da6: f001 fc89 bl 80036bc + 8002cbe: f240 2252 movw r2, #594 ; 0x252 + 8002cc2: 4904 ldr r1, [pc, #16] ; (8002cd4 ) + 8002cc4: 4802 ldr r0, [pc, #8] ; (8002cd0 ) + 8002cc6: f001 fc89 bl 80045dc /* USER CODE END SPI4_IRQn 1 */ } - 8001daa: bf00 nop - 8001dac: bd80 pop {r7, pc} - 8001dae: bf00 nop - 8001db0: 20000400 .word 0x20000400 - 8001db4: 20000154 .word 0x20000154 + 8002cca: bf00 nop + 8002ccc: bd80 pop {r7, pc} + 8002cce: bf00 nop + 8002cd0: 200003fc .word 0x200003fc + 8002cd4: 20000154 .word 0x20000154 -08001db8 <_sbrk>: +08002cd8 <_sbrk>: * * @param incr Memory size * @return Pointer to allocated memory */ void *_sbrk(ptrdiff_t incr) { - 8001db8: b580 push {r7, lr} - 8001dba: b086 sub sp, #24 - 8001dbc: af00 add r7, sp, #0 - 8001dbe: 6078 str r0, [r7, #4] + 8002cd8: b580 push {r7, lr} + 8002cda: b086 sub sp, #24 + 8002cdc: af00 add r7, sp, #0 + 8002cde: 6078 str r0, [r7, #4] extern uint8_t _end; /* Symbol defined in the linker script */ extern uint8_t _estack; /* Symbol defined in the linker script */ extern uint32_t _Min_Stack_Size; /* Symbol defined in the linker script */ const uint32_t stack_limit = (uint32_t)&_estack - (uint32_t)&_Min_Stack_Size; - 8001dc0: 4a14 ldr r2, [pc, #80] ; (8001e14 <_sbrk+0x5c>) - 8001dc2: 4b15 ldr r3, [pc, #84] ; (8001e18 <_sbrk+0x60>) - 8001dc4: 1ad3 subs r3, r2, r3 - 8001dc6: 617b str r3, [r7, #20] + 8002ce0: 4a14 ldr r2, [pc, #80] ; (8002d34 <_sbrk+0x5c>) + 8002ce2: 4b15 ldr r3, [pc, #84] ; (8002d38 <_sbrk+0x60>) + 8002ce4: 1ad3 subs r3, r2, r3 + 8002ce6: 617b str r3, [r7, #20] const uint8_t *max_heap = (uint8_t *)stack_limit; - 8001dc8: 697b ldr r3, [r7, #20] - 8001dca: 613b str r3, [r7, #16] + 8002ce8: 697b ldr r3, [r7, #20] + 8002cea: 613b str r3, [r7, #16] uint8_t *prev_heap_end; /* Initalize heap end at first call */ if (NULL == __sbrk_heap_end) - 8001dcc: 4b13 ldr r3, [pc, #76] ; (8001e1c <_sbrk+0x64>) - 8001dce: 681b ldr r3, [r3, #0] - 8001dd0: 2b00 cmp r3, #0 - 8001dd2: d102 bne.n 8001dda <_sbrk+0x22> + 8002cec: 4b13 ldr r3, [pc, #76] ; (8002d3c <_sbrk+0x64>) + 8002cee: 681b ldr r3, [r3, #0] + 8002cf0: 2b00 cmp r3, #0 + 8002cf2: d102 bne.n 8002cfa <_sbrk+0x22> { __sbrk_heap_end = &_end; - 8001dd4: 4b11 ldr r3, [pc, #68] ; (8001e1c <_sbrk+0x64>) - 8001dd6: 4a12 ldr r2, [pc, #72] ; (8001e20 <_sbrk+0x68>) - 8001dd8: 601a str r2, [r3, #0] + 8002cf4: 4b11 ldr r3, [pc, #68] ; (8002d3c <_sbrk+0x64>) + 8002cf6: 4a12 ldr r2, [pc, #72] ; (8002d40 <_sbrk+0x68>) + 8002cf8: 601a str r2, [r3, #0] } /* Protect heap from growing into the reserved MSP stack */ if (__sbrk_heap_end + incr > max_heap) - 8001dda: 4b10 ldr r3, [pc, #64] ; (8001e1c <_sbrk+0x64>) - 8001ddc: 681a ldr r2, [r3, #0] - 8001dde: 687b ldr r3, [r7, #4] - 8001de0: 4413 add r3, r2 - 8001de2: 693a ldr r2, [r7, #16] - 8001de4: 429a cmp r2, r3 - 8001de6: d207 bcs.n 8001df8 <_sbrk+0x40> + 8002cfa: 4b10 ldr r3, [pc, #64] ; (8002d3c <_sbrk+0x64>) + 8002cfc: 681a ldr r2, [r3, #0] + 8002cfe: 687b ldr r3, [r7, #4] + 8002d00: 4413 add r3, r2 + 8002d02: 693a ldr r2, [r7, #16] + 8002d04: 429a cmp r2, r3 + 8002d06: d207 bcs.n 8002d18 <_sbrk+0x40> { errno = ENOMEM; - 8001de8: f002 fa66 bl 80042b8 <__errno> - 8001dec: 4602 mov r2, r0 - 8001dee: 230c movs r3, #12 - 8001df0: 6013 str r3, [r2, #0] + 8002d08: f002 fa66 bl 80051d8 <__errno> + 8002d0c: 4602 mov r2, r0 + 8002d0e: 230c movs r3, #12 + 8002d10: 6013 str r3, [r2, #0] return (void *)-1; - 8001df2: f04f 33ff mov.w r3, #4294967295 - 8001df6: e009 b.n 8001e0c <_sbrk+0x54> + 8002d12: f04f 33ff mov.w r3, #4294967295 + 8002d16: e009 b.n 8002d2c <_sbrk+0x54> } prev_heap_end = __sbrk_heap_end; - 8001df8: 4b08 ldr r3, [pc, #32] ; (8001e1c <_sbrk+0x64>) - 8001dfa: 681b ldr r3, [r3, #0] - 8001dfc: 60fb str r3, [r7, #12] + 8002d18: 4b08 ldr r3, [pc, #32] ; (8002d3c <_sbrk+0x64>) + 8002d1a: 681b ldr r3, [r3, #0] + 8002d1c: 60fb str r3, [r7, #12] __sbrk_heap_end += incr; - 8001dfe: 4b07 ldr r3, [pc, #28] ; (8001e1c <_sbrk+0x64>) - 8001e00: 681a ldr r2, [r3, #0] - 8001e02: 687b ldr r3, [r7, #4] - 8001e04: 4413 add r3, r2 - 8001e06: 4a05 ldr r2, [pc, #20] ; (8001e1c <_sbrk+0x64>) - 8001e08: 6013 str r3, [r2, #0] + 8002d1e: 4b07 ldr r3, [pc, #28] ; (8002d3c <_sbrk+0x64>) + 8002d20: 681a ldr r2, [r3, #0] + 8002d22: 687b ldr r3, [r7, #4] + 8002d24: 4413 add r3, r2 + 8002d26: 4a05 ldr r2, [pc, #20] ; (8002d3c <_sbrk+0x64>) + 8002d28: 6013 str r3, [r2, #0] return (void *)prev_heap_end; - 8001e0a: 68fb ldr r3, [r7, #12] + 8002d2a: 68fb ldr r3, [r7, #12] } - 8001e0c: 4618 mov r0, r3 - 8001e0e: 3718 adds r7, #24 - 8001e10: 46bd mov sp, r7 - 8001e12: bd80 pop {r7, pc} - 8001e14: 20030000 .word 0x20030000 - 8001e18: 00000400 .word 0x00000400 - 8001e1c: 200003ac .word 0x200003ac - 8001e20: 200004a8 .word 0x200004a8 + 8002d2c: 4618 mov r0, r3 + 8002d2e: 3718 adds r7, #24 + 8002d30: 46bd mov sp, r7 + 8002d32: bd80 pop {r7, pc} + 8002d34: 20030000 .word 0x20030000 + 8002d38: 00000400 .word 0x00000400 + 8002d3c: 200003a8 .word 0x200003a8 + 8002d40: 200004a0 .word 0x200004a0 -08001e24 : +08002d44 : * configuration. * @param None * @retval None */ void SystemInit(void) { - 8001e24: b480 push {r7} - 8001e26: af00 add r7, sp, #0 + 8002d44: b480 push {r7} + 8002d46: af00 add r7, sp, #0 /* FPU settings ------------------------------------------------------------*/ #if (__FPU_PRESENT == 1) && (__FPU_USED == 1) SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */ - 8001e28: 4b08 ldr r3, [pc, #32] ; (8001e4c ) - 8001e2a: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 8001e2e: 4a07 ldr r2, [pc, #28] ; (8001e4c ) - 8001e30: f443 0370 orr.w r3, r3, #15728640 ; 0xf00000 - 8001e34: f8c2 3088 str.w r3, [r2, #136] ; 0x88 + 8002d48: 4b08 ldr r3, [pc, #32] ; (8002d6c ) + 8002d4a: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 + 8002d4e: 4a07 ldr r2, [pc, #28] ; (8002d6c ) + 8002d50: f443 0370 orr.w r3, r3, #15728640 ; 0xf00000 + 8002d54: f8c2 3088 str.w r3, [r2, #136] ; 0x88 /* Configure the Vector Table location add offset address ------------------*/ #ifdef VECT_TAB_SRAM SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */ #else SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH */ - 8001e38: 4b04 ldr r3, [pc, #16] ; (8001e4c ) - 8001e3a: f04f 6200 mov.w r2, #134217728 ; 0x8000000 - 8001e3e: 609a str r2, [r3, #8] + 8002d58: 4b04 ldr r3, [pc, #16] ; (8002d6c ) + 8002d5a: f04f 6200 mov.w r2, #134217728 ; 0x8000000 + 8002d5e: 609a str r2, [r3, #8] #endif } - 8001e40: bf00 nop - 8001e42: 46bd mov sp, r7 - 8001e44: f85d 7b04 ldr.w r7, [sp], #4 - 8001e48: 4770 bx lr - 8001e4a: bf00 nop - 8001e4c: e000ed00 .word 0xe000ed00 + 8002d60: bf00 nop + 8002d62: 46bd mov sp, r7 + 8002d64: f85d 7b04 ldr.w r7, [sp], #4 + 8002d68: 4770 bx lr + 8002d6a: bf00 nop + 8002d6c: e000ed00 .word 0xe000ed00 -08001e50 : +08002d70 : .section .text.Reset_Handler .weak Reset_Handler .type Reset_Handler, %function Reset_Handler: ldr sp, =_estack /* set stack pointer */ - 8001e50: f8df d034 ldr.w sp, [pc, #52] ; 8001e88 + 8002d70: f8df d034 ldr.w sp, [pc, #52] ; 8002da8 /* Copy the data segment initializers from flash to SRAM */ movs r1, #0 - 8001e54: 2100 movs r1, #0 + 8002d74: 2100 movs r1, #0 b LoopCopyDataInit - 8001e56: e003 b.n 8001e60 + 8002d76: e003 b.n 8002d80 -08001e58 : +08002d78 : CopyDataInit: ldr r3, =_sidata - 8001e58: 4b0c ldr r3, [pc, #48] ; (8001e8c ) + 8002d78: 4b0c ldr r3, [pc, #48] ; (8002dac ) ldr r3, [r3, r1] - 8001e5a: 585b ldr r3, [r3, r1] + 8002d7a: 585b ldr r3, [r3, r1] str r3, [r0, r1] - 8001e5c: 5043 str r3, [r0, r1] + 8002d7c: 5043 str r3, [r0, r1] adds r1, r1, #4 - 8001e5e: 3104 adds r1, #4 + 8002d7e: 3104 adds r1, #4 -08001e60 : +08002d80 : LoopCopyDataInit: ldr r0, =_sdata - 8001e60: 480b ldr r0, [pc, #44] ; (8001e90 ) + 8002d80: 480b ldr r0, [pc, #44] ; (8002db0 ) ldr r3, =_edata - 8001e62: 4b0c ldr r3, [pc, #48] ; (8001e94 ) + 8002d82: 4b0c ldr r3, [pc, #48] ; (8002db4 ) adds r2, r0, r1 - 8001e64: 1842 adds r2, r0, r1 + 8002d84: 1842 adds r2, r0, r1 cmp r2, r3 - 8001e66: 429a cmp r2, r3 + 8002d86: 429a cmp r2, r3 bcc CopyDataInit - 8001e68: d3f6 bcc.n 8001e58 + 8002d88: d3f6 bcc.n 8002d78 ldr r2, =_sbss - 8001e6a: 4a0b ldr r2, [pc, #44] ; (8001e98 ) + 8002d8a: 4a0b ldr r2, [pc, #44] ; (8002db8 ) b LoopFillZerobss - 8001e6c: e002 b.n 8001e74 + 8002d8c: e002 b.n 8002d94 -08001e6e : +08002d8e : /* Zero fill the bss segment. */ FillZerobss: movs r3, #0 - 8001e6e: 2300 movs r3, #0 + 8002d8e: 2300 movs r3, #0 str r3, [r2], #4 - 8001e70: f842 3b04 str.w r3, [r2], #4 + 8002d90: f842 3b04 str.w r3, [r2], #4 -08001e74 : +08002d94 : LoopFillZerobss: ldr r3, = _ebss - 8001e74: 4b09 ldr r3, [pc, #36] ; (8001e9c ) + 8002d94: 4b09 ldr r3, [pc, #36] ; (8002dbc ) cmp r2, r3 - 8001e76: 429a cmp r2, r3 + 8002d96: 429a cmp r2, r3 bcc FillZerobss - 8001e78: d3f9 bcc.n 8001e6e + 8002d98: d3f9 bcc.n 8002d8e /* Call the clock system intitialization function.*/ bl SystemInit - 8001e7a: f7ff ffd3 bl 8001e24 + 8002d9a: f7ff ffd3 bl 8002d44 /* Call static constructors */ bl __libc_init_array - 8001e7e: f002 fa21 bl 80042c4 <__libc_init_array> + 8002d9e: f002 fa21 bl 80051e4 <__libc_init_array> /* Call the application's entry point.*/ bl main - 8001e82: f7fe fb33 bl 80004ec
+ 8002da2: f7fd ff93 bl 8000ccc
bx lr - 8001e86: 4770 bx lr + 8002da6: 4770 bx lr ldr sp, =_estack /* set stack pointer */ - 8001e88: 20030000 .word 0x20030000 + 8002da8: 20030000 .word 0x20030000 ldr r3, =_sidata - 8001e8c: 080044a4 .word 0x080044a4 + 8002dac: 080053c4 .word 0x080053c4 ldr r0, =_sdata - 8001e90: 20000000 .word 0x20000000 + 8002db0: 20000000 .word 0x20000000 ldr r3, =_edata - 8001e94: 20000074 .word 0x20000074 + 8002db4: 20000074 .word 0x20000074 ldr r2, =_sbss - 8001e98: 20000074 .word 0x20000074 + 8002db8: 20000074 .word 0x20000074 ldr r3, = _ebss - 8001e9c: 200004a4 .word 0x200004a4 + 8002dbc: 200004a0 .word 0x200004a0 -08001ea0 : +08002dc0 : * @retval None */ .section .text.Default_Handler,"ax",%progbits Default_Handler: Infinite_Loop: b Infinite_Loop - 8001ea0: e7fe b.n 8001ea0 + 8002dc0: e7fe b.n 8002dc0 ... -08001ea4 : +08002dc4 : * need to ensure that the SysTick time base is always set to 1 millisecond * to have correct HAL operation. * @retval HAL status */ HAL_StatusTypeDef HAL_Init(void) { - 8001ea4: b580 push {r7, lr} - 8001ea6: af00 add r7, sp, #0 + 8002dc4: b580 push {r7, lr} + 8002dc6: af00 add r7, sp, #0 /* Configure Flash prefetch, Instruction cache, Data cache */ #if (INSTRUCTION_CACHE_ENABLE != 0U) __HAL_FLASH_INSTRUCTION_CACHE_ENABLE(); - 8001ea8: 4b0e ldr r3, [pc, #56] ; (8001ee4 ) - 8001eaa: 681b ldr r3, [r3, #0] - 8001eac: 4a0d ldr r2, [pc, #52] ; (8001ee4 ) - 8001eae: f443 7300 orr.w r3, r3, #512 ; 0x200 - 8001eb2: 6013 str r3, [r2, #0] + 8002dc8: 4b0e ldr r3, [pc, #56] ; (8002e04 ) + 8002dca: 681b ldr r3, [r3, #0] + 8002dcc: 4a0d ldr r2, [pc, #52] ; (8002e04 ) + 8002dce: f443 7300 orr.w r3, r3, #512 ; 0x200 + 8002dd2: 6013 str r3, [r2, #0] #endif /* INSTRUCTION_CACHE_ENABLE */ #if (DATA_CACHE_ENABLE != 0U) __HAL_FLASH_DATA_CACHE_ENABLE(); - 8001eb4: 4b0b ldr r3, [pc, #44] ; (8001ee4 ) - 8001eb6: 681b ldr r3, [r3, #0] - 8001eb8: 4a0a ldr r2, [pc, #40] ; (8001ee4 ) - 8001eba: f443 6380 orr.w r3, r3, #1024 ; 0x400 - 8001ebe: 6013 str r3, [r2, #0] + 8002dd4: 4b0b ldr r3, [pc, #44] ; (8002e04 ) + 8002dd6: 681b ldr r3, [r3, #0] + 8002dd8: 4a0a ldr r2, [pc, #40] ; (8002e04 ) + 8002dda: f443 6380 orr.w r3, r3, #1024 ; 0x400 + 8002dde: 6013 str r3, [r2, #0] #endif /* DATA_CACHE_ENABLE */ #if (PREFETCH_ENABLE != 0U) __HAL_FLASH_PREFETCH_BUFFER_ENABLE(); - 8001ec0: 4b08 ldr r3, [pc, #32] ; (8001ee4 ) - 8001ec2: 681b ldr r3, [r3, #0] - 8001ec4: 4a07 ldr r2, [pc, #28] ; (8001ee4 ) - 8001ec6: f443 7380 orr.w r3, r3, #256 ; 0x100 - 8001eca: 6013 str r3, [r2, #0] + 8002de0: 4b08 ldr r3, [pc, #32] ; (8002e04 ) + 8002de2: 681b ldr r3, [r3, #0] + 8002de4: 4a07 ldr r2, [pc, #28] ; (8002e04 ) + 8002de6: f443 7380 orr.w r3, r3, #256 ; 0x100 + 8002dea: 6013 str r3, [r2, #0] #endif /* PREFETCH_ENABLE */ /* Set Interrupt Group Priority */ HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4); - 8001ecc: 2003 movs r0, #3 - 8001ece: f000 fd17 bl 8002900 + 8002dec: 2003 movs r0, #3 + 8002dee: f000 fd17 bl 8003820 /* Use systick as time base source and configure 1ms tick (default clock after Reset is HSI) */ HAL_InitTick(TICK_INT_PRIORITY); - 8001ed2: 2000 movs r0, #0 - 8001ed4: f000 f808 bl 8001ee8 + 8002df2: 2000 movs r0, #0 + 8002df4: f000 f808 bl 8002e08 /* Init the low level hardware */ HAL_MspInit(); - 8001ed8: f7ff fe14 bl 8001b04 + 8002df8: f7ff fe14 bl 8002a24 /* Return function status */ return HAL_OK; - 8001edc: 2300 movs r3, #0 + 8002dfc: 2300 movs r3, #0 } - 8001ede: 4618 mov r0, r3 - 8001ee0: bd80 pop {r7, pc} - 8001ee2: bf00 nop - 8001ee4: 40023c00 .word 0x40023c00 + 8002dfe: 4618 mov r0, r3 + 8002e00: bd80 pop {r7, pc} + 8002e02: bf00 nop + 8002e04: 40023c00 .word 0x40023c00 -08001ee8 : +08002e08 : * implementation in user file. * @param TickPriority Tick interrupt priority. * @retval HAL status */ __weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) { - 8001ee8: b580 push {r7, lr} - 8001eea: b082 sub sp, #8 - 8001eec: af00 add r7, sp, #0 - 8001eee: 6078 str r0, [r7, #4] + 8002e08: b580 push {r7, lr} + 8002e0a: b082 sub sp, #8 + 8002e0c: af00 add r7, sp, #0 + 8002e0e: 6078 str r0, [r7, #4] /* Configure the SysTick to have interrupt in 1ms time basis*/ if (HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)) > 0U) - 8001ef0: 4b12 ldr r3, [pc, #72] ; (8001f3c ) - 8001ef2: 681a ldr r2, [r3, #0] - 8001ef4: 4b12 ldr r3, [pc, #72] ; (8001f40 ) - 8001ef6: 781b ldrb r3, [r3, #0] - 8001ef8: 4619 mov r1, r3 - 8001efa: f44f 737a mov.w r3, #1000 ; 0x3e8 - 8001efe: fbb3 f3f1 udiv r3, r3, r1 - 8001f02: fbb2 f3f3 udiv r3, r2, r3 - 8001f06: 4618 mov r0, r3 - 8001f08: f000 fd2f bl 800296a - 8001f0c: 4603 mov r3, r0 - 8001f0e: 2b00 cmp r3, #0 - 8001f10: d001 beq.n 8001f16 + 8002e10: 4b12 ldr r3, [pc, #72] ; (8002e5c ) + 8002e12: 681a ldr r2, [r3, #0] + 8002e14: 4b12 ldr r3, [pc, #72] ; (8002e60 ) + 8002e16: 781b ldrb r3, [r3, #0] + 8002e18: 4619 mov r1, r3 + 8002e1a: f44f 737a mov.w r3, #1000 ; 0x3e8 + 8002e1e: fbb3 f3f1 udiv r3, r3, r1 + 8002e22: fbb2 f3f3 udiv r3, r2, r3 + 8002e26: 4618 mov r0, r3 + 8002e28: f000 fd2f bl 800388a + 8002e2c: 4603 mov r3, r0 + 8002e2e: 2b00 cmp r3, #0 + 8002e30: d001 beq.n 8002e36 { return HAL_ERROR; - 8001f12: 2301 movs r3, #1 - 8001f14: e00e b.n 8001f34 + 8002e32: 2301 movs r3, #1 + 8002e34: e00e b.n 8002e54 } /* Configure the SysTick IRQ priority */ if (TickPriority < (1UL << __NVIC_PRIO_BITS)) - 8001f16: 687b ldr r3, [r7, #4] - 8001f18: 2b0f cmp r3, #15 - 8001f1a: d80a bhi.n 8001f32 + 8002e36: 687b ldr r3, [r7, #4] + 8002e38: 2b0f cmp r3, #15 + 8002e3a: d80a bhi.n 8002e52 { HAL_NVIC_SetPriority(SysTick_IRQn, TickPriority, 0U); - 8001f1c: 2200 movs r2, #0 - 8001f1e: 6879 ldr r1, [r7, #4] - 8001f20: f04f 30ff mov.w r0, #4294967295 - 8001f24: f000 fcf7 bl 8002916 + 8002e3c: 2200 movs r2, #0 + 8002e3e: 6879 ldr r1, [r7, #4] + 8002e40: f04f 30ff mov.w r0, #4294967295 + 8002e44: f000 fcf7 bl 8003836 uwTickPrio = TickPriority; - 8001f28: 4a06 ldr r2, [pc, #24] ; (8001f44 ) - 8001f2a: 687b ldr r3, [r7, #4] - 8001f2c: 6013 str r3, [r2, #0] + 8002e48: 4a06 ldr r2, [pc, #24] ; (8002e64 ) + 8002e4a: 687b ldr r3, [r7, #4] + 8002e4c: 6013 str r3, [r2, #0] { return HAL_ERROR; } /* Return function status */ return HAL_OK; - 8001f2e: 2300 movs r3, #0 - 8001f30: e000 b.n 8001f34 + 8002e4e: 2300 movs r3, #0 + 8002e50: e000 b.n 8002e54 return HAL_ERROR; - 8001f32: 2301 movs r3, #1 + 8002e52: 2301 movs r3, #1 } - 8001f34: 4618 mov r0, r3 - 8001f36: 3708 adds r7, #8 - 8001f38: 46bd mov sp, r7 - 8001f3a: bd80 pop {r7, pc} - 8001f3c: 20000004 .word 0x20000004 - 8001f40: 2000000c .word 0x2000000c - 8001f44: 20000008 .word 0x20000008 + 8002e54: 4618 mov r0, r3 + 8002e56: 3708 adds r7, #8 + 8002e58: 46bd mov sp, r7 + 8002e5a: bd80 pop {r7, pc} + 8002e5c: 20000004 .word 0x20000004 + 8002e60: 2000000c .word 0x2000000c + 8002e64: 20000008 .word 0x20000008 -08001f48 : +08002e68 : * @note This function is declared as __weak to be overwritten in case of other * implementations in user file. * @retval None */ __weak void HAL_IncTick(void) { - 8001f48: b480 push {r7} - 8001f4a: af00 add r7, sp, #0 + 8002e68: b480 push {r7} + 8002e6a: af00 add r7, sp, #0 uwTick += uwTickFreq; - 8001f4c: 4b06 ldr r3, [pc, #24] ; (8001f68 ) - 8001f4e: 781b ldrb r3, [r3, #0] - 8001f50: 461a mov r2, r3 - 8001f52: 4b06 ldr r3, [pc, #24] ; (8001f6c ) - 8001f54: 681b ldr r3, [r3, #0] - 8001f56: 4413 add r3, r2 - 8001f58: 4a04 ldr r2, [pc, #16] ; (8001f6c ) - 8001f5a: 6013 str r3, [r2, #0] + 8002e6c: 4b06 ldr r3, [pc, #24] ; (8002e88 ) + 8002e6e: 781b ldrb r3, [r3, #0] + 8002e70: 461a mov r2, r3 + 8002e72: 4b06 ldr r3, [pc, #24] ; (8002e8c ) + 8002e74: 681b ldr r3, [r3, #0] + 8002e76: 4413 add r3, r2 + 8002e78: 4a04 ldr r2, [pc, #16] ; (8002e8c ) + 8002e7a: 6013 str r3, [r2, #0] } - 8001f5c: bf00 nop - 8001f5e: 46bd mov sp, r7 - 8001f60: f85d 7b04 ldr.w r7, [sp], #4 - 8001f64: 4770 bx lr - 8001f66: bf00 nop - 8001f68: 2000000c .word 0x2000000c - 8001f6c: 2000049c .word 0x2000049c + 8002e7c: bf00 nop + 8002e7e: 46bd mov sp, r7 + 8002e80: f85d 7b04 ldr.w r7, [sp], #4 + 8002e84: 4770 bx lr + 8002e86: bf00 nop + 8002e88: 2000000c .word 0x2000000c + 8002e8c: 20000498 .word 0x20000498 -08001f70 : +08002e90 : * @note This function is declared as __weak to be overwritten in case of other * implementations in user file. * @retval tick value */ __weak uint32_t HAL_GetTick(void) { - 8001f70: b480 push {r7} - 8001f72: af00 add r7, sp, #0 + 8002e90: b480 push {r7} + 8002e92: af00 add r7, sp, #0 return uwTick; - 8001f74: 4b03 ldr r3, [pc, #12] ; (8001f84 ) - 8001f76: 681b ldr r3, [r3, #0] + 8002e94: 4b03 ldr r3, [pc, #12] ; (8002ea4 ) + 8002e96: 681b ldr r3, [r3, #0] } - 8001f78: 4618 mov r0, r3 - 8001f7a: 46bd mov sp, r7 - 8001f7c: f85d 7b04 ldr.w r7, [sp], #4 - 8001f80: 4770 bx lr - 8001f82: bf00 nop - 8001f84: 2000049c .word 0x2000049c + 8002e98: 4618 mov r0, r3 + 8002e9a: 46bd mov sp, r7 + 8002e9c: f85d 7b04 ldr.w r7, [sp], #4 + 8002ea0: 4770 bx lr + 8002ea2: bf00 nop + 8002ea4: 20000498 .word 0x20000498 -08001f88 : +08002ea8 : * implementations in user file. * @param Delay specifies the delay time length, in milliseconds. * @retval None */ __weak void HAL_Delay(uint32_t Delay) { - 8001f88: b580 push {r7, lr} - 8001f8a: b084 sub sp, #16 - 8001f8c: af00 add r7, sp, #0 - 8001f8e: 6078 str r0, [r7, #4] + 8002ea8: b580 push {r7, lr} + 8002eaa: b084 sub sp, #16 + 8002eac: af00 add r7, sp, #0 + 8002eae: 6078 str r0, [r7, #4] uint32_t tickstart = HAL_GetTick(); - 8001f90: f7ff ffee bl 8001f70 - 8001f94: 60b8 str r0, [r7, #8] + 8002eb0: f7ff ffee bl 8002e90 + 8002eb4: 60b8 str r0, [r7, #8] uint32_t wait = Delay; - 8001f96: 687b ldr r3, [r7, #4] - 8001f98: 60fb str r3, [r7, #12] + 8002eb6: 687b ldr r3, [r7, #4] + 8002eb8: 60fb str r3, [r7, #12] /* Add a freq to guarantee minimum wait */ if (wait < HAL_MAX_DELAY) - 8001f9a: 68fb ldr r3, [r7, #12] - 8001f9c: f1b3 3fff cmp.w r3, #4294967295 - 8001fa0: d005 beq.n 8001fae + 8002eba: 68fb ldr r3, [r7, #12] + 8002ebc: f1b3 3fff cmp.w r3, #4294967295 + 8002ec0: d005 beq.n 8002ece { wait += (uint32_t)(uwTickFreq); - 8001fa2: 4b09 ldr r3, [pc, #36] ; (8001fc8 ) - 8001fa4: 781b ldrb r3, [r3, #0] - 8001fa6: 461a mov r2, r3 - 8001fa8: 68fb ldr r3, [r7, #12] - 8001faa: 4413 add r3, r2 - 8001fac: 60fb str r3, [r7, #12] + 8002ec2: 4b09 ldr r3, [pc, #36] ; (8002ee8 ) + 8002ec4: 781b ldrb r3, [r3, #0] + 8002ec6: 461a mov r2, r3 + 8002ec8: 68fb ldr r3, [r7, #12] + 8002eca: 4413 add r3, r2 + 8002ecc: 60fb str r3, [r7, #12] } while((HAL_GetTick() - tickstart) < wait) - 8001fae: bf00 nop - 8001fb0: f7ff ffde bl 8001f70 - 8001fb4: 4602 mov r2, r0 - 8001fb6: 68bb ldr r3, [r7, #8] - 8001fb8: 1ad3 subs r3, r2, r3 - 8001fba: 68fa ldr r2, [r7, #12] - 8001fbc: 429a cmp r2, r3 - 8001fbe: d8f7 bhi.n 8001fb0 + 8002ece: bf00 nop + 8002ed0: f7ff ffde bl 8002e90 + 8002ed4: 4602 mov r2, r0 + 8002ed6: 68bb ldr r3, [r7, #8] + 8002ed8: 1ad3 subs r3, r2, r3 + 8002eda: 68fa ldr r2, [r7, #12] + 8002edc: 429a cmp r2, r3 + 8002ede: d8f7 bhi.n 8002ed0 { } } - 8001fc0: bf00 nop - 8001fc2: 3710 adds r7, #16 - 8001fc4: 46bd mov sp, r7 - 8001fc6: bd80 pop {r7, pc} - 8001fc8: 2000000c .word 0x2000000c + 8002ee0: bf00 nop + 8002ee2: 3710 adds r7, #16 + 8002ee4: 46bd mov sp, r7 + 8002ee6: bd80 pop {r7, pc} + 8002ee8: 2000000c .word 0x2000000c -08001fcc : +08002eec : * @param hadc pointer to a ADC_HandleTypeDef structure that contains * the configuration information for the specified ADC. * @retval HAL status */ HAL_StatusTypeDef HAL_ADC_Init(ADC_HandleTypeDef* hadc) { - 8001fcc: b580 push {r7, lr} - 8001fce: b084 sub sp, #16 - 8001fd0: af00 add r7, sp, #0 - 8001fd2: 6078 str r0, [r7, #4] + 8002eec: b580 push {r7, lr} + 8002eee: b084 sub sp, #16 + 8002ef0: af00 add r7, sp, #0 + 8002ef2: 6078 str r0, [r7, #4] HAL_StatusTypeDef tmp_hal_status = HAL_OK; - 8001fd4: 2300 movs r3, #0 - 8001fd6: 73fb strb r3, [r7, #15] + 8002ef4: 2300 movs r3, #0 + 8002ef6: 73fb strb r3, [r7, #15] /* Check ADC handle */ if(hadc == NULL) - 8001fd8: 687b ldr r3, [r7, #4] - 8001fda: 2b00 cmp r3, #0 - 8001fdc: d101 bne.n 8001fe2 + 8002ef8: 687b ldr r3, [r7, #4] + 8002efa: 2b00 cmp r3, #0 + 8002efc: d101 bne.n 8002f02 { return HAL_ERROR; - 8001fde: 2301 movs r3, #1 - 8001fe0: e033 b.n 800204a + 8002efe: 2301 movs r3, #1 + 8002f00: e033 b.n 8002f6a if(hadc->Init.ExternalTrigConv != ADC_SOFTWARE_START) { assert_param(IS_ADC_EXT_TRIG_EDGE(hadc->Init.ExternalTrigConvEdge)); } if(hadc->State == HAL_ADC_STATE_RESET) - 8001fe2: 687b ldr r3, [r7, #4] - 8001fe4: 6c1b ldr r3, [r3, #64] ; 0x40 - 8001fe6: 2b00 cmp r3, #0 - 8001fe8: d109 bne.n 8001ffe + 8002f02: 687b ldr r3, [r7, #4] + 8002f04: 6c1b ldr r3, [r3, #64] ; 0x40 + 8002f06: 2b00 cmp r3, #0 + 8002f08: d109 bne.n 8002f1e /* Init the low level hardware */ hadc->MspInitCallback(hadc); #else /* Init the low level hardware */ HAL_ADC_MspInit(hadc); - 8001fea: 6878 ldr r0, [r7, #4] - 8001fec: f7ff fdb2 bl 8001b54 + 8002f0a: 6878 ldr r0, [r7, #4] + 8002f0c: f7ff fdb2 bl 8002a74 #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ /* Initialize ADC error code */ ADC_CLEAR_ERRORCODE(hadc); - 8001ff0: 687b ldr r3, [r7, #4] - 8001ff2: 2200 movs r2, #0 - 8001ff4: 645a str r2, [r3, #68] ; 0x44 + 8002f10: 687b ldr r3, [r7, #4] + 8002f12: 2200 movs r2, #0 + 8002f14: 645a str r2, [r3, #68] ; 0x44 /* Allocate lock resource and initialize it */ hadc->Lock = HAL_UNLOCKED; - 8001ff6: 687b ldr r3, [r7, #4] - 8001ff8: 2200 movs r2, #0 - 8001ffa: f883 203c strb.w r2, [r3, #60] ; 0x3c + 8002f16: 687b ldr r3, [r7, #4] + 8002f18: 2200 movs r2, #0 + 8002f1a: f883 203c strb.w r2, [r3, #60] ; 0x3c } /* Configuration of ADC parameters if previous preliminary actions are */ /* correctly completed. */ if (HAL_IS_BIT_CLR(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL)) - 8001ffe: 687b ldr r3, [r7, #4] - 8002000: 6c1b ldr r3, [r3, #64] ; 0x40 - 8002002: f003 0310 and.w r3, r3, #16 - 8002006: 2b00 cmp r3, #0 - 8002008: d118 bne.n 800203c + 8002f1e: 687b ldr r3, [r7, #4] + 8002f20: 6c1b ldr r3, [r3, #64] ; 0x40 + 8002f22: f003 0310 and.w r3, r3, #16 + 8002f26: 2b00 cmp r3, #0 + 8002f28: d118 bne.n 8002f5c { /* Set ADC state */ ADC_STATE_CLR_SET(hadc->State, - 800200a: 687b ldr r3, [r7, #4] - 800200c: 6c1b ldr r3, [r3, #64] ; 0x40 - 800200e: f423 5388 bic.w r3, r3, #4352 ; 0x1100 - 8002012: f023 0302 bic.w r3, r3, #2 - 8002016: f043 0202 orr.w r2, r3, #2 - 800201a: 687b ldr r3, [r7, #4] - 800201c: 641a str r2, [r3, #64] ; 0x40 + 8002f2a: 687b ldr r3, [r7, #4] + 8002f2c: 6c1b ldr r3, [r3, #64] ; 0x40 + 8002f2e: f423 5388 bic.w r3, r3, #4352 ; 0x1100 + 8002f32: f023 0302 bic.w r3, r3, #2 + 8002f36: f043 0202 orr.w r2, r3, #2 + 8002f3a: 687b ldr r3, [r7, #4] + 8002f3c: 641a str r2, [r3, #64] ; 0x40 HAL_ADC_STATE_REG_BUSY | HAL_ADC_STATE_INJ_BUSY, HAL_ADC_STATE_BUSY_INTERNAL); /* Set ADC parameters */ ADC_Init(hadc); - 800201e: 6878 ldr r0, [r7, #4] - 8002020: f000 faa2 bl 8002568 + 8002f3e: 6878 ldr r0, [r7, #4] + 8002f40: f000 faa2 bl 8003488 /* Set ADC error code to none */ ADC_CLEAR_ERRORCODE(hadc); - 8002024: 687b ldr r3, [r7, #4] - 8002026: 2200 movs r2, #0 - 8002028: 645a str r2, [r3, #68] ; 0x44 + 8002f44: 687b ldr r3, [r7, #4] + 8002f46: 2200 movs r2, #0 + 8002f48: 645a str r2, [r3, #68] ; 0x44 /* Set the ADC state */ ADC_STATE_CLR_SET(hadc->State, - 800202a: 687b ldr r3, [r7, #4] - 800202c: 6c1b ldr r3, [r3, #64] ; 0x40 - 800202e: f023 0303 bic.w r3, r3, #3 - 8002032: f043 0201 orr.w r2, r3, #1 - 8002036: 687b ldr r3, [r7, #4] - 8002038: 641a str r2, [r3, #64] ; 0x40 - 800203a: e001 b.n 8002040 + 8002f4a: 687b ldr r3, [r7, #4] + 8002f4c: 6c1b ldr r3, [r3, #64] ; 0x40 + 8002f4e: f023 0303 bic.w r3, r3, #3 + 8002f52: f043 0201 orr.w r2, r3, #1 + 8002f56: 687b ldr r3, [r7, #4] + 8002f58: 641a str r2, [r3, #64] ; 0x40 + 8002f5a: e001 b.n 8002f60 HAL_ADC_STATE_BUSY_INTERNAL, HAL_ADC_STATE_READY); } else { tmp_hal_status = HAL_ERROR; - 800203c: 2301 movs r3, #1 - 800203e: 73fb strb r3, [r7, #15] + 8002f5c: 2301 movs r3, #1 + 8002f5e: 73fb strb r3, [r7, #15] } /* Release Lock */ __HAL_UNLOCK(hadc); - 8002040: 687b ldr r3, [r7, #4] - 8002042: 2200 movs r2, #0 - 8002044: f883 203c strb.w r2, [r3, #60] ; 0x3c + 8002f60: 687b ldr r3, [r7, #4] + 8002f62: 2200 movs r2, #0 + 8002f64: f883 203c strb.w r2, [r3, #60] ; 0x3c /* Return function status */ return tmp_hal_status; - 8002048: 7bfb ldrb r3, [r7, #15] + 8002f68: 7bfb ldrb r3, [r7, #15] } - 800204a: 4618 mov r0, r3 - 800204c: 3710 adds r7, #16 - 800204e: 46bd mov sp, r7 - 8002050: bd80 pop {r7, pc} + 8002f6a: 4618 mov r0, r3 + 8002f6c: 3710 adds r7, #16 + 8002f6e: 46bd mov sp, r7 + 8002f70: bd80 pop {r7, pc} ... -08002054 : +08002f74 : * @param hadc pointer to a ADC_HandleTypeDef structure that contains * the configuration information for the specified ADC. * @retval HAL status */ HAL_StatusTypeDef HAL_ADC_Start(ADC_HandleTypeDef* hadc) { - 8002054: b480 push {r7} - 8002056: b085 sub sp, #20 - 8002058: af00 add r7, sp, #0 - 800205a: 6078 str r0, [r7, #4] + 8002f74: b480 push {r7} + 8002f76: b085 sub sp, #20 + 8002f78: af00 add r7, sp, #0 + 8002f7a: 6078 str r0, [r7, #4] __IO uint32_t counter = 0U; - 800205c: 2300 movs r3, #0 - 800205e: 60bb str r3, [r7, #8] + 8002f7c: 2300 movs r3, #0 + 8002f7e: 60bb str r3, [r7, #8] /* Check the parameters */ assert_param(IS_FUNCTIONAL_STATE(hadc->Init.ContinuousConvMode)); assert_param(IS_ADC_EXT_TRIG_EDGE(hadc->Init.ExternalTrigConvEdge)); /* Process locked */ __HAL_LOCK(hadc); - 8002060: 687b ldr r3, [r7, #4] - 8002062: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 8002066: 2b01 cmp r3, #1 - 8002068: d101 bne.n 800206e - 800206a: 2302 movs r3, #2 - 800206c: e0a5 b.n 80021ba - 800206e: 687b ldr r3, [r7, #4] - 8002070: 2201 movs r2, #1 - 8002072: f883 203c strb.w r2, [r3, #60] ; 0x3c + 8002f80: 687b ldr r3, [r7, #4] + 8002f82: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 8002f86: 2b01 cmp r3, #1 + 8002f88: d101 bne.n 8002f8e + 8002f8a: 2302 movs r3, #2 + 8002f8c: e0a5 b.n 80030da + 8002f8e: 687b ldr r3, [r7, #4] + 8002f90: 2201 movs r2, #1 + 8002f92: f883 203c strb.w r2, [r3, #60] ; 0x3c /* Enable the ADC peripheral */ /* Check if ADC peripheral is disabled in order to enable it and wait during Tstab time the ADC's stabilization */ if((hadc->Instance->CR2 & ADC_CR2_ADON) != ADC_CR2_ADON) - 8002076: 687b ldr r3, [r7, #4] - 8002078: 681b ldr r3, [r3, #0] - 800207a: 689b ldr r3, [r3, #8] - 800207c: f003 0301 and.w r3, r3, #1 - 8002080: 2b01 cmp r3, #1 - 8002082: d018 beq.n 80020b6 + 8002f96: 687b ldr r3, [r7, #4] + 8002f98: 681b ldr r3, [r3, #0] + 8002f9a: 689b ldr r3, [r3, #8] + 8002f9c: f003 0301 and.w r3, r3, #1 + 8002fa0: 2b01 cmp r3, #1 + 8002fa2: d018 beq.n 8002fd6 { /* Enable the Peripheral */ __HAL_ADC_ENABLE(hadc); - 8002084: 687b ldr r3, [r7, #4] - 8002086: 681b ldr r3, [r3, #0] - 8002088: 689a ldr r2, [r3, #8] - 800208a: 687b ldr r3, [r7, #4] - 800208c: 681b ldr r3, [r3, #0] - 800208e: f042 0201 orr.w r2, r2, #1 - 8002092: 609a str r2, [r3, #8] + 8002fa4: 687b ldr r3, [r7, #4] + 8002fa6: 681b ldr r3, [r3, #0] + 8002fa8: 689a ldr r2, [r3, #8] + 8002faa: 687b ldr r3, [r7, #4] + 8002fac: 681b ldr r3, [r3, #0] + 8002fae: f042 0201 orr.w r2, r2, #1 + 8002fb2: 609a str r2, [r3, #8] /* Delay for ADC stabilization time */ /* Compute number of CPU cycles to wait for */ counter = (ADC_STAB_DELAY_US * (SystemCoreClock / 1000000U)); - 8002094: 4b4c ldr r3, [pc, #304] ; (80021c8 ) - 8002096: 681b ldr r3, [r3, #0] - 8002098: 4a4c ldr r2, [pc, #304] ; (80021cc ) - 800209a: fba2 2303 umull r2, r3, r2, r3 - 800209e: 0c9a lsrs r2, r3, #18 - 80020a0: 4613 mov r3, r2 - 80020a2: 005b lsls r3, r3, #1 - 80020a4: 4413 add r3, r2 - 80020a6: 60bb str r3, [r7, #8] + 8002fb4: 4b4c ldr r3, [pc, #304] ; (80030e8 ) + 8002fb6: 681b ldr r3, [r3, #0] + 8002fb8: 4a4c ldr r2, [pc, #304] ; (80030ec ) + 8002fba: fba2 2303 umull r2, r3, r2, r3 + 8002fbe: 0c9a lsrs r2, r3, #18 + 8002fc0: 4613 mov r3, r2 + 8002fc2: 005b lsls r3, r3, #1 + 8002fc4: 4413 add r3, r2 + 8002fc6: 60bb str r3, [r7, #8] while(counter != 0U) - 80020a8: e002 b.n 80020b0 + 8002fc8: e002 b.n 8002fd0 { counter--; - 80020aa: 68bb ldr r3, [r7, #8] - 80020ac: 3b01 subs r3, #1 - 80020ae: 60bb str r3, [r7, #8] + 8002fca: 68bb ldr r3, [r7, #8] + 8002fcc: 3b01 subs r3, #1 + 8002fce: 60bb str r3, [r7, #8] while(counter != 0U) - 80020b0: 68bb ldr r3, [r7, #8] - 80020b2: 2b00 cmp r3, #0 - 80020b4: d1f9 bne.n 80020aa + 8002fd0: 68bb ldr r3, [r7, #8] + 8002fd2: 2b00 cmp r3, #0 + 8002fd4: d1f9 bne.n 8002fca } } /* Start conversion if ADC is effectively enabled */ if(HAL_IS_BIT_SET(hadc->Instance->CR2, ADC_CR2_ADON)) - 80020b6: 687b ldr r3, [r7, #4] - 80020b8: 681b ldr r3, [r3, #0] - 80020ba: 689b ldr r3, [r3, #8] - 80020bc: f003 0301 and.w r3, r3, #1 - 80020c0: 2b01 cmp r3, #1 - 80020c2: d179 bne.n 80021b8 + 8002fd6: 687b ldr r3, [r7, #4] + 8002fd8: 681b ldr r3, [r3, #0] + 8002fda: 689b ldr r3, [r3, #8] + 8002fdc: f003 0301 and.w r3, r3, #1 + 8002fe0: 2b01 cmp r3, #1 + 8002fe2: d179 bne.n 80030d8 { /* Set ADC state */ /* - Clear state bitfield related to regular group conversion results */ /* - Set state bitfield related to regular group operation */ ADC_STATE_CLR_SET(hadc->State, - 80020c4: 687b ldr r3, [r7, #4] - 80020c6: 6c1b ldr r3, [r3, #64] ; 0x40 - 80020c8: f423 63e0 bic.w r3, r3, #1792 ; 0x700 - 80020cc: f023 0301 bic.w r3, r3, #1 - 80020d0: f443 7280 orr.w r2, r3, #256 ; 0x100 - 80020d4: 687b ldr r3, [r7, #4] - 80020d6: 641a str r2, [r3, #64] ; 0x40 + 8002fe4: 687b ldr r3, [r7, #4] + 8002fe6: 6c1b ldr r3, [r3, #64] ; 0x40 + 8002fe8: f423 63e0 bic.w r3, r3, #1792 ; 0x700 + 8002fec: f023 0301 bic.w r3, r3, #1 + 8002ff0: f443 7280 orr.w r2, r3, #256 ; 0x100 + 8002ff4: 687b ldr r3, [r7, #4] + 8002ff6: 641a str r2, [r3, #64] ; 0x40 HAL_ADC_STATE_READY | HAL_ADC_STATE_REG_EOC | HAL_ADC_STATE_REG_OVR, HAL_ADC_STATE_REG_BUSY); /* If conversions on group regular are also triggering group injected, */ /* update ADC state. */ if (READ_BIT(hadc->Instance->CR1, ADC_CR1_JAUTO) != RESET) - 80020d8: 687b ldr r3, [r7, #4] - 80020da: 681b ldr r3, [r3, #0] - 80020dc: 685b ldr r3, [r3, #4] - 80020de: f403 6380 and.w r3, r3, #1024 ; 0x400 - 80020e2: 2b00 cmp r3, #0 - 80020e4: d007 beq.n 80020f6 + 8002ff8: 687b ldr r3, [r7, #4] + 8002ffa: 681b ldr r3, [r3, #0] + 8002ffc: 685b ldr r3, [r3, #4] + 8002ffe: f403 6380 and.w r3, r3, #1024 ; 0x400 + 8003002: 2b00 cmp r3, #0 + 8003004: d007 beq.n 8003016 { ADC_STATE_CLR_SET(hadc->State, HAL_ADC_STATE_INJ_EOC, HAL_ADC_STATE_INJ_BUSY); - 80020e6: 687b ldr r3, [r7, #4] - 80020e8: 6c1b ldr r3, [r3, #64] ; 0x40 - 80020ea: f423 5340 bic.w r3, r3, #12288 ; 0x3000 - 80020ee: f443 5280 orr.w r2, r3, #4096 ; 0x1000 - 80020f2: 687b ldr r3, [r7, #4] - 80020f4: 641a str r2, [r3, #64] ; 0x40 + 8003006: 687b ldr r3, [r7, #4] + 8003008: 6c1b ldr r3, [r3, #64] ; 0x40 + 800300a: f423 5340 bic.w r3, r3, #12288 ; 0x3000 + 800300e: f443 5280 orr.w r2, r3, #4096 ; 0x1000 + 8003012: 687b ldr r3, [r7, #4] + 8003014: 641a str r2, [r3, #64] ; 0x40 } /* State machine update: Check if an injected conversion is ongoing */ if (HAL_IS_BIT_SET(hadc->State, HAL_ADC_STATE_INJ_BUSY)) - 80020f6: 687b ldr r3, [r7, #4] - 80020f8: 6c1b ldr r3, [r3, #64] ; 0x40 - 80020fa: f403 5380 and.w r3, r3, #4096 ; 0x1000 - 80020fe: f5b3 5f80 cmp.w r3, #4096 ; 0x1000 - 8002102: d106 bne.n 8002112 + 8003016: 687b ldr r3, [r7, #4] + 8003018: 6c1b ldr r3, [r3, #64] ; 0x40 + 800301a: f403 5380 and.w r3, r3, #4096 ; 0x1000 + 800301e: f5b3 5f80 cmp.w r3, #4096 ; 0x1000 + 8003022: d106 bne.n 8003032 { /* Reset ADC error code fields related to conversions on group regular */ CLEAR_BIT(hadc->ErrorCode, (HAL_ADC_ERROR_OVR | HAL_ADC_ERROR_DMA)); - 8002104: 687b ldr r3, [r7, #4] - 8002106: 6c5b ldr r3, [r3, #68] ; 0x44 - 8002108: f023 0206 bic.w r2, r3, #6 - 800210c: 687b ldr r3, [r7, #4] - 800210e: 645a str r2, [r3, #68] ; 0x44 - 8002110: e002 b.n 8002118 + 8003024: 687b ldr r3, [r7, #4] + 8003026: 6c5b ldr r3, [r3, #68] ; 0x44 + 8003028: f023 0206 bic.w r2, r3, #6 + 800302c: 687b ldr r3, [r7, #4] + 800302e: 645a str r2, [r3, #68] ; 0x44 + 8003030: e002 b.n 8003038 } else { /* Reset ADC all error code fields */ ADC_CLEAR_ERRORCODE(hadc); - 8002112: 687b ldr r3, [r7, #4] - 8002114: 2200 movs r2, #0 - 8002116: 645a str r2, [r3, #68] ; 0x44 + 8003032: 687b ldr r3, [r7, #4] + 8003034: 2200 movs r2, #0 + 8003036: 645a str r2, [r3, #68] ; 0x44 } /* Process unlocked */ /* Unlock before starting ADC conversions: in case of potential */ /* interruption, to let the process to ADC IRQ Handler. */ __HAL_UNLOCK(hadc); - 8002118: 687b ldr r3, [r7, #4] - 800211a: 2200 movs r2, #0 - 800211c: f883 203c strb.w r2, [r3, #60] ; 0x3c + 8003038: 687b ldr r3, [r7, #4] + 800303a: 2200 movs r2, #0 + 800303c: f883 203c strb.w r2, [r3, #60] ; 0x3c /* Pointer to the common control register to which is belonging hadc */ /* (Depending on STM32F4 product, there may be up to 3 ADCs and 1 common */ /* control register) */ tmpADC_Common = ADC_COMMON_REGISTER(hadc); - 8002120: 4b2b ldr r3, [pc, #172] ; (80021d0 ) - 8002122: 60fb str r3, [r7, #12] + 8003040: 4b2b ldr r3, [pc, #172] ; (80030f0 ) + 8003042: 60fb str r3, [r7, #12] /* Clear regular group conversion flag and overrun flag */ /* (To ensure of no unknown state from potential previous ADC operations) */ __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_EOC | ADC_FLAG_OVR); - 8002124: 687b ldr r3, [r7, #4] - 8002126: 681b ldr r3, [r3, #0] - 8002128: f06f 0222 mvn.w r2, #34 ; 0x22 - 800212c: 601a str r2, [r3, #0] + 8003044: 687b ldr r3, [r7, #4] + 8003046: 681b ldr r3, [r3, #0] + 8003048: f06f 0222 mvn.w r2, #34 ; 0x22 + 800304c: 601a str r2, [r3, #0] /* Check if Multimode enabled */ if(HAL_IS_BIT_CLR(tmpADC_Common->CCR, ADC_CCR_MULTI)) - 800212e: 68fb ldr r3, [r7, #12] - 8002130: 685b ldr r3, [r3, #4] - 8002132: f003 031f and.w r3, r3, #31 - 8002136: 2b00 cmp r3, #0 - 8002138: d12a bne.n 8002190 + 800304e: 68fb ldr r3, [r7, #12] + 8003050: 685b ldr r3, [r3, #4] + 8003052: f003 031f and.w r3, r3, #31 + 8003056: 2b00 cmp r3, #0 + 8003058: d12a bne.n 80030b0 { #if defined(ADC2) && defined(ADC3) if((hadc->Instance == ADC1) || ((hadc->Instance == ADC2) && ((ADC->CCR & ADC_CCR_MULTI_Msk) < ADC_CCR_MULTI_0)) \ - 800213a: 687b ldr r3, [r7, #4] - 800213c: 681b ldr r3, [r3, #0] - 800213e: 4a25 ldr r2, [pc, #148] ; (80021d4 ) - 8002140: 4293 cmp r3, r2 - 8002142: d015 beq.n 8002170 - 8002144: 687b ldr r3, [r7, #4] - 8002146: 681b ldr r3, [r3, #0] - 8002148: 4a23 ldr r2, [pc, #140] ; (80021d8 ) - 800214a: 4293 cmp r3, r2 - 800214c: d105 bne.n 800215a - 800214e: 4b20 ldr r3, [pc, #128] ; (80021d0 ) - 8002150: 685b ldr r3, [r3, #4] - 8002152: f003 031f and.w r3, r3, #31 - 8002156: 2b00 cmp r3, #0 - 8002158: d00a beq.n 8002170 + 800305a: 687b ldr r3, [r7, #4] + 800305c: 681b ldr r3, [r3, #0] + 800305e: 4a25 ldr r2, [pc, #148] ; (80030f4 ) + 8003060: 4293 cmp r3, r2 + 8003062: d015 beq.n 8003090 + 8003064: 687b ldr r3, [r7, #4] + 8003066: 681b ldr r3, [r3, #0] + 8003068: 4a23 ldr r2, [pc, #140] ; (80030f8 ) + 800306a: 4293 cmp r3, r2 + 800306c: d105 bne.n 800307a + 800306e: 4b20 ldr r3, [pc, #128] ; (80030f0 ) + 8003070: 685b ldr r3, [r3, #4] + 8003072: f003 031f and.w r3, r3, #31 + 8003076: 2b00 cmp r3, #0 + 8003078: d00a beq.n 8003090 || ((hadc->Instance == ADC3) && ((ADC->CCR & ADC_CCR_MULTI_Msk) < ADC_CCR_MULTI_4))) - 800215a: 687b ldr r3, [r7, #4] - 800215c: 681b ldr r3, [r3, #0] - 800215e: 4a1f ldr r2, [pc, #124] ; (80021dc ) - 8002160: 4293 cmp r3, r2 - 8002162: d129 bne.n 80021b8 - 8002164: 4b1a ldr r3, [pc, #104] ; (80021d0 ) - 8002166: 685b ldr r3, [r3, #4] - 8002168: f003 031f and.w r3, r3, #31 - 800216c: 2b0f cmp r3, #15 - 800216e: d823 bhi.n 80021b8 + 800307a: 687b ldr r3, [r7, #4] + 800307c: 681b ldr r3, [r3, #0] + 800307e: 4a1f ldr r2, [pc, #124] ; (80030fc ) + 8003080: 4293 cmp r3, r2 + 8003082: d129 bne.n 80030d8 + 8003084: 4b1a ldr r3, [pc, #104] ; (80030f0 ) + 8003086: 685b ldr r3, [r3, #4] + 8003088: f003 031f and.w r3, r3, #31 + 800308c: 2b0f cmp r3, #15 + 800308e: d823 bhi.n 80030d8 { #endif /* ADC2 || ADC3 */ /* if no external trigger present enable software conversion of regular channels */ if((hadc->Instance->CR2 & ADC_CR2_EXTEN) == RESET) - 8002170: 687b ldr r3, [r7, #4] - 8002172: 681b ldr r3, [r3, #0] - 8002174: 689b ldr r3, [r3, #8] - 8002176: f003 5340 and.w r3, r3, #805306368 ; 0x30000000 - 800217a: 2b00 cmp r3, #0 - 800217c: d11c bne.n 80021b8 + 8003090: 687b ldr r3, [r7, #4] + 8003092: 681b ldr r3, [r3, #0] + 8003094: 689b ldr r3, [r3, #8] + 8003096: f003 5340 and.w r3, r3, #805306368 ; 0x30000000 + 800309a: 2b00 cmp r3, #0 + 800309c: d11c bne.n 80030d8 { /* Enable the selected ADC software conversion for regular group */ hadc->Instance->CR2 |= (uint32_t)ADC_CR2_SWSTART; - 800217e: 687b ldr r3, [r7, #4] - 8002180: 681b ldr r3, [r3, #0] - 8002182: 689a ldr r2, [r3, #8] - 8002184: 687b ldr r3, [r7, #4] - 8002186: 681b ldr r3, [r3, #0] - 8002188: f042 4280 orr.w r2, r2, #1073741824 ; 0x40000000 - 800218c: 609a str r2, [r3, #8] - 800218e: e013 b.n 80021b8 + 800309e: 687b ldr r3, [r7, #4] + 80030a0: 681b ldr r3, [r3, #0] + 80030a2: 689a ldr r2, [r3, #8] + 80030a4: 687b ldr r3, [r7, #4] + 80030a6: 681b ldr r3, [r3, #0] + 80030a8: f042 4280 orr.w r2, r2, #1073741824 ; 0x40000000 + 80030ac: 609a str r2, [r3, #8] + 80030ae: e013 b.n 80030d8 #endif /* ADC2 || ADC3 */ } else { /* if instance of handle correspond to ADC1 and no external trigger present enable software conversion of regular channels */ if((hadc->Instance == ADC1) && ((hadc->Instance->CR2 & ADC_CR2_EXTEN) == RESET)) - 8002190: 687b ldr r3, [r7, #4] - 8002192: 681b ldr r3, [r3, #0] - 8002194: 4a0f ldr r2, [pc, #60] ; (80021d4 ) - 8002196: 4293 cmp r3, r2 - 8002198: d10e bne.n 80021b8 - 800219a: 687b ldr r3, [r7, #4] - 800219c: 681b ldr r3, [r3, #0] - 800219e: 689b ldr r3, [r3, #8] - 80021a0: f003 5340 and.w r3, r3, #805306368 ; 0x30000000 - 80021a4: 2b00 cmp r3, #0 - 80021a6: d107 bne.n 80021b8 + 80030b0: 687b ldr r3, [r7, #4] + 80030b2: 681b ldr r3, [r3, #0] + 80030b4: 4a0f ldr r2, [pc, #60] ; (80030f4 ) + 80030b6: 4293 cmp r3, r2 + 80030b8: d10e bne.n 80030d8 + 80030ba: 687b ldr r3, [r7, #4] + 80030bc: 681b ldr r3, [r3, #0] + 80030be: 689b ldr r3, [r3, #8] + 80030c0: f003 5340 and.w r3, r3, #805306368 ; 0x30000000 + 80030c4: 2b00 cmp r3, #0 + 80030c6: d107 bne.n 80030d8 { /* Enable the selected ADC software conversion for regular group */ hadc->Instance->CR2 |= (uint32_t)ADC_CR2_SWSTART; - 80021a8: 687b ldr r3, [r7, #4] - 80021aa: 681b ldr r3, [r3, #0] - 80021ac: 689a ldr r2, [r3, #8] - 80021ae: 687b ldr r3, [r7, #4] - 80021b0: 681b ldr r3, [r3, #0] - 80021b2: f042 4280 orr.w r2, r2, #1073741824 ; 0x40000000 - 80021b6: 609a str r2, [r3, #8] + 80030c8: 687b ldr r3, [r7, #4] + 80030ca: 681b ldr r3, [r3, #0] + 80030cc: 689a ldr r2, [r3, #8] + 80030ce: 687b ldr r3, [r7, #4] + 80030d0: 681b ldr r3, [r3, #0] + 80030d2: f042 4280 orr.w r2, r2, #1073741824 ; 0x40000000 + 80030d6: 609a str r2, [r3, #8] } } } /* Return function status */ return HAL_OK; - 80021b8: 2300 movs r3, #0 + 80030d8: 2300 movs r3, #0 } - 80021ba: 4618 mov r0, r3 - 80021bc: 3714 adds r7, #20 - 80021be: 46bd mov sp, r7 - 80021c0: f85d 7b04 ldr.w r7, [sp], #4 - 80021c4: 4770 bx lr - 80021c6: bf00 nop - 80021c8: 20000004 .word 0x20000004 - 80021cc: 431bde83 .word 0x431bde83 - 80021d0: 40012300 .word 0x40012300 - 80021d4: 40012000 .word 0x40012000 - 80021d8: 40012100 .word 0x40012100 - 80021dc: 40012200 .word 0x40012200 + 80030da: 4618 mov r0, r3 + 80030dc: 3714 adds r7, #20 + 80030de: 46bd mov sp, r7 + 80030e0: f85d 7b04 ldr.w r7, [sp], #4 + 80030e4: 4770 bx lr + 80030e6: bf00 nop + 80030e8: 20000004 .word 0x20000004 + 80030ec: 431bde83 .word 0x431bde83 + 80030f0: 40012300 .word 0x40012300 + 80030f4: 40012000 .word 0x40012000 + 80030f8: 40012100 .word 0x40012100 + 80030fc: 40012200 .word 0x40012200 -080021e0 : +08003100 : * the configuration information for the specified ADC. * @param Timeout Timeout value in millisecond. * @retval HAL status */ HAL_StatusTypeDef HAL_ADC_PollForConversion(ADC_HandleTypeDef* hadc, uint32_t Timeout) { - 80021e0: b580 push {r7, lr} - 80021e2: b084 sub sp, #16 - 80021e4: af00 add r7, sp, #0 - 80021e6: 6078 str r0, [r7, #4] - 80021e8: 6039 str r1, [r7, #0] + 8003100: b580 push {r7, lr} + 8003102: b084 sub sp, #16 + 8003104: af00 add r7, sp, #0 + 8003106: 6078 str r0, [r7, #4] + 8003108: 6039 str r1, [r7, #0] uint32_t tickstart = 0U; - 80021ea: 2300 movs r3, #0 - 80021ec: 60fb str r3, [r7, #12] + 800310a: 2300 movs r3, #0 + 800310c: 60fb str r3, [r7, #12] /* each conversion: */ /* Particular case is ADC configured in DMA mode and ADC sequencer with */ /* several ranks and polling for end of each conversion. */ /* For code simplicity sake, this particular case is generalized to */ /* ADC configured in DMA mode and polling for end of each conversion. */ if (HAL_IS_BIT_SET(hadc->Instance->CR2, ADC_CR2_EOCS) && - 80021ee: 687b ldr r3, [r7, #4] - 80021f0: 681b ldr r3, [r3, #0] - 80021f2: 689b ldr r3, [r3, #8] - 80021f4: f403 6380 and.w r3, r3, #1024 ; 0x400 - 80021f8: f5b3 6f80 cmp.w r3, #1024 ; 0x400 - 80021fc: d113 bne.n 8002226 + 800310e: 687b ldr r3, [r7, #4] + 8003110: 681b ldr r3, [r3, #0] + 8003112: 689b ldr r3, [r3, #8] + 8003114: f403 6380 and.w r3, r3, #1024 ; 0x400 + 8003118: f5b3 6f80 cmp.w r3, #1024 ; 0x400 + 800311c: d113 bne.n 8003146 HAL_IS_BIT_SET(hadc->Instance->CR2, ADC_CR2_DMA) ) - 80021fe: 687b ldr r3, [r7, #4] - 8002200: 681b ldr r3, [r3, #0] - 8002202: 689b ldr r3, [r3, #8] - 8002204: f403 7380 and.w r3, r3, #256 ; 0x100 + 800311e: 687b ldr r3, [r7, #4] + 8003120: 681b ldr r3, [r3, #0] + 8003122: 689b ldr r3, [r3, #8] + 8003124: f403 7380 and.w r3, r3, #256 ; 0x100 if (HAL_IS_BIT_SET(hadc->Instance->CR2, ADC_CR2_EOCS) && - 8002208: f5b3 7f80 cmp.w r3, #256 ; 0x100 - 800220c: d10b bne.n 8002226 + 8003128: f5b3 7f80 cmp.w r3, #256 ; 0x100 + 800312c: d10b bne.n 8003146 { /* Update ADC state machine to error */ SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); - 800220e: 687b ldr r3, [r7, #4] - 8002210: 6c1b ldr r3, [r3, #64] ; 0x40 - 8002212: f043 0220 orr.w r2, r3, #32 - 8002216: 687b ldr r3, [r7, #4] - 8002218: 641a str r2, [r3, #64] ; 0x40 + 800312e: 687b ldr r3, [r7, #4] + 8003130: 6c1b ldr r3, [r3, #64] ; 0x40 + 8003132: f043 0220 orr.w r2, r3, #32 + 8003136: 687b ldr r3, [r7, #4] + 8003138: 641a str r2, [r3, #64] ; 0x40 /* Process unlocked */ __HAL_UNLOCK(hadc); - 800221a: 687b ldr r3, [r7, #4] - 800221c: 2200 movs r2, #0 - 800221e: f883 203c strb.w r2, [r3, #60] ; 0x3c + 800313a: 687b ldr r3, [r7, #4] + 800313c: 2200 movs r2, #0 + 800313e: f883 203c strb.w r2, [r3, #60] ; 0x3c return HAL_ERROR; - 8002222: 2301 movs r3, #1 - 8002224: e05c b.n 80022e0 + 8003142: 2301 movs r3, #1 + 8003144: e05c b.n 8003200 } /* Get tick */ tickstart = HAL_GetTick(); - 8002226: f7ff fea3 bl 8001f70 - 800222a: 60f8 str r0, [r7, #12] + 8003146: f7ff fea3 bl 8002e90 + 800314a: 60f8 str r0, [r7, #12] /* Check End of conversion flag */ while(!(__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_EOC))) - 800222c: e01a b.n 8002264 + 800314c: e01a b.n 8003184 { /* Check if timeout is disabled (set to infinite wait) */ if(Timeout != HAL_MAX_DELAY) - 800222e: 683b ldr r3, [r7, #0] - 8002230: f1b3 3fff cmp.w r3, #4294967295 - 8002234: d016 beq.n 8002264 + 800314e: 683b ldr r3, [r7, #0] + 8003150: f1b3 3fff cmp.w r3, #4294967295 + 8003154: d016 beq.n 8003184 { if((Timeout == 0U) || ((HAL_GetTick() - tickstart ) > Timeout)) - 8002236: 683b ldr r3, [r7, #0] - 8002238: 2b00 cmp r3, #0 - 800223a: d007 beq.n 800224c - 800223c: f7ff fe98 bl 8001f70 - 8002240: 4602 mov r2, r0 - 8002242: 68fb ldr r3, [r7, #12] - 8002244: 1ad3 subs r3, r2, r3 - 8002246: 683a ldr r2, [r7, #0] - 8002248: 429a cmp r2, r3 - 800224a: d20b bcs.n 8002264 + 8003156: 683b ldr r3, [r7, #0] + 8003158: 2b00 cmp r3, #0 + 800315a: d007 beq.n 800316c + 800315c: f7ff fe98 bl 8002e90 + 8003160: 4602 mov r2, r0 + 8003162: 68fb ldr r3, [r7, #12] + 8003164: 1ad3 subs r3, r2, r3 + 8003166: 683a ldr r2, [r7, #0] + 8003168: 429a cmp r2, r3 + 800316a: d20b bcs.n 8003184 { /* Update ADC state machine to timeout */ SET_BIT(hadc->State, HAL_ADC_STATE_TIMEOUT); - 800224c: 687b ldr r3, [r7, #4] - 800224e: 6c1b ldr r3, [r3, #64] ; 0x40 - 8002250: f043 0204 orr.w r2, r3, #4 - 8002254: 687b ldr r3, [r7, #4] - 8002256: 641a str r2, [r3, #64] ; 0x40 + 800316c: 687b ldr r3, [r7, #4] + 800316e: 6c1b ldr r3, [r3, #64] ; 0x40 + 8003170: f043 0204 orr.w r2, r3, #4 + 8003174: 687b ldr r3, [r7, #4] + 8003176: 641a str r2, [r3, #64] ; 0x40 /* Process unlocked */ __HAL_UNLOCK(hadc); - 8002258: 687b ldr r3, [r7, #4] - 800225a: 2200 movs r2, #0 - 800225c: f883 203c strb.w r2, [r3, #60] ; 0x3c + 8003178: 687b ldr r3, [r7, #4] + 800317a: 2200 movs r2, #0 + 800317c: f883 203c strb.w r2, [r3, #60] ; 0x3c return HAL_TIMEOUT; - 8002260: 2303 movs r3, #3 - 8002262: e03d b.n 80022e0 + 8003180: 2303 movs r3, #3 + 8003182: e03d b.n 8003200 while(!(__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_EOC))) - 8002264: 687b ldr r3, [r7, #4] - 8002266: 681b ldr r3, [r3, #0] - 8002268: 681b ldr r3, [r3, #0] - 800226a: f003 0302 and.w r3, r3, #2 - 800226e: 2b02 cmp r3, #2 - 8002270: d1dd bne.n 800222e + 8003184: 687b ldr r3, [r7, #4] + 8003186: 681b ldr r3, [r3, #0] + 8003188: 681b ldr r3, [r3, #0] + 800318a: f003 0302 and.w r3, r3, #2 + 800318e: 2b02 cmp r3, #2 + 8003190: d1dd bne.n 800314e } } } /* Clear regular group conversion flag */ __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_STRT | ADC_FLAG_EOC); - 8002272: 687b ldr r3, [r7, #4] - 8002274: 681b ldr r3, [r3, #0] - 8002276: f06f 0212 mvn.w r2, #18 - 800227a: 601a str r2, [r3, #0] + 8003192: 687b ldr r3, [r7, #4] + 8003194: 681b ldr r3, [r3, #0] + 8003196: f06f 0212 mvn.w r2, #18 + 800319a: 601a str r2, [r3, #0] /* Update ADC state machine */ SET_BIT(hadc->State, HAL_ADC_STATE_REG_EOC); - 800227c: 687b ldr r3, [r7, #4] - 800227e: 6c1b ldr r3, [r3, #64] ; 0x40 - 8002280: f443 7200 orr.w r2, r3, #512 ; 0x200 - 8002284: 687b ldr r3, [r7, #4] - 8002286: 641a str r2, [r3, #64] ; 0x40 + 800319c: 687b ldr r3, [r7, #4] + 800319e: 6c1b ldr r3, [r3, #64] ; 0x40 + 80031a0: f443 7200 orr.w r2, r3, #512 ; 0x200 + 80031a4: 687b ldr r3, [r7, #4] + 80031a6: 641a str r2, [r3, #64] ; 0x40 /* by external trigger, continuous mode or scan sequence on going. */ /* Note: On STM32F4, there is no independent flag of end of sequence. */ /* The test of scan sequence on going is done either with scan */ /* sequence disabled or with end of conversion flag set to */ /* of end of sequence. */ if(ADC_IS_SOFTWARE_START_REGULAR(hadc) && - 8002288: 687b ldr r3, [r7, #4] - 800228a: 681b ldr r3, [r3, #0] - 800228c: 689b ldr r3, [r3, #8] - 800228e: f003 5340 and.w r3, r3, #805306368 ; 0x30000000 - 8002292: 2b00 cmp r3, #0 - 8002294: d123 bne.n 80022de + 80031a8: 687b ldr r3, [r7, #4] + 80031aa: 681b ldr r3, [r3, #0] + 80031ac: 689b ldr r3, [r3, #8] + 80031ae: f003 5340 and.w r3, r3, #805306368 ; 0x30000000 + 80031b2: 2b00 cmp r3, #0 + 80031b4: d123 bne.n 80031fe (hadc->Init.ContinuousConvMode == DISABLE) && - 8002296: 687b ldr r3, [r7, #4] - 8002298: 7e1b ldrb r3, [r3, #24] + 80031b6: 687b ldr r3, [r7, #4] + 80031b8: 7e1b ldrb r3, [r3, #24] if(ADC_IS_SOFTWARE_START_REGULAR(hadc) && - 800229a: 2b00 cmp r3, #0 - 800229c: d11f bne.n 80022de + 80031ba: 2b00 cmp r3, #0 + 80031bc: d11f bne.n 80031fe (HAL_IS_BIT_CLR(hadc->Instance->SQR1, ADC_SQR1_L) || - 800229e: 687b ldr r3, [r7, #4] - 80022a0: 681b ldr r3, [r3, #0] - 80022a2: 6adb ldr r3, [r3, #44] ; 0x2c - 80022a4: f403 0370 and.w r3, r3, #15728640 ; 0xf00000 + 80031be: 687b ldr r3, [r7, #4] + 80031c0: 681b ldr r3, [r3, #0] + 80031c2: 6adb ldr r3, [r3, #44] ; 0x2c + 80031c4: f403 0370 and.w r3, r3, #15728640 ; 0xf00000 (hadc->Init.ContinuousConvMode == DISABLE) && - 80022a8: 2b00 cmp r3, #0 - 80022aa: d006 beq.n 80022ba + 80031c8: 2b00 cmp r3, #0 + 80031ca: d006 beq.n 80031da HAL_IS_BIT_CLR(hadc->Instance->CR2, ADC_CR2_EOCS) ) ) - 80022ac: 687b ldr r3, [r7, #4] - 80022ae: 681b ldr r3, [r3, #0] - 80022b0: 689b ldr r3, [r3, #8] - 80022b2: f403 6380 and.w r3, r3, #1024 ; 0x400 + 80031cc: 687b ldr r3, [r7, #4] + 80031ce: 681b ldr r3, [r3, #0] + 80031d0: 689b ldr r3, [r3, #8] + 80031d2: f403 6380 and.w r3, r3, #1024 ; 0x400 (HAL_IS_BIT_CLR(hadc->Instance->SQR1, ADC_SQR1_L) || - 80022b6: 2b00 cmp r3, #0 - 80022b8: d111 bne.n 80022de + 80031d6: 2b00 cmp r3, #0 + 80031d8: d111 bne.n 80031fe { /* Set ADC state */ CLEAR_BIT(hadc->State, HAL_ADC_STATE_REG_BUSY); - 80022ba: 687b ldr r3, [r7, #4] - 80022bc: 6c1b ldr r3, [r3, #64] ; 0x40 - 80022be: f423 7280 bic.w r2, r3, #256 ; 0x100 - 80022c2: 687b ldr r3, [r7, #4] - 80022c4: 641a str r2, [r3, #64] ; 0x40 + 80031da: 687b ldr r3, [r7, #4] + 80031dc: 6c1b ldr r3, [r3, #64] ; 0x40 + 80031de: f423 7280 bic.w r2, r3, #256 ; 0x100 + 80031e2: 687b ldr r3, [r7, #4] + 80031e4: 641a str r2, [r3, #64] ; 0x40 if (HAL_IS_BIT_CLR(hadc->State, HAL_ADC_STATE_INJ_BUSY)) - 80022c6: 687b ldr r3, [r7, #4] - 80022c8: 6c1b ldr r3, [r3, #64] ; 0x40 - 80022ca: f403 5380 and.w r3, r3, #4096 ; 0x1000 - 80022ce: 2b00 cmp r3, #0 - 80022d0: d105 bne.n 80022de + 80031e6: 687b ldr r3, [r7, #4] + 80031e8: 6c1b ldr r3, [r3, #64] ; 0x40 + 80031ea: f403 5380 and.w r3, r3, #4096 ; 0x1000 + 80031ee: 2b00 cmp r3, #0 + 80031f0: d105 bne.n 80031fe { SET_BIT(hadc->State, HAL_ADC_STATE_READY); - 80022d2: 687b ldr r3, [r7, #4] - 80022d4: 6c1b ldr r3, [r3, #64] ; 0x40 - 80022d6: f043 0201 orr.w r2, r3, #1 - 80022da: 687b ldr r3, [r7, #4] - 80022dc: 641a str r2, [r3, #64] ; 0x40 + 80031f2: 687b ldr r3, [r7, #4] + 80031f4: 6c1b ldr r3, [r3, #64] ; 0x40 + 80031f6: f043 0201 orr.w r2, r3, #1 + 80031fa: 687b ldr r3, [r7, #4] + 80031fc: 641a str r2, [r3, #64] ; 0x40 } } /* Return ADC state */ return HAL_OK; - 80022de: 2300 movs r3, #0 + 80031fe: 2300 movs r3, #0 } - 80022e0: 4618 mov r0, r3 - 80022e2: 3710 adds r7, #16 - 80022e4: 46bd mov sp, r7 - 80022e6: bd80 pop {r7, pc} + 8003200: 4618 mov r0, r3 + 8003202: 3710 adds r7, #16 + 8003204: 46bd mov sp, r7 + 8003206: bd80 pop {r7, pc} -080022e8 : +08003208 : * @param hadc pointer to a ADC_HandleTypeDef structure that contains * the configuration information for the specified ADC. * @retval Converted value */ uint32_t HAL_ADC_GetValue(ADC_HandleTypeDef* hadc) { - 80022e8: b480 push {r7} - 80022ea: b083 sub sp, #12 - 80022ec: af00 add r7, sp, #0 - 80022ee: 6078 str r0, [r7, #4] + 8003208: b480 push {r7} + 800320a: b083 sub sp, #12 + 800320c: af00 add r7, sp, #0 + 800320e: 6078 str r0, [r7, #4] /* Return the selected ADC converted value */ return hadc->Instance->DR; - 80022f0: 687b ldr r3, [r7, #4] - 80022f2: 681b ldr r3, [r3, #0] - 80022f4: 6cdb ldr r3, [r3, #76] ; 0x4c + 8003210: 687b ldr r3, [r7, #4] + 8003212: 681b ldr r3, [r3, #0] + 8003214: 6cdb ldr r3, [r3, #76] ; 0x4c } - 80022f6: 4618 mov r0, r3 - 80022f8: 370c adds r7, #12 - 80022fa: 46bd mov sp, r7 - 80022fc: f85d 7b04 ldr.w r7, [sp], #4 - 8002300: 4770 bx lr + 8003216: 4618 mov r0, r3 + 8003218: 370c adds r7, #12 + 800321a: 46bd mov sp, r7 + 800321c: f85d 7b04 ldr.w r7, [sp], #4 + 8003220: 4770 bx lr ... -08002304 : +08003224 : * the configuration information for the specified ADC. * @param sConfig ADC configuration structure. * @retval HAL status */ HAL_StatusTypeDef HAL_ADC_ConfigChannel(ADC_HandleTypeDef* hadc, ADC_ChannelConfTypeDef* sConfig) { - 8002304: b480 push {r7} - 8002306: b085 sub sp, #20 - 8002308: af00 add r7, sp, #0 - 800230a: 6078 str r0, [r7, #4] - 800230c: 6039 str r1, [r7, #0] + 8003224: b480 push {r7} + 8003226: b085 sub sp, #20 + 8003228: af00 add r7, sp, #0 + 800322a: 6078 str r0, [r7, #4] + 800322c: 6039 str r1, [r7, #0] __IO uint32_t counter = 0U; - 800230e: 2300 movs r3, #0 - 8002310: 60bb str r3, [r7, #8] + 800322e: 2300 movs r3, #0 + 8003230: 60bb str r3, [r7, #8] assert_param(IS_ADC_CHANNEL(sConfig->Channel)); assert_param(IS_ADC_REGULAR_RANK(sConfig->Rank)); assert_param(IS_ADC_SAMPLE_TIME(sConfig->SamplingTime)); /* Process locked */ __HAL_LOCK(hadc); - 8002312: 687b ldr r3, [r7, #4] - 8002314: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 8002318: 2b01 cmp r3, #1 - 800231a: d101 bne.n 8002320 - 800231c: 2302 movs r3, #2 - 800231e: e113 b.n 8002548 - 8002320: 687b ldr r3, [r7, #4] - 8002322: 2201 movs r2, #1 - 8002324: f883 203c strb.w r2, [r3, #60] ; 0x3c + 8003232: 687b ldr r3, [r7, #4] + 8003234: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 8003238: 2b01 cmp r3, #1 + 800323a: d101 bne.n 8003240 + 800323c: 2302 movs r3, #2 + 800323e: e113 b.n 8003468 + 8003240: 687b ldr r3, [r7, #4] + 8003242: 2201 movs r2, #1 + 8003244: f883 203c strb.w r2, [r3, #60] ; 0x3c /* if ADC_Channel_10 ... ADC_Channel_18 is selected */ if (sConfig->Channel > ADC_CHANNEL_9) - 8002328: 683b ldr r3, [r7, #0] - 800232a: 681b ldr r3, [r3, #0] - 800232c: 2b09 cmp r3, #9 - 800232e: d925 bls.n 800237c + 8003248: 683b ldr r3, [r7, #0] + 800324a: 681b ldr r3, [r3, #0] + 800324c: 2b09 cmp r3, #9 + 800324e: d925 bls.n 800329c { /* Clear the old sample time */ hadc->Instance->SMPR1 &= ~ADC_SMPR1(ADC_SMPR1_SMP10, sConfig->Channel); - 8002330: 687b ldr r3, [r7, #4] - 8002332: 681b ldr r3, [r3, #0] - 8002334: 68d9 ldr r1, [r3, #12] - 8002336: 683b ldr r3, [r7, #0] - 8002338: 681b ldr r3, [r3, #0] - 800233a: b29b uxth r3, r3 - 800233c: 461a mov r2, r3 - 800233e: 4613 mov r3, r2 - 8002340: 005b lsls r3, r3, #1 - 8002342: 4413 add r3, r2 - 8002344: 3b1e subs r3, #30 - 8002346: 2207 movs r2, #7 - 8002348: fa02 f303 lsl.w r3, r2, r3 - 800234c: 43da mvns r2, r3 - 800234e: 687b ldr r3, [r7, #4] - 8002350: 681b ldr r3, [r3, #0] - 8002352: 400a ands r2, r1 - 8002354: 60da str r2, [r3, #12] + 8003250: 687b ldr r3, [r7, #4] + 8003252: 681b ldr r3, [r3, #0] + 8003254: 68d9 ldr r1, [r3, #12] + 8003256: 683b ldr r3, [r7, #0] + 8003258: 681b ldr r3, [r3, #0] + 800325a: b29b uxth r3, r3 + 800325c: 461a mov r2, r3 + 800325e: 4613 mov r3, r2 + 8003260: 005b lsls r3, r3, #1 + 8003262: 4413 add r3, r2 + 8003264: 3b1e subs r3, #30 + 8003266: 2207 movs r2, #7 + 8003268: fa02 f303 lsl.w r3, r2, r3 + 800326c: 43da mvns r2, r3 + 800326e: 687b ldr r3, [r7, #4] + 8003270: 681b ldr r3, [r3, #0] + 8003272: 400a ands r2, r1 + 8003274: 60da str r2, [r3, #12] /* Set the new sample time */ hadc->Instance->SMPR1 |= ADC_SMPR1(sConfig->SamplingTime, sConfig->Channel); - 8002356: 687b ldr r3, [r7, #4] - 8002358: 681b ldr r3, [r3, #0] - 800235a: 68d9 ldr r1, [r3, #12] - 800235c: 683b ldr r3, [r7, #0] - 800235e: 689a ldr r2, [r3, #8] - 8002360: 683b ldr r3, [r7, #0] - 8002362: 681b ldr r3, [r3, #0] - 8002364: b29b uxth r3, r3 - 8002366: 4618 mov r0, r3 - 8002368: 4603 mov r3, r0 - 800236a: 005b lsls r3, r3, #1 - 800236c: 4403 add r3, r0 - 800236e: 3b1e subs r3, #30 - 8002370: 409a lsls r2, r3 - 8002372: 687b ldr r3, [r7, #4] - 8002374: 681b ldr r3, [r3, #0] - 8002376: 430a orrs r2, r1 - 8002378: 60da str r2, [r3, #12] - 800237a: e022 b.n 80023c2 + 8003276: 687b ldr r3, [r7, #4] + 8003278: 681b ldr r3, [r3, #0] + 800327a: 68d9 ldr r1, [r3, #12] + 800327c: 683b ldr r3, [r7, #0] + 800327e: 689a ldr r2, [r3, #8] + 8003280: 683b ldr r3, [r7, #0] + 8003282: 681b ldr r3, [r3, #0] + 8003284: b29b uxth r3, r3 + 8003286: 4618 mov r0, r3 + 8003288: 4603 mov r3, r0 + 800328a: 005b lsls r3, r3, #1 + 800328c: 4403 add r3, r0 + 800328e: 3b1e subs r3, #30 + 8003290: 409a lsls r2, r3 + 8003292: 687b ldr r3, [r7, #4] + 8003294: 681b ldr r3, [r3, #0] + 8003296: 430a orrs r2, r1 + 8003298: 60da str r2, [r3, #12] + 800329a: e022 b.n 80032e2 } else /* ADC_Channel include in ADC_Channel_[0..9] */ { /* Clear the old sample time */ hadc->Instance->SMPR2 &= ~ADC_SMPR2(ADC_SMPR2_SMP0, sConfig->Channel); - 800237c: 687b ldr r3, [r7, #4] - 800237e: 681b ldr r3, [r3, #0] - 8002380: 6919 ldr r1, [r3, #16] - 8002382: 683b ldr r3, [r7, #0] - 8002384: 681b ldr r3, [r3, #0] - 8002386: b29b uxth r3, r3 - 8002388: 461a mov r2, r3 - 800238a: 4613 mov r3, r2 - 800238c: 005b lsls r3, r3, #1 - 800238e: 4413 add r3, r2 - 8002390: 2207 movs r2, #7 - 8002392: fa02 f303 lsl.w r3, r2, r3 - 8002396: 43da mvns r2, r3 - 8002398: 687b ldr r3, [r7, #4] - 800239a: 681b ldr r3, [r3, #0] - 800239c: 400a ands r2, r1 - 800239e: 611a str r2, [r3, #16] + 800329c: 687b ldr r3, [r7, #4] + 800329e: 681b ldr r3, [r3, #0] + 80032a0: 6919 ldr r1, [r3, #16] + 80032a2: 683b ldr r3, [r7, #0] + 80032a4: 681b ldr r3, [r3, #0] + 80032a6: b29b uxth r3, r3 + 80032a8: 461a mov r2, r3 + 80032aa: 4613 mov r3, r2 + 80032ac: 005b lsls r3, r3, #1 + 80032ae: 4413 add r3, r2 + 80032b0: 2207 movs r2, #7 + 80032b2: fa02 f303 lsl.w r3, r2, r3 + 80032b6: 43da mvns r2, r3 + 80032b8: 687b ldr r3, [r7, #4] + 80032ba: 681b ldr r3, [r3, #0] + 80032bc: 400a ands r2, r1 + 80032be: 611a str r2, [r3, #16] /* Set the new sample time */ hadc->Instance->SMPR2 |= ADC_SMPR2(sConfig->SamplingTime, sConfig->Channel); - 80023a0: 687b ldr r3, [r7, #4] - 80023a2: 681b ldr r3, [r3, #0] - 80023a4: 6919 ldr r1, [r3, #16] - 80023a6: 683b ldr r3, [r7, #0] - 80023a8: 689a ldr r2, [r3, #8] - 80023aa: 683b ldr r3, [r7, #0] - 80023ac: 681b ldr r3, [r3, #0] - 80023ae: b29b uxth r3, r3 - 80023b0: 4618 mov r0, r3 - 80023b2: 4603 mov r3, r0 - 80023b4: 005b lsls r3, r3, #1 - 80023b6: 4403 add r3, r0 - 80023b8: 409a lsls r2, r3 - 80023ba: 687b ldr r3, [r7, #4] - 80023bc: 681b ldr r3, [r3, #0] - 80023be: 430a orrs r2, r1 - 80023c0: 611a str r2, [r3, #16] + 80032c0: 687b ldr r3, [r7, #4] + 80032c2: 681b ldr r3, [r3, #0] + 80032c4: 6919 ldr r1, [r3, #16] + 80032c6: 683b ldr r3, [r7, #0] + 80032c8: 689a ldr r2, [r3, #8] + 80032ca: 683b ldr r3, [r7, #0] + 80032cc: 681b ldr r3, [r3, #0] + 80032ce: b29b uxth r3, r3 + 80032d0: 4618 mov r0, r3 + 80032d2: 4603 mov r3, r0 + 80032d4: 005b lsls r3, r3, #1 + 80032d6: 4403 add r3, r0 + 80032d8: 409a lsls r2, r3 + 80032da: 687b ldr r3, [r7, #4] + 80032dc: 681b ldr r3, [r3, #0] + 80032de: 430a orrs r2, r1 + 80032e0: 611a str r2, [r3, #16] } /* For Rank 1 to 6 */ if (sConfig->Rank < 7U) - 80023c2: 683b ldr r3, [r7, #0] - 80023c4: 685b ldr r3, [r3, #4] - 80023c6: 2b06 cmp r3, #6 - 80023c8: d824 bhi.n 8002414 + 80032e2: 683b ldr r3, [r7, #0] + 80032e4: 685b ldr r3, [r3, #4] + 80032e6: 2b06 cmp r3, #6 + 80032e8: d824 bhi.n 8003334 { /* Clear the old SQx bits for the selected rank */ hadc->Instance->SQR3 &= ~ADC_SQR3_RK(ADC_SQR3_SQ1, sConfig->Rank); - 80023ca: 687b ldr r3, [r7, #4] - 80023cc: 681b ldr r3, [r3, #0] - 80023ce: 6b59 ldr r1, [r3, #52] ; 0x34 - 80023d0: 683b ldr r3, [r7, #0] - 80023d2: 685a ldr r2, [r3, #4] - 80023d4: 4613 mov r3, r2 - 80023d6: 009b lsls r3, r3, #2 - 80023d8: 4413 add r3, r2 - 80023da: 3b05 subs r3, #5 - 80023dc: 221f movs r2, #31 - 80023de: fa02 f303 lsl.w r3, r2, r3 - 80023e2: 43da mvns r2, r3 - 80023e4: 687b ldr r3, [r7, #4] - 80023e6: 681b ldr r3, [r3, #0] - 80023e8: 400a ands r2, r1 - 80023ea: 635a str r2, [r3, #52] ; 0x34 + 80032ea: 687b ldr r3, [r7, #4] + 80032ec: 681b ldr r3, [r3, #0] + 80032ee: 6b59 ldr r1, [r3, #52] ; 0x34 + 80032f0: 683b ldr r3, [r7, #0] + 80032f2: 685a ldr r2, [r3, #4] + 80032f4: 4613 mov r3, r2 + 80032f6: 009b lsls r3, r3, #2 + 80032f8: 4413 add r3, r2 + 80032fa: 3b05 subs r3, #5 + 80032fc: 221f movs r2, #31 + 80032fe: fa02 f303 lsl.w r3, r2, r3 + 8003302: 43da mvns r2, r3 + 8003304: 687b ldr r3, [r7, #4] + 8003306: 681b ldr r3, [r3, #0] + 8003308: 400a ands r2, r1 + 800330a: 635a str r2, [r3, #52] ; 0x34 /* Set the SQx bits for the selected rank */ hadc->Instance->SQR3 |= ADC_SQR3_RK(sConfig->Channel, sConfig->Rank); - 80023ec: 687b ldr r3, [r7, #4] - 80023ee: 681b ldr r3, [r3, #0] - 80023f0: 6b59 ldr r1, [r3, #52] ; 0x34 - 80023f2: 683b ldr r3, [r7, #0] - 80023f4: 681b ldr r3, [r3, #0] - 80023f6: b29b uxth r3, r3 - 80023f8: 4618 mov r0, r3 - 80023fa: 683b ldr r3, [r7, #0] - 80023fc: 685a ldr r2, [r3, #4] - 80023fe: 4613 mov r3, r2 - 8002400: 009b lsls r3, r3, #2 - 8002402: 4413 add r3, r2 - 8002404: 3b05 subs r3, #5 - 8002406: fa00 f203 lsl.w r2, r0, r3 - 800240a: 687b ldr r3, [r7, #4] - 800240c: 681b ldr r3, [r3, #0] - 800240e: 430a orrs r2, r1 - 8002410: 635a str r2, [r3, #52] ; 0x34 - 8002412: e04c b.n 80024ae + 800330c: 687b ldr r3, [r7, #4] + 800330e: 681b ldr r3, [r3, #0] + 8003310: 6b59 ldr r1, [r3, #52] ; 0x34 + 8003312: 683b ldr r3, [r7, #0] + 8003314: 681b ldr r3, [r3, #0] + 8003316: b29b uxth r3, r3 + 8003318: 4618 mov r0, r3 + 800331a: 683b ldr r3, [r7, #0] + 800331c: 685a ldr r2, [r3, #4] + 800331e: 4613 mov r3, r2 + 8003320: 009b lsls r3, r3, #2 + 8003322: 4413 add r3, r2 + 8003324: 3b05 subs r3, #5 + 8003326: fa00 f203 lsl.w r2, r0, r3 + 800332a: 687b ldr r3, [r7, #4] + 800332c: 681b ldr r3, [r3, #0] + 800332e: 430a orrs r2, r1 + 8003330: 635a str r2, [r3, #52] ; 0x34 + 8003332: e04c b.n 80033ce } /* For Rank 7 to 12 */ else if (sConfig->Rank < 13U) - 8002414: 683b ldr r3, [r7, #0] - 8002416: 685b ldr r3, [r3, #4] - 8002418: 2b0c cmp r3, #12 - 800241a: d824 bhi.n 8002466 + 8003334: 683b ldr r3, [r7, #0] + 8003336: 685b ldr r3, [r3, #4] + 8003338: 2b0c cmp r3, #12 + 800333a: d824 bhi.n 8003386 { /* Clear the old SQx bits for the selected rank */ hadc->Instance->SQR2 &= ~ADC_SQR2_RK(ADC_SQR2_SQ7, sConfig->Rank); - 800241c: 687b ldr r3, [r7, #4] - 800241e: 681b ldr r3, [r3, #0] - 8002420: 6b19 ldr r1, [r3, #48] ; 0x30 - 8002422: 683b ldr r3, [r7, #0] - 8002424: 685a ldr r2, [r3, #4] - 8002426: 4613 mov r3, r2 - 8002428: 009b lsls r3, r3, #2 - 800242a: 4413 add r3, r2 - 800242c: 3b23 subs r3, #35 ; 0x23 - 800242e: 221f movs r2, #31 - 8002430: fa02 f303 lsl.w r3, r2, r3 - 8002434: 43da mvns r2, r3 - 8002436: 687b ldr r3, [r7, #4] - 8002438: 681b ldr r3, [r3, #0] - 800243a: 400a ands r2, r1 - 800243c: 631a str r2, [r3, #48] ; 0x30 + 800333c: 687b ldr r3, [r7, #4] + 800333e: 681b ldr r3, [r3, #0] + 8003340: 6b19 ldr r1, [r3, #48] ; 0x30 + 8003342: 683b ldr r3, [r7, #0] + 8003344: 685a ldr r2, [r3, #4] + 8003346: 4613 mov r3, r2 + 8003348: 009b lsls r3, r3, #2 + 800334a: 4413 add r3, r2 + 800334c: 3b23 subs r3, #35 ; 0x23 + 800334e: 221f movs r2, #31 + 8003350: fa02 f303 lsl.w r3, r2, r3 + 8003354: 43da mvns r2, r3 + 8003356: 687b ldr r3, [r7, #4] + 8003358: 681b ldr r3, [r3, #0] + 800335a: 400a ands r2, r1 + 800335c: 631a str r2, [r3, #48] ; 0x30 /* Set the SQx bits for the selected rank */ hadc->Instance->SQR2 |= ADC_SQR2_RK(sConfig->Channel, sConfig->Rank); - 800243e: 687b ldr r3, [r7, #4] - 8002440: 681b ldr r3, [r3, #0] - 8002442: 6b19 ldr r1, [r3, #48] ; 0x30 - 8002444: 683b ldr r3, [r7, #0] - 8002446: 681b ldr r3, [r3, #0] - 8002448: b29b uxth r3, r3 - 800244a: 4618 mov r0, r3 - 800244c: 683b ldr r3, [r7, #0] - 800244e: 685a ldr r2, [r3, #4] - 8002450: 4613 mov r3, r2 - 8002452: 009b lsls r3, r3, #2 - 8002454: 4413 add r3, r2 - 8002456: 3b23 subs r3, #35 ; 0x23 - 8002458: fa00 f203 lsl.w r2, r0, r3 - 800245c: 687b ldr r3, [r7, #4] - 800245e: 681b ldr r3, [r3, #0] - 8002460: 430a orrs r2, r1 - 8002462: 631a str r2, [r3, #48] ; 0x30 - 8002464: e023 b.n 80024ae + 800335e: 687b ldr r3, [r7, #4] + 8003360: 681b ldr r3, [r3, #0] + 8003362: 6b19 ldr r1, [r3, #48] ; 0x30 + 8003364: 683b ldr r3, [r7, #0] + 8003366: 681b ldr r3, [r3, #0] + 8003368: b29b uxth r3, r3 + 800336a: 4618 mov r0, r3 + 800336c: 683b ldr r3, [r7, #0] + 800336e: 685a ldr r2, [r3, #4] + 8003370: 4613 mov r3, r2 + 8003372: 009b lsls r3, r3, #2 + 8003374: 4413 add r3, r2 + 8003376: 3b23 subs r3, #35 ; 0x23 + 8003378: fa00 f203 lsl.w r2, r0, r3 + 800337c: 687b ldr r3, [r7, #4] + 800337e: 681b ldr r3, [r3, #0] + 8003380: 430a orrs r2, r1 + 8003382: 631a str r2, [r3, #48] ; 0x30 + 8003384: e023 b.n 80033ce } /* For Rank 13 to 16 */ else { /* Clear the old SQx bits for the selected rank */ hadc->Instance->SQR1 &= ~ADC_SQR1_RK(ADC_SQR1_SQ13, sConfig->Rank); - 8002466: 687b ldr r3, [r7, #4] - 8002468: 681b ldr r3, [r3, #0] - 800246a: 6ad9 ldr r1, [r3, #44] ; 0x2c - 800246c: 683b ldr r3, [r7, #0] - 800246e: 685a ldr r2, [r3, #4] - 8002470: 4613 mov r3, r2 - 8002472: 009b lsls r3, r3, #2 - 8002474: 4413 add r3, r2 - 8002476: 3b41 subs r3, #65 ; 0x41 - 8002478: 221f movs r2, #31 - 800247a: fa02 f303 lsl.w r3, r2, r3 - 800247e: 43da mvns r2, r3 - 8002480: 687b ldr r3, [r7, #4] - 8002482: 681b ldr r3, [r3, #0] - 8002484: 400a ands r2, r1 - 8002486: 62da str r2, [r3, #44] ; 0x2c + 8003386: 687b ldr r3, [r7, #4] + 8003388: 681b ldr r3, [r3, #0] + 800338a: 6ad9 ldr r1, [r3, #44] ; 0x2c + 800338c: 683b ldr r3, [r7, #0] + 800338e: 685a ldr r2, [r3, #4] + 8003390: 4613 mov r3, r2 + 8003392: 009b lsls r3, r3, #2 + 8003394: 4413 add r3, r2 + 8003396: 3b41 subs r3, #65 ; 0x41 + 8003398: 221f movs r2, #31 + 800339a: fa02 f303 lsl.w r3, r2, r3 + 800339e: 43da mvns r2, r3 + 80033a0: 687b ldr r3, [r7, #4] + 80033a2: 681b ldr r3, [r3, #0] + 80033a4: 400a ands r2, r1 + 80033a6: 62da str r2, [r3, #44] ; 0x2c /* Set the SQx bits for the selected rank */ hadc->Instance->SQR1 |= ADC_SQR1_RK(sConfig->Channel, sConfig->Rank); - 8002488: 687b ldr r3, [r7, #4] - 800248a: 681b ldr r3, [r3, #0] - 800248c: 6ad9 ldr r1, [r3, #44] ; 0x2c - 800248e: 683b ldr r3, [r7, #0] - 8002490: 681b ldr r3, [r3, #0] - 8002492: b29b uxth r3, r3 - 8002494: 4618 mov r0, r3 - 8002496: 683b ldr r3, [r7, #0] - 8002498: 685a ldr r2, [r3, #4] - 800249a: 4613 mov r3, r2 - 800249c: 009b lsls r3, r3, #2 - 800249e: 4413 add r3, r2 - 80024a0: 3b41 subs r3, #65 ; 0x41 - 80024a2: fa00 f203 lsl.w r2, r0, r3 - 80024a6: 687b ldr r3, [r7, #4] - 80024a8: 681b ldr r3, [r3, #0] - 80024aa: 430a orrs r2, r1 - 80024ac: 62da str r2, [r3, #44] ; 0x2c + 80033a8: 687b ldr r3, [r7, #4] + 80033aa: 681b ldr r3, [r3, #0] + 80033ac: 6ad9 ldr r1, [r3, #44] ; 0x2c + 80033ae: 683b ldr r3, [r7, #0] + 80033b0: 681b ldr r3, [r3, #0] + 80033b2: b29b uxth r3, r3 + 80033b4: 4618 mov r0, r3 + 80033b6: 683b ldr r3, [r7, #0] + 80033b8: 685a ldr r2, [r3, #4] + 80033ba: 4613 mov r3, r2 + 80033bc: 009b lsls r3, r3, #2 + 80033be: 4413 add r3, r2 + 80033c0: 3b41 subs r3, #65 ; 0x41 + 80033c2: fa00 f203 lsl.w r2, r0, r3 + 80033c6: 687b ldr r3, [r7, #4] + 80033c8: 681b ldr r3, [r3, #0] + 80033ca: 430a orrs r2, r1 + 80033cc: 62da str r2, [r3, #44] ; 0x2c } /* Pointer to the common control register to which is belonging hadc */ /* (Depending on STM32F4 product, there may be up to 3 ADCs and 1 common */ /* control register) */ tmpADC_Common = ADC_COMMON_REGISTER(hadc); - 80024ae: 4b29 ldr r3, [pc, #164] ; (8002554 ) - 80024b0: 60fb str r3, [r7, #12] + 80033ce: 4b29 ldr r3, [pc, #164] ; (8003474 ) + 80033d0: 60fb str r3, [r7, #12] /* if ADC1 Channel_18 is selected for VBAT Channel ennable VBATE */ if ((hadc->Instance == ADC1) && (sConfig->Channel == ADC_CHANNEL_VBAT)) - 80024b2: 687b ldr r3, [r7, #4] - 80024b4: 681b ldr r3, [r3, #0] - 80024b6: 4a28 ldr r2, [pc, #160] ; (8002558 ) - 80024b8: 4293 cmp r3, r2 - 80024ba: d10f bne.n 80024dc - 80024bc: 683b ldr r3, [r7, #0] - 80024be: 681b ldr r3, [r3, #0] - 80024c0: 2b12 cmp r3, #18 - 80024c2: d10b bne.n 80024dc + 80033d2: 687b ldr r3, [r7, #4] + 80033d4: 681b ldr r3, [r3, #0] + 80033d6: 4a28 ldr r2, [pc, #160] ; (8003478 ) + 80033d8: 4293 cmp r3, r2 + 80033da: d10f bne.n 80033fc + 80033dc: 683b ldr r3, [r7, #0] + 80033de: 681b ldr r3, [r3, #0] + 80033e0: 2b12 cmp r3, #18 + 80033e2: d10b bne.n 80033fc { /* Disable the TEMPSENSOR channel in case of using board with multiplixed ADC_CHANNEL_VBAT & ADC_CHANNEL_TEMPSENSOR*/ if ((uint16_t)ADC_CHANNEL_TEMPSENSOR == (uint16_t)ADC_CHANNEL_VBAT) { tmpADC_Common->CCR &= ~ADC_CCR_TSVREFE; - 80024c4: 68fb ldr r3, [r7, #12] - 80024c6: 685b ldr r3, [r3, #4] - 80024c8: f423 0200 bic.w r2, r3, #8388608 ; 0x800000 - 80024cc: 68fb ldr r3, [r7, #12] - 80024ce: 605a str r2, [r3, #4] + 80033e4: 68fb ldr r3, [r7, #12] + 80033e6: 685b ldr r3, [r3, #4] + 80033e8: f423 0200 bic.w r2, r3, #8388608 ; 0x800000 + 80033ec: 68fb ldr r3, [r7, #12] + 80033ee: 605a str r2, [r3, #4] } /* Enable the VBAT channel*/ tmpADC_Common->CCR |= ADC_CCR_VBATE; - 80024d0: 68fb ldr r3, [r7, #12] - 80024d2: 685b ldr r3, [r3, #4] - 80024d4: f443 0280 orr.w r2, r3, #4194304 ; 0x400000 - 80024d8: 68fb ldr r3, [r7, #12] - 80024da: 605a str r2, [r3, #4] + 80033f0: 68fb ldr r3, [r7, #12] + 80033f2: 685b ldr r3, [r3, #4] + 80033f4: f443 0280 orr.w r2, r3, #4194304 ; 0x400000 + 80033f8: 68fb ldr r3, [r7, #12] + 80033fa: 605a str r2, [r3, #4] } /* if ADC1 Channel_16 or Channel_18 is selected for Temperature sensor or Channel_17 is selected for VREFINT enable TSVREFE */ if ((hadc->Instance == ADC1) && ((sConfig->Channel == ADC_CHANNEL_TEMPSENSOR) || (sConfig->Channel == ADC_CHANNEL_VREFINT))) - 80024dc: 687b ldr r3, [r7, #4] - 80024de: 681b ldr r3, [r3, #0] - 80024e0: 4a1d ldr r2, [pc, #116] ; (8002558 ) - 80024e2: 4293 cmp r3, r2 - 80024e4: d12b bne.n 800253e - 80024e6: 683b ldr r3, [r7, #0] - 80024e8: 681b ldr r3, [r3, #0] - 80024ea: 4a1c ldr r2, [pc, #112] ; (800255c ) - 80024ec: 4293 cmp r3, r2 - 80024ee: d003 beq.n 80024f8 - 80024f0: 683b ldr r3, [r7, #0] - 80024f2: 681b ldr r3, [r3, #0] - 80024f4: 2b11 cmp r3, #17 - 80024f6: d122 bne.n 800253e + 80033fc: 687b ldr r3, [r7, #4] + 80033fe: 681b ldr r3, [r3, #0] + 8003400: 4a1d ldr r2, [pc, #116] ; (8003478 ) + 8003402: 4293 cmp r3, r2 + 8003404: d12b bne.n 800345e + 8003406: 683b ldr r3, [r7, #0] + 8003408: 681b ldr r3, [r3, #0] + 800340a: 4a1c ldr r2, [pc, #112] ; (800347c ) + 800340c: 4293 cmp r3, r2 + 800340e: d003 beq.n 8003418 + 8003410: 683b ldr r3, [r7, #0] + 8003412: 681b ldr r3, [r3, #0] + 8003414: 2b11 cmp r3, #17 + 8003416: d122 bne.n 800345e { /* Disable the VBAT channel in case of using board with multiplixed ADC_CHANNEL_VBAT & ADC_CHANNEL_TEMPSENSOR*/ if ((uint16_t)ADC_CHANNEL_TEMPSENSOR == (uint16_t)ADC_CHANNEL_VBAT) { tmpADC_Common->CCR &= ~ADC_CCR_VBATE; - 80024f8: 68fb ldr r3, [r7, #12] - 80024fa: 685b ldr r3, [r3, #4] - 80024fc: f423 0280 bic.w r2, r3, #4194304 ; 0x400000 - 8002500: 68fb ldr r3, [r7, #12] - 8002502: 605a str r2, [r3, #4] + 8003418: 68fb ldr r3, [r7, #12] + 800341a: 685b ldr r3, [r3, #4] + 800341c: f423 0280 bic.w r2, r3, #4194304 ; 0x400000 + 8003420: 68fb ldr r3, [r7, #12] + 8003422: 605a str r2, [r3, #4] } /* Enable the Temperature sensor and VREFINT channel*/ tmpADC_Common->CCR |= ADC_CCR_TSVREFE; - 8002504: 68fb ldr r3, [r7, #12] - 8002506: 685b ldr r3, [r3, #4] - 8002508: f443 0200 orr.w r2, r3, #8388608 ; 0x800000 - 800250c: 68fb ldr r3, [r7, #12] - 800250e: 605a str r2, [r3, #4] + 8003424: 68fb ldr r3, [r7, #12] + 8003426: 685b ldr r3, [r3, #4] + 8003428: f443 0200 orr.w r2, r3, #8388608 ; 0x800000 + 800342c: 68fb ldr r3, [r7, #12] + 800342e: 605a str r2, [r3, #4] if((sConfig->Channel == ADC_CHANNEL_TEMPSENSOR)) - 8002510: 683b ldr r3, [r7, #0] - 8002512: 681b ldr r3, [r3, #0] - 8002514: 4a11 ldr r2, [pc, #68] ; (800255c ) - 8002516: 4293 cmp r3, r2 - 8002518: d111 bne.n 800253e + 8003430: 683b ldr r3, [r7, #0] + 8003432: 681b ldr r3, [r3, #0] + 8003434: 4a11 ldr r2, [pc, #68] ; (800347c ) + 8003436: 4293 cmp r3, r2 + 8003438: d111 bne.n 800345e { /* Delay for temperature sensor stabilization time */ /* Compute number of CPU cycles to wait for */ counter = (ADC_TEMPSENSOR_DELAY_US * (SystemCoreClock / 1000000U)); - 800251a: 4b11 ldr r3, [pc, #68] ; (8002560 ) - 800251c: 681b ldr r3, [r3, #0] - 800251e: 4a11 ldr r2, [pc, #68] ; (8002564 ) - 8002520: fba2 2303 umull r2, r3, r2, r3 - 8002524: 0c9a lsrs r2, r3, #18 - 8002526: 4613 mov r3, r2 - 8002528: 009b lsls r3, r3, #2 - 800252a: 4413 add r3, r2 - 800252c: 005b lsls r3, r3, #1 - 800252e: 60bb str r3, [r7, #8] + 800343a: 4b11 ldr r3, [pc, #68] ; (8003480 ) + 800343c: 681b ldr r3, [r3, #0] + 800343e: 4a11 ldr r2, [pc, #68] ; (8003484 ) + 8003440: fba2 2303 umull r2, r3, r2, r3 + 8003444: 0c9a lsrs r2, r3, #18 + 8003446: 4613 mov r3, r2 + 8003448: 009b lsls r3, r3, #2 + 800344a: 4413 add r3, r2 + 800344c: 005b lsls r3, r3, #1 + 800344e: 60bb str r3, [r7, #8] while(counter != 0U) - 8002530: e002 b.n 8002538 + 8003450: e002 b.n 8003458 { counter--; - 8002532: 68bb ldr r3, [r7, #8] - 8002534: 3b01 subs r3, #1 - 8002536: 60bb str r3, [r7, #8] + 8003452: 68bb ldr r3, [r7, #8] + 8003454: 3b01 subs r3, #1 + 8003456: 60bb str r3, [r7, #8] while(counter != 0U) - 8002538: 68bb ldr r3, [r7, #8] - 800253a: 2b00 cmp r3, #0 - 800253c: d1f9 bne.n 8002532 + 8003458: 68bb ldr r3, [r7, #8] + 800345a: 2b00 cmp r3, #0 + 800345c: d1f9 bne.n 8003452 } } } /* Process unlocked */ __HAL_UNLOCK(hadc); - 800253e: 687b ldr r3, [r7, #4] - 8002540: 2200 movs r2, #0 - 8002542: f883 203c strb.w r2, [r3, #60] ; 0x3c + 800345e: 687b ldr r3, [r7, #4] + 8003460: 2200 movs r2, #0 + 8003462: f883 203c strb.w r2, [r3, #60] ; 0x3c /* Return function status */ return HAL_OK; - 8002546: 2300 movs r3, #0 + 8003466: 2300 movs r3, #0 } - 8002548: 4618 mov r0, r3 - 800254a: 3714 adds r7, #20 - 800254c: 46bd mov sp, r7 - 800254e: f85d 7b04 ldr.w r7, [sp], #4 - 8002552: 4770 bx lr - 8002554: 40012300 .word 0x40012300 - 8002558: 40012000 .word 0x40012000 - 800255c: 10000012 .word 0x10000012 - 8002560: 20000004 .word 0x20000004 - 8002564: 431bde83 .word 0x431bde83 + 8003468: 4618 mov r0, r3 + 800346a: 3714 adds r7, #20 + 800346c: 46bd mov sp, r7 + 800346e: f85d 7b04 ldr.w r7, [sp], #4 + 8003472: 4770 bx lr + 8003474: 40012300 .word 0x40012300 + 8003478: 40012000 .word 0x40012000 + 800347c: 10000012 .word 0x10000012 + 8003480: 20000004 .word 0x20000004 + 8003484: 431bde83 .word 0x431bde83 -08002568 : +08003488 : * @param hadc pointer to a ADC_HandleTypeDef structure that contains * the configuration information for the specified ADC. * @retval None */ static void ADC_Init(ADC_HandleTypeDef* hadc) { - 8002568: b480 push {r7} - 800256a: b085 sub sp, #20 - 800256c: af00 add r7, sp, #0 - 800256e: 6078 str r0, [r7, #4] + 8003488: b480 push {r7} + 800348a: b085 sub sp, #20 + 800348c: af00 add r7, sp, #0 + 800348e: 6078 str r0, [r7, #4] /* Set ADC parameters */ /* Pointer to the common control register to which is belonging hadc */ /* (Depending on STM32F4 product, there may be up to 3 ADCs and 1 common */ /* control register) */ tmpADC_Common = ADC_COMMON_REGISTER(hadc); - 8002570: 4b79 ldr r3, [pc, #484] ; (8002758 ) - 8002572: 60fb str r3, [r7, #12] + 8003490: 4b79 ldr r3, [pc, #484] ; (8003678 ) + 8003492: 60fb str r3, [r7, #12] /* Set the ADC clock prescaler */ tmpADC_Common->CCR &= ~(ADC_CCR_ADCPRE); - 8002574: 68fb ldr r3, [r7, #12] - 8002576: 685b ldr r3, [r3, #4] - 8002578: f423 3240 bic.w r2, r3, #196608 ; 0x30000 - 800257c: 68fb ldr r3, [r7, #12] - 800257e: 605a str r2, [r3, #4] + 8003494: 68fb ldr r3, [r7, #12] + 8003496: 685b ldr r3, [r3, #4] + 8003498: f423 3240 bic.w r2, r3, #196608 ; 0x30000 + 800349c: 68fb ldr r3, [r7, #12] + 800349e: 605a str r2, [r3, #4] tmpADC_Common->CCR |= hadc->Init.ClockPrescaler; - 8002580: 68fb ldr r3, [r7, #12] - 8002582: 685a ldr r2, [r3, #4] - 8002584: 687b ldr r3, [r7, #4] - 8002586: 685b ldr r3, [r3, #4] - 8002588: 431a orrs r2, r3 - 800258a: 68fb ldr r3, [r7, #12] - 800258c: 605a str r2, [r3, #4] + 80034a0: 68fb ldr r3, [r7, #12] + 80034a2: 685a ldr r2, [r3, #4] + 80034a4: 687b ldr r3, [r7, #4] + 80034a6: 685b ldr r3, [r3, #4] + 80034a8: 431a orrs r2, r3 + 80034aa: 68fb ldr r3, [r7, #12] + 80034ac: 605a str r2, [r3, #4] /* Set ADC scan mode */ hadc->Instance->CR1 &= ~(ADC_CR1_SCAN); - 800258e: 687b ldr r3, [r7, #4] - 8002590: 681b ldr r3, [r3, #0] - 8002592: 685a ldr r2, [r3, #4] - 8002594: 687b ldr r3, [r7, #4] - 8002596: 681b ldr r3, [r3, #0] - 8002598: f422 7280 bic.w r2, r2, #256 ; 0x100 - 800259c: 605a str r2, [r3, #4] + 80034ae: 687b ldr r3, [r7, #4] + 80034b0: 681b ldr r3, [r3, #0] + 80034b2: 685a ldr r2, [r3, #4] + 80034b4: 687b ldr r3, [r7, #4] + 80034b6: 681b ldr r3, [r3, #0] + 80034b8: f422 7280 bic.w r2, r2, #256 ; 0x100 + 80034bc: 605a str r2, [r3, #4] hadc->Instance->CR1 |= ADC_CR1_SCANCONV(hadc->Init.ScanConvMode); - 800259e: 687b ldr r3, [r7, #4] - 80025a0: 681b ldr r3, [r3, #0] - 80025a2: 6859 ldr r1, [r3, #4] - 80025a4: 687b ldr r3, [r7, #4] - 80025a6: 691b ldr r3, [r3, #16] - 80025a8: 021a lsls r2, r3, #8 - 80025aa: 687b ldr r3, [r7, #4] - 80025ac: 681b ldr r3, [r3, #0] - 80025ae: 430a orrs r2, r1 - 80025b0: 605a str r2, [r3, #4] + 80034be: 687b ldr r3, [r7, #4] + 80034c0: 681b ldr r3, [r3, #0] + 80034c2: 6859 ldr r1, [r3, #4] + 80034c4: 687b ldr r3, [r7, #4] + 80034c6: 691b ldr r3, [r3, #16] + 80034c8: 021a lsls r2, r3, #8 + 80034ca: 687b ldr r3, [r7, #4] + 80034cc: 681b ldr r3, [r3, #0] + 80034ce: 430a orrs r2, r1 + 80034d0: 605a str r2, [r3, #4] /* Set ADC resolution */ hadc->Instance->CR1 &= ~(ADC_CR1_RES); - 80025b2: 687b ldr r3, [r7, #4] - 80025b4: 681b ldr r3, [r3, #0] - 80025b6: 685a ldr r2, [r3, #4] - 80025b8: 687b ldr r3, [r7, #4] - 80025ba: 681b ldr r3, [r3, #0] - 80025bc: f022 7240 bic.w r2, r2, #50331648 ; 0x3000000 - 80025c0: 605a str r2, [r3, #4] + 80034d2: 687b ldr r3, [r7, #4] + 80034d4: 681b ldr r3, [r3, #0] + 80034d6: 685a ldr r2, [r3, #4] + 80034d8: 687b ldr r3, [r7, #4] + 80034da: 681b ldr r3, [r3, #0] + 80034dc: f022 7240 bic.w r2, r2, #50331648 ; 0x3000000 + 80034e0: 605a str r2, [r3, #4] hadc->Instance->CR1 |= hadc->Init.Resolution; - 80025c2: 687b ldr r3, [r7, #4] - 80025c4: 681b ldr r3, [r3, #0] - 80025c6: 6859 ldr r1, [r3, #4] - 80025c8: 687b ldr r3, [r7, #4] - 80025ca: 689a ldr r2, [r3, #8] - 80025cc: 687b ldr r3, [r7, #4] - 80025ce: 681b ldr r3, [r3, #0] - 80025d0: 430a orrs r2, r1 - 80025d2: 605a str r2, [r3, #4] + 80034e2: 687b ldr r3, [r7, #4] + 80034e4: 681b ldr r3, [r3, #0] + 80034e6: 6859 ldr r1, [r3, #4] + 80034e8: 687b ldr r3, [r7, #4] + 80034ea: 689a ldr r2, [r3, #8] + 80034ec: 687b ldr r3, [r7, #4] + 80034ee: 681b ldr r3, [r3, #0] + 80034f0: 430a orrs r2, r1 + 80034f2: 605a str r2, [r3, #4] /* Set ADC data alignment */ hadc->Instance->CR2 &= ~(ADC_CR2_ALIGN); - 80025d4: 687b ldr r3, [r7, #4] - 80025d6: 681b ldr r3, [r3, #0] - 80025d8: 689a ldr r2, [r3, #8] - 80025da: 687b ldr r3, [r7, #4] - 80025dc: 681b ldr r3, [r3, #0] - 80025de: f422 6200 bic.w r2, r2, #2048 ; 0x800 - 80025e2: 609a str r2, [r3, #8] + 80034f4: 687b ldr r3, [r7, #4] + 80034f6: 681b ldr r3, [r3, #0] + 80034f8: 689a ldr r2, [r3, #8] + 80034fa: 687b ldr r3, [r7, #4] + 80034fc: 681b ldr r3, [r3, #0] + 80034fe: f422 6200 bic.w r2, r2, #2048 ; 0x800 + 8003502: 609a str r2, [r3, #8] hadc->Instance->CR2 |= hadc->Init.DataAlign; - 80025e4: 687b ldr r3, [r7, #4] - 80025e6: 681b ldr r3, [r3, #0] - 80025e8: 6899 ldr r1, [r3, #8] - 80025ea: 687b ldr r3, [r7, #4] - 80025ec: 68da ldr r2, [r3, #12] - 80025ee: 687b ldr r3, [r7, #4] - 80025f0: 681b ldr r3, [r3, #0] - 80025f2: 430a orrs r2, r1 - 80025f4: 609a str r2, [r3, #8] + 8003504: 687b ldr r3, [r7, #4] + 8003506: 681b ldr r3, [r3, #0] + 8003508: 6899 ldr r1, [r3, #8] + 800350a: 687b ldr r3, [r7, #4] + 800350c: 68da ldr r2, [r3, #12] + 800350e: 687b ldr r3, [r7, #4] + 8003510: 681b ldr r3, [r3, #0] + 8003512: 430a orrs r2, r1 + 8003514: 609a str r2, [r3, #8] /* Enable external trigger if trigger selection is different of software */ /* start. */ /* Note: This configuration keeps the hardware feature of parameter */ /* ExternalTrigConvEdge "trigger edge none" equivalent to */ /* software start. */ if(hadc->Init.ExternalTrigConv != ADC_SOFTWARE_START) - 80025f6: 687b ldr r3, [r7, #4] - 80025f8: 6a9b ldr r3, [r3, #40] ; 0x28 - 80025fa: 4a58 ldr r2, [pc, #352] ; (800275c ) - 80025fc: 4293 cmp r3, r2 - 80025fe: d022 beq.n 8002646 + 8003516: 687b ldr r3, [r7, #4] + 8003518: 6a9b ldr r3, [r3, #40] ; 0x28 + 800351a: 4a58 ldr r2, [pc, #352] ; (800367c ) + 800351c: 4293 cmp r3, r2 + 800351e: d022 beq.n 8003566 { /* Select external trigger to start conversion */ hadc->Instance->CR2 &= ~(ADC_CR2_EXTSEL); - 8002600: 687b ldr r3, [r7, #4] - 8002602: 681b ldr r3, [r3, #0] - 8002604: 689a ldr r2, [r3, #8] - 8002606: 687b ldr r3, [r7, #4] - 8002608: 681b ldr r3, [r3, #0] - 800260a: f022 6270 bic.w r2, r2, #251658240 ; 0xf000000 - 800260e: 609a str r2, [r3, #8] + 8003520: 687b ldr r3, [r7, #4] + 8003522: 681b ldr r3, [r3, #0] + 8003524: 689a ldr r2, [r3, #8] + 8003526: 687b ldr r3, [r7, #4] + 8003528: 681b ldr r3, [r3, #0] + 800352a: f022 6270 bic.w r2, r2, #251658240 ; 0xf000000 + 800352e: 609a str r2, [r3, #8] hadc->Instance->CR2 |= hadc->Init.ExternalTrigConv; - 8002610: 687b ldr r3, [r7, #4] - 8002612: 681b ldr r3, [r3, #0] - 8002614: 6899 ldr r1, [r3, #8] - 8002616: 687b ldr r3, [r7, #4] - 8002618: 6a9a ldr r2, [r3, #40] ; 0x28 - 800261a: 687b ldr r3, [r7, #4] - 800261c: 681b ldr r3, [r3, #0] - 800261e: 430a orrs r2, r1 - 8002620: 609a str r2, [r3, #8] + 8003530: 687b ldr r3, [r7, #4] + 8003532: 681b ldr r3, [r3, #0] + 8003534: 6899 ldr r1, [r3, #8] + 8003536: 687b ldr r3, [r7, #4] + 8003538: 6a9a ldr r2, [r3, #40] ; 0x28 + 800353a: 687b ldr r3, [r7, #4] + 800353c: 681b ldr r3, [r3, #0] + 800353e: 430a orrs r2, r1 + 8003540: 609a str r2, [r3, #8] /* Select external trigger polarity */ hadc->Instance->CR2 &= ~(ADC_CR2_EXTEN); - 8002622: 687b ldr r3, [r7, #4] - 8002624: 681b ldr r3, [r3, #0] - 8002626: 689a ldr r2, [r3, #8] - 8002628: 687b ldr r3, [r7, #4] - 800262a: 681b ldr r3, [r3, #0] - 800262c: f022 5240 bic.w r2, r2, #805306368 ; 0x30000000 - 8002630: 609a str r2, [r3, #8] + 8003542: 687b ldr r3, [r7, #4] + 8003544: 681b ldr r3, [r3, #0] + 8003546: 689a ldr r2, [r3, #8] + 8003548: 687b ldr r3, [r7, #4] + 800354a: 681b ldr r3, [r3, #0] + 800354c: f022 5240 bic.w r2, r2, #805306368 ; 0x30000000 + 8003550: 609a str r2, [r3, #8] hadc->Instance->CR2 |= hadc->Init.ExternalTrigConvEdge; - 8002632: 687b ldr r3, [r7, #4] - 8002634: 681b ldr r3, [r3, #0] - 8002636: 6899 ldr r1, [r3, #8] - 8002638: 687b ldr r3, [r7, #4] - 800263a: 6ada ldr r2, [r3, #44] ; 0x2c - 800263c: 687b ldr r3, [r7, #4] - 800263e: 681b ldr r3, [r3, #0] - 8002640: 430a orrs r2, r1 - 8002642: 609a str r2, [r3, #8] - 8002644: e00f b.n 8002666 + 8003552: 687b ldr r3, [r7, #4] + 8003554: 681b ldr r3, [r3, #0] + 8003556: 6899 ldr r1, [r3, #8] + 8003558: 687b ldr r3, [r7, #4] + 800355a: 6ada ldr r2, [r3, #44] ; 0x2c + 800355c: 687b ldr r3, [r7, #4] + 800355e: 681b ldr r3, [r3, #0] + 8003560: 430a orrs r2, r1 + 8003562: 609a str r2, [r3, #8] + 8003564: e00f b.n 8003586 } else { /* Reset the external trigger */ hadc->Instance->CR2 &= ~(ADC_CR2_EXTSEL); - 8002646: 687b ldr r3, [r7, #4] - 8002648: 681b ldr r3, [r3, #0] - 800264a: 689a ldr r2, [r3, #8] - 800264c: 687b ldr r3, [r7, #4] - 800264e: 681b ldr r3, [r3, #0] - 8002650: f022 6270 bic.w r2, r2, #251658240 ; 0xf000000 - 8002654: 609a str r2, [r3, #8] + 8003566: 687b ldr r3, [r7, #4] + 8003568: 681b ldr r3, [r3, #0] + 800356a: 689a ldr r2, [r3, #8] + 800356c: 687b ldr r3, [r7, #4] + 800356e: 681b ldr r3, [r3, #0] + 8003570: f022 6270 bic.w r2, r2, #251658240 ; 0xf000000 + 8003574: 609a str r2, [r3, #8] hadc->Instance->CR2 &= ~(ADC_CR2_EXTEN); - 8002656: 687b ldr r3, [r7, #4] - 8002658: 681b ldr r3, [r3, #0] - 800265a: 689a ldr r2, [r3, #8] - 800265c: 687b ldr r3, [r7, #4] - 800265e: 681b ldr r3, [r3, #0] - 8002660: f022 5240 bic.w r2, r2, #805306368 ; 0x30000000 - 8002664: 609a str r2, [r3, #8] + 8003576: 687b ldr r3, [r7, #4] + 8003578: 681b ldr r3, [r3, #0] + 800357a: 689a ldr r2, [r3, #8] + 800357c: 687b ldr r3, [r7, #4] + 800357e: 681b ldr r3, [r3, #0] + 8003580: f022 5240 bic.w r2, r2, #805306368 ; 0x30000000 + 8003584: 609a str r2, [r3, #8] } /* Enable or disable ADC continuous conversion mode */ hadc->Instance->CR2 &= ~(ADC_CR2_CONT); - 8002666: 687b ldr r3, [r7, #4] - 8002668: 681b ldr r3, [r3, #0] - 800266a: 689a ldr r2, [r3, #8] - 800266c: 687b ldr r3, [r7, #4] - 800266e: 681b ldr r3, [r3, #0] - 8002670: f022 0202 bic.w r2, r2, #2 - 8002674: 609a str r2, [r3, #8] + 8003586: 687b ldr r3, [r7, #4] + 8003588: 681b ldr r3, [r3, #0] + 800358a: 689a ldr r2, [r3, #8] + 800358c: 687b ldr r3, [r7, #4] + 800358e: 681b ldr r3, [r3, #0] + 8003590: f022 0202 bic.w r2, r2, #2 + 8003594: 609a str r2, [r3, #8] hadc->Instance->CR2 |= ADC_CR2_CONTINUOUS((uint32_t)hadc->Init.ContinuousConvMode); - 8002676: 687b ldr r3, [r7, #4] - 8002678: 681b ldr r3, [r3, #0] - 800267a: 6899 ldr r1, [r3, #8] - 800267c: 687b ldr r3, [r7, #4] - 800267e: 7e1b ldrb r3, [r3, #24] - 8002680: 005a lsls r2, r3, #1 - 8002682: 687b ldr r3, [r7, #4] - 8002684: 681b ldr r3, [r3, #0] - 8002686: 430a orrs r2, r1 - 8002688: 609a str r2, [r3, #8] + 8003596: 687b ldr r3, [r7, #4] + 8003598: 681b ldr r3, [r3, #0] + 800359a: 6899 ldr r1, [r3, #8] + 800359c: 687b ldr r3, [r7, #4] + 800359e: 7e1b ldrb r3, [r3, #24] + 80035a0: 005a lsls r2, r3, #1 + 80035a2: 687b ldr r3, [r7, #4] + 80035a4: 681b ldr r3, [r3, #0] + 80035a6: 430a orrs r2, r1 + 80035a8: 609a str r2, [r3, #8] if(hadc->Init.DiscontinuousConvMode != DISABLE) - 800268a: 687b ldr r3, [r7, #4] - 800268c: f893 3020 ldrb.w r3, [r3, #32] - 8002690: 2b00 cmp r3, #0 - 8002692: d01b beq.n 80026cc + 80035aa: 687b ldr r3, [r7, #4] + 80035ac: f893 3020 ldrb.w r3, [r3, #32] + 80035b0: 2b00 cmp r3, #0 + 80035b2: d01b beq.n 80035ec { assert_param(IS_ADC_REGULAR_DISC_NUMBER(hadc->Init.NbrOfDiscConversion)); /* Enable the selected ADC regular discontinuous mode */ hadc->Instance->CR1 |= (uint32_t)ADC_CR1_DISCEN; - 8002694: 687b ldr r3, [r7, #4] - 8002696: 681b ldr r3, [r3, #0] - 8002698: 685a ldr r2, [r3, #4] - 800269a: 687b ldr r3, [r7, #4] - 800269c: 681b ldr r3, [r3, #0] - 800269e: f442 6200 orr.w r2, r2, #2048 ; 0x800 - 80026a2: 605a str r2, [r3, #4] + 80035b4: 687b ldr r3, [r7, #4] + 80035b6: 681b ldr r3, [r3, #0] + 80035b8: 685a ldr r2, [r3, #4] + 80035ba: 687b ldr r3, [r7, #4] + 80035bc: 681b ldr r3, [r3, #0] + 80035be: f442 6200 orr.w r2, r2, #2048 ; 0x800 + 80035c2: 605a str r2, [r3, #4] /* Set the number of channels to be converted in discontinuous mode */ hadc->Instance->CR1 &= ~(ADC_CR1_DISCNUM); - 80026a4: 687b ldr r3, [r7, #4] - 80026a6: 681b ldr r3, [r3, #0] - 80026a8: 685a ldr r2, [r3, #4] - 80026aa: 687b ldr r3, [r7, #4] - 80026ac: 681b ldr r3, [r3, #0] - 80026ae: f422 4260 bic.w r2, r2, #57344 ; 0xe000 - 80026b2: 605a str r2, [r3, #4] + 80035c4: 687b ldr r3, [r7, #4] + 80035c6: 681b ldr r3, [r3, #0] + 80035c8: 685a ldr r2, [r3, #4] + 80035ca: 687b ldr r3, [r7, #4] + 80035cc: 681b ldr r3, [r3, #0] + 80035ce: f422 4260 bic.w r2, r2, #57344 ; 0xe000 + 80035d2: 605a str r2, [r3, #4] hadc->Instance->CR1 |= ADC_CR1_DISCONTINUOUS(hadc->Init.NbrOfDiscConversion); - 80026b4: 687b ldr r3, [r7, #4] - 80026b6: 681b ldr r3, [r3, #0] - 80026b8: 6859 ldr r1, [r3, #4] - 80026ba: 687b ldr r3, [r7, #4] - 80026bc: 6a5b ldr r3, [r3, #36] ; 0x24 - 80026be: 3b01 subs r3, #1 - 80026c0: 035a lsls r2, r3, #13 - 80026c2: 687b ldr r3, [r7, #4] - 80026c4: 681b ldr r3, [r3, #0] - 80026c6: 430a orrs r2, r1 - 80026c8: 605a str r2, [r3, #4] - 80026ca: e007 b.n 80026dc + 80035d4: 687b ldr r3, [r7, #4] + 80035d6: 681b ldr r3, [r3, #0] + 80035d8: 6859 ldr r1, [r3, #4] + 80035da: 687b ldr r3, [r7, #4] + 80035dc: 6a5b ldr r3, [r3, #36] ; 0x24 + 80035de: 3b01 subs r3, #1 + 80035e0: 035a lsls r2, r3, #13 + 80035e2: 687b ldr r3, [r7, #4] + 80035e4: 681b ldr r3, [r3, #0] + 80035e6: 430a orrs r2, r1 + 80035e8: 605a str r2, [r3, #4] + 80035ea: e007 b.n 80035fc } else { /* Disable the selected ADC regular discontinuous mode */ hadc->Instance->CR1 &= ~(ADC_CR1_DISCEN); - 80026cc: 687b ldr r3, [r7, #4] - 80026ce: 681b ldr r3, [r3, #0] - 80026d0: 685a ldr r2, [r3, #4] - 80026d2: 687b ldr r3, [r7, #4] - 80026d4: 681b ldr r3, [r3, #0] - 80026d6: f422 6200 bic.w r2, r2, #2048 ; 0x800 - 80026da: 605a str r2, [r3, #4] + 80035ec: 687b ldr r3, [r7, #4] + 80035ee: 681b ldr r3, [r3, #0] + 80035f0: 685a ldr r2, [r3, #4] + 80035f2: 687b ldr r3, [r7, #4] + 80035f4: 681b ldr r3, [r3, #0] + 80035f6: f422 6200 bic.w r2, r2, #2048 ; 0x800 + 80035fa: 605a str r2, [r3, #4] } /* Set ADC number of conversion */ hadc->Instance->SQR1 &= ~(ADC_SQR1_L); - 80026dc: 687b ldr r3, [r7, #4] - 80026de: 681b ldr r3, [r3, #0] - 80026e0: 6ada ldr r2, [r3, #44] ; 0x2c - 80026e2: 687b ldr r3, [r7, #4] - 80026e4: 681b ldr r3, [r3, #0] - 80026e6: f422 0270 bic.w r2, r2, #15728640 ; 0xf00000 - 80026ea: 62da str r2, [r3, #44] ; 0x2c + 80035fc: 687b ldr r3, [r7, #4] + 80035fe: 681b ldr r3, [r3, #0] + 8003600: 6ada ldr r2, [r3, #44] ; 0x2c + 8003602: 687b ldr r3, [r7, #4] + 8003604: 681b ldr r3, [r3, #0] + 8003606: f422 0270 bic.w r2, r2, #15728640 ; 0xf00000 + 800360a: 62da str r2, [r3, #44] ; 0x2c hadc->Instance->SQR1 |= ADC_SQR1(hadc->Init.NbrOfConversion); - 80026ec: 687b ldr r3, [r7, #4] - 80026ee: 681b ldr r3, [r3, #0] - 80026f0: 6ad9 ldr r1, [r3, #44] ; 0x2c - 80026f2: 687b ldr r3, [r7, #4] - 80026f4: 69db ldr r3, [r3, #28] - 80026f6: 3b01 subs r3, #1 - 80026f8: 051a lsls r2, r3, #20 - 80026fa: 687b ldr r3, [r7, #4] - 80026fc: 681b ldr r3, [r3, #0] - 80026fe: 430a orrs r2, r1 - 8002700: 62da str r2, [r3, #44] ; 0x2c + 800360c: 687b ldr r3, [r7, #4] + 800360e: 681b ldr r3, [r3, #0] + 8003610: 6ad9 ldr r1, [r3, #44] ; 0x2c + 8003612: 687b ldr r3, [r7, #4] + 8003614: 69db ldr r3, [r3, #28] + 8003616: 3b01 subs r3, #1 + 8003618: 051a lsls r2, r3, #20 + 800361a: 687b ldr r3, [r7, #4] + 800361c: 681b ldr r3, [r3, #0] + 800361e: 430a orrs r2, r1 + 8003620: 62da str r2, [r3, #44] ; 0x2c /* Enable or disable ADC DMA continuous request */ hadc->Instance->CR2 &= ~(ADC_CR2_DDS); - 8002702: 687b ldr r3, [r7, #4] - 8002704: 681b ldr r3, [r3, #0] - 8002706: 689a ldr r2, [r3, #8] - 8002708: 687b ldr r3, [r7, #4] - 800270a: 681b ldr r3, [r3, #0] - 800270c: f422 7200 bic.w r2, r2, #512 ; 0x200 - 8002710: 609a str r2, [r3, #8] + 8003622: 687b ldr r3, [r7, #4] + 8003624: 681b ldr r3, [r3, #0] + 8003626: 689a ldr r2, [r3, #8] + 8003628: 687b ldr r3, [r7, #4] + 800362a: 681b ldr r3, [r3, #0] + 800362c: f422 7200 bic.w r2, r2, #512 ; 0x200 + 8003630: 609a str r2, [r3, #8] hadc->Instance->CR2 |= ADC_CR2_DMAContReq((uint32_t)hadc->Init.DMAContinuousRequests); - 8002712: 687b ldr r3, [r7, #4] - 8002714: 681b ldr r3, [r3, #0] - 8002716: 6899 ldr r1, [r3, #8] - 8002718: 687b ldr r3, [r7, #4] - 800271a: f893 3030 ldrb.w r3, [r3, #48] ; 0x30 - 800271e: 025a lsls r2, r3, #9 - 8002720: 687b ldr r3, [r7, #4] - 8002722: 681b ldr r3, [r3, #0] - 8002724: 430a orrs r2, r1 - 8002726: 609a str r2, [r3, #8] + 8003632: 687b ldr r3, [r7, #4] + 8003634: 681b ldr r3, [r3, #0] + 8003636: 6899 ldr r1, [r3, #8] + 8003638: 687b ldr r3, [r7, #4] + 800363a: f893 3030 ldrb.w r3, [r3, #48] ; 0x30 + 800363e: 025a lsls r2, r3, #9 + 8003640: 687b ldr r3, [r7, #4] + 8003642: 681b ldr r3, [r3, #0] + 8003644: 430a orrs r2, r1 + 8003646: 609a str r2, [r3, #8] /* Enable or disable ADC end of conversion selection */ hadc->Instance->CR2 &= ~(ADC_CR2_EOCS); - 8002728: 687b ldr r3, [r7, #4] - 800272a: 681b ldr r3, [r3, #0] - 800272c: 689a ldr r2, [r3, #8] - 800272e: 687b ldr r3, [r7, #4] - 8002730: 681b ldr r3, [r3, #0] - 8002732: f422 6280 bic.w r2, r2, #1024 ; 0x400 - 8002736: 609a str r2, [r3, #8] + 8003648: 687b ldr r3, [r7, #4] + 800364a: 681b ldr r3, [r3, #0] + 800364c: 689a ldr r2, [r3, #8] + 800364e: 687b ldr r3, [r7, #4] + 8003650: 681b ldr r3, [r3, #0] + 8003652: f422 6280 bic.w r2, r2, #1024 ; 0x400 + 8003656: 609a str r2, [r3, #8] hadc->Instance->CR2 |= ADC_CR2_EOCSelection(hadc->Init.EOCSelection); - 8002738: 687b ldr r3, [r7, #4] - 800273a: 681b ldr r3, [r3, #0] - 800273c: 6899 ldr r1, [r3, #8] - 800273e: 687b ldr r3, [r7, #4] - 8002740: 695b ldr r3, [r3, #20] - 8002742: 029a lsls r2, r3, #10 - 8002744: 687b ldr r3, [r7, #4] - 8002746: 681b ldr r3, [r3, #0] - 8002748: 430a orrs r2, r1 - 800274a: 609a str r2, [r3, #8] + 8003658: 687b ldr r3, [r7, #4] + 800365a: 681b ldr r3, [r3, #0] + 800365c: 6899 ldr r1, [r3, #8] + 800365e: 687b ldr r3, [r7, #4] + 8003660: 695b ldr r3, [r3, #20] + 8003662: 029a lsls r2, r3, #10 + 8003664: 687b ldr r3, [r7, #4] + 8003666: 681b ldr r3, [r3, #0] + 8003668: 430a orrs r2, r1 + 800366a: 609a str r2, [r3, #8] } - 800274c: bf00 nop - 800274e: 3714 adds r7, #20 - 8002750: 46bd mov sp, r7 - 8002752: f85d 7b04 ldr.w r7, [sp], #4 - 8002756: 4770 bx lr - 8002758: 40012300 .word 0x40012300 - 800275c: 0f000001 .word 0x0f000001 + 800366c: bf00 nop + 800366e: 3714 adds r7, #20 + 8003670: 46bd mov sp, r7 + 8003672: f85d 7b04 ldr.w r7, [sp], #4 + 8003676: 4770 bx lr + 8003678: 40012300 .word 0x40012300 + 800367c: 0f000001 .word 0x0f000001 -08002760 <__NVIC_SetPriorityGrouping>: +08003680 <__NVIC_SetPriorityGrouping>: In case of a conflict between priority grouping and available priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. \param [in] PriorityGroup Priority grouping field. */ __STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) { - 8002760: b480 push {r7} - 8002762: b085 sub sp, #20 - 8002764: af00 add r7, sp, #0 - 8002766: 6078 str r0, [r7, #4] + 8003680: b480 push {r7} + 8003682: b085 sub sp, #20 + 8003684: af00 add r7, sp, #0 + 8003686: 6078 str r0, [r7, #4] uint32_t reg_value; uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - 8002768: 687b ldr r3, [r7, #4] - 800276a: f003 0307 and.w r3, r3, #7 - 800276e: 60fb str r3, [r7, #12] + 8003688: 687b ldr r3, [r7, #4] + 800368a: f003 0307 and.w r3, r3, #7 + 800368e: 60fb str r3, [r7, #12] reg_value = SCB->AIRCR; /* read old register configuration */ - 8002770: 4b0c ldr r3, [pc, #48] ; (80027a4 <__NVIC_SetPriorityGrouping+0x44>) - 8002772: 68db ldr r3, [r3, #12] - 8002774: 60bb str r3, [r7, #8] + 8003690: 4b0c ldr r3, [pc, #48] ; (80036c4 <__NVIC_SetPriorityGrouping+0x44>) + 8003692: 68db ldr r3, [r3, #12] + 8003694: 60bb str r3, [r7, #8] reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ - 8002776: 68ba ldr r2, [r7, #8] - 8002778: f64f 03ff movw r3, #63743 ; 0xf8ff - 800277c: 4013 ands r3, r2 - 800277e: 60bb str r3, [r7, #8] + 8003696: 68ba ldr r2, [r7, #8] + 8003698: f64f 03ff movw r3, #63743 ; 0xf8ff + 800369c: 4013 ands r3, r2 + 800369e: 60bb str r3, [r7, #8] reg_value = (reg_value | ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ - 8002780: 68fb ldr r3, [r7, #12] - 8002782: 021a lsls r2, r3, #8 + 80036a0: 68fb ldr r3, [r7, #12] + 80036a2: 021a lsls r2, r3, #8 ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - 8002784: 68bb ldr r3, [r7, #8] - 8002786: 4313 orrs r3, r2 + 80036a4: 68bb ldr r3, [r7, #8] + 80036a6: 4313 orrs r3, r2 reg_value = (reg_value | - 8002788: f043 63bf orr.w r3, r3, #100139008 ; 0x5f80000 - 800278c: f443 3300 orr.w r3, r3, #131072 ; 0x20000 - 8002790: 60bb str r3, [r7, #8] + 80036a8: f043 63bf orr.w r3, r3, #100139008 ; 0x5f80000 + 80036ac: f443 3300 orr.w r3, r3, #131072 ; 0x20000 + 80036b0: 60bb str r3, [r7, #8] SCB->AIRCR = reg_value; - 8002792: 4a04 ldr r2, [pc, #16] ; (80027a4 <__NVIC_SetPriorityGrouping+0x44>) - 8002794: 68bb ldr r3, [r7, #8] - 8002796: 60d3 str r3, [r2, #12] + 80036b2: 4a04 ldr r2, [pc, #16] ; (80036c4 <__NVIC_SetPriorityGrouping+0x44>) + 80036b4: 68bb ldr r3, [r7, #8] + 80036b6: 60d3 str r3, [r2, #12] } - 8002798: bf00 nop - 800279a: 3714 adds r7, #20 - 800279c: 46bd mov sp, r7 - 800279e: f85d 7b04 ldr.w r7, [sp], #4 - 80027a2: 4770 bx lr - 80027a4: e000ed00 .word 0xe000ed00 + 80036b8: bf00 nop + 80036ba: 3714 adds r7, #20 + 80036bc: 46bd mov sp, r7 + 80036be: f85d 7b04 ldr.w r7, [sp], #4 + 80036c2: 4770 bx lr + 80036c4: e000ed00 .word 0xe000ed00 -080027a8 <__NVIC_GetPriorityGrouping>: +080036c8 <__NVIC_GetPriorityGrouping>: \brief Get Priority Grouping \details Reads the priority grouping field from the NVIC Interrupt Controller. \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). */ __STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) { - 80027a8: b480 push {r7} - 80027aa: af00 add r7, sp, #0 + 80036c8: b480 push {r7} + 80036ca: af00 add r7, sp, #0 return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); - 80027ac: 4b04 ldr r3, [pc, #16] ; (80027c0 <__NVIC_GetPriorityGrouping+0x18>) - 80027ae: 68db ldr r3, [r3, #12] - 80027b0: 0a1b lsrs r3, r3, #8 - 80027b2: f003 0307 and.w r3, r3, #7 + 80036cc: 4b04 ldr r3, [pc, #16] ; (80036e0 <__NVIC_GetPriorityGrouping+0x18>) + 80036ce: 68db ldr r3, [r3, #12] + 80036d0: 0a1b lsrs r3, r3, #8 + 80036d2: f003 0307 and.w r3, r3, #7 } - 80027b6: 4618 mov r0, r3 - 80027b8: 46bd mov sp, r7 - 80027ba: f85d 7b04 ldr.w r7, [sp], #4 - 80027be: 4770 bx lr - 80027c0: e000ed00 .word 0xe000ed00 + 80036d6: 4618 mov r0, r3 + 80036d8: 46bd mov sp, r7 + 80036da: f85d 7b04 ldr.w r7, [sp], #4 + 80036de: 4770 bx lr + 80036e0: e000ed00 .word 0xe000ed00 -080027c4 <__NVIC_EnableIRQ>: +080036e4 <__NVIC_EnableIRQ>: \details Enables a device specific interrupt in the NVIC interrupt controller. \param [in] IRQn Device specific interrupt number. \note IRQn must not be negative. */ __STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) { - 80027c4: b480 push {r7} - 80027c6: b083 sub sp, #12 - 80027c8: af00 add r7, sp, #0 - 80027ca: 4603 mov r3, r0 - 80027cc: 71fb strb r3, [r7, #7] + 80036e4: b480 push {r7} + 80036e6: b083 sub sp, #12 + 80036e8: af00 add r7, sp, #0 + 80036ea: 4603 mov r3, r0 + 80036ec: 71fb strb r3, [r7, #7] if ((int32_t)(IRQn) >= 0) - 80027ce: f997 3007 ldrsb.w r3, [r7, #7] - 80027d2: 2b00 cmp r3, #0 - 80027d4: db0b blt.n 80027ee <__NVIC_EnableIRQ+0x2a> + 80036ee: f997 3007 ldrsb.w r3, [r7, #7] + 80036f2: 2b00 cmp r3, #0 + 80036f4: db0b blt.n 800370e <__NVIC_EnableIRQ+0x2a> { NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - 80027d6: 79fb ldrb r3, [r7, #7] - 80027d8: f003 021f and.w r2, r3, #31 - 80027dc: 4907 ldr r1, [pc, #28] ; (80027fc <__NVIC_EnableIRQ+0x38>) - 80027de: f997 3007 ldrsb.w r3, [r7, #7] - 80027e2: 095b lsrs r3, r3, #5 - 80027e4: 2001 movs r0, #1 - 80027e6: fa00 f202 lsl.w r2, r0, r2 - 80027ea: f841 2023 str.w r2, [r1, r3, lsl #2] + 80036f6: 79fb ldrb r3, [r7, #7] + 80036f8: f003 021f and.w r2, r3, #31 + 80036fc: 4907 ldr r1, [pc, #28] ; (800371c <__NVIC_EnableIRQ+0x38>) + 80036fe: f997 3007 ldrsb.w r3, [r7, #7] + 8003702: 095b lsrs r3, r3, #5 + 8003704: 2001 movs r0, #1 + 8003706: fa00 f202 lsl.w r2, r0, r2 + 800370a: f841 2023 str.w r2, [r1, r3, lsl #2] } } - 80027ee: bf00 nop - 80027f0: 370c adds r7, #12 - 80027f2: 46bd mov sp, r7 - 80027f4: f85d 7b04 ldr.w r7, [sp], #4 - 80027f8: 4770 bx lr - 80027fa: bf00 nop - 80027fc: e000e100 .word 0xe000e100 + 800370e: bf00 nop + 8003710: 370c adds r7, #12 + 8003712: 46bd mov sp, r7 + 8003714: f85d 7b04 ldr.w r7, [sp], #4 + 8003718: 4770 bx lr + 800371a: bf00 nop + 800371c: e000e100 .word 0xe000e100 -08002800 <__NVIC_SetPriority>: +08003720 <__NVIC_SetPriority>: \param [in] IRQn Interrupt number. \param [in] priority Priority to set. \note The priority cannot be set for every processor exception. */ __STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) { - 8002800: b480 push {r7} - 8002802: b083 sub sp, #12 - 8002804: af00 add r7, sp, #0 - 8002806: 4603 mov r3, r0 - 8002808: 6039 str r1, [r7, #0] - 800280a: 71fb strb r3, [r7, #7] + 8003720: b480 push {r7} + 8003722: b083 sub sp, #12 + 8003724: af00 add r7, sp, #0 + 8003726: 4603 mov r3, r0 + 8003728: 6039 str r1, [r7, #0] + 800372a: 71fb strb r3, [r7, #7] if ((int32_t)(IRQn) >= 0) - 800280c: f997 3007 ldrsb.w r3, [r7, #7] - 8002810: 2b00 cmp r3, #0 - 8002812: db0a blt.n 800282a <__NVIC_SetPriority+0x2a> + 800372c: f997 3007 ldrsb.w r3, [r7, #7] + 8003730: 2b00 cmp r3, #0 + 8003732: db0a blt.n 800374a <__NVIC_SetPriority+0x2a> { NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - 8002814: 683b ldr r3, [r7, #0] - 8002816: b2da uxtb r2, r3 - 8002818: 490c ldr r1, [pc, #48] ; (800284c <__NVIC_SetPriority+0x4c>) - 800281a: f997 3007 ldrsb.w r3, [r7, #7] - 800281e: 0112 lsls r2, r2, #4 - 8002820: b2d2 uxtb r2, r2 - 8002822: 440b add r3, r1 - 8002824: f883 2300 strb.w r2, [r3, #768] ; 0x300 + 8003734: 683b ldr r3, [r7, #0] + 8003736: b2da uxtb r2, r3 + 8003738: 490c ldr r1, [pc, #48] ; (800376c <__NVIC_SetPriority+0x4c>) + 800373a: f997 3007 ldrsb.w r3, [r7, #7] + 800373e: 0112 lsls r2, r2, #4 + 8003740: b2d2 uxtb r2, r2 + 8003742: 440b add r3, r1 + 8003744: f883 2300 strb.w r2, [r3, #768] ; 0x300 } else { SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); } } - 8002828: e00a b.n 8002840 <__NVIC_SetPriority+0x40> + 8003748: e00a b.n 8003760 <__NVIC_SetPriority+0x40> SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - 800282a: 683b ldr r3, [r7, #0] - 800282c: b2da uxtb r2, r3 - 800282e: 4908 ldr r1, [pc, #32] ; (8002850 <__NVIC_SetPriority+0x50>) - 8002830: 79fb ldrb r3, [r7, #7] - 8002832: f003 030f and.w r3, r3, #15 - 8002836: 3b04 subs r3, #4 - 8002838: 0112 lsls r2, r2, #4 - 800283a: b2d2 uxtb r2, r2 - 800283c: 440b add r3, r1 - 800283e: 761a strb r2, [r3, #24] + 800374a: 683b ldr r3, [r7, #0] + 800374c: b2da uxtb r2, r3 + 800374e: 4908 ldr r1, [pc, #32] ; (8003770 <__NVIC_SetPriority+0x50>) + 8003750: 79fb ldrb r3, [r7, #7] + 8003752: f003 030f and.w r3, r3, #15 + 8003756: 3b04 subs r3, #4 + 8003758: 0112 lsls r2, r2, #4 + 800375a: b2d2 uxtb r2, r2 + 800375c: 440b add r3, r1 + 800375e: 761a strb r2, [r3, #24] } - 8002840: bf00 nop - 8002842: 370c adds r7, #12 - 8002844: 46bd mov sp, r7 - 8002846: f85d 7b04 ldr.w r7, [sp], #4 - 800284a: 4770 bx lr - 800284c: e000e100 .word 0xe000e100 - 8002850: e000ed00 .word 0xe000ed00 + 8003760: bf00 nop + 8003762: 370c adds r7, #12 + 8003764: 46bd mov sp, r7 + 8003766: f85d 7b04 ldr.w r7, [sp], #4 + 800376a: 4770 bx lr + 800376c: e000e100 .word 0xe000e100 + 8003770: e000ed00 .word 0xe000ed00 -08002854 : +08003774 : \param [in] PreemptPriority Preemptive priority value (starting from 0). \param [in] SubPriority Subpriority value (starting from 0). \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). */ __STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) { - 8002854: b480 push {r7} - 8002856: b089 sub sp, #36 ; 0x24 - 8002858: af00 add r7, sp, #0 - 800285a: 60f8 str r0, [r7, #12] - 800285c: 60b9 str r1, [r7, #8] - 800285e: 607a str r2, [r7, #4] + 8003774: b480 push {r7} + 8003776: b089 sub sp, #36 ; 0x24 + 8003778: af00 add r7, sp, #0 + 800377a: 60f8 str r0, [r7, #12] + 800377c: 60b9 str r1, [r7, #8] + 800377e: 607a str r2, [r7, #4] uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - 8002860: 68fb ldr r3, [r7, #12] - 8002862: f003 0307 and.w r3, r3, #7 - 8002866: 61fb str r3, [r7, #28] + 8003780: 68fb ldr r3, [r7, #12] + 8003782: f003 0307 and.w r3, r3, #7 + 8003786: 61fb str r3, [r7, #28] uint32_t PreemptPriorityBits; uint32_t SubPriorityBits; PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - 8002868: 69fb ldr r3, [r7, #28] - 800286a: f1c3 0307 rsb r3, r3, #7 - 800286e: 2b04 cmp r3, #4 - 8002870: bf28 it cs - 8002872: 2304 movcs r3, #4 - 8002874: 61bb str r3, [r7, #24] + 8003788: 69fb ldr r3, [r7, #28] + 800378a: f1c3 0307 rsb r3, r3, #7 + 800378e: 2b04 cmp r3, #4 + 8003790: bf28 it cs + 8003792: 2304 movcs r3, #4 + 8003794: 61bb str r3, [r7, #24] SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - 8002876: 69fb ldr r3, [r7, #28] - 8002878: 3304 adds r3, #4 - 800287a: 2b06 cmp r3, #6 - 800287c: d902 bls.n 8002884 - 800287e: 69fb ldr r3, [r7, #28] - 8002880: 3b03 subs r3, #3 - 8002882: e000 b.n 8002886 - 8002884: 2300 movs r3, #0 - 8002886: 617b str r3, [r7, #20] + 8003796: 69fb ldr r3, [r7, #28] + 8003798: 3304 adds r3, #4 + 800379a: 2b06 cmp r3, #6 + 800379c: d902 bls.n 80037a4 + 800379e: 69fb ldr r3, [r7, #28] + 80037a0: 3b03 subs r3, #3 + 80037a2: e000 b.n 80037a6 + 80037a4: 2300 movs r3, #0 + 80037a6: 617b str r3, [r7, #20] return ( ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - 8002888: f04f 32ff mov.w r2, #4294967295 - 800288c: 69bb ldr r3, [r7, #24] - 800288e: fa02 f303 lsl.w r3, r2, r3 - 8002892: 43da mvns r2, r3 - 8002894: 68bb ldr r3, [r7, #8] - 8002896: 401a ands r2, r3 - 8002898: 697b ldr r3, [r7, #20] - 800289a: 409a lsls r2, r3 + 80037a8: f04f 32ff mov.w r2, #4294967295 + 80037ac: 69bb ldr r3, [r7, #24] + 80037ae: fa02 f303 lsl.w r3, r2, r3 + 80037b2: 43da mvns r2, r3 + 80037b4: 68bb ldr r3, [r7, #8] + 80037b6: 401a ands r2, r3 + 80037b8: 697b ldr r3, [r7, #20] + 80037ba: 409a lsls r2, r3 ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) - 800289c: f04f 31ff mov.w r1, #4294967295 - 80028a0: 697b ldr r3, [r7, #20] - 80028a2: fa01 f303 lsl.w r3, r1, r3 - 80028a6: 43d9 mvns r1, r3 - 80028a8: 687b ldr r3, [r7, #4] - 80028aa: 400b ands r3, r1 + 80037bc: f04f 31ff mov.w r1, #4294967295 + 80037c0: 697b ldr r3, [r7, #20] + 80037c2: fa01 f303 lsl.w r3, r1, r3 + 80037c6: 43d9 mvns r1, r3 + 80037c8: 687b ldr r3, [r7, #4] + 80037ca: 400b ands r3, r1 ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - 80028ac: 4313 orrs r3, r2 + 80037cc: 4313 orrs r3, r2 ); } - 80028ae: 4618 mov r0, r3 - 80028b0: 3724 adds r7, #36 ; 0x24 - 80028b2: 46bd mov sp, r7 - 80028b4: f85d 7b04 ldr.w r7, [sp], #4 - 80028b8: 4770 bx lr + 80037ce: 4618 mov r0, r3 + 80037d0: 3724 adds r7, #36 ; 0x24 + 80037d2: 46bd mov sp, r7 + 80037d4: f85d 7b04 ldr.w r7, [sp], #4 + 80037d8: 4770 bx lr ... -080028bc : +080037dc : \note When the variable __Vendor_SysTickConfig is set to 1, then the function SysTick_Config is not included. In this case, the file device.h must contain a vendor-specific implementation of this function. */ __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) { - 80028bc: b580 push {r7, lr} - 80028be: b082 sub sp, #8 - 80028c0: af00 add r7, sp, #0 - 80028c2: 6078 str r0, [r7, #4] + 80037dc: b580 push {r7, lr} + 80037de: b082 sub sp, #8 + 80037e0: af00 add r7, sp, #0 + 80037e2: 6078 str r0, [r7, #4] if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - 80028c4: 687b ldr r3, [r7, #4] - 80028c6: 3b01 subs r3, #1 - 80028c8: f1b3 7f80 cmp.w r3, #16777216 ; 0x1000000 - 80028cc: d301 bcc.n 80028d2 + 80037e4: 687b ldr r3, [r7, #4] + 80037e6: 3b01 subs r3, #1 + 80037e8: f1b3 7f80 cmp.w r3, #16777216 ; 0x1000000 + 80037ec: d301 bcc.n 80037f2 { return (1UL); /* Reload value impossible */ - 80028ce: 2301 movs r3, #1 - 80028d0: e00f b.n 80028f2 + 80037ee: 2301 movs r3, #1 + 80037f0: e00f b.n 8003812 } SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - 80028d2: 4a0a ldr r2, [pc, #40] ; (80028fc ) - 80028d4: 687b ldr r3, [r7, #4] - 80028d6: 3b01 subs r3, #1 - 80028d8: 6053 str r3, [r2, #4] + 80037f2: 4a0a ldr r2, [pc, #40] ; (800381c ) + 80037f4: 687b ldr r3, [r7, #4] + 80037f6: 3b01 subs r3, #1 + 80037f8: 6053 str r3, [r2, #4] NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - 80028da: 210f movs r1, #15 - 80028dc: f04f 30ff mov.w r0, #4294967295 - 80028e0: f7ff ff8e bl 8002800 <__NVIC_SetPriority> + 80037fa: 210f movs r1, #15 + 80037fc: f04f 30ff mov.w r0, #4294967295 + 8003800: f7ff ff8e bl 8003720 <__NVIC_SetPriority> SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ - 80028e4: 4b05 ldr r3, [pc, #20] ; (80028fc ) - 80028e6: 2200 movs r2, #0 - 80028e8: 609a str r2, [r3, #8] + 8003804: 4b05 ldr r3, [pc, #20] ; (800381c ) + 8003806: 2200 movs r2, #0 + 8003808: 609a str r2, [r3, #8] SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - 80028ea: 4b04 ldr r3, [pc, #16] ; (80028fc ) - 80028ec: 2207 movs r2, #7 - 80028ee: 601a str r2, [r3, #0] + 800380a: 4b04 ldr r3, [pc, #16] ; (800381c ) + 800380c: 2207 movs r2, #7 + 800380e: 601a str r2, [r3, #0] SysTick_CTRL_TICKINT_Msk | SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ return (0UL); /* Function successful */ - 80028f0: 2300 movs r3, #0 + 8003810: 2300 movs r3, #0 } - 80028f2: 4618 mov r0, r3 - 80028f4: 3708 adds r7, #8 - 80028f6: 46bd mov sp, r7 - 80028f8: bd80 pop {r7, pc} - 80028fa: bf00 nop - 80028fc: e000e010 .word 0xe000e010 + 8003812: 4618 mov r0, r3 + 8003814: 3708 adds r7, #8 + 8003816: 46bd mov sp, r7 + 8003818: bd80 pop {r7, pc} + 800381a: bf00 nop + 800381c: e000e010 .word 0xe000e010 -08002900 : +08003820 : * @note When the NVIC_PriorityGroup_0 is selected, IRQ preemption is no more possible. * The pending IRQ priority will be managed only by the subpriority. * @retval None */ void HAL_NVIC_SetPriorityGrouping(uint32_t PriorityGroup) { - 8002900: b580 push {r7, lr} - 8002902: b082 sub sp, #8 - 8002904: af00 add r7, sp, #0 - 8002906: 6078 str r0, [r7, #4] + 8003820: b580 push {r7, lr} + 8003822: b082 sub sp, #8 + 8003824: af00 add r7, sp, #0 + 8003826: 6078 str r0, [r7, #4] /* Check the parameters */ assert_param(IS_NVIC_PRIORITY_GROUP(PriorityGroup)); /* Set the PRIGROUP[10:8] bits according to the PriorityGroup parameter value */ NVIC_SetPriorityGrouping(PriorityGroup); - 8002908: 6878 ldr r0, [r7, #4] - 800290a: f7ff ff29 bl 8002760 <__NVIC_SetPriorityGrouping> + 8003828: 6878 ldr r0, [r7, #4] + 800382a: f7ff ff29 bl 8003680 <__NVIC_SetPriorityGrouping> } - 800290e: bf00 nop - 8002910: 3708 adds r7, #8 - 8002912: 46bd mov sp, r7 - 8002914: bd80 pop {r7, pc} + 800382e: bf00 nop + 8003830: 3708 adds r7, #8 + 8003832: 46bd mov sp, r7 + 8003834: bd80 pop {r7, pc} -08002916 : +08003836 : * This parameter can be a value between 0 and 15 * A lower priority value indicates a higher priority. * @retval None */ void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority) { - 8002916: b580 push {r7, lr} - 8002918: b086 sub sp, #24 - 800291a: af00 add r7, sp, #0 - 800291c: 4603 mov r3, r0 - 800291e: 60b9 str r1, [r7, #8] - 8002920: 607a str r2, [r7, #4] - 8002922: 73fb strb r3, [r7, #15] + 8003836: b580 push {r7, lr} + 8003838: b086 sub sp, #24 + 800383a: af00 add r7, sp, #0 + 800383c: 4603 mov r3, r0 + 800383e: 60b9 str r1, [r7, #8] + 8003840: 607a str r2, [r7, #4] + 8003842: 73fb strb r3, [r7, #15] uint32_t prioritygroup = 0x00U; - 8002924: 2300 movs r3, #0 - 8002926: 617b str r3, [r7, #20] + 8003844: 2300 movs r3, #0 + 8003846: 617b str r3, [r7, #20] /* Check the parameters */ assert_param(IS_NVIC_SUB_PRIORITY(SubPriority)); assert_param(IS_NVIC_PREEMPTION_PRIORITY(PreemptPriority)); prioritygroup = NVIC_GetPriorityGrouping(); - 8002928: f7ff ff3e bl 80027a8 <__NVIC_GetPriorityGrouping> - 800292c: 6178 str r0, [r7, #20] + 8003848: f7ff ff3e bl 80036c8 <__NVIC_GetPriorityGrouping> + 800384c: 6178 str r0, [r7, #20] NVIC_SetPriority(IRQn, NVIC_EncodePriority(prioritygroup, PreemptPriority, SubPriority)); - 800292e: 687a ldr r2, [r7, #4] - 8002930: 68b9 ldr r1, [r7, #8] - 8002932: 6978 ldr r0, [r7, #20] - 8002934: f7ff ff8e bl 8002854 - 8002938: 4602 mov r2, r0 - 800293a: f997 300f ldrsb.w r3, [r7, #15] - 800293e: 4611 mov r1, r2 - 8002940: 4618 mov r0, r3 - 8002942: f7ff ff5d bl 8002800 <__NVIC_SetPriority> + 800384e: 687a ldr r2, [r7, #4] + 8003850: 68b9 ldr r1, [r7, #8] + 8003852: 6978 ldr r0, [r7, #20] + 8003854: f7ff ff8e bl 8003774 + 8003858: 4602 mov r2, r0 + 800385a: f997 300f ldrsb.w r3, [r7, #15] + 800385e: 4611 mov r1, r2 + 8003860: 4618 mov r0, r3 + 8003862: f7ff ff5d bl 8003720 <__NVIC_SetPriority> } - 8002946: bf00 nop - 8002948: 3718 adds r7, #24 - 800294a: 46bd mov sp, r7 - 800294c: bd80 pop {r7, pc} + 8003866: bf00 nop + 8003868: 3718 adds r7, #24 + 800386a: 46bd mov sp, r7 + 800386c: bd80 pop {r7, pc} -0800294e : +0800386e : * This parameter can be an enumerator of IRQn_Type enumeration * (For the complete STM32 Devices IRQ Channels list, please refer to the appropriate CMSIS device file (stm32f4xxxx.h)) * @retval None */ void HAL_NVIC_EnableIRQ(IRQn_Type IRQn) { - 800294e: b580 push {r7, lr} - 8002950: b082 sub sp, #8 - 8002952: af00 add r7, sp, #0 - 8002954: 4603 mov r3, r0 - 8002956: 71fb strb r3, [r7, #7] + 800386e: b580 push {r7, lr} + 8003870: b082 sub sp, #8 + 8003872: af00 add r7, sp, #0 + 8003874: 4603 mov r3, r0 + 8003876: 71fb strb r3, [r7, #7] /* Check the parameters */ assert_param(IS_NVIC_DEVICE_IRQ(IRQn)); /* Enable interrupt */ NVIC_EnableIRQ(IRQn); - 8002958: f997 3007 ldrsb.w r3, [r7, #7] - 800295c: 4618 mov r0, r3 - 800295e: f7ff ff31 bl 80027c4 <__NVIC_EnableIRQ> + 8003878: f997 3007 ldrsb.w r3, [r7, #7] + 800387c: 4618 mov r0, r3 + 800387e: f7ff ff31 bl 80036e4 <__NVIC_EnableIRQ> } - 8002962: bf00 nop - 8002964: 3708 adds r7, #8 - 8002966: 46bd mov sp, r7 - 8002968: bd80 pop {r7, pc} + 8003882: bf00 nop + 8003884: 3708 adds r7, #8 + 8003886: 46bd mov sp, r7 + 8003888: bd80 pop {r7, pc} -0800296a : +0800388a : * @param TicksNumb Specifies the ticks Number of ticks between two interrupts. * @retval status: - 0 Function succeeded. * - 1 Function failed. */ uint32_t HAL_SYSTICK_Config(uint32_t TicksNumb) { - 800296a: b580 push {r7, lr} - 800296c: b082 sub sp, #8 - 800296e: af00 add r7, sp, #0 - 8002970: 6078 str r0, [r7, #4] + 800388a: b580 push {r7, lr} + 800388c: b082 sub sp, #8 + 800388e: af00 add r7, sp, #0 + 8003890: 6078 str r0, [r7, #4] return SysTick_Config(TicksNumb); - 8002972: 6878 ldr r0, [r7, #4] - 8002974: f7ff ffa2 bl 80028bc - 8002978: 4603 mov r3, r0 + 8003892: 6878 ldr r0, [r7, #4] + 8003894: f7ff ffa2 bl 80037dc + 8003898: 4603 mov r3, r0 } - 800297a: 4618 mov r0, r3 - 800297c: 3708 adds r7, #8 - 800297e: 46bd mov sp, r7 - 8002980: bd80 pop {r7, pc} + 800389a: 4618 mov r0, r3 + 800389c: 3708 adds r7, #8 + 800389e: 46bd mov sp, r7 + 80038a0: bd80 pop {r7, pc} -08002982 : +080038a2 : * @param hdma pointer to a DMA_HandleTypeDef structure that contains * the configuration information for the specified DMA Stream. * @retval HAL status */ HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma) { - 8002982: b480 push {r7} - 8002984: b083 sub sp, #12 - 8002986: af00 add r7, sp, #0 - 8002988: 6078 str r0, [r7, #4] + 80038a2: b480 push {r7} + 80038a4: b083 sub sp, #12 + 80038a6: af00 add r7, sp, #0 + 80038a8: 6078 str r0, [r7, #4] if(hdma->State != HAL_DMA_STATE_BUSY) - 800298a: 687b ldr r3, [r7, #4] - 800298c: f893 3035 ldrb.w r3, [r3, #53] ; 0x35 - 8002990: b2db uxtb r3, r3 - 8002992: 2b02 cmp r3, #2 - 8002994: d004 beq.n 80029a0 + 80038aa: 687b ldr r3, [r7, #4] + 80038ac: f893 3035 ldrb.w r3, [r3, #53] ; 0x35 + 80038b0: b2db uxtb r3, r3 + 80038b2: 2b02 cmp r3, #2 + 80038b4: d004 beq.n 80038c0 { hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER; - 8002996: 687b ldr r3, [r7, #4] - 8002998: 2280 movs r2, #128 ; 0x80 - 800299a: 655a str r2, [r3, #84] ; 0x54 + 80038b6: 687b ldr r3, [r7, #4] + 80038b8: 2280 movs r2, #128 ; 0x80 + 80038ba: 655a str r2, [r3, #84] ; 0x54 return HAL_ERROR; - 800299c: 2301 movs r3, #1 - 800299e: e00c b.n 80029ba + 80038bc: 2301 movs r3, #1 + 80038be: e00c b.n 80038da } else { /* Set Abort State */ hdma->State = HAL_DMA_STATE_ABORT; - 80029a0: 687b ldr r3, [r7, #4] - 80029a2: 2205 movs r2, #5 - 80029a4: f883 2035 strb.w r2, [r3, #53] ; 0x35 + 80038c0: 687b ldr r3, [r7, #4] + 80038c2: 2205 movs r2, #5 + 80038c4: f883 2035 strb.w r2, [r3, #53] ; 0x35 /* Disable the stream */ __HAL_DMA_DISABLE(hdma); - 80029a8: 687b ldr r3, [r7, #4] - 80029aa: 681b ldr r3, [r3, #0] - 80029ac: 681a ldr r2, [r3, #0] - 80029ae: 687b ldr r3, [r7, #4] - 80029b0: 681b ldr r3, [r3, #0] - 80029b2: f022 0201 bic.w r2, r2, #1 - 80029b6: 601a str r2, [r3, #0] + 80038c8: 687b ldr r3, [r7, #4] + 80038ca: 681b ldr r3, [r3, #0] + 80038cc: 681a ldr r2, [r3, #0] + 80038ce: 687b ldr r3, [r7, #4] + 80038d0: 681b ldr r3, [r3, #0] + 80038d2: f022 0201 bic.w r2, r2, #1 + 80038d6: 601a str r2, [r3, #0] } return HAL_OK; - 80029b8: 2300 movs r3, #0 + 80038d8: 2300 movs r3, #0 } - 80029ba: 4618 mov r0, r3 - 80029bc: 370c adds r7, #12 - 80029be: 46bd mov sp, r7 - 80029c0: f85d 7b04 ldr.w r7, [sp], #4 - 80029c4: 4770 bx lr + 80038da: 4618 mov r0, r3 + 80038dc: 370c adds r7, #12 + 80038de: 46bd mov sp, r7 + 80038e0: f85d 7b04 ldr.w r7, [sp], #4 + 80038e4: 4770 bx lr ... -080029c8 : +080038e8 : * @param GPIO_Init pointer to a GPIO_InitTypeDef structure that contains * the configuration information for the specified GPIO peripheral. * @retval None */ void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init) { - 80029c8: b480 push {r7} - 80029ca: b089 sub sp, #36 ; 0x24 - 80029cc: af00 add r7, sp, #0 - 80029ce: 6078 str r0, [r7, #4] - 80029d0: 6039 str r1, [r7, #0] + 80038e8: b480 push {r7} + 80038ea: b089 sub sp, #36 ; 0x24 + 80038ec: af00 add r7, sp, #0 + 80038ee: 6078 str r0, [r7, #4] + 80038f0: 6039 str r1, [r7, #0] uint32_t position; uint32_t ioposition = 0x00U; - 80029d2: 2300 movs r3, #0 - 80029d4: 617b str r3, [r7, #20] + 80038f2: 2300 movs r3, #0 + 80038f4: 617b str r3, [r7, #20] uint32_t iocurrent = 0x00U; - 80029d6: 2300 movs r3, #0 - 80029d8: 613b str r3, [r7, #16] + 80038f6: 2300 movs r3, #0 + 80038f8: 613b str r3, [r7, #16] uint32_t temp = 0x00U; - 80029da: 2300 movs r3, #0 - 80029dc: 61bb str r3, [r7, #24] + 80038fa: 2300 movs r3, #0 + 80038fc: 61bb str r3, [r7, #24] assert_param(IS_GPIO_PIN(GPIO_Init->Pin)); assert_param(IS_GPIO_MODE(GPIO_Init->Mode)); assert_param(IS_GPIO_PULL(GPIO_Init->Pull)); /* Configure the port pins */ for(position = 0U; position < GPIO_NUMBER; position++) - 80029de: 2300 movs r3, #0 - 80029e0: 61fb str r3, [r7, #28] - 80029e2: e177 b.n 8002cd4 + 80038fe: 2300 movs r3, #0 + 8003900: 61fb str r3, [r7, #28] + 8003902: e177 b.n 8003bf4 { /* Get the IO position */ ioposition = 0x01U << position; - 80029e4: 2201 movs r2, #1 - 80029e6: 69fb ldr r3, [r7, #28] - 80029e8: fa02 f303 lsl.w r3, r2, r3 - 80029ec: 617b str r3, [r7, #20] + 8003904: 2201 movs r2, #1 + 8003906: 69fb ldr r3, [r7, #28] + 8003908: fa02 f303 lsl.w r3, r2, r3 + 800390c: 617b str r3, [r7, #20] /* Get the current IO position */ iocurrent = (uint32_t)(GPIO_Init->Pin) & ioposition; - 80029ee: 683b ldr r3, [r7, #0] - 80029f0: 681b ldr r3, [r3, #0] - 80029f2: 697a ldr r2, [r7, #20] - 80029f4: 4013 ands r3, r2 - 80029f6: 613b str r3, [r7, #16] + 800390e: 683b ldr r3, [r7, #0] + 8003910: 681b ldr r3, [r3, #0] + 8003912: 697a ldr r2, [r7, #20] + 8003914: 4013 ands r3, r2 + 8003916: 613b str r3, [r7, #16] if(iocurrent == ioposition) - 80029f8: 693a ldr r2, [r7, #16] - 80029fa: 697b ldr r3, [r7, #20] - 80029fc: 429a cmp r2, r3 - 80029fe: f040 8166 bne.w 8002cce + 8003918: 693a ldr r2, [r7, #16] + 800391a: 697b ldr r3, [r7, #20] + 800391c: 429a cmp r2, r3 + 800391e: f040 8166 bne.w 8003bee { /*--------------------- GPIO Mode Configuration ------------------------*/ /* In case of Output or Alternate function mode selection */ if((GPIO_Init->Mode == GPIO_MODE_OUTPUT_PP) || (GPIO_Init->Mode == GPIO_MODE_AF_PP) || - 8002a02: 683b ldr r3, [r7, #0] - 8002a04: 685b ldr r3, [r3, #4] - 8002a06: 2b01 cmp r3, #1 - 8002a08: d00b beq.n 8002a22 - 8002a0a: 683b ldr r3, [r7, #0] - 8002a0c: 685b ldr r3, [r3, #4] - 8002a0e: 2b02 cmp r3, #2 - 8002a10: d007 beq.n 8002a22 + 8003922: 683b ldr r3, [r7, #0] + 8003924: 685b ldr r3, [r3, #4] + 8003926: 2b01 cmp r3, #1 + 8003928: d00b beq.n 8003942 + 800392a: 683b ldr r3, [r7, #0] + 800392c: 685b ldr r3, [r3, #4] + 800392e: 2b02 cmp r3, #2 + 8003930: d007 beq.n 8003942 (GPIO_Init->Mode == GPIO_MODE_OUTPUT_OD) || (GPIO_Init->Mode == GPIO_MODE_AF_OD)) - 8002a12: 683b ldr r3, [r7, #0] - 8002a14: 685b ldr r3, [r3, #4] + 8003932: 683b ldr r3, [r7, #0] + 8003934: 685b ldr r3, [r3, #4] if((GPIO_Init->Mode == GPIO_MODE_OUTPUT_PP) || (GPIO_Init->Mode == GPIO_MODE_AF_PP) || - 8002a16: 2b11 cmp r3, #17 - 8002a18: d003 beq.n 8002a22 + 8003936: 2b11 cmp r3, #17 + 8003938: d003 beq.n 8003942 (GPIO_Init->Mode == GPIO_MODE_OUTPUT_OD) || (GPIO_Init->Mode == GPIO_MODE_AF_OD)) - 8002a1a: 683b ldr r3, [r7, #0] - 8002a1c: 685b ldr r3, [r3, #4] - 8002a1e: 2b12 cmp r3, #18 - 8002a20: d130 bne.n 8002a84 + 800393a: 683b ldr r3, [r7, #0] + 800393c: 685b ldr r3, [r3, #4] + 800393e: 2b12 cmp r3, #18 + 8003940: d130 bne.n 80039a4 { /* Check the Speed parameter */ assert_param(IS_GPIO_SPEED(GPIO_Init->Speed)); /* Configure the IO Speed */ temp = GPIOx->OSPEEDR; - 8002a22: 687b ldr r3, [r7, #4] - 8002a24: 689b ldr r3, [r3, #8] - 8002a26: 61bb str r3, [r7, #24] + 8003942: 687b ldr r3, [r7, #4] + 8003944: 689b ldr r3, [r3, #8] + 8003946: 61bb str r3, [r7, #24] temp &= ~(GPIO_OSPEEDER_OSPEEDR0 << (position * 2U)); - 8002a28: 69fb ldr r3, [r7, #28] - 8002a2a: 005b lsls r3, r3, #1 - 8002a2c: 2203 movs r2, #3 - 8002a2e: fa02 f303 lsl.w r3, r2, r3 - 8002a32: 43db mvns r3, r3 - 8002a34: 69ba ldr r2, [r7, #24] - 8002a36: 4013 ands r3, r2 - 8002a38: 61bb str r3, [r7, #24] + 8003948: 69fb ldr r3, [r7, #28] + 800394a: 005b lsls r3, r3, #1 + 800394c: 2203 movs r2, #3 + 800394e: fa02 f303 lsl.w r3, r2, r3 + 8003952: 43db mvns r3, r3 + 8003954: 69ba ldr r2, [r7, #24] + 8003956: 4013 ands r3, r2 + 8003958: 61bb str r3, [r7, #24] temp |= (GPIO_Init->Speed << (position * 2U)); - 8002a3a: 683b ldr r3, [r7, #0] - 8002a3c: 68da ldr r2, [r3, #12] - 8002a3e: 69fb ldr r3, [r7, #28] - 8002a40: 005b lsls r3, r3, #1 - 8002a42: fa02 f303 lsl.w r3, r2, r3 - 8002a46: 69ba ldr r2, [r7, #24] - 8002a48: 4313 orrs r3, r2 - 8002a4a: 61bb str r3, [r7, #24] + 800395a: 683b ldr r3, [r7, #0] + 800395c: 68da ldr r2, [r3, #12] + 800395e: 69fb ldr r3, [r7, #28] + 8003960: 005b lsls r3, r3, #1 + 8003962: fa02 f303 lsl.w r3, r2, r3 + 8003966: 69ba ldr r2, [r7, #24] + 8003968: 4313 orrs r3, r2 + 800396a: 61bb str r3, [r7, #24] GPIOx->OSPEEDR = temp; - 8002a4c: 687b ldr r3, [r7, #4] - 8002a4e: 69ba ldr r2, [r7, #24] - 8002a50: 609a str r2, [r3, #8] + 800396c: 687b ldr r3, [r7, #4] + 800396e: 69ba ldr r2, [r7, #24] + 8003970: 609a str r2, [r3, #8] /* Configure the IO Output Type */ temp = GPIOx->OTYPER; - 8002a52: 687b ldr r3, [r7, #4] - 8002a54: 685b ldr r3, [r3, #4] - 8002a56: 61bb str r3, [r7, #24] + 8003972: 687b ldr r3, [r7, #4] + 8003974: 685b ldr r3, [r3, #4] + 8003976: 61bb str r3, [r7, #24] temp &= ~(GPIO_OTYPER_OT_0 << position) ; - 8002a58: 2201 movs r2, #1 - 8002a5a: 69fb ldr r3, [r7, #28] - 8002a5c: fa02 f303 lsl.w r3, r2, r3 - 8002a60: 43db mvns r3, r3 - 8002a62: 69ba ldr r2, [r7, #24] - 8002a64: 4013 ands r3, r2 - 8002a66: 61bb str r3, [r7, #24] + 8003978: 2201 movs r2, #1 + 800397a: 69fb ldr r3, [r7, #28] + 800397c: fa02 f303 lsl.w r3, r2, r3 + 8003980: 43db mvns r3, r3 + 8003982: 69ba ldr r2, [r7, #24] + 8003984: 4013 ands r3, r2 + 8003986: 61bb str r3, [r7, #24] temp |= (((GPIO_Init->Mode & GPIO_OUTPUT_TYPE) >> 4U) << position); - 8002a68: 683b ldr r3, [r7, #0] - 8002a6a: 685b ldr r3, [r3, #4] - 8002a6c: 091b lsrs r3, r3, #4 - 8002a6e: f003 0201 and.w r2, r3, #1 - 8002a72: 69fb ldr r3, [r7, #28] - 8002a74: fa02 f303 lsl.w r3, r2, r3 - 8002a78: 69ba ldr r2, [r7, #24] - 8002a7a: 4313 orrs r3, r2 - 8002a7c: 61bb str r3, [r7, #24] + 8003988: 683b ldr r3, [r7, #0] + 800398a: 685b ldr r3, [r3, #4] + 800398c: 091b lsrs r3, r3, #4 + 800398e: f003 0201 and.w r2, r3, #1 + 8003992: 69fb ldr r3, [r7, #28] + 8003994: fa02 f303 lsl.w r3, r2, r3 + 8003998: 69ba ldr r2, [r7, #24] + 800399a: 4313 orrs r3, r2 + 800399c: 61bb str r3, [r7, #24] GPIOx->OTYPER = temp; - 8002a7e: 687b ldr r3, [r7, #4] - 8002a80: 69ba ldr r2, [r7, #24] - 8002a82: 605a str r2, [r3, #4] + 800399e: 687b ldr r3, [r7, #4] + 80039a0: 69ba ldr r2, [r7, #24] + 80039a2: 605a str r2, [r3, #4] } /* Activate the Pull-up or Pull down resistor for the current IO */ temp = GPIOx->PUPDR; - 8002a84: 687b ldr r3, [r7, #4] - 8002a86: 68db ldr r3, [r3, #12] - 8002a88: 61bb str r3, [r7, #24] + 80039a4: 687b ldr r3, [r7, #4] + 80039a6: 68db ldr r3, [r3, #12] + 80039a8: 61bb str r3, [r7, #24] temp &= ~(GPIO_PUPDR_PUPDR0 << (position * 2U)); - 8002a8a: 69fb ldr r3, [r7, #28] - 8002a8c: 005b lsls r3, r3, #1 - 8002a8e: 2203 movs r2, #3 - 8002a90: fa02 f303 lsl.w r3, r2, r3 - 8002a94: 43db mvns r3, r3 - 8002a96: 69ba ldr r2, [r7, #24] - 8002a98: 4013 ands r3, r2 - 8002a9a: 61bb str r3, [r7, #24] + 80039aa: 69fb ldr r3, [r7, #28] + 80039ac: 005b lsls r3, r3, #1 + 80039ae: 2203 movs r2, #3 + 80039b0: fa02 f303 lsl.w r3, r2, r3 + 80039b4: 43db mvns r3, r3 + 80039b6: 69ba ldr r2, [r7, #24] + 80039b8: 4013 ands r3, r2 + 80039ba: 61bb str r3, [r7, #24] temp |= ((GPIO_Init->Pull) << (position * 2U)); - 8002a9c: 683b ldr r3, [r7, #0] - 8002a9e: 689a ldr r2, [r3, #8] - 8002aa0: 69fb ldr r3, [r7, #28] - 8002aa2: 005b lsls r3, r3, #1 - 8002aa4: fa02 f303 lsl.w r3, r2, r3 - 8002aa8: 69ba ldr r2, [r7, #24] - 8002aaa: 4313 orrs r3, r2 - 8002aac: 61bb str r3, [r7, #24] + 80039bc: 683b ldr r3, [r7, #0] + 80039be: 689a ldr r2, [r3, #8] + 80039c0: 69fb ldr r3, [r7, #28] + 80039c2: 005b lsls r3, r3, #1 + 80039c4: fa02 f303 lsl.w r3, r2, r3 + 80039c8: 69ba ldr r2, [r7, #24] + 80039ca: 4313 orrs r3, r2 + 80039cc: 61bb str r3, [r7, #24] GPIOx->PUPDR = temp; - 8002aae: 687b ldr r3, [r7, #4] - 8002ab0: 69ba ldr r2, [r7, #24] - 8002ab2: 60da str r2, [r3, #12] + 80039ce: 687b ldr r3, [r7, #4] + 80039d0: 69ba ldr r2, [r7, #24] + 80039d2: 60da str r2, [r3, #12] /* In case of Alternate function mode selection */ if((GPIO_Init->Mode == GPIO_MODE_AF_PP) || (GPIO_Init->Mode == GPIO_MODE_AF_OD)) - 8002ab4: 683b ldr r3, [r7, #0] - 8002ab6: 685b ldr r3, [r3, #4] - 8002ab8: 2b02 cmp r3, #2 - 8002aba: d003 beq.n 8002ac4 - 8002abc: 683b ldr r3, [r7, #0] - 8002abe: 685b ldr r3, [r3, #4] - 8002ac0: 2b12 cmp r3, #18 - 8002ac2: d123 bne.n 8002b0c + 80039d4: 683b ldr r3, [r7, #0] + 80039d6: 685b ldr r3, [r3, #4] + 80039d8: 2b02 cmp r3, #2 + 80039da: d003 beq.n 80039e4 + 80039dc: 683b ldr r3, [r7, #0] + 80039de: 685b ldr r3, [r3, #4] + 80039e0: 2b12 cmp r3, #18 + 80039e2: d123 bne.n 8003a2c { /* Check the Alternate function parameter */ assert_param(IS_GPIO_AF(GPIO_Init->Alternate)); /* Configure Alternate function mapped with the current IO */ temp = GPIOx->AFR[position >> 3U]; - 8002ac4: 69fb ldr r3, [r7, #28] - 8002ac6: 08da lsrs r2, r3, #3 - 8002ac8: 687b ldr r3, [r7, #4] - 8002aca: 3208 adds r2, #8 - 8002acc: f853 3022 ldr.w r3, [r3, r2, lsl #2] - 8002ad0: 61bb str r3, [r7, #24] + 80039e4: 69fb ldr r3, [r7, #28] + 80039e6: 08da lsrs r2, r3, #3 + 80039e8: 687b ldr r3, [r7, #4] + 80039ea: 3208 adds r2, #8 + 80039ec: f853 3022 ldr.w r3, [r3, r2, lsl #2] + 80039f0: 61bb str r3, [r7, #24] temp &= ~(0xFU << ((uint32_t)(position & 0x07U) * 4U)) ; - 8002ad2: 69fb ldr r3, [r7, #28] - 8002ad4: f003 0307 and.w r3, r3, #7 - 8002ad8: 009b lsls r3, r3, #2 - 8002ada: 220f movs r2, #15 - 8002adc: fa02 f303 lsl.w r3, r2, r3 - 8002ae0: 43db mvns r3, r3 - 8002ae2: 69ba ldr r2, [r7, #24] - 8002ae4: 4013 ands r3, r2 - 8002ae6: 61bb str r3, [r7, #24] + 80039f2: 69fb ldr r3, [r7, #28] + 80039f4: f003 0307 and.w r3, r3, #7 + 80039f8: 009b lsls r3, r3, #2 + 80039fa: 220f movs r2, #15 + 80039fc: fa02 f303 lsl.w r3, r2, r3 + 8003a00: 43db mvns r3, r3 + 8003a02: 69ba ldr r2, [r7, #24] + 8003a04: 4013 ands r3, r2 + 8003a06: 61bb str r3, [r7, #24] temp |= ((uint32_t)(GPIO_Init->Alternate) << (((uint32_t)position & 0x07U) * 4U)); - 8002ae8: 683b ldr r3, [r7, #0] - 8002aea: 691a ldr r2, [r3, #16] - 8002aec: 69fb ldr r3, [r7, #28] - 8002aee: f003 0307 and.w r3, r3, #7 - 8002af2: 009b lsls r3, r3, #2 - 8002af4: fa02 f303 lsl.w r3, r2, r3 - 8002af8: 69ba ldr r2, [r7, #24] - 8002afa: 4313 orrs r3, r2 - 8002afc: 61bb str r3, [r7, #24] + 8003a08: 683b ldr r3, [r7, #0] + 8003a0a: 691a ldr r2, [r3, #16] + 8003a0c: 69fb ldr r3, [r7, #28] + 8003a0e: f003 0307 and.w r3, r3, #7 + 8003a12: 009b lsls r3, r3, #2 + 8003a14: fa02 f303 lsl.w r3, r2, r3 + 8003a18: 69ba ldr r2, [r7, #24] + 8003a1a: 4313 orrs r3, r2 + 8003a1c: 61bb str r3, [r7, #24] GPIOx->AFR[position >> 3U] = temp; - 8002afe: 69fb ldr r3, [r7, #28] - 8002b00: 08da lsrs r2, r3, #3 - 8002b02: 687b ldr r3, [r7, #4] - 8002b04: 3208 adds r2, #8 - 8002b06: 69b9 ldr r1, [r7, #24] - 8002b08: f843 1022 str.w r1, [r3, r2, lsl #2] + 8003a1e: 69fb ldr r3, [r7, #28] + 8003a20: 08da lsrs r2, r3, #3 + 8003a22: 687b ldr r3, [r7, #4] + 8003a24: 3208 adds r2, #8 + 8003a26: 69b9 ldr r1, [r7, #24] + 8003a28: f843 1022 str.w r1, [r3, r2, lsl #2] } /* Configure IO Direction mode (Input, Output, Alternate or Analog) */ temp = GPIOx->MODER; - 8002b0c: 687b ldr r3, [r7, #4] - 8002b0e: 681b ldr r3, [r3, #0] - 8002b10: 61bb str r3, [r7, #24] + 8003a2c: 687b ldr r3, [r7, #4] + 8003a2e: 681b ldr r3, [r3, #0] + 8003a30: 61bb str r3, [r7, #24] temp &= ~(GPIO_MODER_MODER0 << (position * 2U)); - 8002b12: 69fb ldr r3, [r7, #28] - 8002b14: 005b lsls r3, r3, #1 - 8002b16: 2203 movs r2, #3 - 8002b18: fa02 f303 lsl.w r3, r2, r3 - 8002b1c: 43db mvns r3, r3 - 8002b1e: 69ba ldr r2, [r7, #24] - 8002b20: 4013 ands r3, r2 - 8002b22: 61bb str r3, [r7, #24] + 8003a32: 69fb ldr r3, [r7, #28] + 8003a34: 005b lsls r3, r3, #1 + 8003a36: 2203 movs r2, #3 + 8003a38: fa02 f303 lsl.w r3, r2, r3 + 8003a3c: 43db mvns r3, r3 + 8003a3e: 69ba ldr r2, [r7, #24] + 8003a40: 4013 ands r3, r2 + 8003a42: 61bb str r3, [r7, #24] temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2U)); - 8002b24: 683b ldr r3, [r7, #0] - 8002b26: 685b ldr r3, [r3, #4] - 8002b28: f003 0203 and.w r2, r3, #3 - 8002b2c: 69fb ldr r3, [r7, #28] - 8002b2e: 005b lsls r3, r3, #1 - 8002b30: fa02 f303 lsl.w r3, r2, r3 - 8002b34: 69ba ldr r2, [r7, #24] - 8002b36: 4313 orrs r3, r2 - 8002b38: 61bb str r3, [r7, #24] + 8003a44: 683b ldr r3, [r7, #0] + 8003a46: 685b ldr r3, [r3, #4] + 8003a48: f003 0203 and.w r2, r3, #3 + 8003a4c: 69fb ldr r3, [r7, #28] + 8003a4e: 005b lsls r3, r3, #1 + 8003a50: fa02 f303 lsl.w r3, r2, r3 + 8003a54: 69ba ldr r2, [r7, #24] + 8003a56: 4313 orrs r3, r2 + 8003a58: 61bb str r3, [r7, #24] GPIOx->MODER = temp; - 8002b3a: 687b ldr r3, [r7, #4] - 8002b3c: 69ba ldr r2, [r7, #24] - 8002b3e: 601a str r2, [r3, #0] + 8003a5a: 687b ldr r3, [r7, #4] + 8003a5c: 69ba ldr r2, [r7, #24] + 8003a5e: 601a str r2, [r3, #0] /*--------------------- EXTI Mode Configuration ------------------------*/ /* Configure the External Interrupt or event for the current IO */ if((GPIO_Init->Mode & EXTI_MODE) == EXTI_MODE) - 8002b40: 683b ldr r3, [r7, #0] - 8002b42: 685b ldr r3, [r3, #4] - 8002b44: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 - 8002b48: 2b00 cmp r3, #0 - 8002b4a: f000 80c0 beq.w 8002cce + 8003a60: 683b ldr r3, [r7, #0] + 8003a62: 685b ldr r3, [r3, #4] + 8003a64: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 + 8003a68: 2b00 cmp r3, #0 + 8003a6a: f000 80c0 beq.w 8003bee { /* Enable SYSCFG Clock */ __HAL_RCC_SYSCFG_CLK_ENABLE(); - 8002b4e: 2300 movs r3, #0 - 8002b50: 60fb str r3, [r7, #12] - 8002b52: 4b65 ldr r3, [pc, #404] ; (8002ce8 ) - 8002b54: 6c5b ldr r3, [r3, #68] ; 0x44 - 8002b56: 4a64 ldr r2, [pc, #400] ; (8002ce8 ) - 8002b58: f443 4380 orr.w r3, r3, #16384 ; 0x4000 - 8002b5c: 6453 str r3, [r2, #68] ; 0x44 - 8002b5e: 4b62 ldr r3, [pc, #392] ; (8002ce8 ) - 8002b60: 6c5b ldr r3, [r3, #68] ; 0x44 - 8002b62: f403 4380 and.w r3, r3, #16384 ; 0x4000 - 8002b66: 60fb str r3, [r7, #12] - 8002b68: 68fb ldr r3, [r7, #12] + 8003a6e: 2300 movs r3, #0 + 8003a70: 60fb str r3, [r7, #12] + 8003a72: 4b65 ldr r3, [pc, #404] ; (8003c08 ) + 8003a74: 6c5b ldr r3, [r3, #68] ; 0x44 + 8003a76: 4a64 ldr r2, [pc, #400] ; (8003c08 ) + 8003a78: f443 4380 orr.w r3, r3, #16384 ; 0x4000 + 8003a7c: 6453 str r3, [r2, #68] ; 0x44 + 8003a7e: 4b62 ldr r3, [pc, #392] ; (8003c08 ) + 8003a80: 6c5b ldr r3, [r3, #68] ; 0x44 + 8003a82: f403 4380 and.w r3, r3, #16384 ; 0x4000 + 8003a86: 60fb str r3, [r7, #12] + 8003a88: 68fb ldr r3, [r7, #12] temp = SYSCFG->EXTICR[position >> 2U]; - 8002b6a: 4a60 ldr r2, [pc, #384] ; (8002cec ) - 8002b6c: 69fb ldr r3, [r7, #28] - 8002b6e: 089b lsrs r3, r3, #2 - 8002b70: 3302 adds r3, #2 - 8002b72: f852 3023 ldr.w r3, [r2, r3, lsl #2] - 8002b76: 61bb str r3, [r7, #24] + 8003a8a: 4a60 ldr r2, [pc, #384] ; (8003c0c ) + 8003a8c: 69fb ldr r3, [r7, #28] + 8003a8e: 089b lsrs r3, r3, #2 + 8003a90: 3302 adds r3, #2 + 8003a92: f852 3023 ldr.w r3, [r2, r3, lsl #2] + 8003a96: 61bb str r3, [r7, #24] temp &= ~(0x0FU << (4U * (position & 0x03U))); - 8002b78: 69fb ldr r3, [r7, #28] - 8002b7a: f003 0303 and.w r3, r3, #3 - 8002b7e: 009b lsls r3, r3, #2 - 8002b80: 220f movs r2, #15 - 8002b82: fa02 f303 lsl.w r3, r2, r3 - 8002b86: 43db mvns r3, r3 - 8002b88: 69ba ldr r2, [r7, #24] - 8002b8a: 4013 ands r3, r2 - 8002b8c: 61bb str r3, [r7, #24] + 8003a98: 69fb ldr r3, [r7, #28] + 8003a9a: f003 0303 and.w r3, r3, #3 + 8003a9e: 009b lsls r3, r3, #2 + 8003aa0: 220f movs r2, #15 + 8003aa2: fa02 f303 lsl.w r3, r2, r3 + 8003aa6: 43db mvns r3, r3 + 8003aa8: 69ba ldr r2, [r7, #24] + 8003aaa: 4013 ands r3, r2 + 8003aac: 61bb str r3, [r7, #24] temp |= ((uint32_t)(GPIO_GET_INDEX(GPIOx)) << (4U * (position & 0x03U))); - 8002b8e: 687b ldr r3, [r7, #4] - 8002b90: 4a57 ldr r2, [pc, #348] ; (8002cf0 ) - 8002b92: 4293 cmp r3, r2 - 8002b94: d037 beq.n 8002c06 - 8002b96: 687b ldr r3, [r7, #4] - 8002b98: 4a56 ldr r2, [pc, #344] ; (8002cf4 ) - 8002b9a: 4293 cmp r3, r2 - 8002b9c: d031 beq.n 8002c02 - 8002b9e: 687b ldr r3, [r7, #4] - 8002ba0: 4a55 ldr r2, [pc, #340] ; (8002cf8 ) - 8002ba2: 4293 cmp r3, r2 - 8002ba4: d02b beq.n 8002bfe - 8002ba6: 687b ldr r3, [r7, #4] - 8002ba8: 4a54 ldr r2, [pc, #336] ; (8002cfc ) - 8002baa: 4293 cmp r3, r2 - 8002bac: d025 beq.n 8002bfa - 8002bae: 687b ldr r3, [r7, #4] - 8002bb0: 4a53 ldr r2, [pc, #332] ; (8002d00 ) - 8002bb2: 4293 cmp r3, r2 - 8002bb4: d01f beq.n 8002bf6 - 8002bb6: 687b ldr r3, [r7, #4] - 8002bb8: 4a52 ldr r2, [pc, #328] ; (8002d04 ) - 8002bba: 4293 cmp r3, r2 - 8002bbc: d019 beq.n 8002bf2 - 8002bbe: 687b ldr r3, [r7, #4] - 8002bc0: 4a51 ldr r2, [pc, #324] ; (8002d08 ) - 8002bc2: 4293 cmp r3, r2 - 8002bc4: d013 beq.n 8002bee - 8002bc6: 687b ldr r3, [r7, #4] - 8002bc8: 4a50 ldr r2, [pc, #320] ; (8002d0c ) - 8002bca: 4293 cmp r3, r2 - 8002bcc: d00d beq.n 8002bea - 8002bce: 687b ldr r3, [r7, #4] - 8002bd0: 4a4f ldr r2, [pc, #316] ; (8002d10 ) - 8002bd2: 4293 cmp r3, r2 - 8002bd4: d007 beq.n 8002be6 - 8002bd6: 687b ldr r3, [r7, #4] - 8002bd8: 4a4e ldr r2, [pc, #312] ; (8002d14 ) - 8002bda: 4293 cmp r3, r2 - 8002bdc: d101 bne.n 8002be2 - 8002bde: 2309 movs r3, #9 - 8002be0: e012 b.n 8002c08 - 8002be2: 230a movs r3, #10 - 8002be4: e010 b.n 8002c08 - 8002be6: 2308 movs r3, #8 - 8002be8: e00e b.n 8002c08 - 8002bea: 2307 movs r3, #7 - 8002bec: e00c b.n 8002c08 - 8002bee: 2306 movs r3, #6 - 8002bf0: e00a b.n 8002c08 - 8002bf2: 2305 movs r3, #5 - 8002bf4: e008 b.n 8002c08 - 8002bf6: 2304 movs r3, #4 - 8002bf8: e006 b.n 8002c08 - 8002bfa: 2303 movs r3, #3 - 8002bfc: e004 b.n 8002c08 - 8002bfe: 2302 movs r3, #2 - 8002c00: e002 b.n 8002c08 - 8002c02: 2301 movs r3, #1 - 8002c04: e000 b.n 8002c08 - 8002c06: 2300 movs r3, #0 - 8002c08: 69fa ldr r2, [r7, #28] - 8002c0a: f002 0203 and.w r2, r2, #3 - 8002c0e: 0092 lsls r2, r2, #2 - 8002c10: 4093 lsls r3, r2 - 8002c12: 69ba ldr r2, [r7, #24] - 8002c14: 4313 orrs r3, r2 - 8002c16: 61bb str r3, [r7, #24] + 8003aae: 687b ldr r3, [r7, #4] + 8003ab0: 4a57 ldr r2, [pc, #348] ; (8003c10 ) + 8003ab2: 4293 cmp r3, r2 + 8003ab4: d037 beq.n 8003b26 + 8003ab6: 687b ldr r3, [r7, #4] + 8003ab8: 4a56 ldr r2, [pc, #344] ; (8003c14 ) + 8003aba: 4293 cmp r3, r2 + 8003abc: d031 beq.n 8003b22 + 8003abe: 687b ldr r3, [r7, #4] + 8003ac0: 4a55 ldr r2, [pc, #340] ; (8003c18 ) + 8003ac2: 4293 cmp r3, r2 + 8003ac4: d02b beq.n 8003b1e + 8003ac6: 687b ldr r3, [r7, #4] + 8003ac8: 4a54 ldr r2, [pc, #336] ; (8003c1c ) + 8003aca: 4293 cmp r3, r2 + 8003acc: d025 beq.n 8003b1a + 8003ace: 687b ldr r3, [r7, #4] + 8003ad0: 4a53 ldr r2, [pc, #332] ; (8003c20 ) + 8003ad2: 4293 cmp r3, r2 + 8003ad4: d01f beq.n 8003b16 + 8003ad6: 687b ldr r3, [r7, #4] + 8003ad8: 4a52 ldr r2, [pc, #328] ; (8003c24 ) + 8003ada: 4293 cmp r3, r2 + 8003adc: d019 beq.n 8003b12 + 8003ade: 687b ldr r3, [r7, #4] + 8003ae0: 4a51 ldr r2, [pc, #324] ; (8003c28 ) + 8003ae2: 4293 cmp r3, r2 + 8003ae4: d013 beq.n 8003b0e + 8003ae6: 687b ldr r3, [r7, #4] + 8003ae8: 4a50 ldr r2, [pc, #320] ; (8003c2c ) + 8003aea: 4293 cmp r3, r2 + 8003aec: d00d beq.n 8003b0a + 8003aee: 687b ldr r3, [r7, #4] + 8003af0: 4a4f ldr r2, [pc, #316] ; (8003c30 ) + 8003af2: 4293 cmp r3, r2 + 8003af4: d007 beq.n 8003b06 + 8003af6: 687b ldr r3, [r7, #4] + 8003af8: 4a4e ldr r2, [pc, #312] ; (8003c34 ) + 8003afa: 4293 cmp r3, r2 + 8003afc: d101 bne.n 8003b02 + 8003afe: 2309 movs r3, #9 + 8003b00: e012 b.n 8003b28 + 8003b02: 230a movs r3, #10 + 8003b04: e010 b.n 8003b28 + 8003b06: 2308 movs r3, #8 + 8003b08: e00e b.n 8003b28 + 8003b0a: 2307 movs r3, #7 + 8003b0c: e00c b.n 8003b28 + 8003b0e: 2306 movs r3, #6 + 8003b10: e00a b.n 8003b28 + 8003b12: 2305 movs r3, #5 + 8003b14: e008 b.n 8003b28 + 8003b16: 2304 movs r3, #4 + 8003b18: e006 b.n 8003b28 + 8003b1a: 2303 movs r3, #3 + 8003b1c: e004 b.n 8003b28 + 8003b1e: 2302 movs r3, #2 + 8003b20: e002 b.n 8003b28 + 8003b22: 2301 movs r3, #1 + 8003b24: e000 b.n 8003b28 + 8003b26: 2300 movs r3, #0 + 8003b28: 69fa ldr r2, [r7, #28] + 8003b2a: f002 0203 and.w r2, r2, #3 + 8003b2e: 0092 lsls r2, r2, #2 + 8003b30: 4093 lsls r3, r2 + 8003b32: 69ba ldr r2, [r7, #24] + 8003b34: 4313 orrs r3, r2 + 8003b36: 61bb str r3, [r7, #24] SYSCFG->EXTICR[position >> 2U] = temp; - 8002c18: 4934 ldr r1, [pc, #208] ; (8002cec ) - 8002c1a: 69fb ldr r3, [r7, #28] - 8002c1c: 089b lsrs r3, r3, #2 - 8002c1e: 3302 adds r3, #2 - 8002c20: 69ba ldr r2, [r7, #24] - 8002c22: f841 2023 str.w r2, [r1, r3, lsl #2] + 8003b38: 4934 ldr r1, [pc, #208] ; (8003c0c ) + 8003b3a: 69fb ldr r3, [r7, #28] + 8003b3c: 089b lsrs r3, r3, #2 + 8003b3e: 3302 adds r3, #2 + 8003b40: 69ba ldr r2, [r7, #24] + 8003b42: f841 2023 str.w r2, [r1, r3, lsl #2] /* Clear EXTI line configuration */ temp = EXTI->IMR; - 8002c26: 4b3c ldr r3, [pc, #240] ; (8002d18 ) - 8002c28: 681b ldr r3, [r3, #0] - 8002c2a: 61bb str r3, [r7, #24] + 8003b46: 4b3c ldr r3, [pc, #240] ; (8003c38 ) + 8003b48: 681b ldr r3, [r3, #0] + 8003b4a: 61bb str r3, [r7, #24] temp &= ~((uint32_t)iocurrent); - 8002c2c: 693b ldr r3, [r7, #16] - 8002c2e: 43db mvns r3, r3 - 8002c30: 69ba ldr r2, [r7, #24] - 8002c32: 4013 ands r3, r2 - 8002c34: 61bb str r3, [r7, #24] + 8003b4c: 693b ldr r3, [r7, #16] + 8003b4e: 43db mvns r3, r3 + 8003b50: 69ba ldr r2, [r7, #24] + 8003b52: 4013 ands r3, r2 + 8003b54: 61bb str r3, [r7, #24] if((GPIO_Init->Mode & GPIO_MODE_IT) == GPIO_MODE_IT) - 8002c36: 683b ldr r3, [r7, #0] - 8002c38: 685b ldr r3, [r3, #4] - 8002c3a: f403 3380 and.w r3, r3, #65536 ; 0x10000 - 8002c3e: 2b00 cmp r3, #0 - 8002c40: d003 beq.n 8002c4a + 8003b56: 683b ldr r3, [r7, #0] + 8003b58: 685b ldr r3, [r3, #4] + 8003b5a: f403 3380 and.w r3, r3, #65536 ; 0x10000 + 8003b5e: 2b00 cmp r3, #0 + 8003b60: d003 beq.n 8003b6a { temp |= iocurrent; - 8002c42: 69ba ldr r2, [r7, #24] - 8002c44: 693b ldr r3, [r7, #16] - 8002c46: 4313 orrs r3, r2 - 8002c48: 61bb str r3, [r7, #24] + 8003b62: 69ba ldr r2, [r7, #24] + 8003b64: 693b ldr r3, [r7, #16] + 8003b66: 4313 orrs r3, r2 + 8003b68: 61bb str r3, [r7, #24] } EXTI->IMR = temp; - 8002c4a: 4a33 ldr r2, [pc, #204] ; (8002d18 ) - 8002c4c: 69bb ldr r3, [r7, #24] - 8002c4e: 6013 str r3, [r2, #0] + 8003b6a: 4a33 ldr r2, [pc, #204] ; (8003c38 ) + 8003b6c: 69bb ldr r3, [r7, #24] + 8003b6e: 6013 str r3, [r2, #0] temp = EXTI->EMR; - 8002c50: 4b31 ldr r3, [pc, #196] ; (8002d18 ) - 8002c52: 685b ldr r3, [r3, #4] - 8002c54: 61bb str r3, [r7, #24] + 8003b70: 4b31 ldr r3, [pc, #196] ; (8003c38 ) + 8003b72: 685b ldr r3, [r3, #4] + 8003b74: 61bb str r3, [r7, #24] temp &= ~((uint32_t)iocurrent); - 8002c56: 693b ldr r3, [r7, #16] - 8002c58: 43db mvns r3, r3 - 8002c5a: 69ba ldr r2, [r7, #24] - 8002c5c: 4013 ands r3, r2 - 8002c5e: 61bb str r3, [r7, #24] + 8003b76: 693b ldr r3, [r7, #16] + 8003b78: 43db mvns r3, r3 + 8003b7a: 69ba ldr r2, [r7, #24] + 8003b7c: 4013 ands r3, r2 + 8003b7e: 61bb str r3, [r7, #24] if((GPIO_Init->Mode & GPIO_MODE_EVT) == GPIO_MODE_EVT) - 8002c60: 683b ldr r3, [r7, #0] - 8002c62: 685b ldr r3, [r3, #4] - 8002c64: f403 3300 and.w r3, r3, #131072 ; 0x20000 - 8002c68: 2b00 cmp r3, #0 - 8002c6a: d003 beq.n 8002c74 + 8003b80: 683b ldr r3, [r7, #0] + 8003b82: 685b ldr r3, [r3, #4] + 8003b84: f403 3300 and.w r3, r3, #131072 ; 0x20000 + 8003b88: 2b00 cmp r3, #0 + 8003b8a: d003 beq.n 8003b94 { temp |= iocurrent; - 8002c6c: 69ba ldr r2, [r7, #24] - 8002c6e: 693b ldr r3, [r7, #16] - 8002c70: 4313 orrs r3, r2 - 8002c72: 61bb str r3, [r7, #24] + 8003b8c: 69ba ldr r2, [r7, #24] + 8003b8e: 693b ldr r3, [r7, #16] + 8003b90: 4313 orrs r3, r2 + 8003b92: 61bb str r3, [r7, #24] } EXTI->EMR = temp; - 8002c74: 4a28 ldr r2, [pc, #160] ; (8002d18 ) - 8002c76: 69bb ldr r3, [r7, #24] - 8002c78: 6053 str r3, [r2, #4] + 8003b94: 4a28 ldr r2, [pc, #160] ; (8003c38 ) + 8003b96: 69bb ldr r3, [r7, #24] + 8003b98: 6053 str r3, [r2, #4] /* Clear Rising Falling edge configuration */ temp = EXTI->RTSR; - 8002c7a: 4b27 ldr r3, [pc, #156] ; (8002d18 ) - 8002c7c: 689b ldr r3, [r3, #8] - 8002c7e: 61bb str r3, [r7, #24] + 8003b9a: 4b27 ldr r3, [pc, #156] ; (8003c38 ) + 8003b9c: 689b ldr r3, [r3, #8] + 8003b9e: 61bb str r3, [r7, #24] temp &= ~((uint32_t)iocurrent); - 8002c80: 693b ldr r3, [r7, #16] - 8002c82: 43db mvns r3, r3 - 8002c84: 69ba ldr r2, [r7, #24] - 8002c86: 4013 ands r3, r2 - 8002c88: 61bb str r3, [r7, #24] + 8003ba0: 693b ldr r3, [r7, #16] + 8003ba2: 43db mvns r3, r3 + 8003ba4: 69ba ldr r2, [r7, #24] + 8003ba6: 4013 ands r3, r2 + 8003ba8: 61bb str r3, [r7, #24] if((GPIO_Init->Mode & RISING_EDGE) == RISING_EDGE) - 8002c8a: 683b ldr r3, [r7, #0] - 8002c8c: 685b ldr r3, [r3, #4] - 8002c8e: f403 1380 and.w r3, r3, #1048576 ; 0x100000 - 8002c92: 2b00 cmp r3, #0 - 8002c94: d003 beq.n 8002c9e + 8003baa: 683b ldr r3, [r7, #0] + 8003bac: 685b ldr r3, [r3, #4] + 8003bae: f403 1380 and.w r3, r3, #1048576 ; 0x100000 + 8003bb2: 2b00 cmp r3, #0 + 8003bb4: d003 beq.n 8003bbe { temp |= iocurrent; - 8002c96: 69ba ldr r2, [r7, #24] - 8002c98: 693b ldr r3, [r7, #16] - 8002c9a: 4313 orrs r3, r2 - 8002c9c: 61bb str r3, [r7, #24] + 8003bb6: 69ba ldr r2, [r7, #24] + 8003bb8: 693b ldr r3, [r7, #16] + 8003bba: 4313 orrs r3, r2 + 8003bbc: 61bb str r3, [r7, #24] } EXTI->RTSR = temp; - 8002c9e: 4a1e ldr r2, [pc, #120] ; (8002d18 ) - 8002ca0: 69bb ldr r3, [r7, #24] - 8002ca2: 6093 str r3, [r2, #8] + 8003bbe: 4a1e ldr r2, [pc, #120] ; (8003c38 ) + 8003bc0: 69bb ldr r3, [r7, #24] + 8003bc2: 6093 str r3, [r2, #8] temp = EXTI->FTSR; - 8002ca4: 4b1c ldr r3, [pc, #112] ; (8002d18 ) - 8002ca6: 68db ldr r3, [r3, #12] - 8002ca8: 61bb str r3, [r7, #24] + 8003bc4: 4b1c ldr r3, [pc, #112] ; (8003c38 ) + 8003bc6: 68db ldr r3, [r3, #12] + 8003bc8: 61bb str r3, [r7, #24] temp &= ~((uint32_t)iocurrent); - 8002caa: 693b ldr r3, [r7, #16] - 8002cac: 43db mvns r3, r3 - 8002cae: 69ba ldr r2, [r7, #24] - 8002cb0: 4013 ands r3, r2 - 8002cb2: 61bb str r3, [r7, #24] + 8003bca: 693b ldr r3, [r7, #16] + 8003bcc: 43db mvns r3, r3 + 8003bce: 69ba ldr r2, [r7, #24] + 8003bd0: 4013 ands r3, r2 + 8003bd2: 61bb str r3, [r7, #24] if((GPIO_Init->Mode & FALLING_EDGE) == FALLING_EDGE) - 8002cb4: 683b ldr r3, [r7, #0] - 8002cb6: 685b ldr r3, [r3, #4] - 8002cb8: f403 1300 and.w r3, r3, #2097152 ; 0x200000 - 8002cbc: 2b00 cmp r3, #0 - 8002cbe: d003 beq.n 8002cc8 + 8003bd4: 683b ldr r3, [r7, #0] + 8003bd6: 685b ldr r3, [r3, #4] + 8003bd8: f403 1300 and.w r3, r3, #2097152 ; 0x200000 + 8003bdc: 2b00 cmp r3, #0 + 8003bde: d003 beq.n 8003be8 { temp |= iocurrent; - 8002cc0: 69ba ldr r2, [r7, #24] - 8002cc2: 693b ldr r3, [r7, #16] - 8002cc4: 4313 orrs r3, r2 - 8002cc6: 61bb str r3, [r7, #24] + 8003be0: 69ba ldr r2, [r7, #24] + 8003be2: 693b ldr r3, [r7, #16] + 8003be4: 4313 orrs r3, r2 + 8003be6: 61bb str r3, [r7, #24] } EXTI->FTSR = temp; - 8002cc8: 4a13 ldr r2, [pc, #76] ; (8002d18 ) - 8002cca: 69bb ldr r3, [r7, #24] - 8002ccc: 60d3 str r3, [r2, #12] + 8003be8: 4a13 ldr r2, [pc, #76] ; (8003c38 ) + 8003bea: 69bb ldr r3, [r7, #24] + 8003bec: 60d3 str r3, [r2, #12] for(position = 0U; position < GPIO_NUMBER; position++) - 8002cce: 69fb ldr r3, [r7, #28] - 8002cd0: 3301 adds r3, #1 - 8002cd2: 61fb str r3, [r7, #28] - 8002cd4: 69fb ldr r3, [r7, #28] - 8002cd6: 2b0f cmp r3, #15 - 8002cd8: f67f ae84 bls.w 80029e4 + 8003bee: 69fb ldr r3, [r7, #28] + 8003bf0: 3301 adds r3, #1 + 8003bf2: 61fb str r3, [r7, #28] + 8003bf4: 69fb ldr r3, [r7, #28] + 8003bf6: 2b0f cmp r3, #15 + 8003bf8: f67f ae84 bls.w 8003904 } } } } - 8002cdc: bf00 nop - 8002cde: 3724 adds r7, #36 ; 0x24 - 8002ce0: 46bd mov sp, r7 - 8002ce2: f85d 7b04 ldr.w r7, [sp], #4 - 8002ce6: 4770 bx lr - 8002ce8: 40023800 .word 0x40023800 - 8002cec: 40013800 .word 0x40013800 - 8002cf0: 40020000 .word 0x40020000 - 8002cf4: 40020400 .word 0x40020400 - 8002cf8: 40020800 .word 0x40020800 - 8002cfc: 40020c00 .word 0x40020c00 - 8002d00: 40021000 .word 0x40021000 - 8002d04: 40021400 .word 0x40021400 - 8002d08: 40021800 .word 0x40021800 - 8002d0c: 40021c00 .word 0x40021c00 - 8002d10: 40022000 .word 0x40022000 - 8002d14: 40022400 .word 0x40022400 - 8002d18: 40013c00 .word 0x40013c00 + 8003bfc: bf00 nop + 8003bfe: 3724 adds r7, #36 ; 0x24 + 8003c00: 46bd mov sp, r7 + 8003c02: f85d 7b04 ldr.w r7, [sp], #4 + 8003c06: 4770 bx lr + 8003c08: 40023800 .word 0x40023800 + 8003c0c: 40013800 .word 0x40013800 + 8003c10: 40020000 .word 0x40020000 + 8003c14: 40020400 .word 0x40020400 + 8003c18: 40020800 .word 0x40020800 + 8003c1c: 40020c00 .word 0x40020c00 + 8003c20: 40021000 .word 0x40021000 + 8003c24: 40021400 .word 0x40021400 + 8003c28: 40021800 .word 0x40021800 + 8003c2c: 40021c00 .word 0x40021c00 + 8003c30: 40022000 .word 0x40022000 + 8003c34: 40022400 .word 0x40022400 + 8003c38: 40013c00 .word 0x40013c00 -08002d1c : +08003c3c : * @arg GPIO_PIN_RESET: to clear the port pin * @arg GPIO_PIN_SET: to set the port pin * @retval None */ void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState) { - 8002d1c: b480 push {r7} - 8002d1e: b083 sub sp, #12 - 8002d20: af00 add r7, sp, #0 - 8002d22: 6078 str r0, [r7, #4] - 8002d24: 460b mov r3, r1 - 8002d26: 807b strh r3, [r7, #2] - 8002d28: 4613 mov r3, r2 - 8002d2a: 707b strb r3, [r7, #1] + 8003c3c: b480 push {r7} + 8003c3e: b083 sub sp, #12 + 8003c40: af00 add r7, sp, #0 + 8003c42: 6078 str r0, [r7, #4] + 8003c44: 460b mov r3, r1 + 8003c46: 807b strh r3, [r7, #2] + 8003c48: 4613 mov r3, r2 + 8003c4a: 707b strb r3, [r7, #1] /* Check the parameters */ assert_param(IS_GPIO_PIN(GPIO_Pin)); assert_param(IS_GPIO_PIN_ACTION(PinState)); if(PinState != GPIO_PIN_RESET) - 8002d2c: 787b ldrb r3, [r7, #1] - 8002d2e: 2b00 cmp r3, #0 - 8002d30: d003 beq.n 8002d3a + 8003c4c: 787b ldrb r3, [r7, #1] + 8003c4e: 2b00 cmp r3, #0 + 8003c50: d003 beq.n 8003c5a { GPIOx->BSRR = GPIO_Pin; - 8002d32: 887a ldrh r2, [r7, #2] - 8002d34: 687b ldr r3, [r7, #4] - 8002d36: 619a str r2, [r3, #24] + 8003c52: 887a ldrh r2, [r7, #2] + 8003c54: 687b ldr r3, [r7, #4] + 8003c56: 619a str r2, [r3, #24] } else { GPIOx->BSRR = (uint32_t)GPIO_Pin << 16U; } } - 8002d38: e003 b.n 8002d42 + 8003c58: e003 b.n 8003c62 GPIOx->BSRR = (uint32_t)GPIO_Pin << 16U; - 8002d3a: 887b ldrh r3, [r7, #2] - 8002d3c: 041a lsls r2, r3, #16 - 8002d3e: 687b ldr r3, [r7, #4] - 8002d40: 619a str r2, [r3, #24] + 8003c5a: 887b ldrh r3, [r7, #2] + 8003c5c: 041a lsls r2, r3, #16 + 8003c5e: 687b ldr r3, [r7, #4] + 8003c60: 619a str r2, [r3, #24] } - 8002d42: bf00 nop - 8002d44: 370c adds r7, #12 - 8002d46: 46bd mov sp, r7 - 8002d48: f85d 7b04 ldr.w r7, [sp], #4 - 8002d4c: 4770 bx lr + 8003c62: bf00 nop + 8003c64: 370c adds r7, #12 + 8003c66: 46bd mov sp, r7 + 8003c68: f85d 7b04 ldr.w r7, [sp], #4 + 8003c6c: 4770 bx lr ... -08002d50 : +08003c70 : * @brief This function handles EXTI interrupt request. * @param GPIO_Pin Specifies the pins connected EXTI line * @retval None */ void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin) { - 8002d50: b580 push {r7, lr} - 8002d52: b082 sub sp, #8 - 8002d54: af00 add r7, sp, #0 - 8002d56: 4603 mov r3, r0 - 8002d58: 80fb strh r3, [r7, #6] + 8003c70: b580 push {r7, lr} + 8003c72: b082 sub sp, #8 + 8003c74: af00 add r7, sp, #0 + 8003c76: 4603 mov r3, r0 + 8003c78: 80fb strh r3, [r7, #6] /* EXTI line interrupt detected */ if(__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != RESET) - 8002d5a: 4b08 ldr r3, [pc, #32] ; (8002d7c ) - 8002d5c: 695a ldr r2, [r3, #20] - 8002d5e: 88fb ldrh r3, [r7, #6] - 8002d60: 4013 ands r3, r2 - 8002d62: 2b00 cmp r3, #0 - 8002d64: d006 beq.n 8002d74 + 8003c7a: 4b08 ldr r3, [pc, #32] ; (8003c9c ) + 8003c7c: 695a ldr r2, [r3, #20] + 8003c7e: 88fb ldrh r3, [r7, #6] + 8003c80: 4013 ands r3, r2 + 8003c82: 2b00 cmp r3, #0 + 8003c84: d006 beq.n 8003c94 { __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin); - 8002d66: 4a05 ldr r2, [pc, #20] ; (8002d7c ) - 8002d68: 88fb ldrh r3, [r7, #6] - 8002d6a: 6153 str r3, [r2, #20] + 8003c86: 4a05 ldr r2, [pc, #20] ; (8003c9c ) + 8003c88: 88fb ldrh r3, [r7, #6] + 8003c8a: 6153 str r3, [r2, #20] HAL_GPIO_EXTI_Callback(GPIO_Pin); - 8002d6c: 88fb ldrh r3, [r7, #6] - 8002d6e: 4618 mov r0, r3 - 8002d70: f000 f806 bl 8002d80 + 8003c8c: 88fb ldrh r3, [r7, #6] + 8003c8e: 4618 mov r0, r3 + 8003c90: f000 f806 bl 8003ca0 } } - 8002d74: bf00 nop - 8002d76: 3708 adds r7, #8 - 8002d78: 46bd mov sp, r7 - 8002d7a: bd80 pop {r7, pc} - 8002d7c: 40013c00 .word 0x40013c00 + 8003c94: bf00 nop + 8003c96: 3708 adds r7, #8 + 8003c98: 46bd mov sp, r7 + 8003c9a: bd80 pop {r7, pc} + 8003c9c: 40013c00 .word 0x40013c00 -08002d80 : +08003ca0 : * @brief EXTI line detection callbacks. * @param GPIO_Pin Specifies the pins connected EXTI line * @retval None */ __weak void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { - 8002d80: b480 push {r7} - 8002d82: b083 sub sp, #12 - 8002d84: af00 add r7, sp, #0 - 8002d86: 4603 mov r3, r0 - 8002d88: 80fb strh r3, [r7, #6] + 8003ca0: b480 push {r7} + 8003ca2: b083 sub sp, #12 + 8003ca4: af00 add r7, sp, #0 + 8003ca6: 4603 mov r3, r0 + 8003ca8: 80fb strh r3, [r7, #6] /* Prevent unused argument(s) compilation warning */ UNUSED(GPIO_Pin); /* NOTE: This function Should not be modified, when the callback is needed, the HAL_GPIO_EXTI_Callback could be implemented in the user file */ } - 8002d8a: bf00 nop - 8002d8c: 370c adds r7, #12 - 8002d8e: 46bd mov sp, r7 - 8002d90: f85d 7b04 ldr.w r7, [sp], #4 - 8002d94: 4770 bx lr + 8003caa: bf00 nop + 8003cac: 370c adds r7, #12 + 8003cae: 46bd mov sp, r7 + 8003cb0: f85d 7b04 ldr.w r7, [sp], #4 + 8003cb4: 4770 bx lr ... -08002d98 : +08003cb8 : * supported by this API. User should request a transition to HSE Off * first and then HSE On or HSE Bypass. * @retval HAL status */ __weak HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) { - 8002d98: b580 push {r7, lr} - 8002d9a: b086 sub sp, #24 - 8002d9c: af00 add r7, sp, #0 - 8002d9e: 6078 str r0, [r7, #4] + 8003cb8: b580 push {r7, lr} + 8003cba: b086 sub sp, #24 + 8003cbc: af00 add r7, sp, #0 + 8003cbe: 6078 str r0, [r7, #4] uint32_t tickstart, pll_config; /* Check Null pointer */ if(RCC_OscInitStruct == NULL) - 8002da0: 687b ldr r3, [r7, #4] - 8002da2: 2b00 cmp r3, #0 - 8002da4: d101 bne.n 8002daa + 8003cc0: 687b ldr r3, [r7, #4] + 8003cc2: 2b00 cmp r3, #0 + 8003cc4: d101 bne.n 8003cca { return HAL_ERROR; - 8002da6: 2301 movs r3, #1 - 8002da8: e25b b.n 8003262 + 8003cc6: 2301 movs r3, #1 + 8003cc8: e25b b.n 8004182 } /* Check the parameters */ assert_param(IS_RCC_OSCILLATORTYPE(RCC_OscInitStruct->OscillatorType)); /*------------------------------- HSE Configuration ------------------------*/ if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSE) == RCC_OSCILLATORTYPE_HSE) - 8002daa: 687b ldr r3, [r7, #4] - 8002dac: 681b ldr r3, [r3, #0] - 8002dae: f003 0301 and.w r3, r3, #1 - 8002db2: 2b00 cmp r3, #0 - 8002db4: d075 beq.n 8002ea2 + 8003cca: 687b ldr r3, [r7, #4] + 8003ccc: 681b ldr r3, [r3, #0] + 8003cce: f003 0301 and.w r3, r3, #1 + 8003cd2: 2b00 cmp r3, #0 + 8003cd4: d075 beq.n 8003dc2 { /* Check the parameters */ assert_param(IS_RCC_HSE(RCC_OscInitStruct->HSEState)); /* When the HSE is used as system clock or clock source for PLL in these cases HSE will not disabled */ if((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_CFGR_SWS_HSE) ||\ - 8002db6: 4ba3 ldr r3, [pc, #652] ; (8003044 ) - 8002db8: 689b ldr r3, [r3, #8] - 8002dba: f003 030c and.w r3, r3, #12 - 8002dbe: 2b04 cmp r3, #4 - 8002dc0: d00c beq.n 8002ddc + 8003cd6: 4ba3 ldr r3, [pc, #652] ; (8003f64 ) + 8003cd8: 689b ldr r3, [r3, #8] + 8003cda: f003 030c and.w r3, r3, #12 + 8003cde: 2b04 cmp r3, #4 + 8003ce0: d00c beq.n 8003cfc ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_CFGR_SWS_PLL) && ((RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) == RCC_PLLCFGR_PLLSRC_HSE))) - 8002dc2: 4ba0 ldr r3, [pc, #640] ; (8003044 ) - 8002dc4: 689b ldr r3, [r3, #8] - 8002dc6: f003 030c and.w r3, r3, #12 + 8003ce2: 4ba0 ldr r3, [pc, #640] ; (8003f64 ) + 8003ce4: 689b ldr r3, [r3, #8] + 8003ce6: f003 030c and.w r3, r3, #12 if((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_CFGR_SWS_HSE) ||\ - 8002dca: 2b08 cmp r3, #8 - 8002dcc: d112 bne.n 8002df4 + 8003cea: 2b08 cmp r3, #8 + 8003cec: d112 bne.n 8003d14 ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_CFGR_SWS_PLL) && ((RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) == RCC_PLLCFGR_PLLSRC_HSE))) - 8002dce: 4b9d ldr r3, [pc, #628] ; (8003044 ) - 8002dd0: 685b ldr r3, [r3, #4] - 8002dd2: f403 0380 and.w r3, r3, #4194304 ; 0x400000 - 8002dd6: f5b3 0f80 cmp.w r3, #4194304 ; 0x400000 - 8002dda: d10b bne.n 8002df4 + 8003cee: 4b9d ldr r3, [pc, #628] ; (8003f64 ) + 8003cf0: 685b ldr r3, [r3, #4] + 8003cf2: f403 0380 and.w r3, r3, #4194304 ; 0x400000 + 8003cf6: f5b3 0f80 cmp.w r3, #4194304 ; 0x400000 + 8003cfa: d10b bne.n 8003d14 { if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) - 8002ddc: 4b99 ldr r3, [pc, #612] ; (8003044 ) - 8002dde: 681b ldr r3, [r3, #0] - 8002de0: f403 3300 and.w r3, r3, #131072 ; 0x20000 - 8002de4: 2b00 cmp r3, #0 - 8002de6: d05b beq.n 8002ea0 - 8002de8: 687b ldr r3, [r7, #4] - 8002dea: 685b ldr r3, [r3, #4] - 8002dec: 2b00 cmp r3, #0 - 8002dee: d157 bne.n 8002ea0 + 8003cfc: 4b99 ldr r3, [pc, #612] ; (8003f64 ) + 8003cfe: 681b ldr r3, [r3, #0] + 8003d00: f403 3300 and.w r3, r3, #131072 ; 0x20000 + 8003d04: 2b00 cmp r3, #0 + 8003d06: d05b beq.n 8003dc0 + 8003d08: 687b ldr r3, [r7, #4] + 8003d0a: 685b ldr r3, [r3, #4] + 8003d0c: 2b00 cmp r3, #0 + 8003d0e: d157 bne.n 8003dc0 { return HAL_ERROR; - 8002df0: 2301 movs r3, #1 - 8002df2: e236 b.n 8003262 + 8003d10: 2301 movs r3, #1 + 8003d12: e236 b.n 8004182 } } else { /* Set the new HSE configuration ---------------------------------------*/ __HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState); - 8002df4: 687b ldr r3, [r7, #4] - 8002df6: 685b ldr r3, [r3, #4] - 8002df8: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 - 8002dfc: d106 bne.n 8002e0c - 8002dfe: 4b91 ldr r3, [pc, #580] ; (8003044 ) - 8002e00: 681b ldr r3, [r3, #0] - 8002e02: 4a90 ldr r2, [pc, #576] ; (8003044 ) - 8002e04: f443 3380 orr.w r3, r3, #65536 ; 0x10000 - 8002e08: 6013 str r3, [r2, #0] - 8002e0a: e01d b.n 8002e48 - 8002e0c: 687b ldr r3, [r7, #4] - 8002e0e: 685b ldr r3, [r3, #4] - 8002e10: f5b3 2fa0 cmp.w r3, #327680 ; 0x50000 - 8002e14: d10c bne.n 8002e30 - 8002e16: 4b8b ldr r3, [pc, #556] ; (8003044 ) - 8002e18: 681b ldr r3, [r3, #0] - 8002e1a: 4a8a ldr r2, [pc, #552] ; (8003044 ) - 8002e1c: f443 2380 orr.w r3, r3, #262144 ; 0x40000 - 8002e20: 6013 str r3, [r2, #0] - 8002e22: 4b88 ldr r3, [pc, #544] ; (8003044 ) - 8002e24: 681b ldr r3, [r3, #0] - 8002e26: 4a87 ldr r2, [pc, #540] ; (8003044 ) - 8002e28: f443 3380 orr.w r3, r3, #65536 ; 0x10000 - 8002e2c: 6013 str r3, [r2, #0] - 8002e2e: e00b b.n 8002e48 - 8002e30: 4b84 ldr r3, [pc, #528] ; (8003044 ) - 8002e32: 681b ldr r3, [r3, #0] - 8002e34: 4a83 ldr r2, [pc, #524] ; (8003044 ) - 8002e36: f423 3380 bic.w r3, r3, #65536 ; 0x10000 - 8002e3a: 6013 str r3, [r2, #0] - 8002e3c: 4b81 ldr r3, [pc, #516] ; (8003044 ) - 8002e3e: 681b ldr r3, [r3, #0] - 8002e40: 4a80 ldr r2, [pc, #512] ; (8003044 ) - 8002e42: f423 2380 bic.w r3, r3, #262144 ; 0x40000 - 8002e46: 6013 str r3, [r2, #0] + 8003d14: 687b ldr r3, [r7, #4] + 8003d16: 685b ldr r3, [r3, #4] + 8003d18: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 + 8003d1c: d106 bne.n 8003d2c + 8003d1e: 4b91 ldr r3, [pc, #580] ; (8003f64 ) + 8003d20: 681b ldr r3, [r3, #0] + 8003d22: 4a90 ldr r2, [pc, #576] ; (8003f64 ) + 8003d24: f443 3380 orr.w r3, r3, #65536 ; 0x10000 + 8003d28: 6013 str r3, [r2, #0] + 8003d2a: e01d b.n 8003d68 + 8003d2c: 687b ldr r3, [r7, #4] + 8003d2e: 685b ldr r3, [r3, #4] + 8003d30: f5b3 2fa0 cmp.w r3, #327680 ; 0x50000 + 8003d34: d10c bne.n 8003d50 + 8003d36: 4b8b ldr r3, [pc, #556] ; (8003f64 ) + 8003d38: 681b ldr r3, [r3, #0] + 8003d3a: 4a8a ldr r2, [pc, #552] ; (8003f64 ) + 8003d3c: f443 2380 orr.w r3, r3, #262144 ; 0x40000 + 8003d40: 6013 str r3, [r2, #0] + 8003d42: 4b88 ldr r3, [pc, #544] ; (8003f64 ) + 8003d44: 681b ldr r3, [r3, #0] + 8003d46: 4a87 ldr r2, [pc, #540] ; (8003f64 ) + 8003d48: f443 3380 orr.w r3, r3, #65536 ; 0x10000 + 8003d4c: 6013 str r3, [r2, #0] + 8003d4e: e00b b.n 8003d68 + 8003d50: 4b84 ldr r3, [pc, #528] ; (8003f64 ) + 8003d52: 681b ldr r3, [r3, #0] + 8003d54: 4a83 ldr r2, [pc, #524] ; (8003f64 ) + 8003d56: f423 3380 bic.w r3, r3, #65536 ; 0x10000 + 8003d5a: 6013 str r3, [r2, #0] + 8003d5c: 4b81 ldr r3, [pc, #516] ; (8003f64 ) + 8003d5e: 681b ldr r3, [r3, #0] + 8003d60: 4a80 ldr r2, [pc, #512] ; (8003f64 ) + 8003d62: f423 2380 bic.w r3, r3, #262144 ; 0x40000 + 8003d66: 6013 str r3, [r2, #0] /* Check the HSE State */ if((RCC_OscInitStruct->HSEState) != RCC_HSE_OFF) - 8002e48: 687b ldr r3, [r7, #4] - 8002e4a: 685b ldr r3, [r3, #4] - 8002e4c: 2b00 cmp r3, #0 - 8002e4e: d013 beq.n 8002e78 + 8003d68: 687b ldr r3, [r7, #4] + 8003d6a: 685b ldr r3, [r3, #4] + 8003d6c: 2b00 cmp r3, #0 + 8003d6e: d013 beq.n 8003d98 { /* Get Start Tick */ tickstart = HAL_GetTick(); - 8002e50: f7ff f88e bl 8001f70 - 8002e54: 6138 str r0, [r7, #16] + 8003d70: f7ff f88e bl 8002e90 + 8003d74: 6138 str r0, [r7, #16] /* Wait till HSE is ready */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) - 8002e56: e008 b.n 8002e6a + 8003d76: e008 b.n 8003d8a { if((HAL_GetTick() - tickstart ) > HSE_TIMEOUT_VALUE) - 8002e58: f7ff f88a bl 8001f70 - 8002e5c: 4602 mov r2, r0 - 8002e5e: 693b ldr r3, [r7, #16] - 8002e60: 1ad3 subs r3, r2, r3 - 8002e62: 2b64 cmp r3, #100 ; 0x64 - 8002e64: d901 bls.n 8002e6a + 8003d78: f7ff f88a bl 8002e90 + 8003d7c: 4602 mov r2, r0 + 8003d7e: 693b ldr r3, [r7, #16] + 8003d80: 1ad3 subs r3, r2, r3 + 8003d82: 2b64 cmp r3, #100 ; 0x64 + 8003d84: d901 bls.n 8003d8a { return HAL_TIMEOUT; - 8002e66: 2303 movs r3, #3 - 8002e68: e1fb b.n 8003262 + 8003d86: 2303 movs r3, #3 + 8003d88: e1fb b.n 8004182 while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) - 8002e6a: 4b76 ldr r3, [pc, #472] ; (8003044 ) - 8002e6c: 681b ldr r3, [r3, #0] - 8002e6e: f403 3300 and.w r3, r3, #131072 ; 0x20000 - 8002e72: 2b00 cmp r3, #0 - 8002e74: d0f0 beq.n 8002e58 - 8002e76: e014 b.n 8002ea2 + 8003d8a: 4b76 ldr r3, [pc, #472] ; (8003f64 ) + 8003d8c: 681b ldr r3, [r3, #0] + 8003d8e: f403 3300 and.w r3, r3, #131072 ; 0x20000 + 8003d92: 2b00 cmp r3, #0 + 8003d94: d0f0 beq.n 8003d78 + 8003d96: e014 b.n 8003dc2 } } else { /* Get Start Tick */ tickstart = HAL_GetTick(); - 8002e78: f7ff f87a bl 8001f70 - 8002e7c: 6138 str r0, [r7, #16] + 8003d98: f7ff f87a bl 8002e90 + 8003d9c: 6138 str r0, [r7, #16] /* Wait till HSE is bypassed or disabled */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) - 8002e7e: e008 b.n 8002e92 + 8003d9e: e008 b.n 8003db2 { if((HAL_GetTick() - tickstart ) > HSE_TIMEOUT_VALUE) - 8002e80: f7ff f876 bl 8001f70 - 8002e84: 4602 mov r2, r0 - 8002e86: 693b ldr r3, [r7, #16] - 8002e88: 1ad3 subs r3, r2, r3 - 8002e8a: 2b64 cmp r3, #100 ; 0x64 - 8002e8c: d901 bls.n 8002e92 + 8003da0: f7ff f876 bl 8002e90 + 8003da4: 4602 mov r2, r0 + 8003da6: 693b ldr r3, [r7, #16] + 8003da8: 1ad3 subs r3, r2, r3 + 8003daa: 2b64 cmp r3, #100 ; 0x64 + 8003dac: d901 bls.n 8003db2 { return HAL_TIMEOUT; - 8002e8e: 2303 movs r3, #3 - 8002e90: e1e7 b.n 8003262 + 8003dae: 2303 movs r3, #3 + 8003db0: e1e7 b.n 8004182 while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) - 8002e92: 4b6c ldr r3, [pc, #432] ; (8003044 ) - 8002e94: 681b ldr r3, [r3, #0] - 8002e96: f403 3300 and.w r3, r3, #131072 ; 0x20000 - 8002e9a: 2b00 cmp r3, #0 - 8002e9c: d1f0 bne.n 8002e80 - 8002e9e: e000 b.n 8002ea2 + 8003db2: 4b6c ldr r3, [pc, #432] ; (8003f64 ) + 8003db4: 681b ldr r3, [r3, #0] + 8003db6: f403 3300 and.w r3, r3, #131072 ; 0x20000 + 8003dba: 2b00 cmp r3, #0 + 8003dbc: d1f0 bne.n 8003da0 + 8003dbe: e000 b.n 8003dc2 if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) - 8002ea0: bf00 nop + 8003dc0: bf00 nop } } } } /*----------------------------- HSI Configuration --------------------------*/ if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSI) == RCC_OSCILLATORTYPE_HSI) - 8002ea2: 687b ldr r3, [r7, #4] - 8002ea4: 681b ldr r3, [r3, #0] - 8002ea6: f003 0302 and.w r3, r3, #2 - 8002eaa: 2b00 cmp r3, #0 - 8002eac: d063 beq.n 8002f76 + 8003dc2: 687b ldr r3, [r7, #4] + 8003dc4: 681b ldr r3, [r3, #0] + 8003dc6: f003 0302 and.w r3, r3, #2 + 8003dca: 2b00 cmp r3, #0 + 8003dcc: d063 beq.n 8003e96 /* Check the parameters */ assert_param(IS_RCC_HSI(RCC_OscInitStruct->HSIState)); assert_param(IS_RCC_CALIBRATION_VALUE(RCC_OscInitStruct->HSICalibrationValue)); /* Check if HSI is used as system clock or as PLL source when PLL is selected as system clock */ if((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_CFGR_SWS_HSI) ||\ - 8002eae: 4b65 ldr r3, [pc, #404] ; (8003044 ) - 8002eb0: 689b ldr r3, [r3, #8] - 8002eb2: f003 030c and.w r3, r3, #12 - 8002eb6: 2b00 cmp r3, #0 - 8002eb8: d00b beq.n 8002ed2 + 8003dce: 4b65 ldr r3, [pc, #404] ; (8003f64 ) + 8003dd0: 689b ldr r3, [r3, #8] + 8003dd2: f003 030c and.w r3, r3, #12 + 8003dd6: 2b00 cmp r3, #0 + 8003dd8: d00b beq.n 8003df2 ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_CFGR_SWS_PLL) && ((RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) == RCC_PLLCFGR_PLLSRC_HSI))) - 8002eba: 4b62 ldr r3, [pc, #392] ; (8003044 ) - 8002ebc: 689b ldr r3, [r3, #8] - 8002ebe: f003 030c and.w r3, r3, #12 + 8003dda: 4b62 ldr r3, [pc, #392] ; (8003f64 ) + 8003ddc: 689b ldr r3, [r3, #8] + 8003dde: f003 030c and.w r3, r3, #12 if((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_CFGR_SWS_HSI) ||\ - 8002ec2: 2b08 cmp r3, #8 - 8002ec4: d11c bne.n 8002f00 + 8003de2: 2b08 cmp r3, #8 + 8003de4: d11c bne.n 8003e20 ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_CFGR_SWS_PLL) && ((RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) == RCC_PLLCFGR_PLLSRC_HSI))) - 8002ec6: 4b5f ldr r3, [pc, #380] ; (8003044 ) - 8002ec8: 685b ldr r3, [r3, #4] - 8002eca: f403 0380 and.w r3, r3, #4194304 ; 0x400000 - 8002ece: 2b00 cmp r3, #0 - 8002ed0: d116 bne.n 8002f00 + 8003de6: 4b5f ldr r3, [pc, #380] ; (8003f64 ) + 8003de8: 685b ldr r3, [r3, #4] + 8003dea: f403 0380 and.w r3, r3, #4194304 ; 0x400000 + 8003dee: 2b00 cmp r3, #0 + 8003df0: d116 bne.n 8003e20 { /* When HSI is used as system clock it will not disabled */ if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) && (RCC_OscInitStruct->HSIState != RCC_HSI_ON)) - 8002ed2: 4b5c ldr r3, [pc, #368] ; (8003044 ) - 8002ed4: 681b ldr r3, [r3, #0] - 8002ed6: f003 0302 and.w r3, r3, #2 - 8002eda: 2b00 cmp r3, #0 - 8002edc: d005 beq.n 8002eea - 8002ede: 687b ldr r3, [r7, #4] - 8002ee0: 68db ldr r3, [r3, #12] - 8002ee2: 2b01 cmp r3, #1 - 8002ee4: d001 beq.n 8002eea + 8003df2: 4b5c ldr r3, [pc, #368] ; (8003f64 ) + 8003df4: 681b ldr r3, [r3, #0] + 8003df6: f003 0302 and.w r3, r3, #2 + 8003dfa: 2b00 cmp r3, #0 + 8003dfc: d005 beq.n 8003e0a + 8003dfe: 687b ldr r3, [r7, #4] + 8003e00: 68db ldr r3, [r3, #12] + 8003e02: 2b01 cmp r3, #1 + 8003e04: d001 beq.n 8003e0a { return HAL_ERROR; - 8002ee6: 2301 movs r3, #1 - 8002ee8: e1bb b.n 8003262 + 8003e06: 2301 movs r3, #1 + 8003e08: e1bb b.n 8004182 } /* Otherwise, just the calibration is allowed */ else { /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); - 8002eea: 4b56 ldr r3, [pc, #344] ; (8003044 ) - 8002eec: 681b ldr r3, [r3, #0] - 8002eee: f023 02f8 bic.w r2, r3, #248 ; 0xf8 - 8002ef2: 687b ldr r3, [r7, #4] - 8002ef4: 691b ldr r3, [r3, #16] - 8002ef6: 00db lsls r3, r3, #3 - 8002ef8: 4952 ldr r1, [pc, #328] ; (8003044 ) - 8002efa: 4313 orrs r3, r2 - 8002efc: 600b str r3, [r1, #0] + 8003e0a: 4b56 ldr r3, [pc, #344] ; (8003f64 ) + 8003e0c: 681b ldr r3, [r3, #0] + 8003e0e: f023 02f8 bic.w r2, r3, #248 ; 0xf8 + 8003e12: 687b ldr r3, [r7, #4] + 8003e14: 691b ldr r3, [r3, #16] + 8003e16: 00db lsls r3, r3, #3 + 8003e18: 4952 ldr r1, [pc, #328] ; (8003f64 ) + 8003e1a: 4313 orrs r3, r2 + 8003e1c: 600b str r3, [r1, #0] if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) && (RCC_OscInitStruct->HSIState != RCC_HSI_ON)) - 8002efe: e03a b.n 8002f76 + 8003e1e: e03a b.n 8003e96 } } else { /* Check the HSI State */ if((RCC_OscInitStruct->HSIState)!= RCC_HSI_OFF) - 8002f00: 687b ldr r3, [r7, #4] - 8002f02: 68db ldr r3, [r3, #12] - 8002f04: 2b00 cmp r3, #0 - 8002f06: d020 beq.n 8002f4a + 8003e20: 687b ldr r3, [r7, #4] + 8003e22: 68db ldr r3, [r3, #12] + 8003e24: 2b00 cmp r3, #0 + 8003e26: d020 beq.n 8003e6a { /* Enable the Internal High Speed oscillator (HSI). */ __HAL_RCC_HSI_ENABLE(); - 8002f08: 4b4f ldr r3, [pc, #316] ; (8003048 ) - 8002f0a: 2201 movs r2, #1 - 8002f0c: 601a str r2, [r3, #0] + 8003e28: 4b4f ldr r3, [pc, #316] ; (8003f68 ) + 8003e2a: 2201 movs r2, #1 + 8003e2c: 601a str r2, [r3, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); - 8002f0e: f7ff f82f bl 8001f70 - 8002f12: 6138 str r0, [r7, #16] + 8003e2e: f7ff f82f bl 8002e90 + 8003e32: 6138 str r0, [r7, #16] /* Wait till HSI is ready */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) - 8002f14: e008 b.n 8002f28 + 8003e34: e008 b.n 8003e48 { if((HAL_GetTick() - tickstart ) > HSI_TIMEOUT_VALUE) - 8002f16: f7ff f82b bl 8001f70 - 8002f1a: 4602 mov r2, r0 - 8002f1c: 693b ldr r3, [r7, #16] - 8002f1e: 1ad3 subs r3, r2, r3 - 8002f20: 2b02 cmp r3, #2 - 8002f22: d901 bls.n 8002f28 + 8003e36: f7ff f82b bl 8002e90 + 8003e3a: 4602 mov r2, r0 + 8003e3c: 693b ldr r3, [r7, #16] + 8003e3e: 1ad3 subs r3, r2, r3 + 8003e40: 2b02 cmp r3, #2 + 8003e42: d901 bls.n 8003e48 { return HAL_TIMEOUT; - 8002f24: 2303 movs r3, #3 - 8002f26: e19c b.n 8003262 + 8003e44: 2303 movs r3, #3 + 8003e46: e19c b.n 8004182 while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) - 8002f28: 4b46 ldr r3, [pc, #280] ; (8003044 ) - 8002f2a: 681b ldr r3, [r3, #0] - 8002f2c: f003 0302 and.w r3, r3, #2 - 8002f30: 2b00 cmp r3, #0 - 8002f32: d0f0 beq.n 8002f16 + 8003e48: 4b46 ldr r3, [pc, #280] ; (8003f64 ) + 8003e4a: 681b ldr r3, [r3, #0] + 8003e4c: f003 0302 and.w r3, r3, #2 + 8003e50: 2b00 cmp r3, #0 + 8003e52: d0f0 beq.n 8003e36 } } /* Adjusts the Internal High Speed oscillator (HSI) calibration value. */ __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); - 8002f34: 4b43 ldr r3, [pc, #268] ; (8003044 ) - 8002f36: 681b ldr r3, [r3, #0] - 8002f38: f023 02f8 bic.w r2, r3, #248 ; 0xf8 - 8002f3c: 687b ldr r3, [r7, #4] - 8002f3e: 691b ldr r3, [r3, #16] - 8002f40: 00db lsls r3, r3, #3 - 8002f42: 4940 ldr r1, [pc, #256] ; (8003044 ) - 8002f44: 4313 orrs r3, r2 - 8002f46: 600b str r3, [r1, #0] - 8002f48: e015 b.n 8002f76 + 8003e54: 4b43 ldr r3, [pc, #268] ; (8003f64 ) + 8003e56: 681b ldr r3, [r3, #0] + 8003e58: f023 02f8 bic.w r2, r3, #248 ; 0xf8 + 8003e5c: 687b ldr r3, [r7, #4] + 8003e5e: 691b ldr r3, [r3, #16] + 8003e60: 00db lsls r3, r3, #3 + 8003e62: 4940 ldr r1, [pc, #256] ; (8003f64 ) + 8003e64: 4313 orrs r3, r2 + 8003e66: 600b str r3, [r1, #0] + 8003e68: e015 b.n 8003e96 } else { /* Disable the Internal High Speed oscillator (HSI). */ __HAL_RCC_HSI_DISABLE(); - 8002f4a: 4b3f ldr r3, [pc, #252] ; (8003048 ) - 8002f4c: 2200 movs r2, #0 - 8002f4e: 601a str r2, [r3, #0] + 8003e6a: 4b3f ldr r3, [pc, #252] ; (8003f68 ) + 8003e6c: 2200 movs r2, #0 + 8003e6e: 601a str r2, [r3, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); - 8002f50: f7ff f80e bl 8001f70 - 8002f54: 6138 str r0, [r7, #16] + 8003e70: f7ff f80e bl 8002e90 + 8003e74: 6138 str r0, [r7, #16] /* Wait till HSI is ready */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) - 8002f56: e008 b.n 8002f6a + 8003e76: e008 b.n 8003e8a { if((HAL_GetTick() - tickstart ) > HSI_TIMEOUT_VALUE) - 8002f58: f7ff f80a bl 8001f70 - 8002f5c: 4602 mov r2, r0 - 8002f5e: 693b ldr r3, [r7, #16] - 8002f60: 1ad3 subs r3, r2, r3 - 8002f62: 2b02 cmp r3, #2 - 8002f64: d901 bls.n 8002f6a + 8003e78: f7ff f80a bl 8002e90 + 8003e7c: 4602 mov r2, r0 + 8003e7e: 693b ldr r3, [r7, #16] + 8003e80: 1ad3 subs r3, r2, r3 + 8003e82: 2b02 cmp r3, #2 + 8003e84: d901 bls.n 8003e8a { return HAL_TIMEOUT; - 8002f66: 2303 movs r3, #3 - 8002f68: e17b b.n 8003262 + 8003e86: 2303 movs r3, #3 + 8003e88: e17b b.n 8004182 while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) - 8002f6a: 4b36 ldr r3, [pc, #216] ; (8003044 ) - 8002f6c: 681b ldr r3, [r3, #0] - 8002f6e: f003 0302 and.w r3, r3, #2 - 8002f72: 2b00 cmp r3, #0 - 8002f74: d1f0 bne.n 8002f58 + 8003e8a: 4b36 ldr r3, [pc, #216] ; (8003f64 ) + 8003e8c: 681b ldr r3, [r3, #0] + 8003e8e: f003 0302 and.w r3, r3, #2 + 8003e92: 2b00 cmp r3, #0 + 8003e94: d1f0 bne.n 8003e78 } } } } /*------------------------------ LSI Configuration -------------------------*/ if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSI) == RCC_OSCILLATORTYPE_LSI) - 8002f76: 687b ldr r3, [r7, #4] - 8002f78: 681b ldr r3, [r3, #0] - 8002f7a: f003 0308 and.w r3, r3, #8 - 8002f7e: 2b00 cmp r3, #0 - 8002f80: d030 beq.n 8002fe4 + 8003e96: 687b ldr r3, [r7, #4] + 8003e98: 681b ldr r3, [r3, #0] + 8003e9a: f003 0308 and.w r3, r3, #8 + 8003e9e: 2b00 cmp r3, #0 + 8003ea0: d030 beq.n 8003f04 { /* Check the parameters */ assert_param(IS_RCC_LSI(RCC_OscInitStruct->LSIState)); /* Check the LSI State */ if((RCC_OscInitStruct->LSIState)!= RCC_LSI_OFF) - 8002f82: 687b ldr r3, [r7, #4] - 8002f84: 695b ldr r3, [r3, #20] - 8002f86: 2b00 cmp r3, #0 - 8002f88: d016 beq.n 8002fb8 + 8003ea2: 687b ldr r3, [r7, #4] + 8003ea4: 695b ldr r3, [r3, #20] + 8003ea6: 2b00 cmp r3, #0 + 8003ea8: d016 beq.n 8003ed8 { /* Enable the Internal Low Speed oscillator (LSI). */ __HAL_RCC_LSI_ENABLE(); - 8002f8a: 4b30 ldr r3, [pc, #192] ; (800304c ) - 8002f8c: 2201 movs r2, #1 - 8002f8e: 601a str r2, [r3, #0] + 8003eaa: 4b30 ldr r3, [pc, #192] ; (8003f6c ) + 8003eac: 2201 movs r2, #1 + 8003eae: 601a str r2, [r3, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); - 8002f90: f7fe ffee bl 8001f70 - 8002f94: 6138 str r0, [r7, #16] + 8003eb0: f7fe ffee bl 8002e90 + 8003eb4: 6138 str r0, [r7, #16] /* Wait till LSI is ready */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == RESET) - 8002f96: e008 b.n 8002faa + 8003eb6: e008 b.n 8003eca { if((HAL_GetTick() - tickstart ) > LSI_TIMEOUT_VALUE) - 8002f98: f7fe ffea bl 8001f70 - 8002f9c: 4602 mov r2, r0 - 8002f9e: 693b ldr r3, [r7, #16] - 8002fa0: 1ad3 subs r3, r2, r3 - 8002fa2: 2b02 cmp r3, #2 - 8002fa4: d901 bls.n 8002faa + 8003eb8: f7fe ffea bl 8002e90 + 8003ebc: 4602 mov r2, r0 + 8003ebe: 693b ldr r3, [r7, #16] + 8003ec0: 1ad3 subs r3, r2, r3 + 8003ec2: 2b02 cmp r3, #2 + 8003ec4: d901 bls.n 8003eca { return HAL_TIMEOUT; - 8002fa6: 2303 movs r3, #3 - 8002fa8: e15b b.n 8003262 + 8003ec6: 2303 movs r3, #3 + 8003ec8: e15b b.n 8004182 while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == RESET) - 8002faa: 4b26 ldr r3, [pc, #152] ; (8003044 ) - 8002fac: 6f5b ldr r3, [r3, #116] ; 0x74 - 8002fae: f003 0302 and.w r3, r3, #2 - 8002fb2: 2b00 cmp r3, #0 - 8002fb4: d0f0 beq.n 8002f98 - 8002fb6: e015 b.n 8002fe4 + 8003eca: 4b26 ldr r3, [pc, #152] ; (8003f64 ) + 8003ecc: 6f5b ldr r3, [r3, #116] ; 0x74 + 8003ece: f003 0302 and.w r3, r3, #2 + 8003ed2: 2b00 cmp r3, #0 + 8003ed4: d0f0 beq.n 8003eb8 + 8003ed6: e015 b.n 8003f04 } } else { /* Disable the Internal Low Speed oscillator (LSI). */ __HAL_RCC_LSI_DISABLE(); - 8002fb8: 4b24 ldr r3, [pc, #144] ; (800304c ) - 8002fba: 2200 movs r2, #0 - 8002fbc: 601a str r2, [r3, #0] + 8003ed8: 4b24 ldr r3, [pc, #144] ; (8003f6c ) + 8003eda: 2200 movs r2, #0 + 8003edc: 601a str r2, [r3, #0] /* Get Start Tick */ tickstart = HAL_GetTick(); - 8002fbe: f7fe ffd7 bl 8001f70 - 8002fc2: 6138 str r0, [r7, #16] + 8003ede: f7fe ffd7 bl 8002e90 + 8003ee2: 6138 str r0, [r7, #16] /* Wait till LSI is ready */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != RESET) - 8002fc4: e008 b.n 8002fd8 + 8003ee4: e008 b.n 8003ef8 { if((HAL_GetTick() - tickstart ) > LSI_TIMEOUT_VALUE) - 8002fc6: f7fe ffd3 bl 8001f70 - 8002fca: 4602 mov r2, r0 - 8002fcc: 693b ldr r3, [r7, #16] - 8002fce: 1ad3 subs r3, r2, r3 - 8002fd0: 2b02 cmp r3, #2 - 8002fd2: d901 bls.n 8002fd8 + 8003ee6: f7fe ffd3 bl 8002e90 + 8003eea: 4602 mov r2, r0 + 8003eec: 693b ldr r3, [r7, #16] + 8003eee: 1ad3 subs r3, r2, r3 + 8003ef0: 2b02 cmp r3, #2 + 8003ef2: d901 bls.n 8003ef8 { return HAL_TIMEOUT; - 8002fd4: 2303 movs r3, #3 - 8002fd6: e144 b.n 8003262 + 8003ef4: 2303 movs r3, #3 + 8003ef6: e144 b.n 8004182 while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != RESET) - 8002fd8: 4b1a ldr r3, [pc, #104] ; (8003044 ) - 8002fda: 6f5b ldr r3, [r3, #116] ; 0x74 - 8002fdc: f003 0302 and.w r3, r3, #2 - 8002fe0: 2b00 cmp r3, #0 - 8002fe2: d1f0 bne.n 8002fc6 + 8003ef8: 4b1a ldr r3, [pc, #104] ; (8003f64 ) + 8003efa: 6f5b ldr r3, [r3, #116] ; 0x74 + 8003efc: f003 0302 and.w r3, r3, #2 + 8003f00: 2b00 cmp r3, #0 + 8003f02: d1f0 bne.n 8003ee6 } } } } /*------------------------------ LSE Configuration -------------------------*/ if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSE) == RCC_OSCILLATORTYPE_LSE) - 8002fe4: 687b ldr r3, [r7, #4] - 8002fe6: 681b ldr r3, [r3, #0] - 8002fe8: f003 0304 and.w r3, r3, #4 - 8002fec: 2b00 cmp r3, #0 - 8002fee: f000 80a0 beq.w 8003132 + 8003f04: 687b ldr r3, [r7, #4] + 8003f06: 681b ldr r3, [r3, #0] + 8003f08: f003 0304 and.w r3, r3, #4 + 8003f0c: 2b00 cmp r3, #0 + 8003f0e: f000 80a0 beq.w 8004052 { FlagStatus pwrclkchanged = RESET; - 8002ff2: 2300 movs r3, #0 - 8002ff4: 75fb strb r3, [r7, #23] + 8003f12: 2300 movs r3, #0 + 8003f14: 75fb strb r3, [r7, #23] /* Check the parameters */ assert_param(IS_RCC_LSE(RCC_OscInitStruct->LSEState)); /* Update LSE configuration in Backup Domain control register */ /* Requires to enable write access to Backup Domain of necessary */ if(__HAL_RCC_PWR_IS_CLK_DISABLED()) - 8002ff6: 4b13 ldr r3, [pc, #76] ; (8003044 ) - 8002ff8: 6c1b ldr r3, [r3, #64] ; 0x40 - 8002ffa: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 - 8002ffe: 2b00 cmp r3, #0 - 8003000: d10f bne.n 8003022 + 8003f16: 4b13 ldr r3, [pc, #76] ; (8003f64 ) + 8003f18: 6c1b ldr r3, [r3, #64] ; 0x40 + 8003f1a: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 + 8003f1e: 2b00 cmp r3, #0 + 8003f20: d10f bne.n 8003f42 { __HAL_RCC_PWR_CLK_ENABLE(); - 8003002: 2300 movs r3, #0 - 8003004: 60bb str r3, [r7, #8] - 8003006: 4b0f ldr r3, [pc, #60] ; (8003044 ) - 8003008: 6c1b ldr r3, [r3, #64] ; 0x40 - 800300a: 4a0e ldr r2, [pc, #56] ; (8003044 ) - 800300c: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 - 8003010: 6413 str r3, [r2, #64] ; 0x40 - 8003012: 4b0c ldr r3, [pc, #48] ; (8003044 ) - 8003014: 6c1b ldr r3, [r3, #64] ; 0x40 - 8003016: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 - 800301a: 60bb str r3, [r7, #8] - 800301c: 68bb ldr r3, [r7, #8] + 8003f22: 2300 movs r3, #0 + 8003f24: 60bb str r3, [r7, #8] + 8003f26: 4b0f ldr r3, [pc, #60] ; (8003f64 ) + 8003f28: 6c1b ldr r3, [r3, #64] ; 0x40 + 8003f2a: 4a0e ldr r2, [pc, #56] ; (8003f64 ) + 8003f2c: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 + 8003f30: 6413 str r3, [r2, #64] ; 0x40 + 8003f32: 4b0c ldr r3, [pc, #48] ; (8003f64 ) + 8003f34: 6c1b ldr r3, [r3, #64] ; 0x40 + 8003f36: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 + 8003f3a: 60bb str r3, [r7, #8] + 8003f3c: 68bb ldr r3, [r7, #8] pwrclkchanged = SET; - 800301e: 2301 movs r3, #1 - 8003020: 75fb strb r3, [r7, #23] + 8003f3e: 2301 movs r3, #1 + 8003f40: 75fb strb r3, [r7, #23] } if(HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP)) - 8003022: 4b0b ldr r3, [pc, #44] ; (8003050 ) - 8003024: 681b ldr r3, [r3, #0] - 8003026: f403 7380 and.w r3, r3, #256 ; 0x100 - 800302a: 2b00 cmp r3, #0 - 800302c: d121 bne.n 8003072 + 8003f42: 4b0b ldr r3, [pc, #44] ; (8003f70 ) + 8003f44: 681b ldr r3, [r3, #0] + 8003f46: f403 7380 and.w r3, r3, #256 ; 0x100 + 8003f4a: 2b00 cmp r3, #0 + 8003f4c: d121 bne.n 8003f92 { /* Enable write access to Backup domain */ SET_BIT(PWR->CR, PWR_CR_DBP); - 800302e: 4b08 ldr r3, [pc, #32] ; (8003050 ) - 8003030: 681b ldr r3, [r3, #0] - 8003032: 4a07 ldr r2, [pc, #28] ; (8003050 ) - 8003034: f443 7380 orr.w r3, r3, #256 ; 0x100 - 8003038: 6013 str r3, [r2, #0] + 8003f4e: 4b08 ldr r3, [pc, #32] ; (8003f70 ) + 8003f50: 681b ldr r3, [r3, #0] + 8003f52: 4a07 ldr r2, [pc, #28] ; (8003f70 ) + 8003f54: f443 7380 orr.w r3, r3, #256 ; 0x100 + 8003f58: 6013 str r3, [r2, #0] /* Wait for Backup domain Write protection disable */ tickstart = HAL_GetTick(); - 800303a: f7fe ff99 bl 8001f70 - 800303e: 6138 str r0, [r7, #16] + 8003f5a: f7fe ff99 bl 8002e90 + 8003f5e: 6138 str r0, [r7, #16] while(HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP)) - 8003040: e011 b.n 8003066 - 8003042: bf00 nop - 8003044: 40023800 .word 0x40023800 - 8003048: 42470000 .word 0x42470000 - 800304c: 42470e80 .word 0x42470e80 - 8003050: 40007000 .word 0x40007000 + 8003f60: e011 b.n 8003f86 + 8003f62: bf00 nop + 8003f64: 40023800 .word 0x40023800 + 8003f68: 42470000 .word 0x42470000 + 8003f6c: 42470e80 .word 0x42470e80 + 8003f70: 40007000 .word 0x40007000 { if((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE) - 8003054: f7fe ff8c bl 8001f70 - 8003058: 4602 mov r2, r0 - 800305a: 693b ldr r3, [r7, #16] - 800305c: 1ad3 subs r3, r2, r3 - 800305e: 2b02 cmp r3, #2 - 8003060: d901 bls.n 8003066 + 8003f74: f7fe ff8c bl 8002e90 + 8003f78: 4602 mov r2, r0 + 8003f7a: 693b ldr r3, [r7, #16] + 8003f7c: 1ad3 subs r3, r2, r3 + 8003f7e: 2b02 cmp r3, #2 + 8003f80: d901 bls.n 8003f86 { return HAL_TIMEOUT; - 8003062: 2303 movs r3, #3 - 8003064: e0fd b.n 8003262 + 8003f82: 2303 movs r3, #3 + 8003f84: e0fd b.n 8004182 while(HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP)) - 8003066: 4b81 ldr r3, [pc, #516] ; (800326c ) - 8003068: 681b ldr r3, [r3, #0] - 800306a: f403 7380 and.w r3, r3, #256 ; 0x100 - 800306e: 2b00 cmp r3, #0 - 8003070: d0f0 beq.n 8003054 + 8003f86: 4b81 ldr r3, [pc, #516] ; (800418c ) + 8003f88: 681b ldr r3, [r3, #0] + 8003f8a: f403 7380 and.w r3, r3, #256 ; 0x100 + 8003f8e: 2b00 cmp r3, #0 + 8003f90: d0f0 beq.n 8003f74 } } } /* Set the new LSE configuration -----------------------------------------*/ __HAL_RCC_LSE_CONFIG(RCC_OscInitStruct->LSEState); - 8003072: 687b ldr r3, [r7, #4] - 8003074: 689b ldr r3, [r3, #8] - 8003076: 2b01 cmp r3, #1 - 8003078: d106 bne.n 8003088 - 800307a: 4b7d ldr r3, [pc, #500] ; (8003270 ) - 800307c: 6f1b ldr r3, [r3, #112] ; 0x70 - 800307e: 4a7c ldr r2, [pc, #496] ; (8003270 ) - 8003080: f043 0301 orr.w r3, r3, #1 - 8003084: 6713 str r3, [r2, #112] ; 0x70 - 8003086: e01c b.n 80030c2 - 8003088: 687b ldr r3, [r7, #4] - 800308a: 689b ldr r3, [r3, #8] - 800308c: 2b05 cmp r3, #5 - 800308e: d10c bne.n 80030aa - 8003090: 4b77 ldr r3, [pc, #476] ; (8003270 ) - 8003092: 6f1b ldr r3, [r3, #112] ; 0x70 - 8003094: 4a76 ldr r2, [pc, #472] ; (8003270 ) - 8003096: f043 0304 orr.w r3, r3, #4 - 800309a: 6713 str r3, [r2, #112] ; 0x70 - 800309c: 4b74 ldr r3, [pc, #464] ; (8003270 ) - 800309e: 6f1b ldr r3, [r3, #112] ; 0x70 - 80030a0: 4a73 ldr r2, [pc, #460] ; (8003270 ) - 80030a2: f043 0301 orr.w r3, r3, #1 - 80030a6: 6713 str r3, [r2, #112] ; 0x70 - 80030a8: e00b b.n 80030c2 - 80030aa: 4b71 ldr r3, [pc, #452] ; (8003270 ) - 80030ac: 6f1b ldr r3, [r3, #112] ; 0x70 - 80030ae: 4a70 ldr r2, [pc, #448] ; (8003270 ) - 80030b0: f023 0301 bic.w r3, r3, #1 - 80030b4: 6713 str r3, [r2, #112] ; 0x70 - 80030b6: 4b6e ldr r3, [pc, #440] ; (8003270 ) - 80030b8: 6f1b ldr r3, [r3, #112] ; 0x70 - 80030ba: 4a6d ldr r2, [pc, #436] ; (8003270 ) - 80030bc: f023 0304 bic.w r3, r3, #4 - 80030c0: 6713 str r3, [r2, #112] ; 0x70 + 8003f92: 687b ldr r3, [r7, #4] + 8003f94: 689b ldr r3, [r3, #8] + 8003f96: 2b01 cmp r3, #1 + 8003f98: d106 bne.n 8003fa8 + 8003f9a: 4b7d ldr r3, [pc, #500] ; (8004190 ) + 8003f9c: 6f1b ldr r3, [r3, #112] ; 0x70 + 8003f9e: 4a7c ldr r2, [pc, #496] ; (8004190 ) + 8003fa0: f043 0301 orr.w r3, r3, #1 + 8003fa4: 6713 str r3, [r2, #112] ; 0x70 + 8003fa6: e01c b.n 8003fe2 + 8003fa8: 687b ldr r3, [r7, #4] + 8003faa: 689b ldr r3, [r3, #8] + 8003fac: 2b05 cmp r3, #5 + 8003fae: d10c bne.n 8003fca + 8003fb0: 4b77 ldr r3, [pc, #476] ; (8004190 ) + 8003fb2: 6f1b ldr r3, [r3, #112] ; 0x70 + 8003fb4: 4a76 ldr r2, [pc, #472] ; (8004190 ) + 8003fb6: f043 0304 orr.w r3, r3, #4 + 8003fba: 6713 str r3, [r2, #112] ; 0x70 + 8003fbc: 4b74 ldr r3, [pc, #464] ; (8004190 ) + 8003fbe: 6f1b ldr r3, [r3, #112] ; 0x70 + 8003fc0: 4a73 ldr r2, [pc, #460] ; (8004190 ) + 8003fc2: f043 0301 orr.w r3, r3, #1 + 8003fc6: 6713 str r3, [r2, #112] ; 0x70 + 8003fc8: e00b b.n 8003fe2 + 8003fca: 4b71 ldr r3, [pc, #452] ; (8004190 ) + 8003fcc: 6f1b ldr r3, [r3, #112] ; 0x70 + 8003fce: 4a70 ldr r2, [pc, #448] ; (8004190 ) + 8003fd0: f023 0301 bic.w r3, r3, #1 + 8003fd4: 6713 str r3, [r2, #112] ; 0x70 + 8003fd6: 4b6e ldr r3, [pc, #440] ; (8004190 ) + 8003fd8: 6f1b ldr r3, [r3, #112] ; 0x70 + 8003fda: 4a6d ldr r2, [pc, #436] ; (8004190 ) + 8003fdc: f023 0304 bic.w r3, r3, #4 + 8003fe0: 6713 str r3, [r2, #112] ; 0x70 /* Check the LSE State */ if((RCC_OscInitStruct->LSEState) != RCC_LSE_OFF) - 80030c2: 687b ldr r3, [r7, #4] - 80030c4: 689b ldr r3, [r3, #8] - 80030c6: 2b00 cmp r3, #0 - 80030c8: d015 beq.n 80030f6 + 8003fe2: 687b ldr r3, [r7, #4] + 8003fe4: 689b ldr r3, [r3, #8] + 8003fe6: 2b00 cmp r3, #0 + 8003fe8: d015 beq.n 8004016 { /* Get Start Tick*/ tickstart = HAL_GetTick(); - 80030ca: f7fe ff51 bl 8001f70 - 80030ce: 6138 str r0, [r7, #16] + 8003fea: f7fe ff51 bl 8002e90 + 8003fee: 6138 str r0, [r7, #16] /* Wait till LSE is ready */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET) - 80030d0: e00a b.n 80030e8 + 8003ff0: e00a b.n 8004008 { if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE) - 80030d2: f7fe ff4d bl 8001f70 - 80030d6: 4602 mov r2, r0 - 80030d8: 693b ldr r3, [r7, #16] - 80030da: 1ad3 subs r3, r2, r3 - 80030dc: f241 3288 movw r2, #5000 ; 0x1388 - 80030e0: 4293 cmp r3, r2 - 80030e2: d901 bls.n 80030e8 + 8003ff2: f7fe ff4d bl 8002e90 + 8003ff6: 4602 mov r2, r0 + 8003ff8: 693b ldr r3, [r7, #16] + 8003ffa: 1ad3 subs r3, r2, r3 + 8003ffc: f241 3288 movw r2, #5000 ; 0x1388 + 8004000: 4293 cmp r3, r2 + 8004002: d901 bls.n 8004008 { return HAL_TIMEOUT; - 80030e4: 2303 movs r3, #3 - 80030e6: e0bc b.n 8003262 + 8004004: 2303 movs r3, #3 + 8004006: e0bc b.n 8004182 while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET) - 80030e8: 4b61 ldr r3, [pc, #388] ; (8003270 ) - 80030ea: 6f1b ldr r3, [r3, #112] ; 0x70 - 80030ec: f003 0302 and.w r3, r3, #2 - 80030f0: 2b00 cmp r3, #0 - 80030f2: d0ee beq.n 80030d2 - 80030f4: e014 b.n 8003120 + 8004008: 4b61 ldr r3, [pc, #388] ; (8004190 ) + 800400a: 6f1b ldr r3, [r3, #112] ; 0x70 + 800400c: f003 0302 and.w r3, r3, #2 + 8004010: 2b00 cmp r3, #0 + 8004012: d0ee beq.n 8003ff2 + 8004014: e014 b.n 8004040 } } else { /* Get Start Tick */ tickstart = HAL_GetTick(); - 80030f6: f7fe ff3b bl 8001f70 - 80030fa: 6138 str r0, [r7, #16] + 8004016: f7fe ff3b bl 8002e90 + 800401a: 6138 str r0, [r7, #16] /* Wait till LSE is ready */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != RESET) - 80030fc: e00a b.n 8003114 + 800401c: e00a b.n 8004034 { if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE) - 80030fe: f7fe ff37 bl 8001f70 - 8003102: 4602 mov r2, r0 - 8003104: 693b ldr r3, [r7, #16] - 8003106: 1ad3 subs r3, r2, r3 - 8003108: f241 3288 movw r2, #5000 ; 0x1388 - 800310c: 4293 cmp r3, r2 - 800310e: d901 bls.n 8003114 + 800401e: f7fe ff37 bl 8002e90 + 8004022: 4602 mov r2, r0 + 8004024: 693b ldr r3, [r7, #16] + 8004026: 1ad3 subs r3, r2, r3 + 8004028: f241 3288 movw r2, #5000 ; 0x1388 + 800402c: 4293 cmp r3, r2 + 800402e: d901 bls.n 8004034 { return HAL_TIMEOUT; - 8003110: 2303 movs r3, #3 - 8003112: e0a6 b.n 8003262 + 8004030: 2303 movs r3, #3 + 8004032: e0a6 b.n 8004182 while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != RESET) - 8003114: 4b56 ldr r3, [pc, #344] ; (8003270 ) - 8003116: 6f1b ldr r3, [r3, #112] ; 0x70 - 8003118: f003 0302 and.w r3, r3, #2 - 800311c: 2b00 cmp r3, #0 - 800311e: d1ee bne.n 80030fe + 8004034: 4b56 ldr r3, [pc, #344] ; (8004190 ) + 8004036: 6f1b ldr r3, [r3, #112] ; 0x70 + 8004038: f003 0302 and.w r3, r3, #2 + 800403c: 2b00 cmp r3, #0 + 800403e: d1ee bne.n 800401e } } } /* Restore clock configuration if changed */ if(pwrclkchanged == SET) - 8003120: 7dfb ldrb r3, [r7, #23] - 8003122: 2b01 cmp r3, #1 - 8003124: d105 bne.n 8003132 + 8004040: 7dfb ldrb r3, [r7, #23] + 8004042: 2b01 cmp r3, #1 + 8004044: d105 bne.n 8004052 { __HAL_RCC_PWR_CLK_DISABLE(); - 8003126: 4b52 ldr r3, [pc, #328] ; (8003270 ) - 8003128: 6c1b ldr r3, [r3, #64] ; 0x40 - 800312a: 4a51 ldr r2, [pc, #324] ; (8003270 ) - 800312c: f023 5380 bic.w r3, r3, #268435456 ; 0x10000000 - 8003130: 6413 str r3, [r2, #64] ; 0x40 + 8004046: 4b52 ldr r3, [pc, #328] ; (8004190 ) + 8004048: 6c1b ldr r3, [r3, #64] ; 0x40 + 800404a: 4a51 ldr r2, [pc, #324] ; (8004190 ) + 800404c: f023 5380 bic.w r3, r3, #268435456 ; 0x10000000 + 8004050: 6413 str r3, [r2, #64] ; 0x40 } } /*-------------------------------- PLL Configuration -----------------------*/ /* Check the parameters */ assert_param(IS_RCC_PLL(RCC_OscInitStruct->PLL.PLLState)); if ((RCC_OscInitStruct->PLL.PLLState) != RCC_PLL_NONE) - 8003132: 687b ldr r3, [r7, #4] - 8003134: 699b ldr r3, [r3, #24] - 8003136: 2b00 cmp r3, #0 - 8003138: f000 8092 beq.w 8003260 + 8004052: 687b ldr r3, [r7, #4] + 8004054: 699b ldr r3, [r3, #24] + 8004056: 2b00 cmp r3, #0 + 8004058: f000 8092 beq.w 8004180 { /* Check if the PLL is used as system clock or not */ if(__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_CFGR_SWS_PLL) - 800313c: 4b4c ldr r3, [pc, #304] ; (8003270 ) - 800313e: 689b ldr r3, [r3, #8] - 8003140: f003 030c and.w r3, r3, #12 - 8003144: 2b08 cmp r3, #8 - 8003146: d05c beq.n 8003202 + 800405c: 4b4c ldr r3, [pc, #304] ; (8004190 ) + 800405e: 689b ldr r3, [r3, #8] + 8004060: f003 030c and.w r3, r3, #12 + 8004064: 2b08 cmp r3, #8 + 8004066: d05c beq.n 8004122 { if((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_ON) - 8003148: 687b ldr r3, [r7, #4] - 800314a: 699b ldr r3, [r3, #24] - 800314c: 2b02 cmp r3, #2 - 800314e: d141 bne.n 80031d4 + 8004068: 687b ldr r3, [r7, #4] + 800406a: 699b ldr r3, [r3, #24] + 800406c: 2b02 cmp r3, #2 + 800406e: d141 bne.n 80040f4 assert_param(IS_RCC_PLLN_VALUE(RCC_OscInitStruct->PLL.PLLN)); assert_param(IS_RCC_PLLP_VALUE(RCC_OscInitStruct->PLL.PLLP)); assert_param(IS_RCC_PLLQ_VALUE(RCC_OscInitStruct->PLL.PLLQ)); /* Disable the main PLL. */ __HAL_RCC_PLL_DISABLE(); - 8003150: 4b48 ldr r3, [pc, #288] ; (8003274 ) - 8003152: 2200 movs r2, #0 - 8003154: 601a str r2, [r3, #0] + 8004070: 4b48 ldr r3, [pc, #288] ; (8004194 ) + 8004072: 2200 movs r2, #0 + 8004074: 601a str r2, [r3, #0] /* Get Start Tick */ tickstart = HAL_GetTick(); - 8003156: f7fe ff0b bl 8001f70 - 800315a: 6138 str r0, [r7, #16] + 8004076: f7fe ff0b bl 8002e90 + 800407a: 6138 str r0, [r7, #16] /* Wait till PLL is ready */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) - 800315c: e008 b.n 8003170 + 800407c: e008 b.n 8004090 { if((HAL_GetTick() - tickstart ) > PLL_TIMEOUT_VALUE) - 800315e: f7fe ff07 bl 8001f70 - 8003162: 4602 mov r2, r0 - 8003164: 693b ldr r3, [r7, #16] - 8003166: 1ad3 subs r3, r2, r3 - 8003168: 2b02 cmp r3, #2 - 800316a: d901 bls.n 8003170 + 800407e: f7fe ff07 bl 8002e90 + 8004082: 4602 mov r2, r0 + 8004084: 693b ldr r3, [r7, #16] + 8004086: 1ad3 subs r3, r2, r3 + 8004088: 2b02 cmp r3, #2 + 800408a: d901 bls.n 8004090 { return HAL_TIMEOUT; - 800316c: 2303 movs r3, #3 - 800316e: e078 b.n 8003262 + 800408c: 2303 movs r3, #3 + 800408e: e078 b.n 8004182 while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) - 8003170: 4b3f ldr r3, [pc, #252] ; (8003270 ) - 8003172: 681b ldr r3, [r3, #0] - 8003174: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 - 8003178: 2b00 cmp r3, #0 - 800317a: d1f0 bne.n 800315e + 8004090: 4b3f ldr r3, [pc, #252] ; (8004190 ) + 8004092: 681b ldr r3, [r3, #0] + 8004094: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 + 8004098: 2b00 cmp r3, #0 + 800409a: d1f0 bne.n 800407e } } /* Configure the main PLL clock source, multiplication and division factors. */ WRITE_REG(RCC->PLLCFGR, (RCC_OscInitStruct->PLL.PLLSource | \ - 800317c: 687b ldr r3, [r7, #4] - 800317e: 69da ldr r2, [r3, #28] - 8003180: 687b ldr r3, [r7, #4] - 8003182: 6a1b ldr r3, [r3, #32] - 8003184: 431a orrs r2, r3 - 8003186: 687b ldr r3, [r7, #4] - 8003188: 6a5b ldr r3, [r3, #36] ; 0x24 - 800318a: 019b lsls r3, r3, #6 - 800318c: 431a orrs r2, r3 - 800318e: 687b ldr r3, [r7, #4] - 8003190: 6a9b ldr r3, [r3, #40] ; 0x28 - 8003192: 085b lsrs r3, r3, #1 - 8003194: 3b01 subs r3, #1 - 8003196: 041b lsls r3, r3, #16 - 8003198: 431a orrs r2, r3 - 800319a: 687b ldr r3, [r7, #4] - 800319c: 6adb ldr r3, [r3, #44] ; 0x2c - 800319e: 061b lsls r3, r3, #24 - 80031a0: 4933 ldr r1, [pc, #204] ; (8003270 ) - 80031a2: 4313 orrs r3, r2 - 80031a4: 604b str r3, [r1, #4] + 800409c: 687b ldr r3, [r7, #4] + 800409e: 69da ldr r2, [r3, #28] + 80040a0: 687b ldr r3, [r7, #4] + 80040a2: 6a1b ldr r3, [r3, #32] + 80040a4: 431a orrs r2, r3 + 80040a6: 687b ldr r3, [r7, #4] + 80040a8: 6a5b ldr r3, [r3, #36] ; 0x24 + 80040aa: 019b lsls r3, r3, #6 + 80040ac: 431a orrs r2, r3 + 80040ae: 687b ldr r3, [r7, #4] + 80040b0: 6a9b ldr r3, [r3, #40] ; 0x28 + 80040b2: 085b lsrs r3, r3, #1 + 80040b4: 3b01 subs r3, #1 + 80040b6: 041b lsls r3, r3, #16 + 80040b8: 431a orrs r2, r3 + 80040ba: 687b ldr r3, [r7, #4] + 80040bc: 6adb ldr r3, [r3, #44] ; 0x2c + 80040be: 061b lsls r3, r3, #24 + 80040c0: 4933 ldr r1, [pc, #204] ; (8004190 ) + 80040c2: 4313 orrs r3, r2 + 80040c4: 604b str r3, [r1, #4] RCC_OscInitStruct->PLL.PLLM | \ (RCC_OscInitStruct->PLL.PLLN << RCC_PLLCFGR_PLLN_Pos) | \ (((RCC_OscInitStruct->PLL.PLLP >> 1U) - 1U) << RCC_PLLCFGR_PLLP_Pos) | \ (RCC_OscInitStruct->PLL.PLLQ << RCC_PLLCFGR_PLLQ_Pos))); /* Enable the main PLL. */ __HAL_RCC_PLL_ENABLE(); - 80031a6: 4b33 ldr r3, [pc, #204] ; (8003274 ) - 80031a8: 2201 movs r2, #1 - 80031aa: 601a str r2, [r3, #0] + 80040c6: 4b33 ldr r3, [pc, #204] ; (8004194 ) + 80040c8: 2201 movs r2, #1 + 80040ca: 601a str r2, [r3, #0] /* Get Start Tick */ tickstart = HAL_GetTick(); - 80031ac: f7fe fee0 bl 8001f70 - 80031b0: 6138 str r0, [r7, #16] + 80040cc: f7fe fee0 bl 8002e90 + 80040d0: 6138 str r0, [r7, #16] /* Wait till PLL is ready */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) - 80031b2: e008 b.n 80031c6 + 80040d2: e008 b.n 80040e6 { if((HAL_GetTick() - tickstart ) > PLL_TIMEOUT_VALUE) - 80031b4: f7fe fedc bl 8001f70 - 80031b8: 4602 mov r2, r0 - 80031ba: 693b ldr r3, [r7, #16] - 80031bc: 1ad3 subs r3, r2, r3 - 80031be: 2b02 cmp r3, #2 - 80031c0: d901 bls.n 80031c6 + 80040d4: f7fe fedc bl 8002e90 + 80040d8: 4602 mov r2, r0 + 80040da: 693b ldr r3, [r7, #16] + 80040dc: 1ad3 subs r3, r2, r3 + 80040de: 2b02 cmp r3, #2 + 80040e0: d901 bls.n 80040e6 { return HAL_TIMEOUT; - 80031c2: 2303 movs r3, #3 - 80031c4: e04d b.n 8003262 + 80040e2: 2303 movs r3, #3 + 80040e4: e04d b.n 8004182 while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) - 80031c6: 4b2a ldr r3, [pc, #168] ; (8003270 ) - 80031c8: 681b ldr r3, [r3, #0] - 80031ca: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 - 80031ce: 2b00 cmp r3, #0 - 80031d0: d0f0 beq.n 80031b4 - 80031d2: e045 b.n 8003260 + 80040e6: 4b2a ldr r3, [pc, #168] ; (8004190 ) + 80040e8: 681b ldr r3, [r3, #0] + 80040ea: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 + 80040ee: 2b00 cmp r3, #0 + 80040f0: d0f0 beq.n 80040d4 + 80040f2: e045 b.n 8004180 } } else { /* Disable the main PLL. */ __HAL_RCC_PLL_DISABLE(); - 80031d4: 4b27 ldr r3, [pc, #156] ; (8003274 ) - 80031d6: 2200 movs r2, #0 - 80031d8: 601a str r2, [r3, #0] + 80040f4: 4b27 ldr r3, [pc, #156] ; (8004194 ) + 80040f6: 2200 movs r2, #0 + 80040f8: 601a str r2, [r3, #0] /* Get Start Tick */ tickstart = HAL_GetTick(); - 80031da: f7fe fec9 bl 8001f70 - 80031de: 6138 str r0, [r7, #16] + 80040fa: f7fe fec9 bl 8002e90 + 80040fe: 6138 str r0, [r7, #16] /* Wait till PLL is ready */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) - 80031e0: e008 b.n 80031f4 + 8004100: e008 b.n 8004114 { if((HAL_GetTick() - tickstart ) > PLL_TIMEOUT_VALUE) - 80031e2: f7fe fec5 bl 8001f70 - 80031e6: 4602 mov r2, r0 - 80031e8: 693b ldr r3, [r7, #16] - 80031ea: 1ad3 subs r3, r2, r3 - 80031ec: 2b02 cmp r3, #2 - 80031ee: d901 bls.n 80031f4 + 8004102: f7fe fec5 bl 8002e90 + 8004106: 4602 mov r2, r0 + 8004108: 693b ldr r3, [r7, #16] + 800410a: 1ad3 subs r3, r2, r3 + 800410c: 2b02 cmp r3, #2 + 800410e: d901 bls.n 8004114 { return HAL_TIMEOUT; - 80031f0: 2303 movs r3, #3 - 80031f2: e036 b.n 8003262 + 8004110: 2303 movs r3, #3 + 8004112: e036 b.n 8004182 while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) - 80031f4: 4b1e ldr r3, [pc, #120] ; (8003270 ) - 80031f6: 681b ldr r3, [r3, #0] - 80031f8: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 - 80031fc: 2b00 cmp r3, #0 - 80031fe: d1f0 bne.n 80031e2 - 8003200: e02e b.n 8003260 + 8004114: 4b1e ldr r3, [pc, #120] ; (8004190 ) + 8004116: 681b ldr r3, [r3, #0] + 8004118: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 + 800411c: 2b00 cmp r3, #0 + 800411e: d1f0 bne.n 8004102 + 8004120: e02e b.n 8004180 } } else { /* Check if there is a request to disable the PLL used as System clock source */ if((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_OFF) - 8003202: 687b ldr r3, [r7, #4] - 8003204: 699b ldr r3, [r3, #24] - 8003206: 2b01 cmp r3, #1 - 8003208: d101 bne.n 800320e + 8004122: 687b ldr r3, [r7, #4] + 8004124: 699b ldr r3, [r3, #24] + 8004126: 2b01 cmp r3, #1 + 8004128: d101 bne.n 800412e { return HAL_ERROR; - 800320a: 2301 movs r3, #1 - 800320c: e029 b.n 8003262 + 800412a: 2301 movs r3, #1 + 800412c: e029 b.n 8004182 } else { /* Do not return HAL_ERROR if request repeats the current configuration */ pll_config = RCC->PLLCFGR; - 800320e: 4b18 ldr r3, [pc, #96] ; (8003270 ) - 8003210: 685b ldr r3, [r3, #4] - 8003212: 60fb str r3, [r7, #12] + 800412e: 4b18 ldr r3, [pc, #96] ; (8004190 ) + 8004130: 685b ldr r3, [r3, #4] + 8004132: 60fb str r3, [r7, #12] if((READ_BIT(pll_config, RCC_PLLCFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || - 8003214: 68fb ldr r3, [r7, #12] - 8003216: f403 0280 and.w r2, r3, #4194304 ; 0x400000 - 800321a: 687b ldr r3, [r7, #4] - 800321c: 69db ldr r3, [r3, #28] - 800321e: 429a cmp r2, r3 - 8003220: d11c bne.n 800325c + 8004134: 68fb ldr r3, [r7, #12] + 8004136: f403 0280 and.w r2, r3, #4194304 ; 0x400000 + 800413a: 687b ldr r3, [r7, #4] + 800413c: 69db ldr r3, [r3, #28] + 800413e: 429a cmp r2, r3 + 8004140: d11c bne.n 800417c (READ_BIT(pll_config, RCC_PLLCFGR_PLLM) != RCC_OscInitStruct->PLL.PLLM) || - 8003222: 68fb ldr r3, [r7, #12] - 8003224: f003 023f and.w r2, r3, #63 ; 0x3f - 8003228: 687b ldr r3, [r7, #4] - 800322a: 6a1b ldr r3, [r3, #32] + 8004142: 68fb ldr r3, [r7, #12] + 8004144: f003 023f and.w r2, r3, #63 ; 0x3f + 8004148: 687b ldr r3, [r7, #4] + 800414a: 6a1b ldr r3, [r3, #32] if((READ_BIT(pll_config, RCC_PLLCFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || - 800322c: 429a cmp r2, r3 - 800322e: d115 bne.n 800325c + 800414c: 429a cmp r2, r3 + 800414e: d115 bne.n 800417c (READ_BIT(pll_config, RCC_PLLCFGR_PLLN) != RCC_OscInitStruct->PLL.PLLN) || - 8003230: 68fa ldr r2, [r7, #12] - 8003232: f647 73c0 movw r3, #32704 ; 0x7fc0 - 8003236: 4013 ands r3, r2 - 8003238: 687a ldr r2, [r7, #4] - 800323a: 6a52 ldr r2, [r2, #36] ; 0x24 + 8004150: 68fa ldr r2, [r7, #12] + 8004152: f647 73c0 movw r3, #32704 ; 0x7fc0 + 8004156: 4013 ands r3, r2 + 8004158: 687a ldr r2, [r7, #4] + 800415a: 6a52 ldr r2, [r2, #36] ; 0x24 (READ_BIT(pll_config, RCC_PLLCFGR_PLLM) != RCC_OscInitStruct->PLL.PLLM) || - 800323c: 4293 cmp r3, r2 - 800323e: d10d bne.n 800325c + 800415c: 4293 cmp r3, r2 + 800415e: d10d bne.n 800417c (READ_BIT(pll_config, RCC_PLLCFGR_PLLP) != RCC_OscInitStruct->PLL.PLLP) || - 8003240: 68fb ldr r3, [r7, #12] - 8003242: f403 3240 and.w r2, r3, #196608 ; 0x30000 - 8003246: 687b ldr r3, [r7, #4] - 8003248: 6a9b ldr r3, [r3, #40] ; 0x28 + 8004160: 68fb ldr r3, [r7, #12] + 8004162: f403 3240 and.w r2, r3, #196608 ; 0x30000 + 8004166: 687b ldr r3, [r7, #4] + 8004168: 6a9b ldr r3, [r3, #40] ; 0x28 (READ_BIT(pll_config, RCC_PLLCFGR_PLLN) != RCC_OscInitStruct->PLL.PLLN) || - 800324a: 429a cmp r2, r3 - 800324c: d106 bne.n 800325c + 800416a: 429a cmp r2, r3 + 800416c: d106 bne.n 800417c (READ_BIT(pll_config, RCC_PLLCFGR_PLLQ) != RCC_OscInitStruct->PLL.PLLQ)) - 800324e: 68fb ldr r3, [r7, #12] - 8003250: f003 6270 and.w r2, r3, #251658240 ; 0xf000000 - 8003254: 687b ldr r3, [r7, #4] - 8003256: 6adb ldr r3, [r3, #44] ; 0x2c + 800416e: 68fb ldr r3, [r7, #12] + 8004170: f003 6270 and.w r2, r3, #251658240 ; 0xf000000 + 8004174: 687b ldr r3, [r7, #4] + 8004176: 6adb ldr r3, [r3, #44] ; 0x2c (READ_BIT(pll_config, RCC_PLLCFGR_PLLP) != RCC_OscInitStruct->PLL.PLLP) || - 8003258: 429a cmp r2, r3 - 800325a: d001 beq.n 8003260 + 8004178: 429a cmp r2, r3 + 800417a: d001 beq.n 8004180 { return HAL_ERROR; - 800325c: 2301 movs r3, #1 - 800325e: e000 b.n 8003262 + 800417c: 2301 movs r3, #1 + 800417e: e000 b.n 8004182 } } } } return HAL_OK; - 8003260: 2300 movs r3, #0 + 8004180: 2300 movs r3, #0 } - 8003262: 4618 mov r0, r3 - 8003264: 3718 adds r7, #24 - 8003266: 46bd mov sp, r7 - 8003268: bd80 pop {r7, pc} - 800326a: bf00 nop - 800326c: 40007000 .word 0x40007000 - 8003270: 40023800 .word 0x40023800 - 8003274: 42470060 .word 0x42470060 + 8004182: 4618 mov r0, r3 + 8004184: 3718 adds r7, #24 + 8004186: 46bd mov sp, r7 + 8004188: bd80 pop {r7, pc} + 800418a: bf00 nop + 800418c: 40007000 .word 0x40007000 + 8004190: 40023800 .word 0x40023800 + 8004194: 42470060 .word 0x42470060 -08003278 : +08004198 : * HPRE[3:0] bits to ensure that HCLK not exceed the maximum allowed frequency * (for more details refer to section above "Initialization/de-initialization functions") * @retval None */ HAL_StatusTypeDef HAL_RCC_ClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t FLatency) { - 8003278: b580 push {r7, lr} - 800327a: b084 sub sp, #16 - 800327c: af00 add r7, sp, #0 - 800327e: 6078 str r0, [r7, #4] - 8003280: 6039 str r1, [r7, #0] + 8004198: b580 push {r7, lr} + 800419a: b084 sub sp, #16 + 800419c: af00 add r7, sp, #0 + 800419e: 6078 str r0, [r7, #4] + 80041a0: 6039 str r1, [r7, #0] uint32_t tickstart; /* Check Null pointer */ if(RCC_ClkInitStruct == NULL) - 8003282: 687b ldr r3, [r7, #4] - 8003284: 2b00 cmp r3, #0 - 8003286: d101 bne.n 800328c + 80041a2: 687b ldr r3, [r7, #4] + 80041a4: 2b00 cmp r3, #0 + 80041a6: d101 bne.n 80041ac { return HAL_ERROR; - 8003288: 2301 movs r3, #1 - 800328a: e0cc b.n 8003426 + 80041a8: 2301 movs r3, #1 + 80041aa: e0cc b.n 8004346 /* To correctly read data from FLASH memory, the number of wait states (LATENCY) must be correctly programmed according to the frequency of the CPU clock (HCLK) and the supply voltage of the device. */ /* Increasing the number of wait states because of higher CPU frequency */ if(FLatency > __HAL_FLASH_GET_LATENCY()) - 800328c: 4b68 ldr r3, [pc, #416] ; (8003430 ) - 800328e: 681b ldr r3, [r3, #0] - 8003290: f003 030f and.w r3, r3, #15 - 8003294: 683a ldr r2, [r7, #0] - 8003296: 429a cmp r2, r3 - 8003298: d90c bls.n 80032b4 + 80041ac: 4b68 ldr r3, [pc, #416] ; (8004350 ) + 80041ae: 681b ldr r3, [r3, #0] + 80041b0: f003 030f and.w r3, r3, #15 + 80041b4: 683a ldr r2, [r7, #0] + 80041b6: 429a cmp r2, r3 + 80041b8: d90c bls.n 80041d4 { /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ __HAL_FLASH_SET_LATENCY(FLatency); - 800329a: 4b65 ldr r3, [pc, #404] ; (8003430 ) - 800329c: 683a ldr r2, [r7, #0] - 800329e: b2d2 uxtb r2, r2 - 80032a0: 701a strb r2, [r3, #0] + 80041ba: 4b65 ldr r3, [pc, #404] ; (8004350 ) + 80041bc: 683a ldr r2, [r7, #0] + 80041be: b2d2 uxtb r2, r2 + 80041c0: 701a strb r2, [r3, #0] /* Check that the new number of wait states is taken into account to access the Flash memory by reading the FLASH_ACR register */ if(__HAL_FLASH_GET_LATENCY() != FLatency) - 80032a2: 4b63 ldr r3, [pc, #396] ; (8003430 ) - 80032a4: 681b ldr r3, [r3, #0] - 80032a6: f003 030f and.w r3, r3, #15 - 80032aa: 683a ldr r2, [r7, #0] - 80032ac: 429a cmp r2, r3 - 80032ae: d001 beq.n 80032b4 + 80041c2: 4b63 ldr r3, [pc, #396] ; (8004350 ) + 80041c4: 681b ldr r3, [r3, #0] + 80041c6: f003 030f and.w r3, r3, #15 + 80041ca: 683a ldr r2, [r7, #0] + 80041cc: 429a cmp r2, r3 + 80041ce: d001 beq.n 80041d4 { return HAL_ERROR; - 80032b0: 2301 movs r3, #1 - 80032b2: e0b8 b.n 8003426 + 80041d0: 2301 movs r3, #1 + 80041d2: e0b8 b.n 8004346 } } /*-------------------------- HCLK Configuration --------------------------*/ if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK) - 80032b4: 687b ldr r3, [r7, #4] - 80032b6: 681b ldr r3, [r3, #0] - 80032b8: f003 0302 and.w r3, r3, #2 - 80032bc: 2b00 cmp r3, #0 - 80032be: d020 beq.n 8003302 + 80041d4: 687b ldr r3, [r7, #4] + 80041d6: 681b ldr r3, [r3, #0] + 80041d8: f003 0302 and.w r3, r3, #2 + 80041dc: 2b00 cmp r3, #0 + 80041de: d020 beq.n 8004222 { /* Set the highest APBx dividers in order to ensure that we do not go through a non-spec phase whatever we decrease or increase HCLK. */ if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1) - 80032c0: 687b ldr r3, [r7, #4] - 80032c2: 681b ldr r3, [r3, #0] - 80032c4: f003 0304 and.w r3, r3, #4 - 80032c8: 2b00 cmp r3, #0 - 80032ca: d005 beq.n 80032d8 + 80041e0: 687b ldr r3, [r7, #4] + 80041e2: 681b ldr r3, [r3, #0] + 80041e4: f003 0304 and.w r3, r3, #4 + 80041e8: 2b00 cmp r3, #0 + 80041ea: d005 beq.n 80041f8 { MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_HCLK_DIV16); - 80032cc: 4b59 ldr r3, [pc, #356] ; (8003434 ) - 80032ce: 689b ldr r3, [r3, #8] - 80032d0: 4a58 ldr r2, [pc, #352] ; (8003434 ) - 80032d2: f443 53e0 orr.w r3, r3, #7168 ; 0x1c00 - 80032d6: 6093 str r3, [r2, #8] + 80041ec: 4b59 ldr r3, [pc, #356] ; (8004354 ) + 80041ee: 689b ldr r3, [r3, #8] + 80041f0: 4a58 ldr r2, [pc, #352] ; (8004354 ) + 80041f2: f443 53e0 orr.w r3, r3, #7168 ; 0x1c00 + 80041f6: 6093 str r3, [r2, #8] } if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2) - 80032d8: 687b ldr r3, [r7, #4] - 80032da: 681b ldr r3, [r3, #0] - 80032dc: f003 0308 and.w r3, r3, #8 - 80032e0: 2b00 cmp r3, #0 - 80032e2: d005 beq.n 80032f0 + 80041f8: 687b ldr r3, [r7, #4] + 80041fa: 681b ldr r3, [r3, #0] + 80041fc: f003 0308 and.w r3, r3, #8 + 8004200: 2b00 cmp r3, #0 + 8004202: d005 beq.n 8004210 { MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, (RCC_HCLK_DIV16 << 3)); - 80032e4: 4b53 ldr r3, [pc, #332] ; (8003434 ) - 80032e6: 689b ldr r3, [r3, #8] - 80032e8: 4a52 ldr r2, [pc, #328] ; (8003434 ) - 80032ea: f443 4360 orr.w r3, r3, #57344 ; 0xe000 - 80032ee: 6093 str r3, [r2, #8] + 8004204: 4b53 ldr r3, [pc, #332] ; (8004354 ) + 8004206: 689b ldr r3, [r3, #8] + 8004208: 4a52 ldr r2, [pc, #328] ; (8004354 ) + 800420a: f443 4360 orr.w r3, r3, #57344 ; 0xe000 + 800420e: 6093 str r3, [r2, #8] } assert_param(IS_RCC_HCLK(RCC_ClkInitStruct->AHBCLKDivider)); MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_ClkInitStruct->AHBCLKDivider); - 80032f0: 4b50 ldr r3, [pc, #320] ; (8003434 ) - 80032f2: 689b ldr r3, [r3, #8] - 80032f4: f023 02f0 bic.w r2, r3, #240 ; 0xf0 - 80032f8: 687b ldr r3, [r7, #4] - 80032fa: 689b ldr r3, [r3, #8] - 80032fc: 494d ldr r1, [pc, #308] ; (8003434 ) - 80032fe: 4313 orrs r3, r2 - 8003300: 608b str r3, [r1, #8] + 8004210: 4b50 ldr r3, [pc, #320] ; (8004354 ) + 8004212: 689b ldr r3, [r3, #8] + 8004214: f023 02f0 bic.w r2, r3, #240 ; 0xf0 + 8004218: 687b ldr r3, [r7, #4] + 800421a: 689b ldr r3, [r3, #8] + 800421c: 494d ldr r1, [pc, #308] ; (8004354 ) + 800421e: 4313 orrs r3, r2 + 8004220: 608b str r3, [r1, #8] } /*------------------------- SYSCLK Configuration ---------------------------*/ if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_SYSCLK) == RCC_CLOCKTYPE_SYSCLK) - 8003302: 687b ldr r3, [r7, #4] - 8003304: 681b ldr r3, [r3, #0] - 8003306: f003 0301 and.w r3, r3, #1 - 800330a: 2b00 cmp r3, #0 - 800330c: d044 beq.n 8003398 + 8004222: 687b ldr r3, [r7, #4] + 8004224: 681b ldr r3, [r3, #0] + 8004226: f003 0301 and.w r3, r3, #1 + 800422a: 2b00 cmp r3, #0 + 800422c: d044 beq.n 80042b8 { assert_param(IS_RCC_SYSCLKSOURCE(RCC_ClkInitStruct->SYSCLKSource)); /* HSE is selected as System Clock Source */ if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE) - 800330e: 687b ldr r3, [r7, #4] - 8003310: 685b ldr r3, [r3, #4] - 8003312: 2b01 cmp r3, #1 - 8003314: d107 bne.n 8003326 + 800422e: 687b ldr r3, [r7, #4] + 8004230: 685b ldr r3, [r3, #4] + 8004232: 2b01 cmp r3, #1 + 8004234: d107 bne.n 8004246 { /* Check the HSE ready flag */ if(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) - 8003316: 4b47 ldr r3, [pc, #284] ; (8003434 ) - 8003318: 681b ldr r3, [r3, #0] - 800331a: f403 3300 and.w r3, r3, #131072 ; 0x20000 - 800331e: 2b00 cmp r3, #0 - 8003320: d119 bne.n 8003356 + 8004236: 4b47 ldr r3, [pc, #284] ; (8004354 ) + 8004238: 681b ldr r3, [r3, #0] + 800423a: f403 3300 and.w r3, r3, #131072 ; 0x20000 + 800423e: 2b00 cmp r3, #0 + 8004240: d119 bne.n 8004276 { return HAL_ERROR; - 8003322: 2301 movs r3, #1 - 8003324: e07f b.n 8003426 + 8004242: 2301 movs r3, #1 + 8004244: e07f b.n 8004346 } } /* PLL is selected as System Clock Source */ else if((RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLCLK) || - 8003326: 687b ldr r3, [r7, #4] - 8003328: 685b ldr r3, [r3, #4] - 800332a: 2b02 cmp r3, #2 - 800332c: d003 beq.n 8003336 + 8004246: 687b ldr r3, [r7, #4] + 8004248: 685b ldr r3, [r3, #4] + 800424a: 2b02 cmp r3, #2 + 800424c: d003 beq.n 8004256 (RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLRCLK)) - 800332e: 687b ldr r3, [r7, #4] - 8003330: 685b ldr r3, [r3, #4] + 800424e: 687b ldr r3, [r7, #4] + 8004250: 685b ldr r3, [r3, #4] else if((RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLCLK) || - 8003332: 2b03 cmp r3, #3 - 8003334: d107 bne.n 8003346 + 8004252: 2b03 cmp r3, #3 + 8004254: d107 bne.n 8004266 { /* Check the PLL ready flag */ if(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) - 8003336: 4b3f ldr r3, [pc, #252] ; (8003434 ) - 8003338: 681b ldr r3, [r3, #0] - 800333a: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 - 800333e: 2b00 cmp r3, #0 - 8003340: d109 bne.n 8003356 + 8004256: 4b3f ldr r3, [pc, #252] ; (8004354 ) + 8004258: 681b ldr r3, [r3, #0] + 800425a: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 + 800425e: 2b00 cmp r3, #0 + 8004260: d109 bne.n 8004276 { return HAL_ERROR; - 8003342: 2301 movs r3, #1 - 8003344: e06f b.n 8003426 + 8004262: 2301 movs r3, #1 + 8004264: e06f b.n 8004346 } /* HSI is selected as System Clock Source */ else { /* Check the HSI ready flag */ if(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) - 8003346: 4b3b ldr r3, [pc, #236] ; (8003434 ) - 8003348: 681b ldr r3, [r3, #0] - 800334a: f003 0302 and.w r3, r3, #2 - 800334e: 2b00 cmp r3, #0 - 8003350: d101 bne.n 8003356 + 8004266: 4b3b ldr r3, [pc, #236] ; (8004354 ) + 8004268: 681b ldr r3, [r3, #0] + 800426a: f003 0302 and.w r3, r3, #2 + 800426e: 2b00 cmp r3, #0 + 8004270: d101 bne.n 8004276 { return HAL_ERROR; - 8003352: 2301 movs r3, #1 - 8003354: e067 b.n 8003426 + 8004272: 2301 movs r3, #1 + 8004274: e067 b.n 8004346 } } __HAL_RCC_SYSCLK_CONFIG(RCC_ClkInitStruct->SYSCLKSource); - 8003356: 4b37 ldr r3, [pc, #220] ; (8003434 ) - 8003358: 689b ldr r3, [r3, #8] - 800335a: f023 0203 bic.w r2, r3, #3 - 800335e: 687b ldr r3, [r7, #4] - 8003360: 685b ldr r3, [r3, #4] - 8003362: 4934 ldr r1, [pc, #208] ; (8003434 ) - 8003364: 4313 orrs r3, r2 - 8003366: 608b str r3, [r1, #8] + 8004276: 4b37 ldr r3, [pc, #220] ; (8004354 ) + 8004278: 689b ldr r3, [r3, #8] + 800427a: f023 0203 bic.w r2, r3, #3 + 800427e: 687b ldr r3, [r7, #4] + 8004280: 685b ldr r3, [r3, #4] + 8004282: 4934 ldr r1, [pc, #208] ; (8004354 ) + 8004284: 4313 orrs r3, r2 + 8004286: 608b str r3, [r1, #8] /* Get Start Tick */ tickstart = HAL_GetTick(); - 8003368: f7fe fe02 bl 8001f70 - 800336c: 60f8 str r0, [r7, #12] + 8004288: f7fe fe02 bl 8002e90 + 800428c: 60f8 str r0, [r7, #12] while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos)) - 800336e: e00a b.n 8003386 + 800428e: e00a b.n 80042a6 { if ((HAL_GetTick() - tickstart) > CLOCKSWITCH_TIMEOUT_VALUE) - 8003370: f7fe fdfe bl 8001f70 - 8003374: 4602 mov r2, r0 - 8003376: 68fb ldr r3, [r7, #12] - 8003378: 1ad3 subs r3, r2, r3 - 800337a: f241 3288 movw r2, #5000 ; 0x1388 - 800337e: 4293 cmp r3, r2 - 8003380: d901 bls.n 8003386 + 8004290: f7fe fdfe bl 8002e90 + 8004294: 4602 mov r2, r0 + 8004296: 68fb ldr r3, [r7, #12] + 8004298: 1ad3 subs r3, r2, r3 + 800429a: f241 3288 movw r2, #5000 ; 0x1388 + 800429e: 4293 cmp r3, r2 + 80042a0: d901 bls.n 80042a6 { return HAL_TIMEOUT; - 8003382: 2303 movs r3, #3 - 8003384: e04f b.n 8003426 + 80042a2: 2303 movs r3, #3 + 80042a4: e04f b.n 8004346 while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos)) - 8003386: 4b2b ldr r3, [pc, #172] ; (8003434 ) - 8003388: 689b ldr r3, [r3, #8] - 800338a: f003 020c and.w r2, r3, #12 - 800338e: 687b ldr r3, [r7, #4] - 8003390: 685b ldr r3, [r3, #4] - 8003392: 009b lsls r3, r3, #2 - 8003394: 429a cmp r2, r3 - 8003396: d1eb bne.n 8003370 + 80042a6: 4b2b ldr r3, [pc, #172] ; (8004354 ) + 80042a8: 689b ldr r3, [r3, #8] + 80042aa: f003 020c and.w r2, r3, #12 + 80042ae: 687b ldr r3, [r7, #4] + 80042b0: 685b ldr r3, [r3, #4] + 80042b2: 009b lsls r3, r3, #2 + 80042b4: 429a cmp r2, r3 + 80042b6: d1eb bne.n 8004290 } } } /* Decreasing the number of wait states because of lower CPU frequency */ if(FLatency < __HAL_FLASH_GET_LATENCY()) - 8003398: 4b25 ldr r3, [pc, #148] ; (8003430 ) - 800339a: 681b ldr r3, [r3, #0] - 800339c: f003 030f and.w r3, r3, #15 - 80033a0: 683a ldr r2, [r7, #0] - 80033a2: 429a cmp r2, r3 - 80033a4: d20c bcs.n 80033c0 + 80042b8: 4b25 ldr r3, [pc, #148] ; (8004350 ) + 80042ba: 681b ldr r3, [r3, #0] + 80042bc: f003 030f and.w r3, r3, #15 + 80042c0: 683a ldr r2, [r7, #0] + 80042c2: 429a cmp r2, r3 + 80042c4: d20c bcs.n 80042e0 { /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ __HAL_FLASH_SET_LATENCY(FLatency); - 80033a6: 4b22 ldr r3, [pc, #136] ; (8003430 ) - 80033a8: 683a ldr r2, [r7, #0] - 80033aa: b2d2 uxtb r2, r2 - 80033ac: 701a strb r2, [r3, #0] + 80042c6: 4b22 ldr r3, [pc, #136] ; (8004350 ) + 80042c8: 683a ldr r2, [r7, #0] + 80042ca: b2d2 uxtb r2, r2 + 80042cc: 701a strb r2, [r3, #0] /* Check that the new number of wait states is taken into account to access the Flash memory by reading the FLASH_ACR register */ if(__HAL_FLASH_GET_LATENCY() != FLatency) - 80033ae: 4b20 ldr r3, [pc, #128] ; (8003430 ) - 80033b0: 681b ldr r3, [r3, #0] - 80033b2: f003 030f and.w r3, r3, #15 - 80033b6: 683a ldr r2, [r7, #0] - 80033b8: 429a cmp r2, r3 - 80033ba: d001 beq.n 80033c0 + 80042ce: 4b20 ldr r3, [pc, #128] ; (8004350 ) + 80042d0: 681b ldr r3, [r3, #0] + 80042d2: f003 030f and.w r3, r3, #15 + 80042d6: 683a ldr r2, [r7, #0] + 80042d8: 429a cmp r2, r3 + 80042da: d001 beq.n 80042e0 { return HAL_ERROR; - 80033bc: 2301 movs r3, #1 - 80033be: e032 b.n 8003426 + 80042dc: 2301 movs r3, #1 + 80042de: e032 b.n 8004346 } } /*-------------------------- PCLK1 Configuration ---------------------------*/ if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1) - 80033c0: 687b ldr r3, [r7, #4] - 80033c2: 681b ldr r3, [r3, #0] - 80033c4: f003 0304 and.w r3, r3, #4 - 80033c8: 2b00 cmp r3, #0 - 80033ca: d008 beq.n 80033de + 80042e0: 687b ldr r3, [r7, #4] + 80042e2: 681b ldr r3, [r3, #0] + 80042e4: f003 0304 and.w r3, r3, #4 + 80042e8: 2b00 cmp r3, #0 + 80042ea: d008 beq.n 80042fe { assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB1CLKDivider)); MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_ClkInitStruct->APB1CLKDivider); - 80033cc: 4b19 ldr r3, [pc, #100] ; (8003434 ) - 80033ce: 689b ldr r3, [r3, #8] - 80033d0: f423 52e0 bic.w r2, r3, #7168 ; 0x1c00 - 80033d4: 687b ldr r3, [r7, #4] - 80033d6: 68db ldr r3, [r3, #12] - 80033d8: 4916 ldr r1, [pc, #88] ; (8003434 ) - 80033da: 4313 orrs r3, r2 - 80033dc: 608b str r3, [r1, #8] + 80042ec: 4b19 ldr r3, [pc, #100] ; (8004354 ) + 80042ee: 689b ldr r3, [r3, #8] + 80042f0: f423 52e0 bic.w r2, r3, #7168 ; 0x1c00 + 80042f4: 687b ldr r3, [r7, #4] + 80042f6: 68db ldr r3, [r3, #12] + 80042f8: 4916 ldr r1, [pc, #88] ; (8004354 ) + 80042fa: 4313 orrs r3, r2 + 80042fc: 608b str r3, [r1, #8] } /*-------------------------- PCLK2 Configuration ---------------------------*/ if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2) - 80033de: 687b ldr r3, [r7, #4] - 80033e0: 681b ldr r3, [r3, #0] - 80033e2: f003 0308 and.w r3, r3, #8 - 80033e6: 2b00 cmp r3, #0 - 80033e8: d009 beq.n 80033fe + 80042fe: 687b ldr r3, [r7, #4] + 8004300: 681b ldr r3, [r3, #0] + 8004302: f003 0308 and.w r3, r3, #8 + 8004306: 2b00 cmp r3, #0 + 8004308: d009 beq.n 800431e { assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB2CLKDivider)); MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, ((RCC_ClkInitStruct->APB2CLKDivider) << 3U)); - 80033ea: 4b12 ldr r3, [pc, #72] ; (8003434 ) - 80033ec: 689b ldr r3, [r3, #8] - 80033ee: f423 4260 bic.w r2, r3, #57344 ; 0xe000 - 80033f2: 687b ldr r3, [r7, #4] - 80033f4: 691b ldr r3, [r3, #16] - 80033f6: 00db lsls r3, r3, #3 - 80033f8: 490e ldr r1, [pc, #56] ; (8003434 ) - 80033fa: 4313 orrs r3, r2 - 80033fc: 608b str r3, [r1, #8] + 800430a: 4b12 ldr r3, [pc, #72] ; (8004354 ) + 800430c: 689b ldr r3, [r3, #8] + 800430e: f423 4260 bic.w r2, r3, #57344 ; 0xe000 + 8004312: 687b ldr r3, [r7, #4] + 8004314: 691b ldr r3, [r3, #16] + 8004316: 00db lsls r3, r3, #3 + 8004318: 490e ldr r1, [pc, #56] ; (8004354 ) + 800431a: 4313 orrs r3, r2 + 800431c: 608b str r3, [r1, #8] } /* Update the SystemCoreClock global variable */ SystemCoreClock = HAL_RCC_GetSysClockFreq() >> AHBPrescTable[(RCC->CFGR & RCC_CFGR_HPRE)>> RCC_CFGR_HPRE_Pos]; - 80033fe: f000 f821 bl 8003444 - 8003402: 4601 mov r1, r0 - 8003404: 4b0b ldr r3, [pc, #44] ; (8003434 ) - 8003406: 689b ldr r3, [r3, #8] - 8003408: 091b lsrs r3, r3, #4 - 800340a: f003 030f and.w r3, r3, #15 - 800340e: 4a0a ldr r2, [pc, #40] ; (8003438 ) - 8003410: 5cd3 ldrb r3, [r2, r3] - 8003412: fa21 f303 lsr.w r3, r1, r3 - 8003416: 4a09 ldr r2, [pc, #36] ; (800343c ) - 8003418: 6013 str r3, [r2, #0] + 800431e: f000 f821 bl 8004364 + 8004322: 4601 mov r1, r0 + 8004324: 4b0b ldr r3, [pc, #44] ; (8004354 ) + 8004326: 689b ldr r3, [r3, #8] + 8004328: 091b lsrs r3, r3, #4 + 800432a: f003 030f and.w r3, r3, #15 + 800432e: 4a0a ldr r2, [pc, #40] ; (8004358 ) + 8004330: 5cd3 ldrb r3, [r2, r3] + 8004332: fa21 f303 lsr.w r3, r1, r3 + 8004336: 4a09 ldr r2, [pc, #36] ; (800435c ) + 8004338: 6013 str r3, [r2, #0] /* Configure the source of time base considering new system clocks settings */ HAL_InitTick (uwTickPrio); - 800341a: 4b09 ldr r3, [pc, #36] ; (8003440 ) - 800341c: 681b ldr r3, [r3, #0] - 800341e: 4618 mov r0, r3 - 8003420: f7fe fd62 bl 8001ee8 + 800433a: 4b09 ldr r3, [pc, #36] ; (8004360 ) + 800433c: 681b ldr r3, [r3, #0] + 800433e: 4618 mov r0, r3 + 8004340: f7fe fd62 bl 8002e08 return HAL_OK; - 8003424: 2300 movs r3, #0 + 8004344: 2300 movs r3, #0 } - 8003426: 4618 mov r0, r3 - 8003428: 3710 adds r7, #16 - 800342a: 46bd mov sp, r7 - 800342c: bd80 pop {r7, pc} - 800342e: bf00 nop - 8003430: 40023c00 .word 0x40023c00 - 8003434: 40023800 .word 0x40023800 - 8003438: 08004484 .word 0x08004484 - 800343c: 20000004 .word 0x20000004 - 8003440: 20000008 .word 0x20000008 + 8004346: 4618 mov r0, r3 + 8004348: 3710 adds r7, #16 + 800434a: 46bd mov sp, r7 + 800434c: bd80 pop {r7, pc} + 800434e: bf00 nop + 8004350: 40023c00 .word 0x40023c00 + 8004354: 40023800 .word 0x40023800 + 8004358: 080053a4 .word 0x080053a4 + 800435c: 20000004 .word 0x20000004 + 8004360: 20000008 .word 0x20000008 -08003444 : +08004364 : * * * @retval SYSCLK frequency */ __weak uint32_t HAL_RCC_GetSysClockFreq(void) { - 8003444: b5f0 push {r4, r5, r6, r7, lr} - 8003446: b085 sub sp, #20 - 8003448: af00 add r7, sp, #0 + 8004364: b5f0 push {r4, r5, r6, r7, lr} + 8004366: b085 sub sp, #20 + 8004368: af00 add r7, sp, #0 uint32_t pllm = 0U, pllvco = 0U, pllp = 0U; - 800344a: 2300 movs r3, #0 - 800344c: 607b str r3, [r7, #4] - 800344e: 2300 movs r3, #0 - 8003450: 60fb str r3, [r7, #12] - 8003452: 2300 movs r3, #0 - 8003454: 603b str r3, [r7, #0] + 800436a: 2300 movs r3, #0 + 800436c: 607b str r3, [r7, #4] + 800436e: 2300 movs r3, #0 + 8004370: 60fb str r3, [r7, #12] + 8004372: 2300 movs r3, #0 + 8004374: 603b str r3, [r7, #0] uint32_t sysclockfreq = 0U; - 8003456: 2300 movs r3, #0 - 8003458: 60bb str r3, [r7, #8] + 8004376: 2300 movs r3, #0 + 8004378: 60bb str r3, [r7, #8] /* Get SYSCLK source -------------------------------------------------------*/ switch (RCC->CFGR & RCC_CFGR_SWS) - 800345a: 4b63 ldr r3, [pc, #396] ; (80035e8 ) - 800345c: 689b ldr r3, [r3, #8] - 800345e: f003 030c and.w r3, r3, #12 - 8003462: 2b04 cmp r3, #4 - 8003464: d007 beq.n 8003476 - 8003466: 2b08 cmp r3, #8 - 8003468: d008 beq.n 800347c - 800346a: 2b00 cmp r3, #0 - 800346c: f040 80b4 bne.w 80035d8 + 800437a: 4b63 ldr r3, [pc, #396] ; (8004508 ) + 800437c: 689b ldr r3, [r3, #8] + 800437e: f003 030c and.w r3, r3, #12 + 8004382: 2b04 cmp r3, #4 + 8004384: d007 beq.n 8004396 + 8004386: 2b08 cmp r3, #8 + 8004388: d008 beq.n 800439c + 800438a: 2b00 cmp r3, #0 + 800438c: f040 80b4 bne.w 80044f8 { case RCC_CFGR_SWS_HSI: /* HSI used as system clock source */ { sysclockfreq = HSI_VALUE; - 8003470: 4b5e ldr r3, [pc, #376] ; (80035ec ) - 8003472: 60bb str r3, [r7, #8] + 8004390: 4b5e ldr r3, [pc, #376] ; (800450c ) + 8004392: 60bb str r3, [r7, #8] break; - 8003474: e0b3 b.n 80035de + 8004394: e0b3 b.n 80044fe } case RCC_CFGR_SWS_HSE: /* HSE used as system clock source */ { sysclockfreq = HSE_VALUE; - 8003476: 4b5e ldr r3, [pc, #376] ; (80035f0 ) - 8003478: 60bb str r3, [r7, #8] + 8004396: 4b5e ldr r3, [pc, #376] ; (8004510 ) + 8004398: 60bb str r3, [r7, #8] break; - 800347a: e0b0 b.n 80035de + 800439a: e0b0 b.n 80044fe } case RCC_CFGR_SWS_PLL: /* PLL used as system clock source */ { /* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLLM) * PLLN SYSCLK = PLL_VCO / PLLP */ pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM; - 800347c: 4b5a ldr r3, [pc, #360] ; (80035e8 ) - 800347e: 685b ldr r3, [r3, #4] - 8003480: f003 033f and.w r3, r3, #63 ; 0x3f - 8003484: 607b str r3, [r7, #4] + 800439c: 4b5a ldr r3, [pc, #360] ; (8004508 ) + 800439e: 685b ldr r3, [r3, #4] + 80043a0: f003 033f and.w r3, r3, #63 ; 0x3f + 80043a4: 607b str r3, [r7, #4] if(__HAL_RCC_GET_PLL_OSCSOURCE() != RCC_PLLSOURCE_HSI) - 8003486: 4b58 ldr r3, [pc, #352] ; (80035e8 ) - 8003488: 685b ldr r3, [r3, #4] - 800348a: f403 0380 and.w r3, r3, #4194304 ; 0x400000 - 800348e: 2b00 cmp r3, #0 - 8003490: d04a beq.n 8003528 + 80043a6: 4b58 ldr r3, [pc, #352] ; (8004508 ) + 80043a8: 685b ldr r3, [r3, #4] + 80043aa: f403 0380 and.w r3, r3, #4194304 ; 0x400000 + 80043ae: 2b00 cmp r3, #0 + 80043b0: d04a beq.n 8004448 { /* HSE used as PLL clock source */ pllvco = (uint32_t) ((((uint64_t) HSE_VALUE * ((uint64_t) ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos)))) / (uint64_t)pllm); - 8003492: 4b55 ldr r3, [pc, #340] ; (80035e8 ) - 8003494: 685b ldr r3, [r3, #4] - 8003496: 099b lsrs r3, r3, #6 - 8003498: f04f 0400 mov.w r4, #0 - 800349c: f240 11ff movw r1, #511 ; 0x1ff - 80034a0: f04f 0200 mov.w r2, #0 - 80034a4: ea03 0501 and.w r5, r3, r1 - 80034a8: ea04 0602 and.w r6, r4, r2 - 80034ac: 4629 mov r1, r5 - 80034ae: 4632 mov r2, r6 - 80034b0: f04f 0300 mov.w r3, #0 - 80034b4: f04f 0400 mov.w r4, #0 - 80034b8: 0154 lsls r4, r2, #5 - 80034ba: ea44 64d1 orr.w r4, r4, r1, lsr #27 - 80034be: 014b lsls r3, r1, #5 - 80034c0: 4619 mov r1, r3 - 80034c2: 4622 mov r2, r4 - 80034c4: 1b49 subs r1, r1, r5 - 80034c6: eb62 0206 sbc.w r2, r2, r6 - 80034ca: f04f 0300 mov.w r3, #0 - 80034ce: f04f 0400 mov.w r4, #0 - 80034d2: 0194 lsls r4, r2, #6 - 80034d4: ea44 6491 orr.w r4, r4, r1, lsr #26 - 80034d8: 018b lsls r3, r1, #6 - 80034da: 1a5b subs r3, r3, r1 - 80034dc: eb64 0402 sbc.w r4, r4, r2 - 80034e0: f04f 0100 mov.w r1, #0 - 80034e4: f04f 0200 mov.w r2, #0 - 80034e8: 00e2 lsls r2, r4, #3 - 80034ea: ea42 7253 orr.w r2, r2, r3, lsr #29 - 80034ee: 00d9 lsls r1, r3, #3 - 80034f0: 460b mov r3, r1 - 80034f2: 4614 mov r4, r2 - 80034f4: 195b adds r3, r3, r5 - 80034f6: eb44 0406 adc.w r4, r4, r6 - 80034fa: f04f 0100 mov.w r1, #0 - 80034fe: f04f 0200 mov.w r2, #0 - 8003502: 0262 lsls r2, r4, #9 - 8003504: ea42 52d3 orr.w r2, r2, r3, lsr #23 - 8003508: 0259 lsls r1, r3, #9 - 800350a: 460b mov r3, r1 - 800350c: 4614 mov r4, r2 - 800350e: 4618 mov r0, r3 - 8003510: 4621 mov r1, r4 - 8003512: 687b ldr r3, [r7, #4] - 8003514: f04f 0400 mov.w r4, #0 - 8003518: 461a mov r2, r3 - 800351a: 4623 mov r3, r4 - 800351c: f7fc fe66 bl 80001ec <__aeabi_uldivmod> - 8003520: 4603 mov r3, r0 - 8003522: 460c mov r4, r1 - 8003524: 60fb str r3, [r7, #12] - 8003526: e049 b.n 80035bc + 80043b2: 4b55 ldr r3, [pc, #340] ; (8004508 ) + 80043b4: 685b ldr r3, [r3, #4] + 80043b6: 099b lsrs r3, r3, #6 + 80043b8: f04f 0400 mov.w r4, #0 + 80043bc: f240 11ff movw r1, #511 ; 0x1ff + 80043c0: f04f 0200 mov.w r2, #0 + 80043c4: ea03 0501 and.w r5, r3, r1 + 80043c8: ea04 0602 and.w r6, r4, r2 + 80043cc: 4629 mov r1, r5 + 80043ce: 4632 mov r2, r6 + 80043d0: f04f 0300 mov.w r3, #0 + 80043d4: f04f 0400 mov.w r4, #0 + 80043d8: 0154 lsls r4, r2, #5 + 80043da: ea44 64d1 orr.w r4, r4, r1, lsr #27 + 80043de: 014b lsls r3, r1, #5 + 80043e0: 4619 mov r1, r3 + 80043e2: 4622 mov r2, r4 + 80043e4: 1b49 subs r1, r1, r5 + 80043e6: eb62 0206 sbc.w r2, r2, r6 + 80043ea: f04f 0300 mov.w r3, #0 + 80043ee: f04f 0400 mov.w r4, #0 + 80043f2: 0194 lsls r4, r2, #6 + 80043f4: ea44 6491 orr.w r4, r4, r1, lsr #26 + 80043f8: 018b lsls r3, r1, #6 + 80043fa: 1a5b subs r3, r3, r1 + 80043fc: eb64 0402 sbc.w r4, r4, r2 + 8004400: f04f 0100 mov.w r1, #0 + 8004404: f04f 0200 mov.w r2, #0 + 8004408: 00e2 lsls r2, r4, #3 + 800440a: ea42 7253 orr.w r2, r2, r3, lsr #29 + 800440e: 00d9 lsls r1, r3, #3 + 8004410: 460b mov r3, r1 + 8004412: 4614 mov r4, r2 + 8004414: 195b adds r3, r3, r5 + 8004416: eb44 0406 adc.w r4, r4, r6 + 800441a: f04f 0100 mov.w r1, #0 + 800441e: f04f 0200 mov.w r2, #0 + 8004422: 0262 lsls r2, r4, #9 + 8004424: ea42 52d3 orr.w r2, r2, r3, lsr #23 + 8004428: 0259 lsls r1, r3, #9 + 800442a: 460b mov r3, r1 + 800442c: 4614 mov r4, r2 + 800442e: 4618 mov r0, r3 + 8004430: 4621 mov r1, r4 + 8004432: 687b ldr r3, [r7, #4] + 8004434: f04f 0400 mov.w r4, #0 + 8004438: 461a mov r2, r3 + 800443a: 4623 mov r3, r4 + 800443c: f7fc fac6 bl 80009cc <__aeabi_uldivmod> + 8004440: 4603 mov r3, r0 + 8004442: 460c mov r4, r1 + 8004444: 60fb str r3, [r7, #12] + 8004446: e049 b.n 80044dc } else { /* HSI used as PLL clock source */ pllvco = (uint32_t) ((((uint64_t) HSI_VALUE * ((uint64_t) ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos)))) / (uint64_t)pllm); - 8003528: 4b2f ldr r3, [pc, #188] ; (80035e8 ) - 800352a: 685b ldr r3, [r3, #4] - 800352c: 099b lsrs r3, r3, #6 - 800352e: f04f 0400 mov.w r4, #0 - 8003532: f240 11ff movw r1, #511 ; 0x1ff - 8003536: f04f 0200 mov.w r2, #0 - 800353a: ea03 0501 and.w r5, r3, r1 - 800353e: ea04 0602 and.w r6, r4, r2 - 8003542: 4629 mov r1, r5 - 8003544: 4632 mov r2, r6 - 8003546: f04f 0300 mov.w r3, #0 - 800354a: f04f 0400 mov.w r4, #0 - 800354e: 0154 lsls r4, r2, #5 - 8003550: ea44 64d1 orr.w r4, r4, r1, lsr #27 - 8003554: 014b lsls r3, r1, #5 - 8003556: 4619 mov r1, r3 - 8003558: 4622 mov r2, r4 - 800355a: 1b49 subs r1, r1, r5 - 800355c: eb62 0206 sbc.w r2, r2, r6 - 8003560: f04f 0300 mov.w r3, #0 - 8003564: f04f 0400 mov.w r4, #0 - 8003568: 0194 lsls r4, r2, #6 - 800356a: ea44 6491 orr.w r4, r4, r1, lsr #26 - 800356e: 018b lsls r3, r1, #6 - 8003570: 1a5b subs r3, r3, r1 - 8003572: eb64 0402 sbc.w r4, r4, r2 - 8003576: f04f 0100 mov.w r1, #0 - 800357a: f04f 0200 mov.w r2, #0 - 800357e: 00e2 lsls r2, r4, #3 - 8003580: ea42 7253 orr.w r2, r2, r3, lsr #29 - 8003584: 00d9 lsls r1, r3, #3 - 8003586: 460b mov r3, r1 - 8003588: 4614 mov r4, r2 - 800358a: 195b adds r3, r3, r5 - 800358c: eb44 0406 adc.w r4, r4, r6 - 8003590: f04f 0100 mov.w r1, #0 - 8003594: f04f 0200 mov.w r2, #0 - 8003598: 02a2 lsls r2, r4, #10 - 800359a: ea42 5293 orr.w r2, r2, r3, lsr #22 - 800359e: 0299 lsls r1, r3, #10 - 80035a0: 460b mov r3, r1 - 80035a2: 4614 mov r4, r2 - 80035a4: 4618 mov r0, r3 - 80035a6: 4621 mov r1, r4 - 80035a8: 687b ldr r3, [r7, #4] - 80035aa: f04f 0400 mov.w r4, #0 - 80035ae: 461a mov r2, r3 - 80035b0: 4623 mov r3, r4 - 80035b2: f7fc fe1b bl 80001ec <__aeabi_uldivmod> - 80035b6: 4603 mov r3, r0 - 80035b8: 460c mov r4, r1 - 80035ba: 60fb str r3, [r7, #12] + 8004448: 4b2f ldr r3, [pc, #188] ; (8004508 ) + 800444a: 685b ldr r3, [r3, #4] + 800444c: 099b lsrs r3, r3, #6 + 800444e: f04f 0400 mov.w r4, #0 + 8004452: f240 11ff movw r1, #511 ; 0x1ff + 8004456: f04f 0200 mov.w r2, #0 + 800445a: ea03 0501 and.w r5, r3, r1 + 800445e: ea04 0602 and.w r6, r4, r2 + 8004462: 4629 mov r1, r5 + 8004464: 4632 mov r2, r6 + 8004466: f04f 0300 mov.w r3, #0 + 800446a: f04f 0400 mov.w r4, #0 + 800446e: 0154 lsls r4, r2, #5 + 8004470: ea44 64d1 orr.w r4, r4, r1, lsr #27 + 8004474: 014b lsls r3, r1, #5 + 8004476: 4619 mov r1, r3 + 8004478: 4622 mov r2, r4 + 800447a: 1b49 subs r1, r1, r5 + 800447c: eb62 0206 sbc.w r2, r2, r6 + 8004480: f04f 0300 mov.w r3, #0 + 8004484: f04f 0400 mov.w r4, #0 + 8004488: 0194 lsls r4, r2, #6 + 800448a: ea44 6491 orr.w r4, r4, r1, lsr #26 + 800448e: 018b lsls r3, r1, #6 + 8004490: 1a5b subs r3, r3, r1 + 8004492: eb64 0402 sbc.w r4, r4, r2 + 8004496: f04f 0100 mov.w r1, #0 + 800449a: f04f 0200 mov.w r2, #0 + 800449e: 00e2 lsls r2, r4, #3 + 80044a0: ea42 7253 orr.w r2, r2, r3, lsr #29 + 80044a4: 00d9 lsls r1, r3, #3 + 80044a6: 460b mov r3, r1 + 80044a8: 4614 mov r4, r2 + 80044aa: 195b adds r3, r3, r5 + 80044ac: eb44 0406 adc.w r4, r4, r6 + 80044b0: f04f 0100 mov.w r1, #0 + 80044b4: f04f 0200 mov.w r2, #0 + 80044b8: 02a2 lsls r2, r4, #10 + 80044ba: ea42 5293 orr.w r2, r2, r3, lsr #22 + 80044be: 0299 lsls r1, r3, #10 + 80044c0: 460b mov r3, r1 + 80044c2: 4614 mov r4, r2 + 80044c4: 4618 mov r0, r3 + 80044c6: 4621 mov r1, r4 + 80044c8: 687b ldr r3, [r7, #4] + 80044ca: f04f 0400 mov.w r4, #0 + 80044ce: 461a mov r2, r3 + 80044d0: 4623 mov r3, r4 + 80044d2: f7fc fa7b bl 80009cc <__aeabi_uldivmod> + 80044d6: 4603 mov r3, r0 + 80044d8: 460c mov r4, r1 + 80044da: 60fb str r3, [r7, #12] } pllp = ((((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >> RCC_PLLCFGR_PLLP_Pos) + 1U) *2U); - 80035bc: 4b0a ldr r3, [pc, #40] ; (80035e8 ) - 80035be: 685b ldr r3, [r3, #4] - 80035c0: 0c1b lsrs r3, r3, #16 - 80035c2: f003 0303 and.w r3, r3, #3 - 80035c6: 3301 adds r3, #1 - 80035c8: 005b lsls r3, r3, #1 - 80035ca: 603b str r3, [r7, #0] + 80044dc: 4b0a ldr r3, [pc, #40] ; (8004508 ) + 80044de: 685b ldr r3, [r3, #4] + 80044e0: 0c1b lsrs r3, r3, #16 + 80044e2: f003 0303 and.w r3, r3, #3 + 80044e6: 3301 adds r3, #1 + 80044e8: 005b lsls r3, r3, #1 + 80044ea: 603b str r3, [r7, #0] sysclockfreq = pllvco/pllp; - 80035cc: 68fa ldr r2, [r7, #12] - 80035ce: 683b ldr r3, [r7, #0] - 80035d0: fbb2 f3f3 udiv r3, r2, r3 - 80035d4: 60bb str r3, [r7, #8] + 80044ec: 68fa ldr r2, [r7, #12] + 80044ee: 683b ldr r3, [r7, #0] + 80044f0: fbb2 f3f3 udiv r3, r2, r3 + 80044f4: 60bb str r3, [r7, #8] break; - 80035d6: e002 b.n 80035de + 80044f6: e002 b.n 80044fe } default: { sysclockfreq = HSI_VALUE; - 80035d8: 4b04 ldr r3, [pc, #16] ; (80035ec ) - 80035da: 60bb str r3, [r7, #8] + 80044f8: 4b04 ldr r3, [pc, #16] ; (800450c ) + 80044fa: 60bb str r3, [r7, #8] break; - 80035dc: bf00 nop + 80044fc: bf00 nop } } return sysclockfreq; - 80035de: 68bb ldr r3, [r7, #8] + 80044fe: 68bb ldr r3, [r7, #8] } - 80035e0: 4618 mov r0, r3 - 80035e2: 3714 adds r7, #20 - 80035e4: 46bd mov sp, r7 - 80035e6: bdf0 pop {r4, r5, r6, r7, pc} - 80035e8: 40023800 .word 0x40023800 - 80035ec: 00f42400 .word 0x00f42400 - 80035f0: 007a1200 .word 0x007a1200 + 8004500: 4618 mov r0, r3 + 8004502: 3714 adds r7, #20 + 8004504: 46bd mov sp, r7 + 8004506: bdf0 pop {r4, r5, r6, r7, pc} + 8004508: 40023800 .word 0x40023800 + 800450c: 00f42400 .word 0x00f42400 + 8004510: 007a1200 .word 0x007a1200 -080035f4 : +08004514 : * @param hspi pointer to a SPI_HandleTypeDef structure that contains * the configuration information for SPI module. * @retval HAL status */ HAL_StatusTypeDef HAL_SPI_Init(SPI_HandleTypeDef *hspi) { - 80035f4: b580 push {r7, lr} - 80035f6: b082 sub sp, #8 - 80035f8: af00 add r7, sp, #0 - 80035fa: 6078 str r0, [r7, #4] + 8004514: b580 push {r7, lr} + 8004516: b082 sub sp, #8 + 8004518: af00 add r7, sp, #0 + 800451a: 6078 str r0, [r7, #4] /* Check the SPI handle allocation */ if (hspi == NULL) - 80035fc: 687b ldr r3, [r7, #4] - 80035fe: 2b00 cmp r3, #0 - 8003600: d101 bne.n 8003606 + 800451c: 687b ldr r3, [r7, #4] + 800451e: 2b00 cmp r3, #0 + 8004520: d101 bne.n 8004526 { return HAL_ERROR; - 8003602: 2301 movs r3, #1 - 8003604: e056 b.n 80036b4 + 8004522: 2301 movs r3, #1 + 8004524: e056 b.n 80045d4 if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) { assert_param(IS_SPI_CRC_POLYNOMIAL(hspi->Init.CRCPolynomial)); } #else hspi->Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; - 8003606: 687b ldr r3, [r7, #4] - 8003608: 2200 movs r2, #0 - 800360a: 629a str r2, [r3, #40] ; 0x28 + 8004526: 687b ldr r3, [r7, #4] + 8004528: 2200 movs r2, #0 + 800452a: 629a str r2, [r3, #40] ; 0x28 #endif /* USE_SPI_CRC */ if (hspi->State == HAL_SPI_STATE_RESET) - 800360c: 687b ldr r3, [r7, #4] - 800360e: f893 3051 ldrb.w r3, [r3, #81] ; 0x51 - 8003612: b2db uxtb r3, r3 - 8003614: 2b00 cmp r3, #0 - 8003616: d106 bne.n 8003626 + 800452c: 687b ldr r3, [r7, #4] + 800452e: f893 3051 ldrb.w r3, [r3, #81] ; 0x51 + 8004532: b2db uxtb r3, r3 + 8004534: 2b00 cmp r3, #0 + 8004536: d106 bne.n 8004546 { /* Allocate lock resource and initialize it */ hspi->Lock = HAL_UNLOCKED; - 8003618: 687b ldr r3, [r7, #4] - 800361a: 2200 movs r2, #0 - 800361c: f883 2050 strb.w r2, [r3, #80] ; 0x50 + 8004538: 687b ldr r3, [r7, #4] + 800453a: 2200 movs r2, #0 + 800453c: f883 2050 strb.w r2, [r3, #80] ; 0x50 /* Init the low level hardware : GPIO, CLOCK, NVIC... */ hspi->MspInitCallback(hspi); #else /* Init the low level hardware : GPIO, CLOCK, NVIC... */ HAL_SPI_MspInit(hspi); - 8003620: 6878 ldr r0, [r7, #4] - 8003622: f7fe fadb bl 8001bdc + 8004540: 6878 ldr r0, [r7, #4] + 8004542: f7fe fadb bl 8002afc #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ } hspi->State = HAL_SPI_STATE_BUSY; - 8003626: 687b ldr r3, [r7, #4] - 8003628: 2202 movs r2, #2 - 800362a: f883 2051 strb.w r2, [r3, #81] ; 0x51 + 8004546: 687b ldr r3, [r7, #4] + 8004548: 2202 movs r2, #2 + 800454a: f883 2051 strb.w r2, [r3, #81] ; 0x51 /* Disable the selected SPI peripheral */ __HAL_SPI_DISABLE(hspi); - 800362e: 687b ldr r3, [r7, #4] - 8003630: 681b ldr r3, [r3, #0] - 8003632: 681a ldr r2, [r3, #0] - 8003634: 687b ldr r3, [r7, #4] - 8003636: 681b ldr r3, [r3, #0] - 8003638: f022 0240 bic.w r2, r2, #64 ; 0x40 - 800363c: 601a str r2, [r3, #0] + 800454e: 687b ldr r3, [r7, #4] + 8004550: 681b ldr r3, [r3, #0] + 8004552: 681a ldr r2, [r3, #0] + 8004554: 687b ldr r3, [r7, #4] + 8004556: 681b ldr r3, [r3, #0] + 8004558: f022 0240 bic.w r2, r2, #64 ; 0x40 + 800455c: 601a str r2, [r3, #0] /*----------------------- SPIx CR1 & CR2 Configuration ---------------------*/ /* Configure : SPI Mode, Communication Mode, Data size, Clock polarity and phase, NSS management, Communication speed, First bit and CRC calculation state */ WRITE_REG(hspi->Instance->CR1, (hspi->Init.Mode | hspi->Init.Direction | hspi->Init.DataSize | - 800363e: 687b ldr r3, [r7, #4] - 8003640: 685a ldr r2, [r3, #4] - 8003642: 687b ldr r3, [r7, #4] - 8003644: 689b ldr r3, [r3, #8] - 8003646: 431a orrs r2, r3 - 8003648: 687b ldr r3, [r7, #4] - 800364a: 68db ldr r3, [r3, #12] - 800364c: 431a orrs r2, r3 - 800364e: 687b ldr r3, [r7, #4] - 8003650: 691b ldr r3, [r3, #16] - 8003652: 431a orrs r2, r3 - 8003654: 687b ldr r3, [r7, #4] - 8003656: 695b ldr r3, [r3, #20] - 8003658: 431a orrs r2, r3 - 800365a: 687b ldr r3, [r7, #4] - 800365c: 699b ldr r3, [r3, #24] - 800365e: f403 7300 and.w r3, r3, #512 ; 0x200 - 8003662: 431a orrs r2, r3 - 8003664: 687b ldr r3, [r7, #4] - 8003666: 69db ldr r3, [r3, #28] - 8003668: 431a orrs r2, r3 - 800366a: 687b ldr r3, [r7, #4] - 800366c: 6a1b ldr r3, [r3, #32] - 800366e: ea42 0103 orr.w r1, r2, r3 - 8003672: 687b ldr r3, [r7, #4] - 8003674: 6a9a ldr r2, [r3, #40] ; 0x28 - 8003676: 687b ldr r3, [r7, #4] - 8003678: 681b ldr r3, [r3, #0] - 800367a: 430a orrs r2, r1 - 800367c: 601a str r2, [r3, #0] + 800455e: 687b ldr r3, [r7, #4] + 8004560: 685a ldr r2, [r3, #4] + 8004562: 687b ldr r3, [r7, #4] + 8004564: 689b ldr r3, [r3, #8] + 8004566: 431a orrs r2, r3 + 8004568: 687b ldr r3, [r7, #4] + 800456a: 68db ldr r3, [r3, #12] + 800456c: 431a orrs r2, r3 + 800456e: 687b ldr r3, [r7, #4] + 8004570: 691b ldr r3, [r3, #16] + 8004572: 431a orrs r2, r3 + 8004574: 687b ldr r3, [r7, #4] + 8004576: 695b ldr r3, [r3, #20] + 8004578: 431a orrs r2, r3 + 800457a: 687b ldr r3, [r7, #4] + 800457c: 699b ldr r3, [r3, #24] + 800457e: f403 7300 and.w r3, r3, #512 ; 0x200 + 8004582: 431a orrs r2, r3 + 8004584: 687b ldr r3, [r7, #4] + 8004586: 69db ldr r3, [r3, #28] + 8004588: 431a orrs r2, r3 + 800458a: 687b ldr r3, [r7, #4] + 800458c: 6a1b ldr r3, [r3, #32] + 800458e: ea42 0103 orr.w r1, r2, r3 + 8004592: 687b ldr r3, [r7, #4] + 8004594: 6a9a ldr r2, [r3, #40] ; 0x28 + 8004596: 687b ldr r3, [r7, #4] + 8004598: 681b ldr r3, [r3, #0] + 800459a: 430a orrs r2, r1 + 800459c: 601a str r2, [r3, #0] hspi->Init.CLKPolarity | hspi->Init.CLKPhase | (hspi->Init.NSS & SPI_CR1_SSM) | hspi->Init.BaudRatePrescaler | hspi->Init.FirstBit | hspi->Init.CRCCalculation)); /* Configure : NSS management, TI Mode */ WRITE_REG(hspi->Instance->CR2, (((hspi->Init.NSS >> 16U) & SPI_CR2_SSOE) | hspi->Init.TIMode)); - 800367e: 687b ldr r3, [r7, #4] - 8003680: 699b ldr r3, [r3, #24] - 8003682: 0c1b lsrs r3, r3, #16 - 8003684: f003 0104 and.w r1, r3, #4 - 8003688: 687b ldr r3, [r7, #4] - 800368a: 6a5a ldr r2, [r3, #36] ; 0x24 - 800368c: 687b ldr r3, [r7, #4] - 800368e: 681b ldr r3, [r3, #0] - 8003690: 430a orrs r2, r1 - 8003692: 605a str r2, [r3, #4] + 800459e: 687b ldr r3, [r7, #4] + 80045a0: 699b ldr r3, [r3, #24] + 80045a2: 0c1b lsrs r3, r3, #16 + 80045a4: f003 0104 and.w r1, r3, #4 + 80045a8: 687b ldr r3, [r7, #4] + 80045aa: 6a5a ldr r2, [r3, #36] ; 0x24 + 80045ac: 687b ldr r3, [r7, #4] + 80045ae: 681b ldr r3, [r3, #0] + 80045b0: 430a orrs r2, r1 + 80045b2: 605a str r2, [r3, #4] } #endif /* USE_SPI_CRC */ #if defined(SPI_I2SCFGR_I2SMOD) /* Activate the SPI mode (Make sure that I2SMOD bit in I2SCFGR register is reset) */ CLEAR_BIT(hspi->Instance->I2SCFGR, SPI_I2SCFGR_I2SMOD); - 8003694: 687b ldr r3, [r7, #4] - 8003696: 681b ldr r3, [r3, #0] - 8003698: 69da ldr r2, [r3, #28] - 800369a: 687b ldr r3, [r7, #4] - 800369c: 681b ldr r3, [r3, #0] - 800369e: f422 6200 bic.w r2, r2, #2048 ; 0x800 - 80036a2: 61da str r2, [r3, #28] + 80045b4: 687b ldr r3, [r7, #4] + 80045b6: 681b ldr r3, [r3, #0] + 80045b8: 69da ldr r2, [r3, #28] + 80045ba: 687b ldr r3, [r7, #4] + 80045bc: 681b ldr r3, [r3, #0] + 80045be: f422 6200 bic.w r2, r2, #2048 ; 0x800 + 80045c2: 61da str r2, [r3, #28] #endif /* SPI_I2SCFGR_I2SMOD */ hspi->ErrorCode = HAL_SPI_ERROR_NONE; - 80036a4: 687b ldr r3, [r7, #4] - 80036a6: 2200 movs r2, #0 - 80036a8: 655a str r2, [r3, #84] ; 0x54 + 80045c4: 687b ldr r3, [r7, #4] + 80045c6: 2200 movs r2, #0 + 80045c8: 655a str r2, [r3, #84] ; 0x54 hspi->State = HAL_SPI_STATE_READY; - 80036aa: 687b ldr r3, [r7, #4] - 80036ac: 2201 movs r2, #1 - 80036ae: f883 2051 strb.w r2, [r3, #81] ; 0x51 + 80045ca: 687b ldr r3, [r7, #4] + 80045cc: 2201 movs r2, #1 + 80045ce: f883 2051 strb.w r2, [r3, #81] ; 0x51 return HAL_OK; - 80036b2: 2300 movs r3, #0 + 80045d2: 2300 movs r3, #0 } - 80036b4: 4618 mov r0, r3 - 80036b6: 3708 adds r7, #8 - 80036b8: 46bd mov sp, r7 - 80036ba: bd80 pop {r7, pc} + 80045d4: 4618 mov r0, r3 + 80045d6: 3708 adds r7, #8 + 80045d8: 46bd mov sp, r7 + 80045da: bd80 pop {r7, pc} -080036bc : +080045dc : * @param pData pointer to data buffer * @param Size amount of data to be sent * @retval HAL status */ HAL_StatusTypeDef HAL_SPI_Transmit_IT(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size) { - 80036bc: b480 push {r7} - 80036be: b087 sub sp, #28 - 80036c0: af00 add r7, sp, #0 - 80036c2: 60f8 str r0, [r7, #12] - 80036c4: 60b9 str r1, [r7, #8] - 80036c6: 4613 mov r3, r2 - 80036c8: 80fb strh r3, [r7, #6] + 80045dc: b480 push {r7} + 80045de: b087 sub sp, #28 + 80045e0: af00 add r7, sp, #0 + 80045e2: 60f8 str r0, [r7, #12] + 80045e4: 60b9 str r1, [r7, #8] + 80045e6: 4613 mov r3, r2 + 80045e8: 80fb strh r3, [r7, #6] HAL_StatusTypeDef errorcode = HAL_OK; - 80036ca: 2300 movs r3, #0 - 80036cc: 75fb strb r3, [r7, #23] + 80045ea: 2300 movs r3, #0 + 80045ec: 75fb strb r3, [r7, #23] /* Check Direction parameter */ assert_param(IS_SPI_DIRECTION_2LINES_OR_1LINE(hspi->Init.Direction)); /* Process Locked */ __HAL_LOCK(hspi); - 80036ce: 68fb ldr r3, [r7, #12] - 80036d0: f893 3050 ldrb.w r3, [r3, #80] ; 0x50 - 80036d4: 2b01 cmp r3, #1 - 80036d6: d101 bne.n 80036dc - 80036d8: 2302 movs r3, #2 - 80036da: e067 b.n 80037ac - 80036dc: 68fb ldr r3, [r7, #12] - 80036de: 2201 movs r2, #1 - 80036e0: f883 2050 strb.w r2, [r3, #80] ; 0x50 + 80045ee: 68fb ldr r3, [r7, #12] + 80045f0: f893 3050 ldrb.w r3, [r3, #80] ; 0x50 + 80045f4: 2b01 cmp r3, #1 + 80045f6: d101 bne.n 80045fc + 80045f8: 2302 movs r3, #2 + 80045fa: e067 b.n 80046cc + 80045fc: 68fb ldr r3, [r7, #12] + 80045fe: 2201 movs r2, #1 + 8004600: f883 2050 strb.w r2, [r3, #80] ; 0x50 if ((pData == NULL) || (Size == 0U)) - 80036e4: 68bb ldr r3, [r7, #8] - 80036e6: 2b00 cmp r3, #0 - 80036e8: d002 beq.n 80036f0 - 80036ea: 88fb ldrh r3, [r7, #6] - 80036ec: 2b00 cmp r3, #0 - 80036ee: d102 bne.n 80036f6 + 8004604: 68bb ldr r3, [r7, #8] + 8004606: 2b00 cmp r3, #0 + 8004608: d002 beq.n 8004610 + 800460a: 88fb ldrh r3, [r7, #6] + 800460c: 2b00 cmp r3, #0 + 800460e: d102 bne.n 8004616 { errorcode = HAL_ERROR; - 80036f0: 2301 movs r3, #1 - 80036f2: 75fb strb r3, [r7, #23] + 8004610: 2301 movs r3, #1 + 8004612: 75fb strb r3, [r7, #23] goto error; - 80036f4: e055 b.n 80037a2 + 8004614: e055 b.n 80046c2 } if (hspi->State != HAL_SPI_STATE_READY) - 80036f6: 68fb ldr r3, [r7, #12] - 80036f8: f893 3051 ldrb.w r3, [r3, #81] ; 0x51 - 80036fc: b2db uxtb r3, r3 - 80036fe: 2b01 cmp r3, #1 - 8003700: d002 beq.n 8003708 + 8004616: 68fb ldr r3, [r7, #12] + 8004618: f893 3051 ldrb.w r3, [r3, #81] ; 0x51 + 800461c: b2db uxtb r3, r3 + 800461e: 2b01 cmp r3, #1 + 8004620: d002 beq.n 8004628 { errorcode = HAL_BUSY; - 8003702: 2302 movs r3, #2 - 8003704: 75fb strb r3, [r7, #23] + 8004622: 2302 movs r3, #2 + 8004624: 75fb strb r3, [r7, #23] goto error; - 8003706: e04c b.n 80037a2 + 8004626: e04c b.n 80046c2 } /* Set the transaction information */ hspi->State = HAL_SPI_STATE_BUSY_TX; - 8003708: 68fb ldr r3, [r7, #12] - 800370a: 2203 movs r2, #3 - 800370c: f883 2051 strb.w r2, [r3, #81] ; 0x51 + 8004628: 68fb ldr r3, [r7, #12] + 800462a: 2203 movs r2, #3 + 800462c: f883 2051 strb.w r2, [r3, #81] ; 0x51 hspi->ErrorCode = HAL_SPI_ERROR_NONE; - 8003710: 68fb ldr r3, [r7, #12] - 8003712: 2200 movs r2, #0 - 8003714: 655a str r2, [r3, #84] ; 0x54 + 8004630: 68fb ldr r3, [r7, #12] + 8004632: 2200 movs r2, #0 + 8004634: 655a str r2, [r3, #84] ; 0x54 hspi->pTxBuffPtr = (uint8_t *)pData; - 8003716: 68fb ldr r3, [r7, #12] - 8003718: 68ba ldr r2, [r7, #8] - 800371a: 631a str r2, [r3, #48] ; 0x30 + 8004636: 68fb ldr r3, [r7, #12] + 8004638: 68ba ldr r2, [r7, #8] + 800463a: 631a str r2, [r3, #48] ; 0x30 hspi->TxXferSize = Size; - 800371c: 68fb ldr r3, [r7, #12] - 800371e: 88fa ldrh r2, [r7, #6] - 8003720: 869a strh r2, [r3, #52] ; 0x34 + 800463c: 68fb ldr r3, [r7, #12] + 800463e: 88fa ldrh r2, [r7, #6] + 8004640: 869a strh r2, [r3, #52] ; 0x34 hspi->TxXferCount = Size; - 8003722: 68fb ldr r3, [r7, #12] - 8003724: 88fa ldrh r2, [r7, #6] - 8003726: 86da strh r2, [r3, #54] ; 0x36 + 8004642: 68fb ldr r3, [r7, #12] + 8004644: 88fa ldrh r2, [r7, #6] + 8004646: 86da strh r2, [r3, #54] ; 0x36 /* Init field not used in handle to zero */ hspi->pRxBuffPtr = (uint8_t *)NULL; - 8003728: 68fb ldr r3, [r7, #12] - 800372a: 2200 movs r2, #0 - 800372c: 639a str r2, [r3, #56] ; 0x38 + 8004648: 68fb ldr r3, [r7, #12] + 800464a: 2200 movs r2, #0 + 800464c: 639a str r2, [r3, #56] ; 0x38 hspi->RxXferSize = 0U; - 800372e: 68fb ldr r3, [r7, #12] - 8003730: 2200 movs r2, #0 - 8003732: 879a strh r2, [r3, #60] ; 0x3c + 800464e: 68fb ldr r3, [r7, #12] + 8004650: 2200 movs r2, #0 + 8004652: 879a strh r2, [r3, #60] ; 0x3c hspi->RxXferCount = 0U; - 8003734: 68fb ldr r3, [r7, #12] - 8003736: 2200 movs r2, #0 - 8003738: 87da strh r2, [r3, #62] ; 0x3e + 8004654: 68fb ldr r3, [r7, #12] + 8004656: 2200 movs r2, #0 + 8004658: 87da strh r2, [r3, #62] ; 0x3e hspi->RxISR = NULL; - 800373a: 68fb ldr r3, [r7, #12] - 800373c: 2200 movs r2, #0 - 800373e: 641a str r2, [r3, #64] ; 0x40 + 800465a: 68fb ldr r3, [r7, #12] + 800465c: 2200 movs r2, #0 + 800465e: 641a str r2, [r3, #64] ; 0x40 /* Set the function for IT treatment */ if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) - 8003740: 68fb ldr r3, [r7, #12] - 8003742: 68db ldr r3, [r3, #12] - 8003744: 2b00 cmp r3, #0 - 8003746: d003 beq.n 8003750 + 8004660: 68fb ldr r3, [r7, #12] + 8004662: 68db ldr r3, [r3, #12] + 8004664: 2b00 cmp r3, #0 + 8004666: d003 beq.n 8004670 { hspi->TxISR = SPI_TxISR_16BIT; - 8003748: 68fb ldr r3, [r7, #12] - 800374a: 4a1b ldr r2, [pc, #108] ; (80037b8 ) - 800374c: 645a str r2, [r3, #68] ; 0x44 - 800374e: e002 b.n 8003756 + 8004668: 68fb ldr r3, [r7, #12] + 800466a: 4a1b ldr r2, [pc, #108] ; (80046d8 ) + 800466c: 645a str r2, [r3, #68] ; 0x44 + 800466e: e002 b.n 8004676 } else { hspi->TxISR = SPI_TxISR_8BIT; - 8003750: 68fb ldr r3, [r7, #12] - 8003752: 4a1a ldr r2, [pc, #104] ; (80037bc ) - 8003754: 645a str r2, [r3, #68] ; 0x44 + 8004670: 68fb ldr r3, [r7, #12] + 8004672: 4a1a ldr r2, [pc, #104] ; (80046dc ) + 8004674: 645a str r2, [r3, #68] ; 0x44 } /* Configure communication direction : 1Line */ if (hspi->Init.Direction == SPI_DIRECTION_1LINE) - 8003756: 68fb ldr r3, [r7, #12] - 8003758: 689b ldr r3, [r3, #8] - 800375a: f5b3 4f00 cmp.w r3, #32768 ; 0x8000 - 800375e: d107 bne.n 8003770 + 8004676: 68fb ldr r3, [r7, #12] + 8004678: 689b ldr r3, [r3, #8] + 800467a: f5b3 4f00 cmp.w r3, #32768 ; 0x8000 + 800467e: d107 bne.n 8004690 { SPI_1LINE_TX(hspi); - 8003760: 68fb ldr r3, [r7, #12] - 8003762: 681b ldr r3, [r3, #0] - 8003764: 681a ldr r2, [r3, #0] - 8003766: 68fb ldr r3, [r7, #12] - 8003768: 681b ldr r3, [r3, #0] - 800376a: f442 4280 orr.w r2, r2, #16384 ; 0x4000 - 800376e: 601a str r2, [r3, #0] + 8004680: 68fb ldr r3, [r7, #12] + 8004682: 681b ldr r3, [r3, #0] + 8004684: 681a ldr r2, [r3, #0] + 8004686: 68fb ldr r3, [r7, #12] + 8004688: 681b ldr r3, [r3, #0] + 800468a: f442 4280 orr.w r2, r2, #16384 ; 0x4000 + 800468e: 601a str r2, [r3, #0] SPI_RESET_CRC(hspi); } #endif /* USE_SPI_CRC */ /* Enable TXE and ERR interrupt */ __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_TXE | SPI_IT_ERR)); - 8003770: 68fb ldr r3, [r7, #12] - 8003772: 681b ldr r3, [r3, #0] - 8003774: 685a ldr r2, [r3, #4] - 8003776: 68fb ldr r3, [r7, #12] - 8003778: 681b ldr r3, [r3, #0] - 800377a: f042 02a0 orr.w r2, r2, #160 ; 0xa0 - 800377e: 605a str r2, [r3, #4] + 8004690: 68fb ldr r3, [r7, #12] + 8004692: 681b ldr r3, [r3, #0] + 8004694: 685a ldr r2, [r3, #4] + 8004696: 68fb ldr r3, [r7, #12] + 8004698: 681b ldr r3, [r3, #0] + 800469a: f042 02a0 orr.w r2, r2, #160 ; 0xa0 + 800469e: 605a str r2, [r3, #4] /* Check if the SPI is already enabled */ if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) - 8003780: 68fb ldr r3, [r7, #12] - 8003782: 681b ldr r3, [r3, #0] - 8003784: 681b ldr r3, [r3, #0] - 8003786: f003 0340 and.w r3, r3, #64 ; 0x40 - 800378a: 2b40 cmp r3, #64 ; 0x40 - 800378c: d008 beq.n 80037a0 + 80046a0: 68fb ldr r3, [r7, #12] + 80046a2: 681b ldr r3, [r3, #0] + 80046a4: 681b ldr r3, [r3, #0] + 80046a6: f003 0340 and.w r3, r3, #64 ; 0x40 + 80046aa: 2b40 cmp r3, #64 ; 0x40 + 80046ac: d008 beq.n 80046c0 { /* Enable SPI peripheral */ __HAL_SPI_ENABLE(hspi); - 800378e: 68fb ldr r3, [r7, #12] - 8003790: 681b ldr r3, [r3, #0] - 8003792: 681a ldr r2, [r3, #0] - 8003794: 68fb ldr r3, [r7, #12] - 8003796: 681b ldr r3, [r3, #0] - 8003798: f042 0240 orr.w r2, r2, #64 ; 0x40 - 800379c: 601a str r2, [r3, #0] - 800379e: e000 b.n 80037a2 + 80046ae: 68fb ldr r3, [r7, #12] + 80046b0: 681b ldr r3, [r3, #0] + 80046b2: 681a ldr r2, [r3, #0] + 80046b4: 68fb ldr r3, [r7, #12] + 80046b6: 681b ldr r3, [r3, #0] + 80046b8: f042 0240 orr.w r2, r2, #64 ; 0x40 + 80046bc: 601a str r2, [r3, #0] + 80046be: e000 b.n 80046c2 } error : - 80037a0: bf00 nop + 80046c0: bf00 nop __HAL_UNLOCK(hspi); - 80037a2: 68fb ldr r3, [r7, #12] - 80037a4: 2200 movs r2, #0 - 80037a6: f883 2050 strb.w r2, [r3, #80] ; 0x50 + 80046c2: 68fb ldr r3, [r7, #12] + 80046c4: 2200 movs r2, #0 + 80046c6: f883 2050 strb.w r2, [r3, #80] ; 0x50 return errorcode; - 80037aa: 7dfb ldrb r3, [r7, #23] + 80046ca: 7dfb ldrb r3, [r7, #23] } - 80037ac: 4618 mov r0, r3 - 80037ae: 371c adds r7, #28 - 80037b0: 46bd mov sp, r7 - 80037b2: f85d 7b04 ldr.w r7, [sp], #4 - 80037b6: 4770 bx lr - 80037b8: 08003a57 .word 0x08003a57 - 80037bc: 08003a11 .word 0x08003a11 + 80046cc: 4618 mov r0, r3 + 80046ce: 371c adds r7, #28 + 80046d0: 46bd mov sp, r7 + 80046d2: f85d 7b04 ldr.w r7, [sp], #4 + 80046d6: 4770 bx lr + 80046d8: 08004977 .word 0x08004977 + 80046dc: 08004931 .word 0x08004931 -080037c0 : +080046e0 : * @param hspi pointer to a SPI_HandleTypeDef structure that contains * the configuration information for the specified SPI module. * @retval None */ void HAL_SPI_IRQHandler(SPI_HandleTypeDef *hspi) { - 80037c0: b580 push {r7, lr} - 80037c2: b088 sub sp, #32 - 80037c4: af00 add r7, sp, #0 - 80037c6: 6078 str r0, [r7, #4] + 80046e0: b580 push {r7, lr} + 80046e2: b088 sub sp, #32 + 80046e4: af00 add r7, sp, #0 + 80046e6: 6078 str r0, [r7, #4] uint32_t itsource = hspi->Instance->CR2; - 80037c8: 687b ldr r3, [r7, #4] - 80037ca: 681b ldr r3, [r3, #0] - 80037cc: 685b ldr r3, [r3, #4] - 80037ce: 61fb str r3, [r7, #28] + 80046e8: 687b ldr r3, [r7, #4] + 80046ea: 681b ldr r3, [r3, #0] + 80046ec: 685b ldr r3, [r3, #4] + 80046ee: 61fb str r3, [r7, #28] uint32_t itflag = hspi->Instance->SR; - 80037d0: 687b ldr r3, [r7, #4] - 80037d2: 681b ldr r3, [r3, #0] - 80037d4: 689b ldr r3, [r3, #8] - 80037d6: 61bb str r3, [r7, #24] + 80046f0: 687b ldr r3, [r7, #4] + 80046f2: 681b ldr r3, [r3, #0] + 80046f4: 689b ldr r3, [r3, #8] + 80046f6: 61bb str r3, [r7, #24] /* SPI in mode Receiver ----------------------------------------------------*/ if ((SPI_CHECK_FLAG(itflag, SPI_FLAG_OVR) == RESET) && - 80037d8: 69bb ldr r3, [r7, #24] - 80037da: 099b lsrs r3, r3, #6 - 80037dc: f003 0301 and.w r3, r3, #1 - 80037e0: 2b00 cmp r3, #0 - 80037e2: d10f bne.n 8003804 + 80046f8: 69bb ldr r3, [r7, #24] + 80046fa: 099b lsrs r3, r3, #6 + 80046fc: f003 0301 and.w r3, r3, #1 + 8004700: 2b00 cmp r3, #0 + 8004702: d10f bne.n 8004724 (SPI_CHECK_FLAG(itflag, SPI_FLAG_RXNE) != RESET) && (SPI_CHECK_IT_SOURCE(itsource, SPI_IT_RXNE) != RESET)) - 80037e4: 69bb ldr r3, [r7, #24] - 80037e6: f003 0301 and.w r3, r3, #1 + 8004704: 69bb ldr r3, [r7, #24] + 8004706: f003 0301 and.w r3, r3, #1 if ((SPI_CHECK_FLAG(itflag, SPI_FLAG_OVR) == RESET) && - 80037ea: 2b00 cmp r3, #0 - 80037ec: d00a beq.n 8003804 + 800470a: 2b00 cmp r3, #0 + 800470c: d00a beq.n 8004724 (SPI_CHECK_FLAG(itflag, SPI_FLAG_RXNE) != RESET) && (SPI_CHECK_IT_SOURCE(itsource, SPI_IT_RXNE) != RESET)) - 80037ee: 69fb ldr r3, [r7, #28] - 80037f0: 099b lsrs r3, r3, #6 - 80037f2: f003 0301 and.w r3, r3, #1 - 80037f6: 2b00 cmp r3, #0 - 80037f8: d004 beq.n 8003804 + 800470e: 69fb ldr r3, [r7, #28] + 8004710: 099b lsrs r3, r3, #6 + 8004712: f003 0301 and.w r3, r3, #1 + 8004716: 2b00 cmp r3, #0 + 8004718: d004 beq.n 8004724 { hspi->RxISR(hspi); - 80037fa: 687b ldr r3, [r7, #4] - 80037fc: 6c1b ldr r3, [r3, #64] ; 0x40 - 80037fe: 6878 ldr r0, [r7, #4] - 8003800: 4798 blx r3 + 800471a: 687b ldr r3, [r7, #4] + 800471c: 6c1b ldr r3, [r3, #64] ; 0x40 + 800471e: 6878 ldr r0, [r7, #4] + 8004720: 4798 blx r3 return; - 8003802: e0d8 b.n 80039b6 + 8004722: e0d8 b.n 80048d6 } /* SPI in mode Transmitter -------------------------------------------------*/ if ((SPI_CHECK_FLAG(itflag, SPI_FLAG_TXE) != RESET) && (SPI_CHECK_IT_SOURCE(itsource, SPI_IT_TXE) != RESET)) - 8003804: 69bb ldr r3, [r7, #24] - 8003806: 085b lsrs r3, r3, #1 - 8003808: f003 0301 and.w r3, r3, #1 - 800380c: 2b00 cmp r3, #0 - 800380e: d00a beq.n 8003826 - 8003810: 69fb ldr r3, [r7, #28] - 8003812: 09db lsrs r3, r3, #7 - 8003814: f003 0301 and.w r3, r3, #1 - 8003818: 2b00 cmp r3, #0 - 800381a: d004 beq.n 8003826 + 8004724: 69bb ldr r3, [r7, #24] + 8004726: 085b lsrs r3, r3, #1 + 8004728: f003 0301 and.w r3, r3, #1 + 800472c: 2b00 cmp r3, #0 + 800472e: d00a beq.n 8004746 + 8004730: 69fb ldr r3, [r7, #28] + 8004732: 09db lsrs r3, r3, #7 + 8004734: f003 0301 and.w r3, r3, #1 + 8004738: 2b00 cmp r3, #0 + 800473a: d004 beq.n 8004746 { hspi->TxISR(hspi); - 800381c: 687b ldr r3, [r7, #4] - 800381e: 6c5b ldr r3, [r3, #68] ; 0x44 - 8003820: 6878 ldr r0, [r7, #4] - 8003822: 4798 blx r3 + 800473c: 687b ldr r3, [r7, #4] + 800473e: 6c5b ldr r3, [r3, #68] ; 0x44 + 8004740: 6878 ldr r0, [r7, #4] + 8004742: 4798 blx r3 return; - 8003824: e0c7 b.n 80039b6 + 8004744: e0c7 b.n 80048d6 } /* SPI in Error Treatment --------------------------------------------------*/ if (((SPI_CHECK_FLAG(itflag, SPI_FLAG_MODF) != RESET) || (SPI_CHECK_FLAG(itflag, SPI_FLAG_OVR) != RESET) - 8003826: 69bb ldr r3, [r7, #24] - 8003828: 095b lsrs r3, r3, #5 - 800382a: f003 0301 and.w r3, r3, #1 - 800382e: 2b00 cmp r3, #0 - 8003830: d10c bne.n 800384c - 8003832: 69bb ldr r3, [r7, #24] - 8003834: 099b lsrs r3, r3, #6 - 8003836: f003 0301 and.w r3, r3, #1 - 800383a: 2b00 cmp r3, #0 - 800383c: d106 bne.n 800384c + 8004746: 69bb ldr r3, [r7, #24] + 8004748: 095b lsrs r3, r3, #5 + 800474a: f003 0301 and.w r3, r3, #1 + 800474e: 2b00 cmp r3, #0 + 8004750: d10c bne.n 800476c + 8004752: 69bb ldr r3, [r7, #24] + 8004754: 099b lsrs r3, r3, #6 + 8004756: f003 0301 and.w r3, r3, #1 + 800475a: 2b00 cmp r3, #0 + 800475c: d106 bne.n 800476c || (SPI_CHECK_FLAG(itflag, SPI_FLAG_FRE) != RESET)) && (SPI_CHECK_IT_SOURCE(itsource, SPI_IT_ERR) != RESET)) - 800383e: 69bb ldr r3, [r7, #24] - 8003840: 0a1b lsrs r3, r3, #8 - 8003842: f003 0301 and.w r3, r3, #1 - 8003846: 2b00 cmp r3, #0 - 8003848: f000 80b5 beq.w 80039b6 - 800384c: 69fb ldr r3, [r7, #28] - 800384e: 095b lsrs r3, r3, #5 - 8003850: f003 0301 and.w r3, r3, #1 - 8003854: 2b00 cmp r3, #0 - 8003856: f000 80ae beq.w 80039b6 + 800475e: 69bb ldr r3, [r7, #24] + 8004760: 0a1b lsrs r3, r3, #8 + 8004762: f003 0301 and.w r3, r3, #1 + 8004766: 2b00 cmp r3, #0 + 8004768: f000 80b5 beq.w 80048d6 + 800476c: 69fb ldr r3, [r7, #28] + 800476e: 095b lsrs r3, r3, #5 + 8004770: f003 0301 and.w r3, r3, #1 + 8004774: 2b00 cmp r3, #0 + 8004776: f000 80ae beq.w 80048d6 { /* SPI Overrun error interrupt occurred ----------------------------------*/ if (SPI_CHECK_FLAG(itflag, SPI_FLAG_OVR) != RESET) - 800385a: 69bb ldr r3, [r7, #24] - 800385c: 099b lsrs r3, r3, #6 - 800385e: f003 0301 and.w r3, r3, #1 - 8003862: 2b00 cmp r3, #0 - 8003864: d023 beq.n 80038ae + 800477a: 69bb ldr r3, [r7, #24] + 800477c: 099b lsrs r3, r3, #6 + 800477e: f003 0301 and.w r3, r3, #1 + 8004782: 2b00 cmp r3, #0 + 8004784: d023 beq.n 80047ce { if (hspi->State != HAL_SPI_STATE_BUSY_TX) - 8003866: 687b ldr r3, [r7, #4] - 8003868: f893 3051 ldrb.w r3, [r3, #81] ; 0x51 - 800386c: b2db uxtb r3, r3 - 800386e: 2b03 cmp r3, #3 - 8003870: d011 beq.n 8003896 + 8004786: 687b ldr r3, [r7, #4] + 8004788: f893 3051 ldrb.w r3, [r3, #81] ; 0x51 + 800478c: b2db uxtb r3, r3 + 800478e: 2b03 cmp r3, #3 + 8004790: d011 beq.n 80047b6 { SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_OVR); - 8003872: 687b ldr r3, [r7, #4] - 8003874: 6d5b ldr r3, [r3, #84] ; 0x54 - 8003876: f043 0204 orr.w r2, r3, #4 - 800387a: 687b ldr r3, [r7, #4] - 800387c: 655a str r2, [r3, #84] ; 0x54 + 8004792: 687b ldr r3, [r7, #4] + 8004794: 6d5b ldr r3, [r3, #84] ; 0x54 + 8004796: f043 0204 orr.w r2, r3, #4 + 800479a: 687b ldr r3, [r7, #4] + 800479c: 655a str r2, [r3, #84] ; 0x54 __HAL_SPI_CLEAR_OVRFLAG(hspi); - 800387e: 2300 movs r3, #0 - 8003880: 617b str r3, [r7, #20] - 8003882: 687b ldr r3, [r7, #4] - 8003884: 681b ldr r3, [r3, #0] - 8003886: 68db ldr r3, [r3, #12] - 8003888: 617b str r3, [r7, #20] - 800388a: 687b ldr r3, [r7, #4] - 800388c: 681b ldr r3, [r3, #0] - 800388e: 689b ldr r3, [r3, #8] - 8003890: 617b str r3, [r7, #20] - 8003892: 697b ldr r3, [r7, #20] - 8003894: e00b b.n 80038ae + 800479e: 2300 movs r3, #0 + 80047a0: 617b str r3, [r7, #20] + 80047a2: 687b ldr r3, [r7, #4] + 80047a4: 681b ldr r3, [r3, #0] + 80047a6: 68db ldr r3, [r3, #12] + 80047a8: 617b str r3, [r7, #20] + 80047aa: 687b ldr r3, [r7, #4] + 80047ac: 681b ldr r3, [r3, #0] + 80047ae: 689b ldr r3, [r3, #8] + 80047b0: 617b str r3, [r7, #20] + 80047b2: 697b ldr r3, [r7, #20] + 80047b4: e00b b.n 80047ce } else { __HAL_SPI_CLEAR_OVRFLAG(hspi); - 8003896: 2300 movs r3, #0 - 8003898: 613b str r3, [r7, #16] - 800389a: 687b ldr r3, [r7, #4] - 800389c: 681b ldr r3, [r3, #0] - 800389e: 68db ldr r3, [r3, #12] - 80038a0: 613b str r3, [r7, #16] - 80038a2: 687b ldr r3, [r7, #4] - 80038a4: 681b ldr r3, [r3, #0] - 80038a6: 689b ldr r3, [r3, #8] - 80038a8: 613b str r3, [r7, #16] - 80038aa: 693b ldr r3, [r7, #16] + 80047b6: 2300 movs r3, #0 + 80047b8: 613b str r3, [r7, #16] + 80047ba: 687b ldr r3, [r7, #4] + 80047bc: 681b ldr r3, [r3, #0] + 80047be: 68db ldr r3, [r3, #12] + 80047c0: 613b str r3, [r7, #16] + 80047c2: 687b ldr r3, [r7, #4] + 80047c4: 681b ldr r3, [r3, #0] + 80047c6: 689b ldr r3, [r3, #8] + 80047c8: 613b str r3, [r7, #16] + 80047ca: 693b ldr r3, [r7, #16] return; - 80038ac: e083 b.n 80039b6 + 80047cc: e083 b.n 80048d6 } } /* SPI Mode Fault error interrupt occurred -------------------------------*/ if (SPI_CHECK_FLAG(itflag, SPI_FLAG_MODF) != RESET) - 80038ae: 69bb ldr r3, [r7, #24] - 80038b0: 095b lsrs r3, r3, #5 - 80038b2: f003 0301 and.w r3, r3, #1 - 80038b6: 2b00 cmp r3, #0 - 80038b8: d014 beq.n 80038e4 + 80047ce: 69bb ldr r3, [r7, #24] + 80047d0: 095b lsrs r3, r3, #5 + 80047d2: f003 0301 and.w r3, r3, #1 + 80047d6: 2b00 cmp r3, #0 + 80047d8: d014 beq.n 8004804 { SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_MODF); - 80038ba: 687b ldr r3, [r7, #4] - 80038bc: 6d5b ldr r3, [r3, #84] ; 0x54 - 80038be: f043 0201 orr.w r2, r3, #1 - 80038c2: 687b ldr r3, [r7, #4] - 80038c4: 655a str r2, [r3, #84] ; 0x54 + 80047da: 687b ldr r3, [r7, #4] + 80047dc: 6d5b ldr r3, [r3, #84] ; 0x54 + 80047de: f043 0201 orr.w r2, r3, #1 + 80047e2: 687b ldr r3, [r7, #4] + 80047e4: 655a str r2, [r3, #84] ; 0x54 __HAL_SPI_CLEAR_MODFFLAG(hspi); - 80038c6: 2300 movs r3, #0 - 80038c8: 60fb str r3, [r7, #12] - 80038ca: 687b ldr r3, [r7, #4] - 80038cc: 681b ldr r3, [r3, #0] - 80038ce: 689b ldr r3, [r3, #8] - 80038d0: 60fb str r3, [r7, #12] - 80038d2: 687b ldr r3, [r7, #4] - 80038d4: 681b ldr r3, [r3, #0] - 80038d6: 681a ldr r2, [r3, #0] - 80038d8: 687b ldr r3, [r7, #4] - 80038da: 681b ldr r3, [r3, #0] - 80038dc: f022 0240 bic.w r2, r2, #64 ; 0x40 - 80038e0: 601a str r2, [r3, #0] - 80038e2: 68fb ldr r3, [r7, #12] + 80047e6: 2300 movs r3, #0 + 80047e8: 60fb str r3, [r7, #12] + 80047ea: 687b ldr r3, [r7, #4] + 80047ec: 681b ldr r3, [r3, #0] + 80047ee: 689b ldr r3, [r3, #8] + 80047f0: 60fb str r3, [r7, #12] + 80047f2: 687b ldr r3, [r7, #4] + 80047f4: 681b ldr r3, [r3, #0] + 80047f6: 681a ldr r2, [r3, #0] + 80047f8: 687b ldr r3, [r7, #4] + 80047fa: 681b ldr r3, [r3, #0] + 80047fc: f022 0240 bic.w r2, r2, #64 ; 0x40 + 8004800: 601a str r2, [r3, #0] + 8004802: 68fb ldr r3, [r7, #12] } /* SPI Frame error interrupt occurred ------------------------------------*/ if (SPI_CHECK_FLAG(itflag, SPI_FLAG_FRE) != RESET) - 80038e4: 69bb ldr r3, [r7, #24] - 80038e6: 0a1b lsrs r3, r3, #8 - 80038e8: f003 0301 and.w r3, r3, #1 - 80038ec: 2b00 cmp r3, #0 - 80038ee: d00c beq.n 800390a + 8004804: 69bb ldr r3, [r7, #24] + 8004806: 0a1b lsrs r3, r3, #8 + 8004808: f003 0301 and.w r3, r3, #1 + 800480c: 2b00 cmp r3, #0 + 800480e: d00c beq.n 800482a { SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FRE); - 80038f0: 687b ldr r3, [r7, #4] - 80038f2: 6d5b ldr r3, [r3, #84] ; 0x54 - 80038f4: f043 0208 orr.w r2, r3, #8 - 80038f8: 687b ldr r3, [r7, #4] - 80038fa: 655a str r2, [r3, #84] ; 0x54 + 8004810: 687b ldr r3, [r7, #4] + 8004812: 6d5b ldr r3, [r3, #84] ; 0x54 + 8004814: f043 0208 orr.w r2, r3, #8 + 8004818: 687b ldr r3, [r7, #4] + 800481a: 655a str r2, [r3, #84] ; 0x54 __HAL_SPI_CLEAR_FREFLAG(hspi); - 80038fc: 2300 movs r3, #0 - 80038fe: 60bb str r3, [r7, #8] - 8003900: 687b ldr r3, [r7, #4] - 8003902: 681b ldr r3, [r3, #0] - 8003904: 689b ldr r3, [r3, #8] - 8003906: 60bb str r3, [r7, #8] - 8003908: 68bb ldr r3, [r7, #8] + 800481c: 2300 movs r3, #0 + 800481e: 60bb str r3, [r7, #8] + 8004820: 687b ldr r3, [r7, #4] + 8004822: 681b ldr r3, [r3, #0] + 8004824: 689b ldr r3, [r3, #8] + 8004826: 60bb str r3, [r7, #8] + 8004828: 68bb ldr r3, [r7, #8] } if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) - 800390a: 687b ldr r3, [r7, #4] - 800390c: 6d5b ldr r3, [r3, #84] ; 0x54 - 800390e: 2b00 cmp r3, #0 - 8003910: d050 beq.n 80039b4 + 800482a: 687b ldr r3, [r7, #4] + 800482c: 6d5b ldr r3, [r3, #84] ; 0x54 + 800482e: 2b00 cmp r3, #0 + 8004830: d050 beq.n 80048d4 { /* Disable all interrupts */ __HAL_SPI_DISABLE_IT(hspi, SPI_IT_RXNE | SPI_IT_TXE | SPI_IT_ERR); - 8003912: 687b ldr r3, [r7, #4] - 8003914: 681b ldr r3, [r3, #0] - 8003916: 685a ldr r2, [r3, #4] - 8003918: 687b ldr r3, [r7, #4] - 800391a: 681b ldr r3, [r3, #0] - 800391c: f022 02e0 bic.w r2, r2, #224 ; 0xe0 - 8003920: 605a str r2, [r3, #4] + 8004832: 687b ldr r3, [r7, #4] + 8004834: 681b ldr r3, [r3, #0] + 8004836: 685a ldr r2, [r3, #4] + 8004838: 687b ldr r3, [r7, #4] + 800483a: 681b ldr r3, [r3, #0] + 800483c: f022 02e0 bic.w r2, r2, #224 ; 0xe0 + 8004840: 605a str r2, [r3, #4] hspi->State = HAL_SPI_STATE_READY; - 8003922: 687b ldr r3, [r7, #4] - 8003924: 2201 movs r2, #1 - 8003926: f883 2051 strb.w r2, [r3, #81] ; 0x51 + 8004842: 687b ldr r3, [r7, #4] + 8004844: 2201 movs r2, #1 + 8004846: f883 2051 strb.w r2, [r3, #81] ; 0x51 /* Disable the SPI DMA requests if enabled */ if ((HAL_IS_BIT_SET(itsource, SPI_CR2_TXDMAEN)) || (HAL_IS_BIT_SET(itsource, SPI_CR2_RXDMAEN))) - 800392a: 69fb ldr r3, [r7, #28] - 800392c: f003 0302 and.w r3, r3, #2 - 8003930: 2b00 cmp r3, #0 - 8003932: d104 bne.n 800393e - 8003934: 69fb ldr r3, [r7, #28] - 8003936: f003 0301 and.w r3, r3, #1 - 800393a: 2b00 cmp r3, #0 - 800393c: d034 beq.n 80039a8 + 800484a: 69fb ldr r3, [r7, #28] + 800484c: f003 0302 and.w r3, r3, #2 + 8004850: 2b00 cmp r3, #0 + 8004852: d104 bne.n 800485e + 8004854: 69fb ldr r3, [r7, #28] + 8004856: f003 0301 and.w r3, r3, #1 + 800485a: 2b00 cmp r3, #0 + 800485c: d034 beq.n 80048c8 { CLEAR_BIT(hspi->Instance->CR2, (SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN)); - 800393e: 687b ldr r3, [r7, #4] - 8003940: 681b ldr r3, [r3, #0] - 8003942: 685a ldr r2, [r3, #4] - 8003944: 687b ldr r3, [r7, #4] - 8003946: 681b ldr r3, [r3, #0] - 8003948: f022 0203 bic.w r2, r2, #3 - 800394c: 605a str r2, [r3, #4] + 800485e: 687b ldr r3, [r7, #4] + 8004860: 681b ldr r3, [r3, #0] + 8004862: 685a ldr r2, [r3, #4] + 8004864: 687b ldr r3, [r7, #4] + 8004866: 681b ldr r3, [r3, #0] + 8004868: f022 0203 bic.w r2, r2, #3 + 800486c: 605a str r2, [r3, #4] /* Abort the SPI DMA Rx channel */ if (hspi->hdmarx != NULL) - 800394e: 687b ldr r3, [r7, #4] - 8003950: 6cdb ldr r3, [r3, #76] ; 0x4c - 8003952: 2b00 cmp r3, #0 - 8003954: d011 beq.n 800397a + 800486e: 687b ldr r3, [r7, #4] + 8004870: 6cdb ldr r3, [r3, #76] ; 0x4c + 8004872: 2b00 cmp r3, #0 + 8004874: d011 beq.n 800489a { /* Set the SPI DMA Abort callback : will lead to call HAL_SPI_ErrorCallback() at end of DMA abort procedure */ hspi->hdmarx->XferAbortCallback = SPI_DMAAbortOnError; - 8003956: 687b ldr r3, [r7, #4] - 8003958: 6cdb ldr r3, [r3, #76] ; 0x4c - 800395a: 4a18 ldr r2, [pc, #96] ; (80039bc ) - 800395c: 651a str r2, [r3, #80] ; 0x50 + 8004876: 687b ldr r3, [r7, #4] + 8004878: 6cdb ldr r3, [r3, #76] ; 0x4c + 800487a: 4a18 ldr r2, [pc, #96] ; (80048dc ) + 800487c: 651a str r2, [r3, #80] ; 0x50 if (HAL_OK != HAL_DMA_Abort_IT(hspi->hdmarx)) - 800395e: 687b ldr r3, [r7, #4] - 8003960: 6cdb ldr r3, [r3, #76] ; 0x4c - 8003962: 4618 mov r0, r3 - 8003964: f7ff f80d bl 8002982 - 8003968: 4603 mov r3, r0 - 800396a: 2b00 cmp r3, #0 - 800396c: d005 beq.n 800397a + 800487e: 687b ldr r3, [r7, #4] + 8004880: 6cdb ldr r3, [r3, #76] ; 0x4c + 8004882: 4618 mov r0, r3 + 8004884: f7ff f80d bl 80038a2 + 8004888: 4603 mov r3, r0 + 800488a: 2b00 cmp r3, #0 + 800488c: d005 beq.n 800489a { SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); - 800396e: 687b ldr r3, [r7, #4] - 8003970: 6d5b ldr r3, [r3, #84] ; 0x54 - 8003972: f043 0240 orr.w r2, r3, #64 ; 0x40 - 8003976: 687b ldr r3, [r7, #4] - 8003978: 655a str r2, [r3, #84] ; 0x54 + 800488e: 687b ldr r3, [r7, #4] + 8004890: 6d5b ldr r3, [r3, #84] ; 0x54 + 8004892: f043 0240 orr.w r2, r3, #64 ; 0x40 + 8004896: 687b ldr r3, [r7, #4] + 8004898: 655a str r2, [r3, #84] ; 0x54 } } /* Abort the SPI DMA Tx channel */ if (hspi->hdmatx != NULL) - 800397a: 687b ldr r3, [r7, #4] - 800397c: 6c9b ldr r3, [r3, #72] ; 0x48 - 800397e: 2b00 cmp r3, #0 - 8003980: d016 beq.n 80039b0 + 800489a: 687b ldr r3, [r7, #4] + 800489c: 6c9b ldr r3, [r3, #72] ; 0x48 + 800489e: 2b00 cmp r3, #0 + 80048a0: d016 beq.n 80048d0 { /* Set the SPI DMA Abort callback : will lead to call HAL_SPI_ErrorCallback() at end of DMA abort procedure */ hspi->hdmatx->XferAbortCallback = SPI_DMAAbortOnError; - 8003982: 687b ldr r3, [r7, #4] - 8003984: 6c9b ldr r3, [r3, #72] ; 0x48 - 8003986: 4a0d ldr r2, [pc, #52] ; (80039bc ) - 8003988: 651a str r2, [r3, #80] ; 0x50 + 80048a2: 687b ldr r3, [r7, #4] + 80048a4: 6c9b ldr r3, [r3, #72] ; 0x48 + 80048a6: 4a0d ldr r2, [pc, #52] ; (80048dc ) + 80048a8: 651a str r2, [r3, #80] ; 0x50 if (HAL_OK != HAL_DMA_Abort_IT(hspi->hdmatx)) - 800398a: 687b ldr r3, [r7, #4] - 800398c: 6c9b ldr r3, [r3, #72] ; 0x48 - 800398e: 4618 mov r0, r3 - 8003990: f7fe fff7 bl 8002982 - 8003994: 4603 mov r3, r0 - 8003996: 2b00 cmp r3, #0 - 8003998: d00a beq.n 80039b0 + 80048aa: 687b ldr r3, [r7, #4] + 80048ac: 6c9b ldr r3, [r3, #72] ; 0x48 + 80048ae: 4618 mov r0, r3 + 80048b0: f7fe fff7 bl 80038a2 + 80048b4: 4603 mov r3, r0 + 80048b6: 2b00 cmp r3, #0 + 80048b8: d00a beq.n 80048d0 { SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); - 800399a: 687b ldr r3, [r7, #4] - 800399c: 6d5b ldr r3, [r3, #84] ; 0x54 - 800399e: f043 0240 orr.w r2, r3, #64 ; 0x40 - 80039a2: 687b ldr r3, [r7, #4] - 80039a4: 655a str r2, [r3, #84] ; 0x54 + 80048ba: 687b ldr r3, [r7, #4] + 80048bc: 6d5b ldr r3, [r3, #84] ; 0x54 + 80048be: f043 0240 orr.w r2, r3, #64 ; 0x40 + 80048c2: 687b ldr r3, [r7, #4] + 80048c4: 655a str r2, [r3, #84] ; 0x54 if (hspi->hdmatx != NULL) - 80039a6: e003 b.n 80039b0 + 80048c6: e003 b.n 80048d0 { /* Call user error callback */ #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) hspi->ErrorCallback(hspi); #else HAL_SPI_ErrorCallback(hspi); - 80039a8: 6878 ldr r0, [r7, #4] - 80039aa: f000 f813 bl 80039d4 + 80048c8: 6878 ldr r0, [r7, #4] + 80048ca: f000 f813 bl 80048f4 #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ } } return; - 80039ae: e000 b.n 80039b2 + 80048ce: e000 b.n 80048d2 if (hspi->hdmatx != NULL) - 80039b0: bf00 nop + 80048d0: bf00 nop return; - 80039b2: bf00 nop - 80039b4: bf00 nop + 80048d2: bf00 nop + 80048d4: bf00 nop } } - 80039b6: 3720 adds r7, #32 - 80039b8: 46bd mov sp, r7 - 80039ba: bd80 pop {r7, pc} - 80039bc: 080039e9 .word 0x080039e9 + 80048d6: 3720 adds r7, #32 + 80048d8: 46bd mov sp, r7 + 80048da: bd80 pop {r7, pc} + 80048dc: 08004909 .word 0x08004909 -080039c0 : +080048e0 : * @param hspi pointer to a SPI_HandleTypeDef structure that contains * the configuration information for SPI module. * @retval None */ __weak void HAL_SPI_TxCpltCallback(SPI_HandleTypeDef *hspi) { - 80039c0: b480 push {r7} - 80039c2: b083 sub sp, #12 - 80039c4: af00 add r7, sp, #0 - 80039c6: 6078 str r0, [r7, #4] + 80048e0: b480 push {r7} + 80048e2: b083 sub sp, #12 + 80048e4: af00 add r7, sp, #0 + 80048e6: 6078 str r0, [r7, #4] UNUSED(hspi); /* NOTE : This function should not be modified, when the callback is needed, the HAL_SPI_TxCpltCallback should be implemented in the user file */ } - 80039c8: bf00 nop - 80039ca: 370c adds r7, #12 - 80039cc: 46bd mov sp, r7 - 80039ce: f85d 7b04 ldr.w r7, [sp], #4 - 80039d2: 4770 bx lr + 80048e8: bf00 nop + 80048ea: 370c adds r7, #12 + 80048ec: 46bd mov sp, r7 + 80048ee: f85d 7b04 ldr.w r7, [sp], #4 + 80048f2: 4770 bx lr -080039d4 : +080048f4 : * @param hspi pointer to a SPI_HandleTypeDef structure that contains * the configuration information for SPI module. * @retval None */ __weak void HAL_SPI_ErrorCallback(SPI_HandleTypeDef *hspi) { - 80039d4: b480 push {r7} - 80039d6: b083 sub sp, #12 - 80039d8: af00 add r7, sp, #0 - 80039da: 6078 str r0, [r7, #4] + 80048f4: b480 push {r7} + 80048f6: b083 sub sp, #12 + 80048f8: af00 add r7, sp, #0 + 80048fa: 6078 str r0, [r7, #4] the HAL_SPI_ErrorCallback should be implemented in the user file */ /* NOTE : The ErrorCode parameter in the hspi handle is updated by the SPI processes and user can use HAL_SPI_GetError() API to check the latest error occurred */ } - 80039dc: bf00 nop - 80039de: 370c adds r7, #12 - 80039e0: 46bd mov sp, r7 - 80039e2: f85d 7b04 ldr.w r7, [sp], #4 - 80039e6: 4770 bx lr + 80048fc: bf00 nop + 80048fe: 370c adds r7, #12 + 8004900: 46bd mov sp, r7 + 8004902: f85d 7b04 ldr.w r7, [sp], #4 + 8004906: 4770 bx lr -080039e8 : +08004908 : * (To be called at end of DMA Abort procedure following error occurrence). * @param hdma DMA handle. * @retval None */ static void SPI_DMAAbortOnError(DMA_HandleTypeDef *hdma) { - 80039e8: b580 push {r7, lr} - 80039ea: b084 sub sp, #16 - 80039ec: af00 add r7, sp, #0 - 80039ee: 6078 str r0, [r7, #4] + 8004908: b580 push {r7, lr} + 800490a: b084 sub sp, #16 + 800490c: af00 add r7, sp, #0 + 800490e: 6078 str r0, [r7, #4] SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogation MISRAC2012-Rule-11.5 */ - 80039f0: 687b ldr r3, [r7, #4] - 80039f2: 6b9b ldr r3, [r3, #56] ; 0x38 - 80039f4: 60fb str r3, [r7, #12] + 8004910: 687b ldr r3, [r7, #4] + 8004912: 6b9b ldr r3, [r3, #56] ; 0x38 + 8004914: 60fb str r3, [r7, #12] hspi->RxXferCount = 0U; - 80039f6: 68fb ldr r3, [r7, #12] - 80039f8: 2200 movs r2, #0 - 80039fa: 87da strh r2, [r3, #62] ; 0x3e + 8004916: 68fb ldr r3, [r7, #12] + 8004918: 2200 movs r2, #0 + 800491a: 87da strh r2, [r3, #62] ; 0x3e hspi->TxXferCount = 0U; - 80039fc: 68fb ldr r3, [r7, #12] - 80039fe: 2200 movs r2, #0 - 8003a00: 86da strh r2, [r3, #54] ; 0x36 + 800491c: 68fb ldr r3, [r7, #12] + 800491e: 2200 movs r2, #0 + 8004920: 86da strh r2, [r3, #54] ; 0x36 /* Call user error callback */ #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) hspi->ErrorCallback(hspi); #else HAL_SPI_ErrorCallback(hspi); - 8003a02: 68f8 ldr r0, [r7, #12] - 8003a04: f7ff ffe6 bl 80039d4 + 8004922: 68f8 ldr r0, [r7, #12] + 8004924: f7ff ffe6 bl 80048f4 #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ } - 8003a08: bf00 nop - 8003a0a: 3710 adds r7, #16 - 8003a0c: 46bd mov sp, r7 - 8003a0e: bd80 pop {r7, pc} + 8004928: bf00 nop + 800492a: 3710 adds r7, #16 + 800492c: 46bd mov sp, r7 + 800492e: bd80 pop {r7, pc} -08003a10 : +08004930 : * @param hspi pointer to a SPI_HandleTypeDef structure that contains * the configuration information for SPI module. * @retval None */ static void SPI_TxISR_8BIT(struct __SPI_HandleTypeDef *hspi) { - 8003a10: b580 push {r7, lr} - 8003a12: b082 sub sp, #8 - 8003a14: af00 add r7, sp, #0 - 8003a16: 6078 str r0, [r7, #4] + 8004930: b580 push {r7, lr} + 8004932: b082 sub sp, #8 + 8004934: af00 add r7, sp, #0 + 8004936: 6078 str r0, [r7, #4] *(__IO uint8_t *)&hspi->Instance->DR = (*hspi->pTxBuffPtr); - 8003a18: 687b ldr r3, [r7, #4] - 8003a1a: 6b1a ldr r2, [r3, #48] ; 0x30 - 8003a1c: 687b ldr r3, [r7, #4] - 8003a1e: 681b ldr r3, [r3, #0] - 8003a20: 330c adds r3, #12 - 8003a22: 7812 ldrb r2, [r2, #0] - 8003a24: 701a strb r2, [r3, #0] + 8004938: 687b ldr r3, [r7, #4] + 800493a: 6b1a ldr r2, [r3, #48] ; 0x30 + 800493c: 687b ldr r3, [r7, #4] + 800493e: 681b ldr r3, [r3, #0] + 8004940: 330c adds r3, #12 + 8004942: 7812 ldrb r2, [r2, #0] + 8004944: 701a strb r2, [r3, #0] hspi->pTxBuffPtr++; - 8003a26: 687b ldr r3, [r7, #4] - 8003a28: 6b1b ldr r3, [r3, #48] ; 0x30 - 8003a2a: 1c5a adds r2, r3, #1 - 8003a2c: 687b ldr r3, [r7, #4] - 8003a2e: 631a str r2, [r3, #48] ; 0x30 + 8004946: 687b ldr r3, [r7, #4] + 8004948: 6b1b ldr r3, [r3, #48] ; 0x30 + 800494a: 1c5a adds r2, r3, #1 + 800494c: 687b ldr r3, [r7, #4] + 800494e: 631a str r2, [r3, #48] ; 0x30 hspi->TxXferCount--; - 8003a30: 687b ldr r3, [r7, #4] - 8003a32: 8edb ldrh r3, [r3, #54] ; 0x36 - 8003a34: b29b uxth r3, r3 - 8003a36: 3b01 subs r3, #1 - 8003a38: b29a uxth r2, r3 - 8003a3a: 687b ldr r3, [r7, #4] - 8003a3c: 86da strh r2, [r3, #54] ; 0x36 + 8004950: 687b ldr r3, [r7, #4] + 8004952: 8edb ldrh r3, [r3, #54] ; 0x36 + 8004954: b29b uxth r3, r3 + 8004956: 3b01 subs r3, #1 + 8004958: b29a uxth r2, r3 + 800495a: 687b ldr r3, [r7, #4] + 800495c: 86da strh r2, [r3, #54] ; 0x36 if (hspi->TxXferCount == 0U) - 8003a3e: 687b ldr r3, [r7, #4] - 8003a40: 8edb ldrh r3, [r3, #54] ; 0x36 - 8003a42: b29b uxth r3, r3 - 8003a44: 2b00 cmp r3, #0 - 8003a46: d102 bne.n 8003a4e + 800495e: 687b ldr r3, [r7, #4] + 8004960: 8edb ldrh r3, [r3, #54] ; 0x36 + 8004962: b29b uxth r3, r3 + 8004964: 2b00 cmp r3, #0 + 8004966: d102 bne.n 800496e { /* Enable CRC Transmission */ SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); } #endif /* USE_SPI_CRC */ SPI_CloseTx_ISR(hspi); - 8003a48: 6878 ldr r0, [r7, #4] - 8003a4a: f000 f8d3 bl 8003bf4 + 8004968: 6878 ldr r0, [r7, #4] + 800496a: f000 f8d3 bl 8004b14 } } - 8003a4e: bf00 nop - 8003a50: 3708 adds r7, #8 - 8003a52: 46bd mov sp, r7 - 8003a54: bd80 pop {r7, pc} + 800496e: bf00 nop + 8004970: 3708 adds r7, #8 + 8004972: 46bd mov sp, r7 + 8004974: bd80 pop {r7, pc} -08003a56 : +08004976 : * @param hspi pointer to a SPI_HandleTypeDef structure that contains * the configuration information for SPI module. * @retval None */ static void SPI_TxISR_16BIT(struct __SPI_HandleTypeDef *hspi) { - 8003a56: b580 push {r7, lr} - 8003a58: b082 sub sp, #8 - 8003a5a: af00 add r7, sp, #0 - 8003a5c: 6078 str r0, [r7, #4] + 8004976: b580 push {r7, lr} + 8004978: b082 sub sp, #8 + 800497a: af00 add r7, sp, #0 + 800497c: 6078 str r0, [r7, #4] /* Transmit data in 16 Bit mode */ hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr); - 8003a5e: 687b ldr r3, [r7, #4] - 8003a60: 6b1b ldr r3, [r3, #48] ; 0x30 - 8003a62: 881a ldrh r2, [r3, #0] - 8003a64: 687b ldr r3, [r7, #4] - 8003a66: 681b ldr r3, [r3, #0] - 8003a68: 60da str r2, [r3, #12] + 800497e: 687b ldr r3, [r7, #4] + 8004980: 6b1b ldr r3, [r3, #48] ; 0x30 + 8004982: 881a ldrh r2, [r3, #0] + 8004984: 687b ldr r3, [r7, #4] + 8004986: 681b ldr r3, [r3, #0] + 8004988: 60da str r2, [r3, #12] hspi->pTxBuffPtr += sizeof(uint16_t); - 8003a6a: 687b ldr r3, [r7, #4] - 8003a6c: 6b1b ldr r3, [r3, #48] ; 0x30 - 8003a6e: 1c9a adds r2, r3, #2 - 8003a70: 687b ldr r3, [r7, #4] - 8003a72: 631a str r2, [r3, #48] ; 0x30 + 800498a: 687b ldr r3, [r7, #4] + 800498c: 6b1b ldr r3, [r3, #48] ; 0x30 + 800498e: 1c9a adds r2, r3, #2 + 8004990: 687b ldr r3, [r7, #4] + 8004992: 631a str r2, [r3, #48] ; 0x30 hspi->TxXferCount--; - 8003a74: 687b ldr r3, [r7, #4] - 8003a76: 8edb ldrh r3, [r3, #54] ; 0x36 - 8003a78: b29b uxth r3, r3 - 8003a7a: 3b01 subs r3, #1 - 8003a7c: b29a uxth r2, r3 - 8003a7e: 687b ldr r3, [r7, #4] - 8003a80: 86da strh r2, [r3, #54] ; 0x36 + 8004994: 687b ldr r3, [r7, #4] + 8004996: 8edb ldrh r3, [r3, #54] ; 0x36 + 8004998: b29b uxth r3, r3 + 800499a: 3b01 subs r3, #1 + 800499c: b29a uxth r2, r3 + 800499e: 687b ldr r3, [r7, #4] + 80049a0: 86da strh r2, [r3, #54] ; 0x36 if (hspi->TxXferCount == 0U) - 8003a82: 687b ldr r3, [r7, #4] - 8003a84: 8edb ldrh r3, [r3, #54] ; 0x36 - 8003a86: b29b uxth r3, r3 - 8003a88: 2b00 cmp r3, #0 - 8003a8a: d102 bne.n 8003a92 + 80049a2: 687b ldr r3, [r7, #4] + 80049a4: 8edb ldrh r3, [r3, #54] ; 0x36 + 80049a6: b29b uxth r3, r3 + 80049a8: 2b00 cmp r3, #0 + 80049aa: d102 bne.n 80049b2 { /* Enable CRC Transmission */ SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); } #endif /* USE_SPI_CRC */ SPI_CloseTx_ISR(hspi); - 8003a8c: 6878 ldr r0, [r7, #4] - 8003a8e: f000 f8b1 bl 8003bf4 + 80049ac: 6878 ldr r0, [r7, #4] + 80049ae: f000 f8b1 bl 8004b14 } } - 8003a92: bf00 nop - 8003a94: 3708 adds r7, #8 - 8003a96: 46bd mov sp, r7 - 8003a98: bd80 pop {r7, pc} + 80049b2: bf00 nop + 80049b4: 3708 adds r7, #8 + 80049b6: 46bd mov sp, r7 + 80049b8: bd80 pop {r7, pc} -08003a9a : +080049ba : * @param Tickstart tick start value * @retval HAL status */ static HAL_StatusTypeDef SPI_WaitFlagStateUntilTimeout(SPI_HandleTypeDef *hspi, uint32_t Flag, FlagStatus State, uint32_t Timeout, uint32_t Tickstart) { - 8003a9a: b580 push {r7, lr} - 8003a9c: b084 sub sp, #16 - 8003a9e: af00 add r7, sp, #0 - 8003aa0: 60f8 str r0, [r7, #12] - 8003aa2: 60b9 str r1, [r7, #8] - 8003aa4: 603b str r3, [r7, #0] - 8003aa6: 4613 mov r3, r2 - 8003aa8: 71fb strb r3, [r7, #7] + 80049ba: b580 push {r7, lr} + 80049bc: b084 sub sp, #16 + 80049be: af00 add r7, sp, #0 + 80049c0: 60f8 str r0, [r7, #12] + 80049c2: 60b9 str r1, [r7, #8] + 80049c4: 603b str r3, [r7, #0] + 80049c6: 4613 mov r3, r2 + 80049c8: 71fb strb r3, [r7, #7] while ((__HAL_SPI_GET_FLAG(hspi, Flag) ? SET : RESET) != State) - 8003aaa: e04c b.n 8003b46 + 80049ca: e04c b.n 8004a66 { if (Timeout != HAL_MAX_DELAY) - 8003aac: 683b ldr r3, [r7, #0] - 8003aae: f1b3 3fff cmp.w r3, #4294967295 - 8003ab2: d048 beq.n 8003b46 + 80049cc: 683b ldr r3, [r7, #0] + 80049ce: f1b3 3fff cmp.w r3, #4294967295 + 80049d2: d048 beq.n 8004a66 { if (((HAL_GetTick() - Tickstart) >= Timeout) || (Timeout == 0U)) - 8003ab4: f7fe fa5c bl 8001f70 - 8003ab8: 4602 mov r2, r0 - 8003aba: 69bb ldr r3, [r7, #24] - 8003abc: 1ad3 subs r3, r2, r3 - 8003abe: 683a ldr r2, [r7, #0] - 8003ac0: 429a cmp r2, r3 - 8003ac2: d902 bls.n 8003aca - 8003ac4: 683b ldr r3, [r7, #0] - 8003ac6: 2b00 cmp r3, #0 - 8003ac8: d13d bne.n 8003b46 + 80049d4: f7fe fa5c bl 8002e90 + 80049d8: 4602 mov r2, r0 + 80049da: 69bb ldr r3, [r7, #24] + 80049dc: 1ad3 subs r3, r2, r3 + 80049de: 683a ldr r2, [r7, #0] + 80049e0: 429a cmp r2, r3 + 80049e2: d902 bls.n 80049ea + 80049e4: 683b ldr r3, [r7, #0] + 80049e6: 2b00 cmp r3, #0 + 80049e8: d13d bne.n 8004a66 /* Disable the SPI and reset the CRC: the CRC value should be cleared on both master and slave sides in order to resynchronize the master and slave for their respective CRC calculation */ /* Disable TXE, RXNE and ERR interrupts for the interrupt process */ __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_TXE | SPI_IT_RXNE | SPI_IT_ERR)); - 8003aca: 68fb ldr r3, [r7, #12] - 8003acc: 681b ldr r3, [r3, #0] - 8003ace: 685a ldr r2, [r3, #4] - 8003ad0: 68fb ldr r3, [r7, #12] - 8003ad2: 681b ldr r3, [r3, #0] - 8003ad4: f022 02e0 bic.w r2, r2, #224 ; 0xe0 - 8003ad8: 605a str r2, [r3, #4] + 80049ea: 68fb ldr r3, [r7, #12] + 80049ec: 681b ldr r3, [r3, #0] + 80049ee: 685a ldr r2, [r3, #4] + 80049f0: 68fb ldr r3, [r7, #12] + 80049f2: 681b ldr r3, [r3, #0] + 80049f4: f022 02e0 bic.w r2, r2, #224 ; 0xe0 + 80049f8: 605a str r2, [r3, #4] if ((hspi->Init.Mode == SPI_MODE_MASTER) && ((hspi->Init.Direction == SPI_DIRECTION_1LINE) - 8003ada: 68fb ldr r3, [r7, #12] - 8003adc: 685b ldr r3, [r3, #4] - 8003ade: f5b3 7f82 cmp.w r3, #260 ; 0x104 - 8003ae2: d111 bne.n 8003b08 - 8003ae4: 68fb ldr r3, [r7, #12] - 8003ae6: 689b ldr r3, [r3, #8] - 8003ae8: f5b3 4f00 cmp.w r3, #32768 ; 0x8000 - 8003aec: d004 beq.n 8003af8 + 80049fa: 68fb ldr r3, [r7, #12] + 80049fc: 685b ldr r3, [r3, #4] + 80049fe: f5b3 7f82 cmp.w r3, #260 ; 0x104 + 8004a02: d111 bne.n 8004a28 + 8004a04: 68fb ldr r3, [r7, #12] + 8004a06: 689b ldr r3, [r3, #8] + 8004a08: f5b3 4f00 cmp.w r3, #32768 ; 0x8000 + 8004a0c: d004 beq.n 8004a18 || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXONLY))) - 8003aee: 68fb ldr r3, [r7, #12] - 8003af0: 689b ldr r3, [r3, #8] - 8003af2: f5b3 6f80 cmp.w r3, #1024 ; 0x400 - 8003af6: d107 bne.n 8003b08 + 8004a0e: 68fb ldr r3, [r7, #12] + 8004a10: 689b ldr r3, [r3, #8] + 8004a12: f5b3 6f80 cmp.w r3, #1024 ; 0x400 + 8004a16: d107 bne.n 8004a28 { /* Disable SPI peripheral */ __HAL_SPI_DISABLE(hspi); - 8003af8: 68fb ldr r3, [r7, #12] - 8003afa: 681b ldr r3, [r3, #0] - 8003afc: 681a ldr r2, [r3, #0] - 8003afe: 68fb ldr r3, [r7, #12] - 8003b00: 681b ldr r3, [r3, #0] - 8003b02: f022 0240 bic.w r2, r2, #64 ; 0x40 - 8003b06: 601a str r2, [r3, #0] + 8004a18: 68fb ldr r3, [r7, #12] + 8004a1a: 681b ldr r3, [r3, #0] + 8004a1c: 681a ldr r2, [r3, #0] + 8004a1e: 68fb ldr r3, [r7, #12] + 8004a20: 681b ldr r3, [r3, #0] + 8004a22: f022 0240 bic.w r2, r2, #64 ; 0x40 + 8004a26: 601a str r2, [r3, #0] } /* Reset CRC Calculation */ if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) - 8003b08: 68fb ldr r3, [r7, #12] - 8003b0a: 6a9b ldr r3, [r3, #40] ; 0x28 - 8003b0c: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 - 8003b10: d10f bne.n 8003b32 + 8004a28: 68fb ldr r3, [r7, #12] + 8004a2a: 6a9b ldr r3, [r3, #40] ; 0x28 + 8004a2c: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 + 8004a30: d10f bne.n 8004a52 { SPI_RESET_CRC(hspi); - 8003b12: 68fb ldr r3, [r7, #12] - 8003b14: 681b ldr r3, [r3, #0] - 8003b16: 681a ldr r2, [r3, #0] - 8003b18: 68fb ldr r3, [r7, #12] - 8003b1a: 681b ldr r3, [r3, #0] - 8003b1c: f422 5200 bic.w r2, r2, #8192 ; 0x2000 - 8003b20: 601a str r2, [r3, #0] - 8003b22: 68fb ldr r3, [r7, #12] - 8003b24: 681b ldr r3, [r3, #0] - 8003b26: 681a ldr r2, [r3, #0] - 8003b28: 68fb ldr r3, [r7, #12] - 8003b2a: 681b ldr r3, [r3, #0] - 8003b2c: f442 5200 orr.w r2, r2, #8192 ; 0x2000 - 8003b30: 601a str r2, [r3, #0] + 8004a32: 68fb ldr r3, [r7, #12] + 8004a34: 681b ldr r3, [r3, #0] + 8004a36: 681a ldr r2, [r3, #0] + 8004a38: 68fb ldr r3, [r7, #12] + 8004a3a: 681b ldr r3, [r3, #0] + 8004a3c: f422 5200 bic.w r2, r2, #8192 ; 0x2000 + 8004a40: 601a str r2, [r3, #0] + 8004a42: 68fb ldr r3, [r7, #12] + 8004a44: 681b ldr r3, [r3, #0] + 8004a46: 681a ldr r2, [r3, #0] + 8004a48: 68fb ldr r3, [r7, #12] + 8004a4a: 681b ldr r3, [r3, #0] + 8004a4c: f442 5200 orr.w r2, r2, #8192 ; 0x2000 + 8004a50: 601a str r2, [r3, #0] } hspi->State = HAL_SPI_STATE_READY; - 8003b32: 68fb ldr r3, [r7, #12] - 8003b34: 2201 movs r2, #1 - 8003b36: f883 2051 strb.w r2, [r3, #81] ; 0x51 + 8004a52: 68fb ldr r3, [r7, #12] + 8004a54: 2201 movs r2, #1 + 8004a56: f883 2051 strb.w r2, [r3, #81] ; 0x51 /* Process Unlocked */ __HAL_UNLOCK(hspi); - 8003b3a: 68fb ldr r3, [r7, #12] - 8003b3c: 2200 movs r2, #0 - 8003b3e: f883 2050 strb.w r2, [r3, #80] ; 0x50 + 8004a5a: 68fb ldr r3, [r7, #12] + 8004a5c: 2200 movs r2, #0 + 8004a5e: f883 2050 strb.w r2, [r3, #80] ; 0x50 return HAL_TIMEOUT; - 8003b42: 2303 movs r3, #3 - 8003b44: e00f b.n 8003b66 + 8004a62: 2303 movs r3, #3 + 8004a64: e00f b.n 8004a86 while ((__HAL_SPI_GET_FLAG(hspi, Flag) ? SET : RESET) != State) - 8003b46: 68fb ldr r3, [r7, #12] - 8003b48: 681b ldr r3, [r3, #0] - 8003b4a: 689a ldr r2, [r3, #8] - 8003b4c: 68bb ldr r3, [r7, #8] - 8003b4e: 4013 ands r3, r2 - 8003b50: 68ba ldr r2, [r7, #8] - 8003b52: 429a cmp r2, r3 - 8003b54: bf0c ite eq - 8003b56: 2301 moveq r3, #1 - 8003b58: 2300 movne r3, #0 - 8003b5a: b2db uxtb r3, r3 - 8003b5c: 461a mov r2, r3 - 8003b5e: 79fb ldrb r3, [r7, #7] - 8003b60: 429a cmp r2, r3 - 8003b62: d1a3 bne.n 8003aac + 8004a66: 68fb ldr r3, [r7, #12] + 8004a68: 681b ldr r3, [r3, #0] + 8004a6a: 689a ldr r2, [r3, #8] + 8004a6c: 68bb ldr r3, [r7, #8] + 8004a6e: 4013 ands r3, r2 + 8004a70: 68ba ldr r2, [r7, #8] + 8004a72: 429a cmp r2, r3 + 8004a74: bf0c ite eq + 8004a76: 2301 moveq r3, #1 + 8004a78: 2300 movne r3, #0 + 8004a7a: b2db uxtb r3, r3 + 8004a7c: 461a mov r2, r3 + 8004a7e: 79fb ldrb r3, [r7, #7] + 8004a80: 429a cmp r2, r3 + 8004a82: d1a3 bne.n 80049cc } } } return HAL_OK; - 8003b64: 2300 movs r3, #0 + 8004a84: 2300 movs r3, #0 } - 8003b66: 4618 mov r0, r3 - 8003b68: 3710 adds r7, #16 - 8003b6a: 46bd mov sp, r7 - 8003b6c: bd80 pop {r7, pc} + 8004a86: 4618 mov r0, r3 + 8004a88: 3710 adds r7, #16 + 8004a8a: 46bd mov sp, r7 + 8004a8c: bd80 pop {r7, pc} ... -08003b70 : +08004a90 : * @param Timeout Timeout duration * @param Tickstart tick start value * @retval HAL status */ static HAL_StatusTypeDef SPI_EndRxTxTransaction(SPI_HandleTypeDef *hspi, uint32_t Timeout, uint32_t Tickstart) { - 8003b70: b580 push {r7, lr} - 8003b72: b088 sub sp, #32 - 8003b74: af02 add r7, sp, #8 - 8003b76: 60f8 str r0, [r7, #12] - 8003b78: 60b9 str r1, [r7, #8] - 8003b7a: 607a str r2, [r7, #4] + 8004a90: b580 push {r7, lr} + 8004a92: b088 sub sp, #32 + 8004a94: af02 add r7, sp, #8 + 8004a96: 60f8 str r0, [r7, #12] + 8004a98: 60b9 str r1, [r7, #8] + 8004a9a: 607a str r2, [r7, #4] /* Timeout in µs */ __IO uint32_t count = SPI_BSY_FLAG_WORKAROUND_TIMEOUT * (SystemCoreClock / 24U / 1000000U); - 8003b7c: 4b1b ldr r3, [pc, #108] ; (8003bec ) - 8003b7e: 681b ldr r3, [r3, #0] - 8003b80: 4a1b ldr r2, [pc, #108] ; (8003bf0 ) - 8003b82: fba2 2303 umull r2, r3, r2, r3 - 8003b86: 0d5b lsrs r3, r3, #21 - 8003b88: f44f 727a mov.w r2, #1000 ; 0x3e8 - 8003b8c: fb02 f303 mul.w r3, r2, r3 - 8003b90: 617b str r3, [r7, #20] + 8004a9c: 4b1b ldr r3, [pc, #108] ; (8004b0c ) + 8004a9e: 681b ldr r3, [r3, #0] + 8004aa0: 4a1b ldr r2, [pc, #108] ; (8004b10 ) + 8004aa2: fba2 2303 umull r2, r3, r2, r3 + 8004aa6: 0d5b lsrs r3, r3, #21 + 8004aa8: f44f 727a mov.w r2, #1000 ; 0x3e8 + 8004aac: fb02 f303 mul.w r3, r2, r3 + 8004ab0: 617b str r3, [r7, #20] /* Erratasheet: BSY bit may stay high at the end of a data transfer in Slave mode */ if (hspi->Init.Mode == SPI_MODE_MASTER) - 8003b92: 68fb ldr r3, [r7, #12] - 8003b94: 685b ldr r3, [r3, #4] - 8003b96: f5b3 7f82 cmp.w r3, #260 ; 0x104 - 8003b9a: d112 bne.n 8003bc2 + 8004ab2: 68fb ldr r3, [r7, #12] + 8004ab4: 685b ldr r3, [r3, #4] + 8004ab6: f5b3 7f82 cmp.w r3, #260 ; 0x104 + 8004aba: d112 bne.n 8004ae2 { /* Control the BSY flag */ if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_BSY, RESET, Timeout, Tickstart) != HAL_OK) - 8003b9c: 687b ldr r3, [r7, #4] - 8003b9e: 9300 str r3, [sp, #0] - 8003ba0: 68bb ldr r3, [r7, #8] - 8003ba2: 2200 movs r2, #0 - 8003ba4: 2180 movs r1, #128 ; 0x80 - 8003ba6: 68f8 ldr r0, [r7, #12] - 8003ba8: f7ff ff77 bl 8003a9a - 8003bac: 4603 mov r3, r0 - 8003bae: 2b00 cmp r3, #0 - 8003bb0: d016 beq.n 8003be0 + 8004abc: 687b ldr r3, [r7, #4] + 8004abe: 9300 str r3, [sp, #0] + 8004ac0: 68bb ldr r3, [r7, #8] + 8004ac2: 2200 movs r2, #0 + 8004ac4: 2180 movs r1, #128 ; 0x80 + 8004ac6: 68f8 ldr r0, [r7, #12] + 8004ac8: f7ff ff77 bl 80049ba + 8004acc: 4603 mov r3, r0 + 8004ace: 2b00 cmp r3, #0 + 8004ad0: d016 beq.n 8004b00 { SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); - 8003bb2: 68fb ldr r3, [r7, #12] - 8003bb4: 6d5b ldr r3, [r3, #84] ; 0x54 - 8003bb6: f043 0220 orr.w r2, r3, #32 - 8003bba: 68fb ldr r3, [r7, #12] - 8003bbc: 655a str r2, [r3, #84] ; 0x54 + 8004ad2: 68fb ldr r3, [r7, #12] + 8004ad4: 6d5b ldr r3, [r3, #84] ; 0x54 + 8004ad6: f043 0220 orr.w r2, r3, #32 + 8004ada: 68fb ldr r3, [r7, #12] + 8004adc: 655a str r2, [r3, #84] ; 0x54 return HAL_TIMEOUT; - 8003bbe: 2303 movs r3, #3 - 8003bc0: e00f b.n 8003be2 + 8004ade: 2303 movs r3, #3 + 8004ae0: e00f b.n 8004b02 * User have to calculate the timeout value to fit with the time of 1 byte transfer. * This time is directly link with the SPI clock from Master device. */ do { if (count == 0U) - 8003bc2: 697b ldr r3, [r7, #20] - 8003bc4: 2b00 cmp r3, #0 - 8003bc6: d00a beq.n 8003bde + 8004ae2: 697b ldr r3, [r7, #20] + 8004ae4: 2b00 cmp r3, #0 + 8004ae6: d00a beq.n 8004afe { break; } count--; - 8003bc8: 697b ldr r3, [r7, #20] - 8003bca: 3b01 subs r3, #1 - 8003bcc: 617b str r3, [r7, #20] + 8004ae8: 697b ldr r3, [r7, #20] + 8004aea: 3b01 subs r3, #1 + 8004aec: 617b str r3, [r7, #20] } while (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_BSY) != RESET); - 8003bce: 68fb ldr r3, [r7, #12] - 8003bd0: 681b ldr r3, [r3, #0] - 8003bd2: 689b ldr r3, [r3, #8] - 8003bd4: f003 0380 and.w r3, r3, #128 ; 0x80 - 8003bd8: 2b80 cmp r3, #128 ; 0x80 - 8003bda: d0f2 beq.n 8003bc2 - 8003bdc: e000 b.n 8003be0 + 8004aee: 68fb ldr r3, [r7, #12] + 8004af0: 681b ldr r3, [r3, #0] + 8004af2: 689b ldr r3, [r3, #8] + 8004af4: f003 0380 and.w r3, r3, #128 ; 0x80 + 8004af8: 2b80 cmp r3, #128 ; 0x80 + 8004afa: d0f2 beq.n 8004ae2 + 8004afc: e000 b.n 8004b00 break; - 8003bde: bf00 nop + 8004afe: bf00 nop } return HAL_OK; - 8003be0: 2300 movs r3, #0 + 8004b00: 2300 movs r3, #0 } - 8003be2: 4618 mov r0, r3 - 8003be4: 3718 adds r7, #24 - 8003be6: 46bd mov sp, r7 - 8003be8: bd80 pop {r7, pc} - 8003bea: bf00 nop - 8003bec: 20000004 .word 0x20000004 - 8003bf0: 165e9f81 .word 0x165e9f81 + 8004b02: 4618 mov r0, r3 + 8004b04: 3718 adds r7, #24 + 8004b06: 46bd mov sp, r7 + 8004b08: bd80 pop {r7, pc} + 8004b0a: bf00 nop + 8004b0c: 20000004 .word 0x20000004 + 8004b10: 165e9f81 .word 0x165e9f81 -08003bf4 : +08004b14 : * @param hspi pointer to a SPI_HandleTypeDef structure that contains * the configuration information for SPI module. * @retval None */ static void SPI_CloseTx_ISR(SPI_HandleTypeDef *hspi) { - 8003bf4: b580 push {r7, lr} - 8003bf6: b086 sub sp, #24 - 8003bf8: af00 add r7, sp, #0 - 8003bfa: 6078 str r0, [r7, #4] + 8004b14: b580 push {r7, lr} + 8004b16: b086 sub sp, #24 + 8004b18: af00 add r7, sp, #0 + 8004b1a: 6078 str r0, [r7, #4] uint32_t tickstart; __IO uint32_t count = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); - 8003bfc: 4b2c ldr r3, [pc, #176] ; (8003cb0 ) - 8003bfe: 681b ldr r3, [r3, #0] - 8003c00: 4a2c ldr r2, [pc, #176] ; (8003cb4 ) - 8003c02: fba2 2303 umull r2, r3, r2, r3 - 8003c06: 0a5b lsrs r3, r3, #9 - 8003c08: 2264 movs r2, #100 ; 0x64 - 8003c0a: fb02 f303 mul.w r3, r2, r3 - 8003c0e: 613b str r3, [r7, #16] + 8004b1c: 4b2c ldr r3, [pc, #176] ; (8004bd0 ) + 8004b1e: 681b ldr r3, [r3, #0] + 8004b20: 4a2c ldr r2, [pc, #176] ; (8004bd4 ) + 8004b22: fba2 2303 umull r2, r3, r2, r3 + 8004b26: 0a5b lsrs r3, r3, #9 + 8004b28: 2264 movs r2, #100 ; 0x64 + 8004b2a: fb02 f303 mul.w r3, r2, r3 + 8004b2e: 613b str r3, [r7, #16] /* Init tickstart for timeout management*/ tickstart = HAL_GetTick(); - 8003c10: f7fe f9ae bl 8001f70 - 8003c14: 6178 str r0, [r7, #20] + 8004b30: f7fe f9ae bl 8002e90 + 8004b34: 6178 str r0, [r7, #20] /* Wait until TXE flag is set */ do { if (count == 0U) - 8003c16: 693b ldr r3, [r7, #16] - 8003c18: 2b00 cmp r3, #0 - 8003c1a: d106 bne.n 8003c2a + 8004b36: 693b ldr r3, [r7, #16] + 8004b38: 2b00 cmp r3, #0 + 8004b3a: d106 bne.n 8004b4a { SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); - 8003c1c: 687b ldr r3, [r7, #4] - 8003c1e: 6d5b ldr r3, [r3, #84] ; 0x54 - 8003c20: f043 0220 orr.w r2, r3, #32 - 8003c24: 687b ldr r3, [r7, #4] - 8003c26: 655a str r2, [r3, #84] ; 0x54 + 8004b3c: 687b ldr r3, [r7, #4] + 8004b3e: 6d5b ldr r3, [r3, #84] ; 0x54 + 8004b40: f043 0220 orr.w r2, r3, #32 + 8004b44: 687b ldr r3, [r7, #4] + 8004b46: 655a str r2, [r3, #84] ; 0x54 break; - 8003c28: e009 b.n 8003c3e + 8004b48: e009 b.n 8004b5e } count--; - 8003c2a: 693b ldr r3, [r7, #16] - 8003c2c: 3b01 subs r3, #1 - 8003c2e: 613b str r3, [r7, #16] + 8004b4a: 693b ldr r3, [r7, #16] + 8004b4c: 3b01 subs r3, #1 + 8004b4e: 613b str r3, [r7, #16] } while ((hspi->Instance->SR & SPI_FLAG_TXE) == RESET); - 8003c30: 687b ldr r3, [r7, #4] - 8003c32: 681b ldr r3, [r3, #0] - 8003c34: 689b ldr r3, [r3, #8] - 8003c36: f003 0302 and.w r3, r3, #2 - 8003c3a: 2b00 cmp r3, #0 - 8003c3c: d0eb beq.n 8003c16 + 8004b50: 687b ldr r3, [r7, #4] + 8004b52: 681b ldr r3, [r3, #0] + 8004b54: 689b ldr r3, [r3, #8] + 8004b56: f003 0302 and.w r3, r3, #2 + 8004b5a: 2b00 cmp r3, #0 + 8004b5c: d0eb beq.n 8004b36 /* Disable TXE and ERR interrupt */ __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_TXE | SPI_IT_ERR)); - 8003c3e: 687b ldr r3, [r7, #4] - 8003c40: 681b ldr r3, [r3, #0] - 8003c42: 685a ldr r2, [r3, #4] - 8003c44: 687b ldr r3, [r7, #4] - 8003c46: 681b ldr r3, [r3, #0] - 8003c48: f022 02a0 bic.w r2, r2, #160 ; 0xa0 - 8003c4c: 605a str r2, [r3, #4] + 8004b5e: 687b ldr r3, [r7, #4] + 8004b60: 681b ldr r3, [r3, #0] + 8004b62: 685a ldr r2, [r3, #4] + 8004b64: 687b ldr r3, [r7, #4] + 8004b66: 681b ldr r3, [r3, #0] + 8004b68: f022 02a0 bic.w r2, r2, #160 ; 0xa0 + 8004b6c: 605a str r2, [r3, #4] /* Check the end of the transaction */ if (SPI_EndRxTxTransaction(hspi, SPI_DEFAULT_TIMEOUT, tickstart) != HAL_OK) - 8003c4e: 697a ldr r2, [r7, #20] - 8003c50: 2164 movs r1, #100 ; 0x64 - 8003c52: 6878 ldr r0, [r7, #4] - 8003c54: f7ff ff8c bl 8003b70 - 8003c58: 4603 mov r3, r0 - 8003c5a: 2b00 cmp r3, #0 - 8003c5c: d005 beq.n 8003c6a + 8004b6e: 697a ldr r2, [r7, #20] + 8004b70: 2164 movs r1, #100 ; 0x64 + 8004b72: 6878 ldr r0, [r7, #4] + 8004b74: f7ff ff8c bl 8004a90 + 8004b78: 4603 mov r3, r0 + 8004b7a: 2b00 cmp r3, #0 + 8004b7c: d005 beq.n 8004b8a { SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); - 8003c5e: 687b ldr r3, [r7, #4] - 8003c60: 6d5b ldr r3, [r3, #84] ; 0x54 - 8003c62: f043 0220 orr.w r2, r3, #32 - 8003c66: 687b ldr r3, [r7, #4] - 8003c68: 655a str r2, [r3, #84] ; 0x54 + 8004b7e: 687b ldr r3, [r7, #4] + 8004b80: 6d5b ldr r3, [r3, #84] ; 0x54 + 8004b82: f043 0220 orr.w r2, r3, #32 + 8004b86: 687b ldr r3, [r7, #4] + 8004b88: 655a str r2, [r3, #84] ; 0x54 } /* Clear overrun flag in 2 Lines communication mode because received is not read */ if (hspi->Init.Direction == SPI_DIRECTION_2LINES) - 8003c6a: 687b ldr r3, [r7, #4] - 8003c6c: 689b ldr r3, [r3, #8] - 8003c6e: 2b00 cmp r3, #0 - 8003c70: d10a bne.n 8003c88 + 8004b8a: 687b ldr r3, [r7, #4] + 8004b8c: 689b ldr r3, [r3, #8] + 8004b8e: 2b00 cmp r3, #0 + 8004b90: d10a bne.n 8004ba8 { __HAL_SPI_CLEAR_OVRFLAG(hspi); - 8003c72: 2300 movs r3, #0 - 8003c74: 60fb str r3, [r7, #12] - 8003c76: 687b ldr r3, [r7, #4] - 8003c78: 681b ldr r3, [r3, #0] - 8003c7a: 68db ldr r3, [r3, #12] - 8003c7c: 60fb str r3, [r7, #12] - 8003c7e: 687b ldr r3, [r7, #4] - 8003c80: 681b ldr r3, [r3, #0] - 8003c82: 689b ldr r3, [r3, #8] - 8003c84: 60fb str r3, [r7, #12] - 8003c86: 68fb ldr r3, [r7, #12] + 8004b92: 2300 movs r3, #0 + 8004b94: 60fb str r3, [r7, #12] + 8004b96: 687b ldr r3, [r7, #4] + 8004b98: 681b ldr r3, [r3, #0] + 8004b9a: 68db ldr r3, [r3, #12] + 8004b9c: 60fb str r3, [r7, #12] + 8004b9e: 687b ldr r3, [r7, #4] + 8004ba0: 681b ldr r3, [r3, #0] + 8004ba2: 689b ldr r3, [r3, #8] + 8004ba4: 60fb str r3, [r7, #12] + 8004ba6: 68fb ldr r3, [r7, #12] } hspi->State = HAL_SPI_STATE_READY; - 8003c88: 687b ldr r3, [r7, #4] - 8003c8a: 2201 movs r2, #1 - 8003c8c: f883 2051 strb.w r2, [r3, #81] ; 0x51 + 8004ba8: 687b ldr r3, [r7, #4] + 8004baa: 2201 movs r2, #1 + 8004bac: f883 2051 strb.w r2, [r3, #81] ; 0x51 if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) - 8003c90: 687b ldr r3, [r7, #4] - 8003c92: 6d5b ldr r3, [r3, #84] ; 0x54 - 8003c94: 2b00 cmp r3, #0 - 8003c96: d003 beq.n 8003ca0 + 8004bb0: 687b ldr r3, [r7, #4] + 8004bb2: 6d5b ldr r3, [r3, #84] ; 0x54 + 8004bb4: 2b00 cmp r3, #0 + 8004bb6: d003 beq.n 8004bc0 { /* Call user error callback */ #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) hspi->ErrorCallback(hspi); #else HAL_SPI_ErrorCallback(hspi); - 8003c98: 6878 ldr r0, [r7, #4] - 8003c9a: f7ff fe9b bl 80039d4 + 8004bb8: 6878 ldr r0, [r7, #4] + 8004bba: f7ff fe9b bl 80048f4 hspi->TxCpltCallback(hspi); #else HAL_SPI_TxCpltCallback(hspi); #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ } } - 8003c9e: e002 b.n 8003ca6 + 8004bbe: e002 b.n 8004bc6 HAL_SPI_TxCpltCallback(hspi); - 8003ca0: 6878 ldr r0, [r7, #4] - 8003ca2: f7ff fe8d bl 80039c0 + 8004bc0: 6878 ldr r0, [r7, #4] + 8004bc2: f7ff fe8d bl 80048e0 } - 8003ca6: bf00 nop - 8003ca8: 3718 adds r7, #24 - 8003caa: 46bd mov sp, r7 - 8003cac: bd80 pop {r7, pc} - 8003cae: bf00 nop - 8003cb0: 20000004 .word 0x20000004 - 8003cb4: 057619f1 .word 0x057619f1 + 8004bc6: bf00 nop + 8004bc8: 3718 adds r7, #24 + 8004bca: 46bd mov sp, r7 + 8004bcc: bd80 pop {r7, pc} + 8004bce: bf00 nop + 8004bd0: 20000004 .word 0x20000004 + 8004bd4: 057619f1 .word 0x057619f1 -08003cb8 : +08004bd8 : * Ex: call @ref HAL_TIM_Base_DeInit() before HAL_TIM_Base_Init() * @param htim TIM Base handle * @retval HAL status */ HAL_StatusTypeDef HAL_TIM_Base_Init(TIM_HandleTypeDef *htim) { - 8003cb8: b580 push {r7, lr} - 8003cba: b082 sub sp, #8 - 8003cbc: af00 add r7, sp, #0 - 8003cbe: 6078 str r0, [r7, #4] + 8004bd8: b580 push {r7, lr} + 8004bda: b082 sub sp, #8 + 8004bdc: af00 add r7, sp, #0 + 8004bde: 6078 str r0, [r7, #4] /* Check the TIM handle allocation */ if (htim == NULL) - 8003cc0: 687b ldr r3, [r7, #4] - 8003cc2: 2b00 cmp r3, #0 - 8003cc4: d101 bne.n 8003cca + 8004be0: 687b ldr r3, [r7, #4] + 8004be2: 2b00 cmp r3, #0 + 8004be4: d101 bne.n 8004bea { return HAL_ERROR; - 8003cc6: 2301 movs r3, #1 - 8003cc8: e01d b.n 8003d06 + 8004be6: 2301 movs r3, #1 + 8004be8: e01d b.n 8004c26 assert_param(IS_TIM_INSTANCE(htim->Instance)); assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode)); assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision)); assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload)); if (htim->State == HAL_TIM_STATE_RESET) - 8003cca: 687b ldr r3, [r7, #4] - 8003ccc: f893 303d ldrb.w r3, [r3, #61] ; 0x3d - 8003cd0: b2db uxtb r3, r3 - 8003cd2: 2b00 cmp r3, #0 - 8003cd4: d106 bne.n 8003ce4 + 8004bea: 687b ldr r3, [r7, #4] + 8004bec: f893 303d ldrb.w r3, [r3, #61] ; 0x3d + 8004bf0: b2db uxtb r3, r3 + 8004bf2: 2b00 cmp r3, #0 + 8004bf4: d106 bne.n 8004c04 { /* Allocate lock resource and initialize it */ htim->Lock = HAL_UNLOCKED; - 8003cd6: 687b ldr r3, [r7, #4] - 8003cd8: 2200 movs r2, #0 - 8003cda: f883 203c strb.w r2, [r3, #60] ; 0x3c + 8004bf6: 687b ldr r3, [r7, #4] + 8004bf8: 2200 movs r2, #0 + 8004bfa: f883 203c strb.w r2, [r3, #60] ; 0x3c } /* Init the low level hardware : GPIO, CLOCK, NVIC */ htim->Base_MspInitCallback(htim); #else /* Init the low level hardware : GPIO, CLOCK, NVIC */ HAL_TIM_Base_MspInit(htim); - 8003cde: 6878 ldr r0, [r7, #4] - 8003ce0: f7fd ffcc bl 8001c7c + 8004bfe: 6878 ldr r0, [r7, #4] + 8004c00: f7fd ffcc bl 8002b9c #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } /* Set the TIM state */ htim->State = HAL_TIM_STATE_BUSY; - 8003ce4: 687b ldr r3, [r7, #4] - 8003ce6: 2202 movs r2, #2 - 8003ce8: f883 203d strb.w r2, [r3, #61] ; 0x3d + 8004c04: 687b ldr r3, [r7, #4] + 8004c06: 2202 movs r2, #2 + 8004c08: f883 203d strb.w r2, [r3, #61] ; 0x3d /* Set the Time Base configuration */ TIM_Base_SetConfig(htim->Instance, &htim->Init); - 8003cec: 687b ldr r3, [r7, #4] - 8003cee: 681a ldr r2, [r3, #0] - 8003cf0: 687b ldr r3, [r7, #4] - 8003cf2: 3304 adds r3, #4 - 8003cf4: 4619 mov r1, r3 - 8003cf6: 4610 mov r0, r2 - 8003cf8: f000 f9ae bl 8004058 + 8004c0c: 687b ldr r3, [r7, #4] + 8004c0e: 681a ldr r2, [r3, #0] + 8004c10: 687b ldr r3, [r7, #4] + 8004c12: 3304 adds r3, #4 + 8004c14: 4619 mov r1, r3 + 8004c16: 4610 mov r0, r2 + 8004c18: f000 f9ae bl 8004f78 /* Initialize the TIM state*/ htim->State = HAL_TIM_STATE_READY; - 8003cfc: 687b ldr r3, [r7, #4] - 8003cfe: 2201 movs r2, #1 - 8003d00: f883 203d strb.w r2, [r3, #61] ; 0x3d + 8004c1c: 687b ldr r3, [r7, #4] + 8004c1e: 2201 movs r2, #1 + 8004c20: f883 203d strb.w r2, [r3, #61] ; 0x3d return HAL_OK; - 8003d04: 2300 movs r3, #0 + 8004c24: 2300 movs r3, #0 } - 8003d06: 4618 mov r0, r3 - 8003d08: 3708 adds r7, #8 - 8003d0a: 46bd mov sp, r7 - 8003d0c: bd80 pop {r7, pc} + 8004c26: 4618 mov r0, r3 + 8004c28: 3708 adds r7, #8 + 8004c2a: 46bd mov sp, r7 + 8004c2c: bd80 pop {r7, pc} -08003d0e : +08004c2e : * @brief Starts the TIM Base generation in interrupt mode. * @param htim TIM Base handle * @retval HAL status */ HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim) { - 8003d0e: b480 push {r7} - 8003d10: b085 sub sp, #20 - 8003d12: af00 add r7, sp, #0 - 8003d14: 6078 str r0, [r7, #4] + 8004c2e: b480 push {r7} + 8004c30: b085 sub sp, #20 + 8004c32: af00 add r7, sp, #0 + 8004c34: 6078 str r0, [r7, #4] /* Check the parameters */ assert_param(IS_TIM_INSTANCE(htim->Instance)); /* Enable the TIM Update interrupt */ __HAL_TIM_ENABLE_IT(htim, TIM_IT_UPDATE); - 8003d16: 687b ldr r3, [r7, #4] - 8003d18: 681b ldr r3, [r3, #0] - 8003d1a: 68da ldr r2, [r3, #12] - 8003d1c: 687b ldr r3, [r7, #4] - 8003d1e: 681b ldr r3, [r3, #0] - 8003d20: f042 0201 orr.w r2, r2, #1 - 8003d24: 60da str r2, [r3, #12] + 8004c36: 687b ldr r3, [r7, #4] + 8004c38: 681b ldr r3, [r3, #0] + 8004c3a: 68da ldr r2, [r3, #12] + 8004c3c: 687b ldr r3, [r7, #4] + 8004c3e: 681b ldr r3, [r3, #0] + 8004c40: f042 0201 orr.w r2, r2, #1 + 8004c44: 60da str r2, [r3, #12] /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */ tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; - 8003d26: 687b ldr r3, [r7, #4] - 8003d28: 681b ldr r3, [r3, #0] - 8003d2a: 689b ldr r3, [r3, #8] - 8003d2c: f003 0307 and.w r3, r3, #7 - 8003d30: 60fb str r3, [r7, #12] + 8004c46: 687b ldr r3, [r7, #4] + 8004c48: 681b ldr r3, [r3, #0] + 8004c4a: 689b ldr r3, [r3, #8] + 8004c4c: f003 0307 and.w r3, r3, #7 + 8004c50: 60fb str r3, [r7, #12] if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) - 8003d32: 68fb ldr r3, [r7, #12] - 8003d34: 2b06 cmp r3, #6 - 8003d36: d007 beq.n 8003d48 + 8004c52: 68fb ldr r3, [r7, #12] + 8004c54: 2b06 cmp r3, #6 + 8004c56: d007 beq.n 8004c68 { __HAL_TIM_ENABLE(htim); - 8003d38: 687b ldr r3, [r7, #4] - 8003d3a: 681b ldr r3, [r3, #0] - 8003d3c: 681a ldr r2, [r3, #0] - 8003d3e: 687b ldr r3, [r7, #4] - 8003d40: 681b ldr r3, [r3, #0] - 8003d42: f042 0201 orr.w r2, r2, #1 - 8003d46: 601a str r2, [r3, #0] + 8004c58: 687b ldr r3, [r7, #4] + 8004c5a: 681b ldr r3, [r3, #0] + 8004c5c: 681a ldr r2, [r3, #0] + 8004c5e: 687b ldr r3, [r7, #4] + 8004c60: 681b ldr r3, [r3, #0] + 8004c62: f042 0201 orr.w r2, r2, #1 + 8004c66: 601a str r2, [r3, #0] } /* Return function status */ return HAL_OK; - 8003d48: 2300 movs r3, #0 + 8004c68: 2300 movs r3, #0 } - 8003d4a: 4618 mov r0, r3 - 8003d4c: 3714 adds r7, #20 - 8003d4e: 46bd mov sp, r7 - 8003d50: f85d 7b04 ldr.w r7, [sp], #4 - 8003d54: 4770 bx lr + 8004c6a: 4618 mov r0, r3 + 8004c6c: 3714 adds r7, #20 + 8004c6e: 46bd mov sp, r7 + 8004c70: f85d 7b04 ldr.w r7, [sp], #4 + 8004c74: 4770 bx lr -08003d56 : +08004c76 : * @arg TIM_OPMODE_SINGLE: Only one pulse will be generated. * @arg TIM_OPMODE_REPETITIVE: Repetitive pulses will be generated. * @retval HAL status */ HAL_StatusTypeDef HAL_TIM_OnePulse_Init(TIM_HandleTypeDef *htim, uint32_t OnePulseMode) { - 8003d56: b580 push {r7, lr} - 8003d58: b082 sub sp, #8 - 8003d5a: af00 add r7, sp, #0 - 8003d5c: 6078 str r0, [r7, #4] - 8003d5e: 6039 str r1, [r7, #0] + 8004c76: b580 push {r7, lr} + 8004c78: b082 sub sp, #8 + 8004c7a: af00 add r7, sp, #0 + 8004c7c: 6078 str r0, [r7, #4] + 8004c7e: 6039 str r1, [r7, #0] /* Check the TIM handle allocation */ if (htim == NULL) - 8003d60: 687b ldr r3, [r7, #4] - 8003d62: 2b00 cmp r3, #0 - 8003d64: d101 bne.n 8003d6a + 8004c80: 687b ldr r3, [r7, #4] + 8004c82: 2b00 cmp r3, #0 + 8004c84: d101 bne.n 8004c8a { return HAL_ERROR; - 8003d66: 2301 movs r3, #1 - 8003d68: e02d b.n 8003dc6 + 8004c86: 2301 movs r3, #1 + 8004c88: e02d b.n 8004ce6 assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode)); assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision)); assert_param(IS_TIM_OPM_MODE(OnePulseMode)); assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload)); if (htim->State == HAL_TIM_STATE_RESET) - 8003d6a: 687b ldr r3, [r7, #4] - 8003d6c: f893 303d ldrb.w r3, [r3, #61] ; 0x3d - 8003d70: b2db uxtb r3, r3 - 8003d72: 2b00 cmp r3, #0 - 8003d74: d106 bne.n 8003d84 + 8004c8a: 687b ldr r3, [r7, #4] + 8004c8c: f893 303d ldrb.w r3, [r3, #61] ; 0x3d + 8004c90: b2db uxtb r3, r3 + 8004c92: 2b00 cmp r3, #0 + 8004c94: d106 bne.n 8004ca4 { /* Allocate lock resource and initialize it */ htim->Lock = HAL_UNLOCKED; - 8003d76: 687b ldr r3, [r7, #4] - 8003d78: 2200 movs r2, #0 - 8003d7a: f883 203c strb.w r2, [r3, #60] ; 0x3c + 8004c96: 687b ldr r3, [r7, #4] + 8004c98: 2200 movs r2, #0 + 8004c9a: f883 203c strb.w r2, [r3, #60] ; 0x3c } /* Init the low level hardware : GPIO, CLOCK, NVIC */ htim->OnePulse_MspInitCallback(htim); #else /* Init the low level hardware : GPIO, CLOCK, NVIC and DMA */ HAL_TIM_OnePulse_MspInit(htim); - 8003d7e: 6878 ldr r0, [r7, #4] - 8003d80: f000 f825 bl 8003dce + 8004c9e: 6878 ldr r0, [r7, #4] + 8004ca0: f000 f825 bl 8004cee #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } /* Set the TIM state */ htim->State = HAL_TIM_STATE_BUSY; - 8003d84: 687b ldr r3, [r7, #4] - 8003d86: 2202 movs r2, #2 - 8003d88: f883 203d strb.w r2, [r3, #61] ; 0x3d + 8004ca4: 687b ldr r3, [r7, #4] + 8004ca6: 2202 movs r2, #2 + 8004ca8: f883 203d strb.w r2, [r3, #61] ; 0x3d /* Configure the Time base in the One Pulse Mode */ TIM_Base_SetConfig(htim->Instance, &htim->Init); - 8003d8c: 687b ldr r3, [r7, #4] - 8003d8e: 681a ldr r2, [r3, #0] - 8003d90: 687b ldr r3, [r7, #4] - 8003d92: 3304 adds r3, #4 - 8003d94: 4619 mov r1, r3 - 8003d96: 4610 mov r0, r2 - 8003d98: f000 f95e bl 8004058 + 8004cac: 687b ldr r3, [r7, #4] + 8004cae: 681a ldr r2, [r3, #0] + 8004cb0: 687b ldr r3, [r7, #4] + 8004cb2: 3304 adds r3, #4 + 8004cb4: 4619 mov r1, r3 + 8004cb6: 4610 mov r0, r2 + 8004cb8: f000 f95e bl 8004f78 /* Reset the OPM Bit */ htim->Instance->CR1 &= ~TIM_CR1_OPM; - 8003d9c: 687b ldr r3, [r7, #4] - 8003d9e: 681b ldr r3, [r3, #0] - 8003da0: 681a ldr r2, [r3, #0] - 8003da2: 687b ldr r3, [r7, #4] - 8003da4: 681b ldr r3, [r3, #0] - 8003da6: f022 0208 bic.w r2, r2, #8 - 8003daa: 601a str r2, [r3, #0] + 8004cbc: 687b ldr r3, [r7, #4] + 8004cbe: 681b ldr r3, [r3, #0] + 8004cc0: 681a ldr r2, [r3, #0] + 8004cc2: 687b ldr r3, [r7, #4] + 8004cc4: 681b ldr r3, [r3, #0] + 8004cc6: f022 0208 bic.w r2, r2, #8 + 8004cca: 601a str r2, [r3, #0] /* Configure the OPM Mode */ htim->Instance->CR1 |= OnePulseMode; - 8003dac: 687b ldr r3, [r7, #4] - 8003dae: 681b ldr r3, [r3, #0] - 8003db0: 6819 ldr r1, [r3, #0] - 8003db2: 687b ldr r3, [r7, #4] - 8003db4: 681b ldr r3, [r3, #0] - 8003db6: 683a ldr r2, [r7, #0] - 8003db8: 430a orrs r2, r1 - 8003dba: 601a str r2, [r3, #0] + 8004ccc: 687b ldr r3, [r7, #4] + 8004cce: 681b ldr r3, [r3, #0] + 8004cd0: 6819 ldr r1, [r3, #0] + 8004cd2: 687b ldr r3, [r7, #4] + 8004cd4: 681b ldr r3, [r3, #0] + 8004cd6: 683a ldr r2, [r7, #0] + 8004cd8: 430a orrs r2, r1 + 8004cda: 601a str r2, [r3, #0] /* Initialize the TIM state*/ htim->State = HAL_TIM_STATE_READY; - 8003dbc: 687b ldr r3, [r7, #4] - 8003dbe: 2201 movs r2, #1 - 8003dc0: f883 203d strb.w r2, [r3, #61] ; 0x3d + 8004cdc: 687b ldr r3, [r7, #4] + 8004cde: 2201 movs r2, #1 + 8004ce0: f883 203d strb.w r2, [r3, #61] ; 0x3d return HAL_OK; - 8003dc4: 2300 movs r3, #0 + 8004ce4: 2300 movs r3, #0 } - 8003dc6: 4618 mov r0, r3 - 8003dc8: 3708 adds r7, #8 - 8003dca: 46bd mov sp, r7 - 8003dcc: bd80 pop {r7, pc} + 8004ce6: 4618 mov r0, r3 + 8004ce8: 3708 adds r7, #8 + 8004cea: 46bd mov sp, r7 + 8004cec: bd80 pop {r7, pc} -08003dce : +08004cee : * @brief Initializes the TIM One Pulse MSP. * @param htim TIM One Pulse handle * @retval None */ __weak void HAL_TIM_OnePulse_MspInit(TIM_HandleTypeDef *htim) { - 8003dce: b480 push {r7} - 8003dd0: b083 sub sp, #12 - 8003dd2: af00 add r7, sp, #0 - 8003dd4: 6078 str r0, [r7, #4] + 8004cee: b480 push {r7} + 8004cf0: b083 sub sp, #12 + 8004cf2: af00 add r7, sp, #0 + 8004cf4: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIM_OnePulse_MspInit could be implemented in the user file */ } - 8003dd6: bf00 nop - 8003dd8: 370c adds r7, #12 - 8003dda: 46bd mov sp, r7 - 8003ddc: f85d 7b04 ldr.w r7, [sp], #4 - 8003de0: 4770 bx lr + 8004cf6: bf00 nop + 8004cf8: 370c adds r7, #12 + 8004cfa: 46bd mov sp, r7 + 8004cfc: f85d 7b04 ldr.w r7, [sp], #4 + 8004d00: 4770 bx lr -08003de2 : +08004d02 : * @brief This function handles TIM interrupts requests. * @param htim TIM handle * @retval None */ void HAL_TIM_IRQHandler(TIM_HandleTypeDef *htim) { - 8003de2: b580 push {r7, lr} - 8003de4: b082 sub sp, #8 - 8003de6: af00 add r7, sp, #0 - 8003de8: 6078 str r0, [r7, #4] + 8004d02: b580 push {r7, lr} + 8004d04: b082 sub sp, #8 + 8004d06: af00 add r7, sp, #0 + 8004d08: 6078 str r0, [r7, #4] /* Capture compare 1 event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC1) != RESET) - 8003dea: 687b ldr r3, [r7, #4] - 8003dec: 681b ldr r3, [r3, #0] - 8003dee: 691b ldr r3, [r3, #16] - 8003df0: f003 0302 and.w r3, r3, #2 - 8003df4: 2b02 cmp r3, #2 - 8003df6: d122 bne.n 8003e3e + 8004d0a: 687b ldr r3, [r7, #4] + 8004d0c: 681b ldr r3, [r3, #0] + 8004d0e: 691b ldr r3, [r3, #16] + 8004d10: f003 0302 and.w r3, r3, #2 + 8004d14: 2b02 cmp r3, #2 + 8004d16: d122 bne.n 8004d5e { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC1) != RESET) - 8003df8: 687b ldr r3, [r7, #4] - 8003dfa: 681b ldr r3, [r3, #0] - 8003dfc: 68db ldr r3, [r3, #12] - 8003dfe: f003 0302 and.w r3, r3, #2 - 8003e02: 2b02 cmp r3, #2 - 8003e04: d11b bne.n 8003e3e + 8004d18: 687b ldr r3, [r7, #4] + 8004d1a: 681b ldr r3, [r3, #0] + 8004d1c: 68db ldr r3, [r3, #12] + 8004d1e: f003 0302 and.w r3, r3, #2 + 8004d22: 2b02 cmp r3, #2 + 8004d24: d11b bne.n 8004d5e { { __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC1); - 8003e06: 687b ldr r3, [r7, #4] - 8003e08: 681b ldr r3, [r3, #0] - 8003e0a: f06f 0202 mvn.w r2, #2 - 8003e0e: 611a str r2, [r3, #16] + 8004d26: 687b ldr r3, [r7, #4] + 8004d28: 681b ldr r3, [r3, #0] + 8004d2a: f06f 0202 mvn.w r2, #2 + 8004d2e: 611a str r2, [r3, #16] htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1; - 8003e10: 687b ldr r3, [r7, #4] - 8003e12: 2201 movs r2, #1 - 8003e14: 771a strb r2, [r3, #28] + 8004d30: 687b ldr r3, [r7, #4] + 8004d32: 2201 movs r2, #1 + 8004d34: 771a strb r2, [r3, #28] /* Input capture event */ if ((htim->Instance->CCMR1 & TIM_CCMR1_CC1S) != 0x00U) - 8003e16: 687b ldr r3, [r7, #4] - 8003e18: 681b ldr r3, [r3, #0] - 8003e1a: 699b ldr r3, [r3, #24] - 8003e1c: f003 0303 and.w r3, r3, #3 - 8003e20: 2b00 cmp r3, #0 - 8003e22: d003 beq.n 8003e2c + 8004d36: 687b ldr r3, [r7, #4] + 8004d38: 681b ldr r3, [r3, #0] + 8004d3a: 699b ldr r3, [r3, #24] + 8004d3c: f003 0303 and.w r3, r3, #3 + 8004d40: 2b00 cmp r3, #0 + 8004d42: d003 beq.n 8004d4c { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->IC_CaptureCallback(htim); #else HAL_TIM_IC_CaptureCallback(htim); - 8003e24: 6878 ldr r0, [r7, #4] - 8003e26: f000 f8f8 bl 800401a - 8003e2a: e005 b.n 8003e38 + 8004d44: 6878 ldr r0, [r7, #4] + 8004d46: f000 f8f8 bl 8004f3a + 8004d4a: e005 b.n 8004d58 { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->OC_DelayElapsedCallback(htim); htim->PWM_PulseFinishedCallback(htim); #else HAL_TIM_OC_DelayElapsedCallback(htim); - 8003e2c: 6878 ldr r0, [r7, #4] - 8003e2e: f000 f8ea bl 8004006 + 8004d4c: 6878 ldr r0, [r7, #4] + 8004d4e: f000 f8ea bl 8004f26 HAL_TIM_PWM_PulseFinishedCallback(htim); - 8003e32: 6878 ldr r0, [r7, #4] - 8003e34: f000 f8fb bl 800402e + 8004d52: 6878 ldr r0, [r7, #4] + 8004d54: f000 f8fb bl 8004f4e #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; - 8003e38: 687b ldr r3, [r7, #4] - 8003e3a: 2200 movs r2, #0 - 8003e3c: 771a strb r2, [r3, #28] + 8004d58: 687b ldr r3, [r7, #4] + 8004d5a: 2200 movs r2, #0 + 8004d5c: 771a strb r2, [r3, #28] } } } /* Capture compare 2 event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC2) != RESET) - 8003e3e: 687b ldr r3, [r7, #4] - 8003e40: 681b ldr r3, [r3, #0] - 8003e42: 691b ldr r3, [r3, #16] - 8003e44: f003 0304 and.w r3, r3, #4 - 8003e48: 2b04 cmp r3, #4 - 8003e4a: d122 bne.n 8003e92 + 8004d5e: 687b ldr r3, [r7, #4] + 8004d60: 681b ldr r3, [r3, #0] + 8004d62: 691b ldr r3, [r3, #16] + 8004d64: f003 0304 and.w r3, r3, #4 + 8004d68: 2b04 cmp r3, #4 + 8004d6a: d122 bne.n 8004db2 { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC2) != RESET) - 8003e4c: 687b ldr r3, [r7, #4] - 8003e4e: 681b ldr r3, [r3, #0] - 8003e50: 68db ldr r3, [r3, #12] - 8003e52: f003 0304 and.w r3, r3, #4 - 8003e56: 2b04 cmp r3, #4 - 8003e58: d11b bne.n 8003e92 + 8004d6c: 687b ldr r3, [r7, #4] + 8004d6e: 681b ldr r3, [r3, #0] + 8004d70: 68db ldr r3, [r3, #12] + 8004d72: f003 0304 and.w r3, r3, #4 + 8004d76: 2b04 cmp r3, #4 + 8004d78: d11b bne.n 8004db2 { __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC2); - 8003e5a: 687b ldr r3, [r7, #4] - 8003e5c: 681b ldr r3, [r3, #0] - 8003e5e: f06f 0204 mvn.w r2, #4 - 8003e62: 611a str r2, [r3, #16] + 8004d7a: 687b ldr r3, [r7, #4] + 8004d7c: 681b ldr r3, [r3, #0] + 8004d7e: f06f 0204 mvn.w r2, #4 + 8004d82: 611a str r2, [r3, #16] htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2; - 8003e64: 687b ldr r3, [r7, #4] - 8003e66: 2202 movs r2, #2 - 8003e68: 771a strb r2, [r3, #28] + 8004d84: 687b ldr r3, [r7, #4] + 8004d86: 2202 movs r2, #2 + 8004d88: 771a strb r2, [r3, #28] /* Input capture event */ if ((htim->Instance->CCMR1 & TIM_CCMR1_CC2S) != 0x00U) - 8003e6a: 687b ldr r3, [r7, #4] - 8003e6c: 681b ldr r3, [r3, #0] - 8003e6e: 699b ldr r3, [r3, #24] - 8003e70: f403 7340 and.w r3, r3, #768 ; 0x300 - 8003e74: 2b00 cmp r3, #0 - 8003e76: d003 beq.n 8003e80 + 8004d8a: 687b ldr r3, [r7, #4] + 8004d8c: 681b ldr r3, [r3, #0] + 8004d8e: 699b ldr r3, [r3, #24] + 8004d90: f403 7340 and.w r3, r3, #768 ; 0x300 + 8004d94: 2b00 cmp r3, #0 + 8004d96: d003 beq.n 8004da0 { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->IC_CaptureCallback(htim); #else HAL_TIM_IC_CaptureCallback(htim); - 8003e78: 6878 ldr r0, [r7, #4] - 8003e7a: f000 f8ce bl 800401a - 8003e7e: e005 b.n 8003e8c + 8004d98: 6878 ldr r0, [r7, #4] + 8004d9a: f000 f8ce bl 8004f3a + 8004d9e: e005 b.n 8004dac { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->OC_DelayElapsedCallback(htim); htim->PWM_PulseFinishedCallback(htim); #else HAL_TIM_OC_DelayElapsedCallback(htim); - 8003e80: 6878 ldr r0, [r7, #4] - 8003e82: f000 f8c0 bl 8004006 + 8004da0: 6878 ldr r0, [r7, #4] + 8004da2: f000 f8c0 bl 8004f26 HAL_TIM_PWM_PulseFinishedCallback(htim); - 8003e86: 6878 ldr r0, [r7, #4] - 8003e88: f000 f8d1 bl 800402e + 8004da6: 6878 ldr r0, [r7, #4] + 8004da8: f000 f8d1 bl 8004f4e #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; - 8003e8c: 687b ldr r3, [r7, #4] - 8003e8e: 2200 movs r2, #0 - 8003e90: 771a strb r2, [r3, #28] + 8004dac: 687b ldr r3, [r7, #4] + 8004dae: 2200 movs r2, #0 + 8004db0: 771a strb r2, [r3, #28] } } /* Capture compare 3 event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC3) != RESET) - 8003e92: 687b ldr r3, [r7, #4] - 8003e94: 681b ldr r3, [r3, #0] - 8003e96: 691b ldr r3, [r3, #16] - 8003e98: f003 0308 and.w r3, r3, #8 - 8003e9c: 2b08 cmp r3, #8 - 8003e9e: d122 bne.n 8003ee6 + 8004db2: 687b ldr r3, [r7, #4] + 8004db4: 681b ldr r3, [r3, #0] + 8004db6: 691b ldr r3, [r3, #16] + 8004db8: f003 0308 and.w r3, r3, #8 + 8004dbc: 2b08 cmp r3, #8 + 8004dbe: d122 bne.n 8004e06 { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC3) != RESET) - 8003ea0: 687b ldr r3, [r7, #4] - 8003ea2: 681b ldr r3, [r3, #0] - 8003ea4: 68db ldr r3, [r3, #12] - 8003ea6: f003 0308 and.w r3, r3, #8 - 8003eaa: 2b08 cmp r3, #8 - 8003eac: d11b bne.n 8003ee6 + 8004dc0: 687b ldr r3, [r7, #4] + 8004dc2: 681b ldr r3, [r3, #0] + 8004dc4: 68db ldr r3, [r3, #12] + 8004dc6: f003 0308 and.w r3, r3, #8 + 8004dca: 2b08 cmp r3, #8 + 8004dcc: d11b bne.n 8004e06 { __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC3); - 8003eae: 687b ldr r3, [r7, #4] - 8003eb0: 681b ldr r3, [r3, #0] - 8003eb2: f06f 0208 mvn.w r2, #8 - 8003eb6: 611a str r2, [r3, #16] + 8004dce: 687b ldr r3, [r7, #4] + 8004dd0: 681b ldr r3, [r3, #0] + 8004dd2: f06f 0208 mvn.w r2, #8 + 8004dd6: 611a str r2, [r3, #16] htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3; - 8003eb8: 687b ldr r3, [r7, #4] - 8003eba: 2204 movs r2, #4 - 8003ebc: 771a strb r2, [r3, #28] + 8004dd8: 687b ldr r3, [r7, #4] + 8004dda: 2204 movs r2, #4 + 8004ddc: 771a strb r2, [r3, #28] /* Input capture event */ if ((htim->Instance->CCMR2 & TIM_CCMR2_CC3S) != 0x00U) - 8003ebe: 687b ldr r3, [r7, #4] - 8003ec0: 681b ldr r3, [r3, #0] - 8003ec2: 69db ldr r3, [r3, #28] - 8003ec4: f003 0303 and.w r3, r3, #3 - 8003ec8: 2b00 cmp r3, #0 - 8003eca: d003 beq.n 8003ed4 + 8004dde: 687b ldr r3, [r7, #4] + 8004de0: 681b ldr r3, [r3, #0] + 8004de2: 69db ldr r3, [r3, #28] + 8004de4: f003 0303 and.w r3, r3, #3 + 8004de8: 2b00 cmp r3, #0 + 8004dea: d003 beq.n 8004df4 { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->IC_CaptureCallback(htim); #else HAL_TIM_IC_CaptureCallback(htim); - 8003ecc: 6878 ldr r0, [r7, #4] - 8003ece: f000 f8a4 bl 800401a - 8003ed2: e005 b.n 8003ee0 + 8004dec: 6878 ldr r0, [r7, #4] + 8004dee: f000 f8a4 bl 8004f3a + 8004df2: e005 b.n 8004e00 { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->OC_DelayElapsedCallback(htim); htim->PWM_PulseFinishedCallback(htim); #else HAL_TIM_OC_DelayElapsedCallback(htim); - 8003ed4: 6878 ldr r0, [r7, #4] - 8003ed6: f000 f896 bl 8004006 + 8004df4: 6878 ldr r0, [r7, #4] + 8004df6: f000 f896 bl 8004f26 HAL_TIM_PWM_PulseFinishedCallback(htim); - 8003eda: 6878 ldr r0, [r7, #4] - 8003edc: f000 f8a7 bl 800402e + 8004dfa: 6878 ldr r0, [r7, #4] + 8004dfc: f000 f8a7 bl 8004f4e #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; - 8003ee0: 687b ldr r3, [r7, #4] - 8003ee2: 2200 movs r2, #0 - 8003ee4: 771a strb r2, [r3, #28] + 8004e00: 687b ldr r3, [r7, #4] + 8004e02: 2200 movs r2, #0 + 8004e04: 771a strb r2, [r3, #28] } } /* Capture compare 4 event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC4) != RESET) - 8003ee6: 687b ldr r3, [r7, #4] - 8003ee8: 681b ldr r3, [r3, #0] - 8003eea: 691b ldr r3, [r3, #16] - 8003eec: f003 0310 and.w r3, r3, #16 - 8003ef0: 2b10 cmp r3, #16 - 8003ef2: d122 bne.n 8003f3a + 8004e06: 687b ldr r3, [r7, #4] + 8004e08: 681b ldr r3, [r3, #0] + 8004e0a: 691b ldr r3, [r3, #16] + 8004e0c: f003 0310 and.w r3, r3, #16 + 8004e10: 2b10 cmp r3, #16 + 8004e12: d122 bne.n 8004e5a { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC4) != RESET) - 8003ef4: 687b ldr r3, [r7, #4] - 8003ef6: 681b ldr r3, [r3, #0] - 8003ef8: 68db ldr r3, [r3, #12] - 8003efa: f003 0310 and.w r3, r3, #16 - 8003efe: 2b10 cmp r3, #16 - 8003f00: d11b bne.n 8003f3a + 8004e14: 687b ldr r3, [r7, #4] + 8004e16: 681b ldr r3, [r3, #0] + 8004e18: 68db ldr r3, [r3, #12] + 8004e1a: f003 0310 and.w r3, r3, #16 + 8004e1e: 2b10 cmp r3, #16 + 8004e20: d11b bne.n 8004e5a { __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC4); - 8003f02: 687b ldr r3, [r7, #4] - 8003f04: 681b ldr r3, [r3, #0] - 8003f06: f06f 0210 mvn.w r2, #16 - 8003f0a: 611a str r2, [r3, #16] + 8004e22: 687b ldr r3, [r7, #4] + 8004e24: 681b ldr r3, [r3, #0] + 8004e26: f06f 0210 mvn.w r2, #16 + 8004e2a: 611a str r2, [r3, #16] htim->Channel = HAL_TIM_ACTIVE_CHANNEL_4; - 8003f0c: 687b ldr r3, [r7, #4] - 8003f0e: 2208 movs r2, #8 - 8003f10: 771a strb r2, [r3, #28] + 8004e2c: 687b ldr r3, [r7, #4] + 8004e2e: 2208 movs r2, #8 + 8004e30: 771a strb r2, [r3, #28] /* Input capture event */ if ((htim->Instance->CCMR2 & TIM_CCMR2_CC4S) != 0x00U) - 8003f12: 687b ldr r3, [r7, #4] - 8003f14: 681b ldr r3, [r3, #0] - 8003f16: 69db ldr r3, [r3, #28] - 8003f18: f403 7340 and.w r3, r3, #768 ; 0x300 - 8003f1c: 2b00 cmp r3, #0 - 8003f1e: d003 beq.n 8003f28 + 8004e32: 687b ldr r3, [r7, #4] + 8004e34: 681b ldr r3, [r3, #0] + 8004e36: 69db ldr r3, [r3, #28] + 8004e38: f403 7340 and.w r3, r3, #768 ; 0x300 + 8004e3c: 2b00 cmp r3, #0 + 8004e3e: d003 beq.n 8004e48 { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->IC_CaptureCallback(htim); #else HAL_TIM_IC_CaptureCallback(htim); - 8003f20: 6878 ldr r0, [r7, #4] - 8003f22: f000 f87a bl 800401a - 8003f26: e005 b.n 8003f34 + 8004e40: 6878 ldr r0, [r7, #4] + 8004e42: f000 f87a bl 8004f3a + 8004e46: e005 b.n 8004e54 { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->OC_DelayElapsedCallback(htim); htim->PWM_PulseFinishedCallback(htim); #else HAL_TIM_OC_DelayElapsedCallback(htim); - 8003f28: 6878 ldr r0, [r7, #4] - 8003f2a: f000 f86c bl 8004006 + 8004e48: 6878 ldr r0, [r7, #4] + 8004e4a: f000 f86c bl 8004f26 HAL_TIM_PWM_PulseFinishedCallback(htim); - 8003f2e: 6878 ldr r0, [r7, #4] - 8003f30: f000 f87d bl 800402e + 8004e4e: 6878 ldr r0, [r7, #4] + 8004e50: f000 f87d bl 8004f4e #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; - 8003f34: 687b ldr r3, [r7, #4] - 8003f36: 2200 movs r2, #0 - 8003f38: 771a strb r2, [r3, #28] + 8004e54: 687b ldr r3, [r7, #4] + 8004e56: 2200 movs r2, #0 + 8004e58: 771a strb r2, [r3, #28] } } /* TIM Update event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_UPDATE) != RESET) - 8003f3a: 687b ldr r3, [r7, #4] - 8003f3c: 681b ldr r3, [r3, #0] - 8003f3e: 691b ldr r3, [r3, #16] - 8003f40: f003 0301 and.w r3, r3, #1 - 8003f44: 2b01 cmp r3, #1 - 8003f46: d10e bne.n 8003f66 + 8004e5a: 687b ldr r3, [r7, #4] + 8004e5c: 681b ldr r3, [r3, #0] + 8004e5e: 691b ldr r3, [r3, #16] + 8004e60: f003 0301 and.w r3, r3, #1 + 8004e64: 2b01 cmp r3, #1 + 8004e66: d10e bne.n 8004e86 { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_UPDATE) != RESET) - 8003f48: 687b ldr r3, [r7, #4] - 8003f4a: 681b ldr r3, [r3, #0] - 8003f4c: 68db ldr r3, [r3, #12] - 8003f4e: f003 0301 and.w r3, r3, #1 - 8003f52: 2b01 cmp r3, #1 - 8003f54: d107 bne.n 8003f66 + 8004e68: 687b ldr r3, [r7, #4] + 8004e6a: 681b ldr r3, [r3, #0] + 8004e6c: 68db ldr r3, [r3, #12] + 8004e6e: f003 0301 and.w r3, r3, #1 + 8004e72: 2b01 cmp r3, #1 + 8004e74: d107 bne.n 8004e86 { __HAL_TIM_CLEAR_IT(htim, TIM_IT_UPDATE); - 8003f56: 687b ldr r3, [r7, #4] - 8003f58: 681b ldr r3, [r3, #0] - 8003f5a: f06f 0201 mvn.w r2, #1 - 8003f5e: 611a str r2, [r3, #16] + 8004e76: 687b ldr r3, [r7, #4] + 8004e78: 681b ldr r3, [r3, #0] + 8004e7a: f06f 0201 mvn.w r2, #1 + 8004e7e: 611a str r2, [r3, #16] #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->PeriodElapsedCallback(htim); #else HAL_TIM_PeriodElapsedCallback(htim); - 8003f60: 6878 ldr r0, [r7, #4] - 8003f62: f000 f846 bl 8003ff2 + 8004e80: 6878 ldr r0, [r7, #4] + 8004e82: f000 f846 bl 8004f12 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } } /* TIM Break input event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_BREAK) != RESET) - 8003f66: 687b ldr r3, [r7, #4] - 8003f68: 681b ldr r3, [r3, #0] - 8003f6a: 691b ldr r3, [r3, #16] - 8003f6c: f003 0380 and.w r3, r3, #128 ; 0x80 - 8003f70: 2b80 cmp r3, #128 ; 0x80 - 8003f72: d10e bne.n 8003f92 + 8004e86: 687b ldr r3, [r7, #4] + 8004e88: 681b ldr r3, [r3, #0] + 8004e8a: 691b ldr r3, [r3, #16] + 8004e8c: f003 0380 and.w r3, r3, #128 ; 0x80 + 8004e90: 2b80 cmp r3, #128 ; 0x80 + 8004e92: d10e bne.n 8004eb2 { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_BREAK) != RESET) - 8003f74: 687b ldr r3, [r7, #4] - 8003f76: 681b ldr r3, [r3, #0] - 8003f78: 68db ldr r3, [r3, #12] - 8003f7a: f003 0380 and.w r3, r3, #128 ; 0x80 - 8003f7e: 2b80 cmp r3, #128 ; 0x80 - 8003f80: d107 bne.n 8003f92 + 8004e94: 687b ldr r3, [r7, #4] + 8004e96: 681b ldr r3, [r3, #0] + 8004e98: 68db ldr r3, [r3, #12] + 8004e9a: f003 0380 and.w r3, r3, #128 ; 0x80 + 8004e9e: 2b80 cmp r3, #128 ; 0x80 + 8004ea0: d107 bne.n 8004eb2 { __HAL_TIM_CLEAR_IT(htim, TIM_IT_BREAK); - 8003f82: 687b ldr r3, [r7, #4] - 8003f84: 681b ldr r3, [r3, #0] - 8003f86: f06f 0280 mvn.w r2, #128 ; 0x80 - 8003f8a: 611a str r2, [r3, #16] + 8004ea2: 687b ldr r3, [r7, #4] + 8004ea4: 681b ldr r3, [r3, #0] + 8004ea6: f06f 0280 mvn.w r2, #128 ; 0x80 + 8004eaa: 611a str r2, [r3, #16] #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->BreakCallback(htim); #else HAL_TIMEx_BreakCallback(htim); - 8003f8c: 6878 ldr r0, [r7, #4] - 8003f8e: f000 f989 bl 80042a4 + 8004eac: 6878 ldr r0, [r7, #4] + 8004eae: f000 f989 bl 80051c4 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } } /* TIM Trigger detection event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_TRIGGER) != RESET) - 8003f92: 687b ldr r3, [r7, #4] - 8003f94: 681b ldr r3, [r3, #0] - 8003f96: 691b ldr r3, [r3, #16] - 8003f98: f003 0340 and.w r3, r3, #64 ; 0x40 - 8003f9c: 2b40 cmp r3, #64 ; 0x40 - 8003f9e: d10e bne.n 8003fbe + 8004eb2: 687b ldr r3, [r7, #4] + 8004eb4: 681b ldr r3, [r3, #0] + 8004eb6: 691b ldr r3, [r3, #16] + 8004eb8: f003 0340 and.w r3, r3, #64 ; 0x40 + 8004ebc: 2b40 cmp r3, #64 ; 0x40 + 8004ebe: d10e bne.n 8004ede { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_TRIGGER) != RESET) - 8003fa0: 687b ldr r3, [r7, #4] - 8003fa2: 681b ldr r3, [r3, #0] - 8003fa4: 68db ldr r3, [r3, #12] - 8003fa6: f003 0340 and.w r3, r3, #64 ; 0x40 - 8003faa: 2b40 cmp r3, #64 ; 0x40 - 8003fac: d107 bne.n 8003fbe + 8004ec0: 687b ldr r3, [r7, #4] + 8004ec2: 681b ldr r3, [r3, #0] + 8004ec4: 68db ldr r3, [r3, #12] + 8004ec6: f003 0340 and.w r3, r3, #64 ; 0x40 + 8004eca: 2b40 cmp r3, #64 ; 0x40 + 8004ecc: d107 bne.n 8004ede { __HAL_TIM_CLEAR_IT(htim, TIM_IT_TRIGGER); - 8003fae: 687b ldr r3, [r7, #4] - 8003fb0: 681b ldr r3, [r3, #0] - 8003fb2: f06f 0240 mvn.w r2, #64 ; 0x40 - 8003fb6: 611a str r2, [r3, #16] + 8004ece: 687b ldr r3, [r7, #4] + 8004ed0: 681b ldr r3, [r3, #0] + 8004ed2: f06f 0240 mvn.w r2, #64 ; 0x40 + 8004ed6: 611a str r2, [r3, #16] #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->TriggerCallback(htim); #else HAL_TIM_TriggerCallback(htim); - 8003fb8: 6878 ldr r0, [r7, #4] - 8003fba: f000 f842 bl 8004042 + 8004ed8: 6878 ldr r0, [r7, #4] + 8004eda: f000 f842 bl 8004f62 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } } /* TIM commutation event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_COM) != RESET) - 8003fbe: 687b ldr r3, [r7, #4] - 8003fc0: 681b ldr r3, [r3, #0] - 8003fc2: 691b ldr r3, [r3, #16] - 8003fc4: f003 0320 and.w r3, r3, #32 - 8003fc8: 2b20 cmp r3, #32 - 8003fca: d10e bne.n 8003fea + 8004ede: 687b ldr r3, [r7, #4] + 8004ee0: 681b ldr r3, [r3, #0] + 8004ee2: 691b ldr r3, [r3, #16] + 8004ee4: f003 0320 and.w r3, r3, #32 + 8004ee8: 2b20 cmp r3, #32 + 8004eea: d10e bne.n 8004f0a { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_COM) != RESET) - 8003fcc: 687b ldr r3, [r7, #4] - 8003fce: 681b ldr r3, [r3, #0] - 8003fd0: 68db ldr r3, [r3, #12] - 8003fd2: f003 0320 and.w r3, r3, #32 - 8003fd6: 2b20 cmp r3, #32 - 8003fd8: d107 bne.n 8003fea + 8004eec: 687b ldr r3, [r7, #4] + 8004eee: 681b ldr r3, [r3, #0] + 8004ef0: 68db ldr r3, [r3, #12] + 8004ef2: f003 0320 and.w r3, r3, #32 + 8004ef6: 2b20 cmp r3, #32 + 8004ef8: d107 bne.n 8004f0a { __HAL_TIM_CLEAR_IT(htim, TIM_FLAG_COM); - 8003fda: 687b ldr r3, [r7, #4] - 8003fdc: 681b ldr r3, [r3, #0] - 8003fde: f06f 0220 mvn.w r2, #32 - 8003fe2: 611a str r2, [r3, #16] + 8004efa: 687b ldr r3, [r7, #4] + 8004efc: 681b ldr r3, [r3, #0] + 8004efe: f06f 0220 mvn.w r2, #32 + 8004f02: 611a str r2, [r3, #16] #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->CommutationCallback(htim); #else HAL_TIMEx_CommutCallback(htim); - 8003fe4: 6878 ldr r0, [r7, #4] - 8003fe6: f000 f953 bl 8004290 + 8004f04: 6878 ldr r0, [r7, #4] + 8004f06: f000 f953 bl 80051b0 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } } } - 8003fea: bf00 nop - 8003fec: 3708 adds r7, #8 - 8003fee: 46bd mov sp, r7 - 8003ff0: bd80 pop {r7, pc} + 8004f0a: bf00 nop + 8004f0c: 3708 adds r7, #8 + 8004f0e: 46bd mov sp, r7 + 8004f10: bd80 pop {r7, pc} -08003ff2 : +08004f12 : * @brief Period elapsed callback in non-blocking mode * @param htim TIM handle * @retval None */ __weak void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { - 8003ff2: b480 push {r7} - 8003ff4: b083 sub sp, #12 - 8003ff6: af00 add r7, sp, #0 - 8003ff8: 6078 str r0, [r7, #4] + 8004f12: b480 push {r7} + 8004f14: b083 sub sp, #12 + 8004f16: af00 add r7, sp, #0 + 8004f18: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIM_PeriodElapsedCallback could be implemented in the user file */ } - 8003ffa: bf00 nop - 8003ffc: 370c adds r7, #12 - 8003ffe: 46bd mov sp, r7 - 8004000: f85d 7b04 ldr.w r7, [sp], #4 - 8004004: 4770 bx lr + 8004f1a: bf00 nop + 8004f1c: 370c adds r7, #12 + 8004f1e: 46bd mov sp, r7 + 8004f20: f85d 7b04 ldr.w r7, [sp], #4 + 8004f24: 4770 bx lr -08004006 : +08004f26 : * @brief Output Compare callback in non-blocking mode * @param htim TIM OC handle * @retval None */ __weak void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim) { - 8004006: b480 push {r7} - 8004008: b083 sub sp, #12 - 800400a: af00 add r7, sp, #0 - 800400c: 6078 str r0, [r7, #4] + 8004f26: b480 push {r7} + 8004f28: b083 sub sp, #12 + 8004f2a: af00 add r7, sp, #0 + 8004f2c: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIM_OC_DelayElapsedCallback could be implemented in the user file */ } - 800400e: bf00 nop - 8004010: 370c adds r7, #12 - 8004012: 46bd mov sp, r7 - 8004014: f85d 7b04 ldr.w r7, [sp], #4 - 8004018: 4770 bx lr + 8004f2e: bf00 nop + 8004f30: 370c adds r7, #12 + 8004f32: 46bd mov sp, r7 + 8004f34: f85d 7b04 ldr.w r7, [sp], #4 + 8004f38: 4770 bx lr -0800401a : +08004f3a : * @brief Input Capture callback in non-blocking mode * @param htim TIM IC handle * @retval None */ __weak void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim) { - 800401a: b480 push {r7} - 800401c: b083 sub sp, #12 - 800401e: af00 add r7, sp, #0 - 8004020: 6078 str r0, [r7, #4] + 8004f3a: b480 push {r7} + 8004f3c: b083 sub sp, #12 + 8004f3e: af00 add r7, sp, #0 + 8004f40: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIM_IC_CaptureCallback could be implemented in the user file */ } - 8004022: bf00 nop - 8004024: 370c adds r7, #12 - 8004026: 46bd mov sp, r7 - 8004028: f85d 7b04 ldr.w r7, [sp], #4 - 800402c: 4770 bx lr + 8004f42: bf00 nop + 8004f44: 370c adds r7, #12 + 8004f46: 46bd mov sp, r7 + 8004f48: f85d 7b04 ldr.w r7, [sp], #4 + 8004f4c: 4770 bx lr -0800402e : +08004f4e : * @brief PWM Pulse finished callback in non-blocking mode * @param htim TIM handle * @retval None */ __weak void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim) { - 800402e: b480 push {r7} - 8004030: b083 sub sp, #12 - 8004032: af00 add r7, sp, #0 - 8004034: 6078 str r0, [r7, #4] + 8004f4e: b480 push {r7} + 8004f50: b083 sub sp, #12 + 8004f52: af00 add r7, sp, #0 + 8004f54: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIM_PWM_PulseFinishedCallback could be implemented in the user file */ } - 8004036: bf00 nop - 8004038: 370c adds r7, #12 - 800403a: 46bd mov sp, r7 - 800403c: f85d 7b04 ldr.w r7, [sp], #4 - 8004040: 4770 bx lr + 8004f56: bf00 nop + 8004f58: 370c adds r7, #12 + 8004f5a: 46bd mov sp, r7 + 8004f5c: f85d 7b04 ldr.w r7, [sp], #4 + 8004f60: 4770 bx lr -08004042 : +08004f62 : * @brief Hall Trigger detection callback in non-blocking mode * @param htim TIM handle * @retval None */ __weak void HAL_TIM_TriggerCallback(TIM_HandleTypeDef *htim) { - 8004042: b480 push {r7} - 8004044: b083 sub sp, #12 - 8004046: af00 add r7, sp, #0 - 8004048: 6078 str r0, [r7, #4] + 8004f62: b480 push {r7} + 8004f64: b083 sub sp, #12 + 8004f66: af00 add r7, sp, #0 + 8004f68: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIM_TriggerCallback could be implemented in the user file */ } - 800404a: bf00 nop - 800404c: 370c adds r7, #12 - 800404e: 46bd mov sp, r7 - 8004050: f85d 7b04 ldr.w r7, [sp], #4 - 8004054: 4770 bx lr + 8004f6a: bf00 nop + 8004f6c: 370c adds r7, #12 + 8004f6e: 46bd mov sp, r7 + 8004f70: f85d 7b04 ldr.w r7, [sp], #4 + 8004f74: 4770 bx lr ... -08004058 : +08004f78 : * @param TIMx TIM peripheral * @param Structure TIM Base configuration structure * @retval None */ void TIM_Base_SetConfig(TIM_TypeDef *TIMx, TIM_Base_InitTypeDef *Structure) { - 8004058: b480 push {r7} - 800405a: b085 sub sp, #20 - 800405c: af00 add r7, sp, #0 - 800405e: 6078 str r0, [r7, #4] - 8004060: 6039 str r1, [r7, #0] + 8004f78: b480 push {r7} + 8004f7a: b085 sub sp, #20 + 8004f7c: af00 add r7, sp, #0 + 8004f7e: 6078 str r0, [r7, #4] + 8004f80: 6039 str r1, [r7, #0] uint32_t tmpcr1; tmpcr1 = TIMx->CR1; - 8004062: 687b ldr r3, [r7, #4] - 8004064: 681b ldr r3, [r3, #0] - 8004066: 60fb str r3, [r7, #12] + 8004f82: 687b ldr r3, [r7, #4] + 8004f84: 681b ldr r3, [r3, #0] + 8004f86: 60fb str r3, [r7, #12] /* Set TIM Time Base Unit parameters ---------------------------------------*/ if (IS_TIM_COUNTER_MODE_SELECT_INSTANCE(TIMx)) - 8004068: 687b ldr r3, [r7, #4] - 800406a: 4a40 ldr r2, [pc, #256] ; (800416c ) - 800406c: 4293 cmp r3, r2 - 800406e: d013 beq.n 8004098 - 8004070: 687b ldr r3, [r7, #4] - 8004072: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 - 8004076: d00f beq.n 8004098 - 8004078: 687b ldr r3, [r7, #4] - 800407a: 4a3d ldr r2, [pc, #244] ; (8004170 ) - 800407c: 4293 cmp r3, r2 - 800407e: d00b beq.n 8004098 - 8004080: 687b ldr r3, [r7, #4] - 8004082: 4a3c ldr r2, [pc, #240] ; (8004174 ) - 8004084: 4293 cmp r3, r2 - 8004086: d007 beq.n 8004098 - 8004088: 687b ldr r3, [r7, #4] - 800408a: 4a3b ldr r2, [pc, #236] ; (8004178 ) - 800408c: 4293 cmp r3, r2 - 800408e: d003 beq.n 8004098 - 8004090: 687b ldr r3, [r7, #4] - 8004092: 4a3a ldr r2, [pc, #232] ; (800417c ) - 8004094: 4293 cmp r3, r2 - 8004096: d108 bne.n 80040aa + 8004f88: 687b ldr r3, [r7, #4] + 8004f8a: 4a40 ldr r2, [pc, #256] ; (800508c ) + 8004f8c: 4293 cmp r3, r2 + 8004f8e: d013 beq.n 8004fb8 + 8004f90: 687b ldr r3, [r7, #4] + 8004f92: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 + 8004f96: d00f beq.n 8004fb8 + 8004f98: 687b ldr r3, [r7, #4] + 8004f9a: 4a3d ldr r2, [pc, #244] ; (8005090 ) + 8004f9c: 4293 cmp r3, r2 + 8004f9e: d00b beq.n 8004fb8 + 8004fa0: 687b ldr r3, [r7, #4] + 8004fa2: 4a3c ldr r2, [pc, #240] ; (8005094 ) + 8004fa4: 4293 cmp r3, r2 + 8004fa6: d007 beq.n 8004fb8 + 8004fa8: 687b ldr r3, [r7, #4] + 8004faa: 4a3b ldr r2, [pc, #236] ; (8005098 ) + 8004fac: 4293 cmp r3, r2 + 8004fae: d003 beq.n 8004fb8 + 8004fb0: 687b ldr r3, [r7, #4] + 8004fb2: 4a3a ldr r2, [pc, #232] ; (800509c ) + 8004fb4: 4293 cmp r3, r2 + 8004fb6: d108 bne.n 8004fca { /* Select the Counter Mode */ tmpcr1 &= ~(TIM_CR1_DIR | TIM_CR1_CMS); - 8004098: 68fb ldr r3, [r7, #12] - 800409a: f023 0370 bic.w r3, r3, #112 ; 0x70 - 800409e: 60fb str r3, [r7, #12] + 8004fb8: 68fb ldr r3, [r7, #12] + 8004fba: f023 0370 bic.w r3, r3, #112 ; 0x70 + 8004fbe: 60fb str r3, [r7, #12] tmpcr1 |= Structure->CounterMode; - 80040a0: 683b ldr r3, [r7, #0] - 80040a2: 685b ldr r3, [r3, #4] - 80040a4: 68fa ldr r2, [r7, #12] - 80040a6: 4313 orrs r3, r2 - 80040a8: 60fb str r3, [r7, #12] + 8004fc0: 683b ldr r3, [r7, #0] + 8004fc2: 685b ldr r3, [r3, #4] + 8004fc4: 68fa ldr r2, [r7, #12] + 8004fc6: 4313 orrs r3, r2 + 8004fc8: 60fb str r3, [r7, #12] } if (IS_TIM_CLOCK_DIVISION_INSTANCE(TIMx)) - 80040aa: 687b ldr r3, [r7, #4] - 80040ac: 4a2f ldr r2, [pc, #188] ; (800416c ) - 80040ae: 4293 cmp r3, r2 - 80040b0: d02b beq.n 800410a - 80040b2: 687b ldr r3, [r7, #4] - 80040b4: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 - 80040b8: d027 beq.n 800410a - 80040ba: 687b ldr r3, [r7, #4] - 80040bc: 4a2c ldr r2, [pc, #176] ; (8004170 ) - 80040be: 4293 cmp r3, r2 - 80040c0: d023 beq.n 800410a - 80040c2: 687b ldr r3, [r7, #4] - 80040c4: 4a2b ldr r2, [pc, #172] ; (8004174 ) - 80040c6: 4293 cmp r3, r2 - 80040c8: d01f beq.n 800410a - 80040ca: 687b ldr r3, [r7, #4] - 80040cc: 4a2a ldr r2, [pc, #168] ; (8004178 ) - 80040ce: 4293 cmp r3, r2 - 80040d0: d01b beq.n 800410a - 80040d2: 687b ldr r3, [r7, #4] - 80040d4: 4a29 ldr r2, [pc, #164] ; (800417c ) - 80040d6: 4293 cmp r3, r2 - 80040d8: d017 beq.n 800410a - 80040da: 687b ldr r3, [r7, #4] - 80040dc: 4a28 ldr r2, [pc, #160] ; (8004180 ) - 80040de: 4293 cmp r3, r2 - 80040e0: d013 beq.n 800410a - 80040e2: 687b ldr r3, [r7, #4] - 80040e4: 4a27 ldr r2, [pc, #156] ; (8004184 ) - 80040e6: 4293 cmp r3, r2 - 80040e8: d00f beq.n 800410a - 80040ea: 687b ldr r3, [r7, #4] - 80040ec: 4a26 ldr r2, [pc, #152] ; (8004188 ) - 80040ee: 4293 cmp r3, r2 - 80040f0: d00b beq.n 800410a - 80040f2: 687b ldr r3, [r7, #4] - 80040f4: 4a25 ldr r2, [pc, #148] ; (800418c ) - 80040f6: 4293 cmp r3, r2 - 80040f8: d007 beq.n 800410a - 80040fa: 687b ldr r3, [r7, #4] - 80040fc: 4a24 ldr r2, [pc, #144] ; (8004190 ) - 80040fe: 4293 cmp r3, r2 - 8004100: d003 beq.n 800410a - 8004102: 687b ldr r3, [r7, #4] - 8004104: 4a23 ldr r2, [pc, #140] ; (8004194 ) - 8004106: 4293 cmp r3, r2 - 8004108: d108 bne.n 800411c + 8004fca: 687b ldr r3, [r7, #4] + 8004fcc: 4a2f ldr r2, [pc, #188] ; (800508c ) + 8004fce: 4293 cmp r3, r2 + 8004fd0: d02b beq.n 800502a + 8004fd2: 687b ldr r3, [r7, #4] + 8004fd4: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 + 8004fd8: d027 beq.n 800502a + 8004fda: 687b ldr r3, [r7, #4] + 8004fdc: 4a2c ldr r2, [pc, #176] ; (8005090 ) + 8004fde: 4293 cmp r3, r2 + 8004fe0: d023 beq.n 800502a + 8004fe2: 687b ldr r3, [r7, #4] + 8004fe4: 4a2b ldr r2, [pc, #172] ; (8005094 ) + 8004fe6: 4293 cmp r3, r2 + 8004fe8: d01f beq.n 800502a + 8004fea: 687b ldr r3, [r7, #4] + 8004fec: 4a2a ldr r2, [pc, #168] ; (8005098 ) + 8004fee: 4293 cmp r3, r2 + 8004ff0: d01b beq.n 800502a + 8004ff2: 687b ldr r3, [r7, #4] + 8004ff4: 4a29 ldr r2, [pc, #164] ; (800509c ) + 8004ff6: 4293 cmp r3, r2 + 8004ff8: d017 beq.n 800502a + 8004ffa: 687b ldr r3, [r7, #4] + 8004ffc: 4a28 ldr r2, [pc, #160] ; (80050a0 ) + 8004ffe: 4293 cmp r3, r2 + 8005000: d013 beq.n 800502a + 8005002: 687b ldr r3, [r7, #4] + 8005004: 4a27 ldr r2, [pc, #156] ; (80050a4 ) + 8005006: 4293 cmp r3, r2 + 8005008: d00f beq.n 800502a + 800500a: 687b ldr r3, [r7, #4] + 800500c: 4a26 ldr r2, [pc, #152] ; (80050a8 ) + 800500e: 4293 cmp r3, r2 + 8005010: d00b beq.n 800502a + 8005012: 687b ldr r3, [r7, #4] + 8005014: 4a25 ldr r2, [pc, #148] ; (80050ac ) + 8005016: 4293 cmp r3, r2 + 8005018: d007 beq.n 800502a + 800501a: 687b ldr r3, [r7, #4] + 800501c: 4a24 ldr r2, [pc, #144] ; (80050b0 ) + 800501e: 4293 cmp r3, r2 + 8005020: d003 beq.n 800502a + 8005022: 687b ldr r3, [r7, #4] + 8005024: 4a23 ldr r2, [pc, #140] ; (80050b4 ) + 8005026: 4293 cmp r3, r2 + 8005028: d108 bne.n 800503c { /* Set the clock division */ tmpcr1 &= ~TIM_CR1_CKD; - 800410a: 68fb ldr r3, [r7, #12] - 800410c: f423 7340 bic.w r3, r3, #768 ; 0x300 - 8004110: 60fb str r3, [r7, #12] + 800502a: 68fb ldr r3, [r7, #12] + 800502c: f423 7340 bic.w r3, r3, #768 ; 0x300 + 8005030: 60fb str r3, [r7, #12] tmpcr1 |= (uint32_t)Structure->ClockDivision; - 8004112: 683b ldr r3, [r7, #0] - 8004114: 68db ldr r3, [r3, #12] - 8004116: 68fa ldr r2, [r7, #12] - 8004118: 4313 orrs r3, r2 - 800411a: 60fb str r3, [r7, #12] + 8005032: 683b ldr r3, [r7, #0] + 8005034: 68db ldr r3, [r3, #12] + 8005036: 68fa ldr r2, [r7, #12] + 8005038: 4313 orrs r3, r2 + 800503a: 60fb str r3, [r7, #12] } /* Set the auto-reload preload */ MODIFY_REG(tmpcr1, TIM_CR1_ARPE, Structure->AutoReloadPreload); - 800411c: 68fb ldr r3, [r7, #12] - 800411e: f023 0280 bic.w r2, r3, #128 ; 0x80 - 8004122: 683b ldr r3, [r7, #0] - 8004124: 695b ldr r3, [r3, #20] - 8004126: 4313 orrs r3, r2 - 8004128: 60fb str r3, [r7, #12] + 800503c: 68fb ldr r3, [r7, #12] + 800503e: f023 0280 bic.w r2, r3, #128 ; 0x80 + 8005042: 683b ldr r3, [r7, #0] + 8005044: 695b ldr r3, [r3, #20] + 8005046: 4313 orrs r3, r2 + 8005048: 60fb str r3, [r7, #12] TIMx->CR1 = tmpcr1; - 800412a: 687b ldr r3, [r7, #4] - 800412c: 68fa ldr r2, [r7, #12] - 800412e: 601a str r2, [r3, #0] + 800504a: 687b ldr r3, [r7, #4] + 800504c: 68fa ldr r2, [r7, #12] + 800504e: 601a str r2, [r3, #0] /* Set the Autoreload value */ TIMx->ARR = (uint32_t)Structure->Period ; - 8004130: 683b ldr r3, [r7, #0] - 8004132: 689a ldr r2, [r3, #8] - 8004134: 687b ldr r3, [r7, #4] - 8004136: 62da str r2, [r3, #44] ; 0x2c + 8005050: 683b ldr r3, [r7, #0] + 8005052: 689a ldr r2, [r3, #8] + 8005054: 687b ldr r3, [r7, #4] + 8005056: 62da str r2, [r3, #44] ; 0x2c /* Set the Prescaler value */ TIMx->PSC = Structure->Prescaler; - 8004138: 683b ldr r3, [r7, #0] - 800413a: 681a ldr r2, [r3, #0] - 800413c: 687b ldr r3, [r7, #4] - 800413e: 629a str r2, [r3, #40] ; 0x28 + 8005058: 683b ldr r3, [r7, #0] + 800505a: 681a ldr r2, [r3, #0] + 800505c: 687b ldr r3, [r7, #4] + 800505e: 629a str r2, [r3, #40] ; 0x28 if (IS_TIM_REPETITION_COUNTER_INSTANCE(TIMx)) - 8004140: 687b ldr r3, [r7, #4] - 8004142: 4a0a ldr r2, [pc, #40] ; (800416c ) - 8004144: 4293 cmp r3, r2 - 8004146: d003 beq.n 8004150 - 8004148: 687b ldr r3, [r7, #4] - 800414a: 4a0c ldr r2, [pc, #48] ; (800417c ) - 800414c: 4293 cmp r3, r2 - 800414e: d103 bne.n 8004158 + 8005060: 687b ldr r3, [r7, #4] + 8005062: 4a0a ldr r2, [pc, #40] ; (800508c ) + 8005064: 4293 cmp r3, r2 + 8005066: d003 beq.n 8005070 + 8005068: 687b ldr r3, [r7, #4] + 800506a: 4a0c ldr r2, [pc, #48] ; (800509c ) + 800506c: 4293 cmp r3, r2 + 800506e: d103 bne.n 8005078 { /* Set the Repetition Counter value */ TIMx->RCR = Structure->RepetitionCounter; - 8004150: 683b ldr r3, [r7, #0] - 8004152: 691a ldr r2, [r3, #16] - 8004154: 687b ldr r3, [r7, #4] - 8004156: 631a str r2, [r3, #48] ; 0x30 + 8005070: 683b ldr r3, [r7, #0] + 8005072: 691a ldr r2, [r3, #16] + 8005074: 687b ldr r3, [r7, #4] + 8005076: 631a str r2, [r3, #48] ; 0x30 } /* Generate an update event to reload the Prescaler and the repetition counter (only for advanced timer) value immediately */ TIMx->EGR = TIM_EGR_UG; - 8004158: 687b ldr r3, [r7, #4] - 800415a: 2201 movs r2, #1 - 800415c: 615a str r2, [r3, #20] + 8005078: 687b ldr r3, [r7, #4] + 800507a: 2201 movs r2, #1 + 800507c: 615a str r2, [r3, #20] } - 800415e: bf00 nop - 8004160: 3714 adds r7, #20 - 8004162: 46bd mov sp, r7 - 8004164: f85d 7b04 ldr.w r7, [sp], #4 - 8004168: 4770 bx lr - 800416a: bf00 nop - 800416c: 40010000 .word 0x40010000 - 8004170: 40000400 .word 0x40000400 - 8004174: 40000800 .word 0x40000800 - 8004178: 40000c00 .word 0x40000c00 - 800417c: 40010400 .word 0x40010400 - 8004180: 40014000 .word 0x40014000 - 8004184: 40014400 .word 0x40014400 - 8004188: 40014800 .word 0x40014800 - 800418c: 40001800 .word 0x40001800 - 8004190: 40001c00 .word 0x40001c00 - 8004194: 40002000 .word 0x40002000 + 800507e: bf00 nop + 8005080: 3714 adds r7, #20 + 8005082: 46bd mov sp, r7 + 8005084: f85d 7b04 ldr.w r7, [sp], #4 + 8005088: 4770 bx lr + 800508a: bf00 nop + 800508c: 40010000 .word 0x40010000 + 8005090: 40000400 .word 0x40000400 + 8005094: 40000800 .word 0x40000800 + 8005098: 40000c00 .word 0x40000c00 + 800509c: 40010400 .word 0x40010400 + 80050a0: 40014000 .word 0x40014000 + 80050a4: 40014400 .word 0x40014400 + 80050a8: 40014800 .word 0x40014800 + 80050ac: 40001800 .word 0x40001800 + 80050b0: 40001c00 .word 0x40001c00 + 80050b4: 40002000 .word 0x40002000 -08004198 : +080050b8 : * mode. * @retval HAL status */ HAL_StatusTypeDef HAL_TIMEx_MasterConfigSynchronization(TIM_HandleTypeDef *htim, TIM_MasterConfigTypeDef *sMasterConfig) { - 8004198: b480 push {r7} - 800419a: b085 sub sp, #20 - 800419c: af00 add r7, sp, #0 - 800419e: 6078 str r0, [r7, #4] - 80041a0: 6039 str r1, [r7, #0] + 80050b8: b480 push {r7} + 80050ba: b085 sub sp, #20 + 80050bc: af00 add r7, sp, #0 + 80050be: 6078 str r0, [r7, #4] + 80050c0: 6039 str r1, [r7, #0] assert_param(IS_TIM_MASTER_INSTANCE(htim->Instance)); assert_param(IS_TIM_TRGO_SOURCE(sMasterConfig->MasterOutputTrigger)); assert_param(IS_TIM_MSM_STATE(sMasterConfig->MasterSlaveMode)); /* Check input state */ __HAL_LOCK(htim); - 80041a2: 687b ldr r3, [r7, #4] - 80041a4: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 80041a8: 2b01 cmp r3, #1 - 80041aa: d101 bne.n 80041b0 - 80041ac: 2302 movs r3, #2 - 80041ae: e05a b.n 8004266 - 80041b0: 687b ldr r3, [r7, #4] - 80041b2: 2201 movs r2, #1 - 80041b4: f883 203c strb.w r2, [r3, #60] ; 0x3c + 80050c2: 687b ldr r3, [r7, #4] + 80050c4: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 80050c8: 2b01 cmp r3, #1 + 80050ca: d101 bne.n 80050d0 + 80050cc: 2302 movs r3, #2 + 80050ce: e05a b.n 8005186 + 80050d0: 687b ldr r3, [r7, #4] + 80050d2: 2201 movs r2, #1 + 80050d4: f883 203c strb.w r2, [r3, #60] ; 0x3c /* Change the handler state */ htim->State = HAL_TIM_STATE_BUSY; - 80041b8: 687b ldr r3, [r7, #4] - 80041ba: 2202 movs r2, #2 - 80041bc: f883 203d strb.w r2, [r3, #61] ; 0x3d + 80050d8: 687b ldr r3, [r7, #4] + 80050da: 2202 movs r2, #2 + 80050dc: f883 203d strb.w r2, [r3, #61] ; 0x3d /* Get the TIMx CR2 register value */ tmpcr2 = htim->Instance->CR2; - 80041c0: 687b ldr r3, [r7, #4] - 80041c2: 681b ldr r3, [r3, #0] - 80041c4: 685b ldr r3, [r3, #4] - 80041c6: 60fb str r3, [r7, #12] + 80050e0: 687b ldr r3, [r7, #4] + 80050e2: 681b ldr r3, [r3, #0] + 80050e4: 685b ldr r3, [r3, #4] + 80050e6: 60fb str r3, [r7, #12] /* Get the TIMx SMCR register value */ tmpsmcr = htim->Instance->SMCR; - 80041c8: 687b ldr r3, [r7, #4] - 80041ca: 681b ldr r3, [r3, #0] - 80041cc: 689b ldr r3, [r3, #8] - 80041ce: 60bb str r3, [r7, #8] + 80050e8: 687b ldr r3, [r7, #4] + 80050ea: 681b ldr r3, [r3, #0] + 80050ec: 689b ldr r3, [r3, #8] + 80050ee: 60bb str r3, [r7, #8] /* Reset the MMS Bits */ tmpcr2 &= ~TIM_CR2_MMS; - 80041d0: 68fb ldr r3, [r7, #12] - 80041d2: f023 0370 bic.w r3, r3, #112 ; 0x70 - 80041d6: 60fb str r3, [r7, #12] + 80050f0: 68fb ldr r3, [r7, #12] + 80050f2: f023 0370 bic.w r3, r3, #112 ; 0x70 + 80050f6: 60fb str r3, [r7, #12] /* Select the TRGO source */ tmpcr2 |= sMasterConfig->MasterOutputTrigger; - 80041d8: 683b ldr r3, [r7, #0] - 80041da: 681b ldr r3, [r3, #0] - 80041dc: 68fa ldr r2, [r7, #12] - 80041de: 4313 orrs r3, r2 - 80041e0: 60fb str r3, [r7, #12] + 80050f8: 683b ldr r3, [r7, #0] + 80050fa: 681b ldr r3, [r3, #0] + 80050fc: 68fa ldr r2, [r7, #12] + 80050fe: 4313 orrs r3, r2 + 8005100: 60fb str r3, [r7, #12] /* Update TIMx CR2 */ htim->Instance->CR2 = tmpcr2; - 80041e2: 687b ldr r3, [r7, #4] - 80041e4: 681b ldr r3, [r3, #0] - 80041e6: 68fa ldr r2, [r7, #12] - 80041e8: 605a str r2, [r3, #4] + 8005102: 687b ldr r3, [r7, #4] + 8005104: 681b ldr r3, [r3, #0] + 8005106: 68fa ldr r2, [r7, #12] + 8005108: 605a str r2, [r3, #4] if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) - 80041ea: 687b ldr r3, [r7, #4] - 80041ec: 681b ldr r3, [r3, #0] - 80041ee: 4a21 ldr r2, [pc, #132] ; (8004274 ) - 80041f0: 4293 cmp r3, r2 - 80041f2: d022 beq.n 800423a - 80041f4: 687b ldr r3, [r7, #4] - 80041f6: 681b ldr r3, [r3, #0] - 80041f8: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 - 80041fc: d01d beq.n 800423a - 80041fe: 687b ldr r3, [r7, #4] - 8004200: 681b ldr r3, [r3, #0] - 8004202: 4a1d ldr r2, [pc, #116] ; (8004278 ) - 8004204: 4293 cmp r3, r2 - 8004206: d018 beq.n 800423a - 8004208: 687b ldr r3, [r7, #4] - 800420a: 681b ldr r3, [r3, #0] - 800420c: 4a1b ldr r2, [pc, #108] ; (800427c ) - 800420e: 4293 cmp r3, r2 - 8004210: d013 beq.n 800423a - 8004212: 687b ldr r3, [r7, #4] - 8004214: 681b ldr r3, [r3, #0] - 8004216: 4a1a ldr r2, [pc, #104] ; (8004280 ) - 8004218: 4293 cmp r3, r2 - 800421a: d00e beq.n 800423a - 800421c: 687b ldr r3, [r7, #4] - 800421e: 681b ldr r3, [r3, #0] - 8004220: 4a18 ldr r2, [pc, #96] ; (8004284 ) - 8004222: 4293 cmp r3, r2 - 8004224: d009 beq.n 800423a - 8004226: 687b ldr r3, [r7, #4] - 8004228: 681b ldr r3, [r3, #0] - 800422a: 4a17 ldr r2, [pc, #92] ; (8004288 ) - 800422c: 4293 cmp r3, r2 - 800422e: d004 beq.n 800423a - 8004230: 687b ldr r3, [r7, #4] - 8004232: 681b ldr r3, [r3, #0] - 8004234: 4a15 ldr r2, [pc, #84] ; (800428c ) - 8004236: 4293 cmp r3, r2 - 8004238: d10c bne.n 8004254 + 800510a: 687b ldr r3, [r7, #4] + 800510c: 681b ldr r3, [r3, #0] + 800510e: 4a21 ldr r2, [pc, #132] ; (8005194 ) + 8005110: 4293 cmp r3, r2 + 8005112: d022 beq.n 800515a + 8005114: 687b ldr r3, [r7, #4] + 8005116: 681b ldr r3, [r3, #0] + 8005118: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 + 800511c: d01d beq.n 800515a + 800511e: 687b ldr r3, [r7, #4] + 8005120: 681b ldr r3, [r3, #0] + 8005122: 4a1d ldr r2, [pc, #116] ; (8005198 ) + 8005124: 4293 cmp r3, r2 + 8005126: d018 beq.n 800515a + 8005128: 687b ldr r3, [r7, #4] + 800512a: 681b ldr r3, [r3, #0] + 800512c: 4a1b ldr r2, [pc, #108] ; (800519c ) + 800512e: 4293 cmp r3, r2 + 8005130: d013 beq.n 800515a + 8005132: 687b ldr r3, [r7, #4] + 8005134: 681b ldr r3, [r3, #0] + 8005136: 4a1a ldr r2, [pc, #104] ; (80051a0 ) + 8005138: 4293 cmp r3, r2 + 800513a: d00e beq.n 800515a + 800513c: 687b ldr r3, [r7, #4] + 800513e: 681b ldr r3, [r3, #0] + 8005140: 4a18 ldr r2, [pc, #96] ; (80051a4 ) + 8005142: 4293 cmp r3, r2 + 8005144: d009 beq.n 800515a + 8005146: 687b ldr r3, [r7, #4] + 8005148: 681b ldr r3, [r3, #0] + 800514a: 4a17 ldr r2, [pc, #92] ; (80051a8 ) + 800514c: 4293 cmp r3, r2 + 800514e: d004 beq.n 800515a + 8005150: 687b ldr r3, [r7, #4] + 8005152: 681b ldr r3, [r3, #0] + 8005154: 4a15 ldr r2, [pc, #84] ; (80051ac ) + 8005156: 4293 cmp r3, r2 + 8005158: d10c bne.n 8005174 { /* Reset the MSM Bit */ tmpsmcr &= ~TIM_SMCR_MSM; - 800423a: 68bb ldr r3, [r7, #8] - 800423c: f023 0380 bic.w r3, r3, #128 ; 0x80 - 8004240: 60bb str r3, [r7, #8] + 800515a: 68bb ldr r3, [r7, #8] + 800515c: f023 0380 bic.w r3, r3, #128 ; 0x80 + 8005160: 60bb str r3, [r7, #8] /* Set master mode */ tmpsmcr |= sMasterConfig->MasterSlaveMode; - 8004242: 683b ldr r3, [r7, #0] - 8004244: 685b ldr r3, [r3, #4] - 8004246: 68ba ldr r2, [r7, #8] - 8004248: 4313 orrs r3, r2 - 800424a: 60bb str r3, [r7, #8] + 8005162: 683b ldr r3, [r7, #0] + 8005164: 685b ldr r3, [r3, #4] + 8005166: 68ba ldr r2, [r7, #8] + 8005168: 4313 orrs r3, r2 + 800516a: 60bb str r3, [r7, #8] /* Update TIMx SMCR */ htim->Instance->SMCR = tmpsmcr; - 800424c: 687b ldr r3, [r7, #4] - 800424e: 681b ldr r3, [r3, #0] - 8004250: 68ba ldr r2, [r7, #8] - 8004252: 609a str r2, [r3, #8] + 800516c: 687b ldr r3, [r7, #4] + 800516e: 681b ldr r3, [r3, #0] + 8005170: 68ba ldr r2, [r7, #8] + 8005172: 609a str r2, [r3, #8] } /* Change the htim state */ htim->State = HAL_TIM_STATE_READY; - 8004254: 687b ldr r3, [r7, #4] - 8004256: 2201 movs r2, #1 - 8004258: f883 203d strb.w r2, [r3, #61] ; 0x3d + 8005174: 687b ldr r3, [r7, #4] + 8005176: 2201 movs r2, #1 + 8005178: f883 203d strb.w r2, [r3, #61] ; 0x3d __HAL_UNLOCK(htim); - 800425c: 687b ldr r3, [r7, #4] - 800425e: 2200 movs r2, #0 - 8004260: f883 203c strb.w r2, [r3, #60] ; 0x3c + 800517c: 687b ldr r3, [r7, #4] + 800517e: 2200 movs r2, #0 + 8005180: f883 203c strb.w r2, [r3, #60] ; 0x3c return HAL_OK; - 8004264: 2300 movs r3, #0 + 8005184: 2300 movs r3, #0 } - 8004266: 4618 mov r0, r3 - 8004268: 3714 adds r7, #20 - 800426a: 46bd mov sp, r7 - 800426c: f85d 7b04 ldr.w r7, [sp], #4 - 8004270: 4770 bx lr - 8004272: bf00 nop - 8004274: 40010000 .word 0x40010000 - 8004278: 40000400 .word 0x40000400 - 800427c: 40000800 .word 0x40000800 - 8004280: 40000c00 .word 0x40000c00 - 8004284: 40010400 .word 0x40010400 - 8004288: 40014000 .word 0x40014000 - 800428c: 40001800 .word 0x40001800 + 8005186: 4618 mov r0, r3 + 8005188: 3714 adds r7, #20 + 800518a: 46bd mov sp, r7 + 800518c: f85d 7b04 ldr.w r7, [sp], #4 + 8005190: 4770 bx lr + 8005192: bf00 nop + 8005194: 40010000 .word 0x40010000 + 8005198: 40000400 .word 0x40000400 + 800519c: 40000800 .word 0x40000800 + 80051a0: 40000c00 .word 0x40000c00 + 80051a4: 40010400 .word 0x40010400 + 80051a8: 40014000 .word 0x40014000 + 80051ac: 40001800 .word 0x40001800 -08004290 : +080051b0 : * @brief Hall commutation changed callback in non-blocking mode * @param htim TIM handle * @retval None */ __weak void HAL_TIMEx_CommutCallback(TIM_HandleTypeDef *htim) { - 8004290: b480 push {r7} - 8004292: b083 sub sp, #12 - 8004294: af00 add r7, sp, #0 - 8004296: 6078 str r0, [r7, #4] + 80051b0: b480 push {r7} + 80051b2: b083 sub sp, #12 + 80051b4: af00 add r7, sp, #0 + 80051b6: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIMEx_CommutCallback could be implemented in the user file */ } - 8004298: bf00 nop - 800429a: 370c adds r7, #12 - 800429c: 46bd mov sp, r7 - 800429e: f85d 7b04 ldr.w r7, [sp], #4 - 80042a2: 4770 bx lr + 80051b8: bf00 nop + 80051ba: 370c adds r7, #12 + 80051bc: 46bd mov sp, r7 + 80051be: f85d 7b04 ldr.w r7, [sp], #4 + 80051c2: 4770 bx lr -080042a4 : +080051c4 : * @brief Hall Break detection callback in non-blocking mode * @param htim TIM handle * @retval None */ __weak void HAL_TIMEx_BreakCallback(TIM_HandleTypeDef *htim) { - 80042a4: b480 push {r7} - 80042a6: b083 sub sp, #12 - 80042a8: af00 add r7, sp, #0 - 80042aa: 6078 str r0, [r7, #4] + 80051c4: b480 push {r7} + 80051c6: b083 sub sp, #12 + 80051c8: af00 add r7, sp, #0 + 80051ca: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIMEx_BreakCallback could be implemented in the user file */ } - 80042ac: bf00 nop - 80042ae: 370c adds r7, #12 - 80042b0: 46bd mov sp, r7 - 80042b2: f85d 7b04 ldr.w r7, [sp], #4 - 80042b6: 4770 bx lr + 80051cc: bf00 nop + 80051ce: 370c adds r7, #12 + 80051d0: 46bd mov sp, r7 + 80051d2: f85d 7b04 ldr.w r7, [sp], #4 + 80051d6: 4770 bx lr -080042b8 <__errno>: - 80042b8: 4b01 ldr r3, [pc, #4] ; (80042c0 <__errno+0x8>) - 80042ba: 6818 ldr r0, [r3, #0] - 80042bc: 4770 bx lr - 80042be: bf00 nop - 80042c0: 20000010 .word 0x20000010 +080051d8 <__errno>: + 80051d8: 4b01 ldr r3, [pc, #4] ; (80051e0 <__errno+0x8>) + 80051da: 6818 ldr r0, [r3, #0] + 80051dc: 4770 bx lr + 80051de: bf00 nop + 80051e0: 20000010 .word 0x20000010 -080042c4 <__libc_init_array>: - 80042c4: b570 push {r4, r5, r6, lr} - 80042c6: 4e0d ldr r6, [pc, #52] ; (80042fc <__libc_init_array+0x38>) - 80042c8: 4c0d ldr r4, [pc, #52] ; (8004300 <__libc_init_array+0x3c>) - 80042ca: 1ba4 subs r4, r4, r6 - 80042cc: 10a4 asrs r4, r4, #2 - 80042ce: 2500 movs r5, #0 - 80042d0: 42a5 cmp r5, r4 - 80042d2: d109 bne.n 80042e8 <__libc_init_array+0x24> - 80042d4: 4e0b ldr r6, [pc, #44] ; (8004304 <__libc_init_array+0x40>) - 80042d6: 4c0c ldr r4, [pc, #48] ; (8004308 <__libc_init_array+0x44>) - 80042d8: f000 f8c8 bl 800446c <_init> - 80042dc: 1ba4 subs r4, r4, r6 - 80042de: 10a4 asrs r4, r4, #2 - 80042e0: 2500 movs r5, #0 - 80042e2: 42a5 cmp r5, r4 - 80042e4: d105 bne.n 80042f2 <__libc_init_array+0x2e> - 80042e6: bd70 pop {r4, r5, r6, pc} - 80042e8: f856 3025 ldr.w r3, [r6, r5, lsl #2] - 80042ec: 4798 blx r3 - 80042ee: 3501 adds r5, #1 - 80042f0: e7ee b.n 80042d0 <__libc_init_array+0xc> - 80042f2: f856 3025 ldr.w r3, [r6, r5, lsl #2] - 80042f6: 4798 blx r3 - 80042f8: 3501 adds r5, #1 - 80042fa: e7f2 b.n 80042e2 <__libc_init_array+0x1e> - 80042fc: 0800449c .word 0x0800449c - 8004300: 0800449c .word 0x0800449c - 8004304: 0800449c .word 0x0800449c - 8004308: 080044a0 .word 0x080044a0 +080051e4 <__libc_init_array>: + 80051e4: b570 push {r4, r5, r6, lr} + 80051e6: 4e0d ldr r6, [pc, #52] ; (800521c <__libc_init_array+0x38>) + 80051e8: 4c0d ldr r4, [pc, #52] ; (8005220 <__libc_init_array+0x3c>) + 80051ea: 1ba4 subs r4, r4, r6 + 80051ec: 10a4 asrs r4, r4, #2 + 80051ee: 2500 movs r5, #0 + 80051f0: 42a5 cmp r5, r4 + 80051f2: d109 bne.n 8005208 <__libc_init_array+0x24> + 80051f4: 4e0b ldr r6, [pc, #44] ; (8005224 <__libc_init_array+0x40>) + 80051f6: 4c0c ldr r4, [pc, #48] ; (8005228 <__libc_init_array+0x44>) + 80051f8: f000 f8c8 bl 800538c <_init> + 80051fc: 1ba4 subs r4, r4, r6 + 80051fe: 10a4 asrs r4, r4, #2 + 8005200: 2500 movs r5, #0 + 8005202: 42a5 cmp r5, r4 + 8005204: d105 bne.n 8005212 <__libc_init_array+0x2e> + 8005206: bd70 pop {r4, r5, r6, pc} + 8005208: f856 3025 ldr.w r3, [r6, r5, lsl #2] + 800520c: 4798 blx r3 + 800520e: 3501 adds r5, #1 + 8005210: e7ee b.n 80051f0 <__libc_init_array+0xc> + 8005212: f856 3025 ldr.w r3, [r6, r5, lsl #2] + 8005216: 4798 blx r3 + 8005218: 3501 adds r5, #1 + 800521a: e7f2 b.n 8005202 <__libc_init_array+0x1e> + 800521c: 080053bc .word 0x080053bc + 8005220: 080053bc .word 0x080053bc + 8005224: 080053bc .word 0x080053bc + 8005228: 080053c0 .word 0x080053c0 -0800430c : - 800430c: 4402 add r2, r0 - 800430e: 4603 mov r3, r0 - 8004310: 4293 cmp r3, r2 - 8004312: d100 bne.n 8004316 - 8004314: 4770 bx lr - 8004316: f803 1b01 strb.w r1, [r3], #1 - 800431a: e7f9 b.n 8004310 +0800522c : + 800522c: 4402 add r2, r0 + 800522e: 4603 mov r3, r0 + 8005230: 4293 cmp r3, r2 + 8005232: d100 bne.n 8005236 + 8005234: 4770 bx lr + 8005236: f803 1b01 strb.w r1, [r3], #1 + 800523a: e7f9 b.n 8005230 -0800431c : - 800431c: b538 push {r3, r4, r5, lr} - 800431e: 4b13 ldr r3, [pc, #76] ; (800436c ) - 8004320: 681c ldr r4, [r3, #0] - 8004322: 6ba3 ldr r3, [r4, #56] ; 0x38 - 8004324: b97b cbnz r3, 8004346 - 8004326: 2018 movs r0, #24 - 8004328: f000 f82c bl 8004384 - 800432c: 4a10 ldr r2, [pc, #64] ; (8004370 ) - 800432e: 4b11 ldr r3, [pc, #68] ; (8004374 ) - 8004330: 63a0 str r0, [r4, #56] ; 0x38 - 8004332: e9c0 2300 strd r2, r3, [r0] - 8004336: 4b10 ldr r3, [pc, #64] ; (8004378 ) - 8004338: 6083 str r3, [r0, #8] - 800433a: 230b movs r3, #11 - 800433c: 8183 strh r3, [r0, #12] - 800433e: 2201 movs r2, #1 - 8004340: 2300 movs r3, #0 - 8004342: e9c0 2304 strd r2, r3, [r0, #16] - 8004346: 6ba1 ldr r1, [r4, #56] ; 0x38 - 8004348: 480c ldr r0, [pc, #48] ; (800437c ) - 800434a: 690a ldr r2, [r1, #16] - 800434c: 694b ldr r3, [r1, #20] - 800434e: 4c0c ldr r4, [pc, #48] ; (8004380 ) - 8004350: 4350 muls r0, r2 - 8004352: fb04 0003 mla r0, r4, r3, r0 - 8004356: fba2 2304 umull r2, r3, r2, r4 - 800435a: 4403 add r3, r0 - 800435c: 1c54 adds r4, r2, #1 - 800435e: f143 0500 adc.w r5, r3, #0 - 8004362: e9c1 4504 strd r4, r5, [r1, #16] - 8004366: f025 4000 bic.w r0, r5, #2147483648 ; 0x80000000 - 800436a: bd38 pop {r3, r4, r5, pc} - 800436c: 20000010 .word 0x20000010 - 8004370: abcd330e .word 0xabcd330e - 8004374: e66d1234 .word 0xe66d1234 - 8004378: 0005deec .word 0x0005deec - 800437c: 5851f42d .word 0x5851f42d - 8004380: 4c957f2d .word 0x4c957f2d +0800523c : + 800523c: b538 push {r3, r4, r5, lr} + 800523e: 4b13 ldr r3, [pc, #76] ; (800528c ) + 8005240: 681c ldr r4, [r3, #0] + 8005242: 6ba3 ldr r3, [r4, #56] ; 0x38 + 8005244: b97b cbnz r3, 8005266 + 8005246: 2018 movs r0, #24 + 8005248: f000 f82c bl 80052a4 + 800524c: 4a10 ldr r2, [pc, #64] ; (8005290 ) + 800524e: 4b11 ldr r3, [pc, #68] ; (8005294 ) + 8005250: 63a0 str r0, [r4, #56] ; 0x38 + 8005252: e9c0 2300 strd r2, r3, [r0] + 8005256: 4b10 ldr r3, [pc, #64] ; (8005298 ) + 8005258: 6083 str r3, [r0, #8] + 800525a: 230b movs r3, #11 + 800525c: 8183 strh r3, [r0, #12] + 800525e: 2201 movs r2, #1 + 8005260: 2300 movs r3, #0 + 8005262: e9c0 2304 strd r2, r3, [r0, #16] + 8005266: 6ba1 ldr r1, [r4, #56] ; 0x38 + 8005268: 480c ldr r0, [pc, #48] ; (800529c ) + 800526a: 690a ldr r2, [r1, #16] + 800526c: 694b ldr r3, [r1, #20] + 800526e: 4c0c ldr r4, [pc, #48] ; (80052a0 ) + 8005270: 4350 muls r0, r2 + 8005272: fb04 0003 mla r0, r4, r3, r0 + 8005276: fba2 2304 umull r2, r3, r2, r4 + 800527a: 4403 add r3, r0 + 800527c: 1c54 adds r4, r2, #1 + 800527e: f143 0500 adc.w r5, r3, #0 + 8005282: e9c1 4504 strd r4, r5, [r1, #16] + 8005286: f025 4000 bic.w r0, r5, #2147483648 ; 0x80000000 + 800528a: bd38 pop {r3, r4, r5, pc} + 800528c: 20000010 .word 0x20000010 + 8005290: abcd330e .word 0xabcd330e + 8005294: e66d1234 .word 0xe66d1234 + 8005298: 0005deec .word 0x0005deec + 800529c: 5851f42d .word 0x5851f42d + 80052a0: 4c957f2d .word 0x4c957f2d -08004384 : - 8004384: 4b02 ldr r3, [pc, #8] ; (8004390 ) - 8004386: 4601 mov r1, r0 - 8004388: 6818 ldr r0, [r3, #0] - 800438a: f000 b803 b.w 8004394 <_malloc_r> - 800438e: bf00 nop - 8004390: 20000010 .word 0x20000010 +080052a4 : + 80052a4: 4b02 ldr r3, [pc, #8] ; (80052b0 ) + 80052a6: 4601 mov r1, r0 + 80052a8: 6818 ldr r0, [r3, #0] + 80052aa: f000 b803 b.w 80052b4 <_malloc_r> + 80052ae: bf00 nop + 80052b0: 20000010 .word 0x20000010 -08004394 <_malloc_r>: - 8004394: b570 push {r4, r5, r6, lr} - 8004396: 1ccd adds r5, r1, #3 - 8004398: f025 0503 bic.w r5, r5, #3 - 800439c: 3508 adds r5, #8 - 800439e: 2d0c cmp r5, #12 - 80043a0: bf38 it cc - 80043a2: 250c movcc r5, #12 - 80043a4: 2d00 cmp r5, #0 - 80043a6: 4606 mov r6, r0 - 80043a8: db01 blt.n 80043ae <_malloc_r+0x1a> - 80043aa: 42a9 cmp r1, r5 - 80043ac: d903 bls.n 80043b6 <_malloc_r+0x22> - 80043ae: 230c movs r3, #12 - 80043b0: 6033 str r3, [r6, #0] - 80043b2: 2000 movs r0, #0 - 80043b4: bd70 pop {r4, r5, r6, pc} - 80043b6: f000 f857 bl 8004468 <__malloc_lock> - 80043ba: 4a21 ldr r2, [pc, #132] ; (8004440 <_malloc_r+0xac>) - 80043bc: 6814 ldr r4, [r2, #0] - 80043be: 4621 mov r1, r4 - 80043c0: b991 cbnz r1, 80043e8 <_malloc_r+0x54> - 80043c2: 4c20 ldr r4, [pc, #128] ; (8004444 <_malloc_r+0xb0>) - 80043c4: 6823 ldr r3, [r4, #0] - 80043c6: b91b cbnz r3, 80043d0 <_malloc_r+0x3c> - 80043c8: 4630 mov r0, r6 - 80043ca: f000 f83d bl 8004448 <_sbrk_r> - 80043ce: 6020 str r0, [r4, #0] - 80043d0: 4629 mov r1, r5 - 80043d2: 4630 mov r0, r6 - 80043d4: f000 f838 bl 8004448 <_sbrk_r> - 80043d8: 1c43 adds r3, r0, #1 - 80043da: d124 bne.n 8004426 <_malloc_r+0x92> - 80043dc: 230c movs r3, #12 - 80043de: 6033 str r3, [r6, #0] - 80043e0: 4630 mov r0, r6 - 80043e2: f000 f842 bl 800446a <__malloc_unlock> - 80043e6: e7e4 b.n 80043b2 <_malloc_r+0x1e> - 80043e8: 680b ldr r3, [r1, #0] - 80043ea: 1b5b subs r3, r3, r5 - 80043ec: d418 bmi.n 8004420 <_malloc_r+0x8c> - 80043ee: 2b0b cmp r3, #11 - 80043f0: d90f bls.n 8004412 <_malloc_r+0x7e> - 80043f2: 600b str r3, [r1, #0] - 80043f4: 50cd str r5, [r1, r3] - 80043f6: 18cc adds r4, r1, r3 - 80043f8: 4630 mov r0, r6 - 80043fa: f000 f836 bl 800446a <__malloc_unlock> - 80043fe: f104 000b add.w r0, r4, #11 - 8004402: 1d23 adds r3, r4, #4 - 8004404: f020 0007 bic.w r0, r0, #7 - 8004408: 1ac3 subs r3, r0, r3 - 800440a: d0d3 beq.n 80043b4 <_malloc_r+0x20> - 800440c: 425a negs r2, r3 - 800440e: 50e2 str r2, [r4, r3] - 8004410: e7d0 b.n 80043b4 <_malloc_r+0x20> - 8004412: 428c cmp r4, r1 - 8004414: 684b ldr r3, [r1, #4] - 8004416: bf16 itet ne - 8004418: 6063 strne r3, [r4, #4] - 800441a: 6013 streq r3, [r2, #0] - 800441c: 460c movne r4, r1 - 800441e: e7eb b.n 80043f8 <_malloc_r+0x64> - 8004420: 460c mov r4, r1 - 8004422: 6849 ldr r1, [r1, #4] - 8004424: e7cc b.n 80043c0 <_malloc_r+0x2c> - 8004426: 1cc4 adds r4, r0, #3 - 8004428: f024 0403 bic.w r4, r4, #3 - 800442c: 42a0 cmp r0, r4 - 800442e: d005 beq.n 800443c <_malloc_r+0xa8> - 8004430: 1a21 subs r1, r4, r0 - 8004432: 4630 mov r0, r6 - 8004434: f000 f808 bl 8004448 <_sbrk_r> - 8004438: 3001 adds r0, #1 - 800443a: d0cf beq.n 80043dc <_malloc_r+0x48> - 800443c: 6025 str r5, [r4, #0] - 800443e: e7db b.n 80043f8 <_malloc_r+0x64> - 8004440: 200003b0 .word 0x200003b0 - 8004444: 200003b4 .word 0x200003b4 +080052b4 <_malloc_r>: + 80052b4: b570 push {r4, r5, r6, lr} + 80052b6: 1ccd adds r5, r1, #3 + 80052b8: f025 0503 bic.w r5, r5, #3 + 80052bc: 3508 adds r5, #8 + 80052be: 2d0c cmp r5, #12 + 80052c0: bf38 it cc + 80052c2: 250c movcc r5, #12 + 80052c4: 2d00 cmp r5, #0 + 80052c6: 4606 mov r6, r0 + 80052c8: db01 blt.n 80052ce <_malloc_r+0x1a> + 80052ca: 42a9 cmp r1, r5 + 80052cc: d903 bls.n 80052d6 <_malloc_r+0x22> + 80052ce: 230c movs r3, #12 + 80052d0: 6033 str r3, [r6, #0] + 80052d2: 2000 movs r0, #0 + 80052d4: bd70 pop {r4, r5, r6, pc} + 80052d6: f000 f857 bl 8005388 <__malloc_lock> + 80052da: 4a21 ldr r2, [pc, #132] ; (8005360 <_malloc_r+0xac>) + 80052dc: 6814 ldr r4, [r2, #0] + 80052de: 4621 mov r1, r4 + 80052e0: b991 cbnz r1, 8005308 <_malloc_r+0x54> + 80052e2: 4c20 ldr r4, [pc, #128] ; (8005364 <_malloc_r+0xb0>) + 80052e4: 6823 ldr r3, [r4, #0] + 80052e6: b91b cbnz r3, 80052f0 <_malloc_r+0x3c> + 80052e8: 4630 mov r0, r6 + 80052ea: f000 f83d bl 8005368 <_sbrk_r> + 80052ee: 6020 str r0, [r4, #0] + 80052f0: 4629 mov r1, r5 + 80052f2: 4630 mov r0, r6 + 80052f4: f000 f838 bl 8005368 <_sbrk_r> + 80052f8: 1c43 adds r3, r0, #1 + 80052fa: d124 bne.n 8005346 <_malloc_r+0x92> + 80052fc: 230c movs r3, #12 + 80052fe: 6033 str r3, [r6, #0] + 8005300: 4630 mov r0, r6 + 8005302: f000 f842 bl 800538a <__malloc_unlock> + 8005306: e7e4 b.n 80052d2 <_malloc_r+0x1e> + 8005308: 680b ldr r3, [r1, #0] + 800530a: 1b5b subs r3, r3, r5 + 800530c: d418 bmi.n 8005340 <_malloc_r+0x8c> + 800530e: 2b0b cmp r3, #11 + 8005310: d90f bls.n 8005332 <_malloc_r+0x7e> + 8005312: 600b str r3, [r1, #0] + 8005314: 50cd str r5, [r1, r3] + 8005316: 18cc adds r4, r1, r3 + 8005318: 4630 mov r0, r6 + 800531a: f000 f836 bl 800538a <__malloc_unlock> + 800531e: f104 000b add.w r0, r4, #11 + 8005322: 1d23 adds r3, r4, #4 + 8005324: f020 0007 bic.w r0, r0, #7 + 8005328: 1ac3 subs r3, r0, r3 + 800532a: d0d3 beq.n 80052d4 <_malloc_r+0x20> + 800532c: 425a negs r2, r3 + 800532e: 50e2 str r2, [r4, r3] + 8005330: e7d0 b.n 80052d4 <_malloc_r+0x20> + 8005332: 428c cmp r4, r1 + 8005334: 684b ldr r3, [r1, #4] + 8005336: bf16 itet ne + 8005338: 6063 strne r3, [r4, #4] + 800533a: 6013 streq r3, [r2, #0] + 800533c: 460c movne r4, r1 + 800533e: e7eb b.n 8005318 <_malloc_r+0x64> + 8005340: 460c mov r4, r1 + 8005342: 6849 ldr r1, [r1, #4] + 8005344: e7cc b.n 80052e0 <_malloc_r+0x2c> + 8005346: 1cc4 adds r4, r0, #3 + 8005348: f024 0403 bic.w r4, r4, #3 + 800534c: 42a0 cmp r0, r4 + 800534e: d005 beq.n 800535c <_malloc_r+0xa8> + 8005350: 1a21 subs r1, r4, r0 + 8005352: 4630 mov r0, r6 + 8005354: f000 f808 bl 8005368 <_sbrk_r> + 8005358: 3001 adds r0, #1 + 800535a: d0cf beq.n 80052fc <_malloc_r+0x48> + 800535c: 6025 str r5, [r4, #0] + 800535e: e7db b.n 8005318 <_malloc_r+0x64> + 8005360: 200003ac .word 0x200003ac + 8005364: 200003b0 .word 0x200003b0 -08004448 <_sbrk_r>: - 8004448: b538 push {r3, r4, r5, lr} - 800444a: 4c06 ldr r4, [pc, #24] ; (8004464 <_sbrk_r+0x1c>) - 800444c: 2300 movs r3, #0 - 800444e: 4605 mov r5, r0 - 8004450: 4608 mov r0, r1 - 8004452: 6023 str r3, [r4, #0] - 8004454: f7fd fcb0 bl 8001db8 <_sbrk> - 8004458: 1c43 adds r3, r0, #1 - 800445a: d102 bne.n 8004462 <_sbrk_r+0x1a> - 800445c: 6823 ldr r3, [r4, #0] - 800445e: b103 cbz r3, 8004462 <_sbrk_r+0x1a> - 8004460: 602b str r3, [r5, #0] - 8004462: bd38 pop {r3, r4, r5, pc} - 8004464: 200004a0 .word 0x200004a0 +08005368 <_sbrk_r>: + 8005368: b538 push {r3, r4, r5, lr} + 800536a: 4c06 ldr r4, [pc, #24] ; (8005384 <_sbrk_r+0x1c>) + 800536c: 2300 movs r3, #0 + 800536e: 4605 mov r5, r0 + 8005370: 4608 mov r0, r1 + 8005372: 6023 str r3, [r4, #0] + 8005374: f7fd fcb0 bl 8002cd8 <_sbrk> + 8005378: 1c43 adds r3, r0, #1 + 800537a: d102 bne.n 8005382 <_sbrk_r+0x1a> + 800537c: 6823 ldr r3, [r4, #0] + 800537e: b103 cbz r3, 8005382 <_sbrk_r+0x1a> + 8005380: 602b str r3, [r5, #0] + 8005382: bd38 pop {r3, r4, r5, pc} + 8005384: 2000049c .word 0x2000049c -08004468 <__malloc_lock>: - 8004468: 4770 bx lr +08005388 <__malloc_lock>: + 8005388: 4770 bx lr -0800446a <__malloc_unlock>: - 800446a: 4770 bx lr +0800538a <__malloc_unlock>: + 800538a: 4770 bx lr -0800446c <_init>: - 800446c: b5f8 push {r3, r4, r5, r6, r7, lr} - 800446e: bf00 nop - 8004470: bcf8 pop {r3, r4, r5, r6, r7} - 8004472: bc08 pop {r3} - 8004474: 469e mov lr, r3 - 8004476: 4770 bx lr +0800538c <_init>: + 800538c: b5f8 push {r3, r4, r5, r6, r7, lr} + 800538e: bf00 nop + 8005390: bcf8 pop {r3, r4, r5, r6, r7} + 8005392: bc08 pop {r3} + 8005394: 469e mov lr, r3 + 8005396: 4770 bx lr -08004478 <_fini>: - 8004478: b5f8 push {r3, r4, r5, r6, r7, lr} - 800447a: bf00 nop - 800447c: bcf8 pop {r3, r4, r5, r6, r7} - 800447e: bc08 pop {r3} - 8004480: 469e mov lr, r3 - 8004482: 4770 bx lr +08005398 <_fini>: + 8005398: b5f8 push {r3, r4, r5, r6, r7, lr} + 800539a: bf00 nop + 800539c: bcf8 pop {r3, r4, r5, r6, r7} + 800539e: bc08 pop {r3} + 80053a0: 469e mov lr, r3 + 80053a2: 4770 bx lr diff --git a/Debug/STM32F429I-DISC1_LEDFaceMask-Rough.map b/Debug/STM32F429I-DISC1_LEDFaceMask-Rough.map index 29b146d..28846d4 100644 --- a/Debug/STM32F429I-DISC1_LEDFaceMask-Rough.map +++ b/Debug/STM32F429I-DISC1_LEDFaceMask-Rough.map @@ -24,6 +24,12 @@ b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cub b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-nano-freer.o) (__malloc_lock) b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-reent.o) b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-sbrkr.o) (errno) +b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_addsubdf3.o) + Core/Src/main.o (__aeabi_dadd) +b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_muldivdf3.o) + Core/Src/main.o (__aeabi_dmul) +b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_fixunsdfsi.o) + Core/Src/main.o (__aeabi_d2uiz) b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_aeabi_uldivmod.o) Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o (__aeabi_uldivmod) b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_udivmoddi4.o) @@ -3066,6 +3072,12 @@ Discarded input sections 0x0000000000000000 0x1a b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-reent.o) .text._reclaim_reent 0x0000000000000000 0xb8 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-reent.o) + .data 0x0000000000000000 0x0 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_addsubdf3.o) + .bss 0x0000000000000000 0x0 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_addsubdf3.o) + .data 0x0000000000000000 0x0 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_muldivdf3.o) + .bss 0x0000000000000000 0x0 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_muldivdf3.o) + .data 0x0000000000000000 0x0 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_fixunsdfsi.o) + .bss 0x0000000000000000 0x0 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_fixunsdfsi.o) .data 0x0000000000000000 0x0 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_aeabi_uldivmod.o) .bss 0x0000000000000000 0x0 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_aeabi_uldivmod.o) .data 0x0000000000000000 0x0 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_udivmoddi4.o) @@ -3152,480 +3164,506 @@ LOAD b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm 0x0000000008000000 g_pfnVectors 0x00000000080001ac . = ALIGN (0x4) -.text 0x00000000080001ac 0x42d8 - 0x00000000080001ac . = ALIGN (0x4) +.text 0x00000000080001b0 0x51f4 + 0x00000000080001b0 . = ALIGN (0x4) *(.text) - .text 0x00000000080001ac 0x40 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o - .text 0x00000000080001ec 0x30 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_aeabi_uldivmod.o) - 0x00000000080001ec __aeabi_uldivmod - .text 0x000000000800021c 0x2cc b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_udivmoddi4.o) - 0x000000000800021c __udivmoddi4 - .text 0x00000000080004e8 0x4 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_dvmd_tls.o) - 0x00000000080004e8 __aeabi_idiv0 - 0x00000000080004e8 __aeabi_ldiv0 + .text 0x00000000080001b0 0x40 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o + .text 0x00000000080001f0 0x378 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_addsubdf3.o) + 0x00000000080001f0 __aeabi_drsub + 0x00000000080001f8 __aeabi_dsub + 0x00000000080001f8 __subdf3 + 0x00000000080001fc __aeabi_dadd + 0x00000000080001fc __adddf3 + 0x0000000008000474 __floatunsidf + 0x0000000008000474 __aeabi_ui2d + 0x0000000008000494 __floatsidf + 0x0000000008000494 __aeabi_i2d + 0x00000000080004b8 __aeabi_f2d + 0x00000000080004b8 __extendsfdf2 + 0x00000000080004fc __floatundidf + 0x00000000080004fc __aeabi_ul2d + 0x000000000800050c __floatdidf + 0x000000000800050c __aeabi_l2d + .text 0x0000000008000568 0x424 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_muldivdf3.o) + 0x0000000008000568 __aeabi_dmul + 0x0000000008000568 __muldf3 + 0x00000000080007bc __divdf3 + 0x00000000080007bc __aeabi_ddiv + .text 0x000000000800098c 0x40 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_fixunsdfsi.o) + 0x000000000800098c __aeabi_d2uiz + 0x000000000800098c __fixunsdfsi + .text 0x00000000080009cc 0x30 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_aeabi_uldivmod.o) + 0x00000000080009cc __aeabi_uldivmod + .text 0x00000000080009fc 0x2cc b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_udivmoddi4.o) + 0x00000000080009fc __udivmoddi4 + .text 0x0000000008000cc8 0x4 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_dvmd_tls.o) + 0x0000000008000cc8 __aeabi_idiv0 + 0x0000000008000cc8 __aeabi_ldiv0 *(.text*) - .text.main 0x00000000080004ec 0xb4 Core/Src/main.o - 0x00000000080004ec main + .text.main 0x0000000008000ccc 0xb4 Core/Src/main.o + 0x0000000008000ccc main .text.SystemClock_Config - 0x00000000080005a0 0xd4 Core/Src/main.o - 0x00000000080005a0 SystemClock_Config + 0x0000000008000d80 0xd4 Core/Src/main.o + 0x0000000008000d80 SystemClock_Config .text.MX_ADC3_Init - 0x0000000008000674 0xa8 Core/Src/main.o + 0x0000000008000e54 0xa8 Core/Src/main.o .text.MX_SPI4_Init - 0x000000000800071c 0x6c Core/Src/main.o + 0x0000000008000efc 0x6c Core/Src/main.o .text.MX_TIM6_Init - 0x0000000008000788 0x80 Core/Src/main.o + 0x0000000008000f68 0x80 Core/Src/main.o .text.MX_GPIO_Init - 0x0000000008000808 0x500 Core/Src/main.o + 0x0000000008000fe8 0x500 Core/Src/main.o .text.getSoundLevel - 0x0000000008000d08 0x128 Core/Src/main.o - 0x0000000008000d08 getSoundLevel + 0x00000000080014e8 0xe4 Core/Src/main.o + 0x00000000080014e8 getSoundLevel .text.LEDDesign_Off - 0x0000000008000e30 0x50 Core/Src/main.o - 0x0000000008000e30 LEDDesign_Off + 0x00000000080015cc 0x50 Core/Src/main.o + 0x00000000080015cc LEDDesign_Off .text.LEDDesign_ColorWhite - 0x0000000008000e80 0x50 Core/Src/main.o - 0x0000000008000e80 LEDDesign_ColorWhite + 0x000000000800161c 0x50 Core/Src/main.o + 0x000000000800161c LEDDesign_ColorWhite .text.LEDDesign_ColorBlue - 0x0000000008000ed0 0x80 Core/Src/main.o - 0x0000000008000ed0 LEDDesign_ColorBlue + 0x000000000800166c 0x80 Core/Src/main.o + 0x000000000800166c LEDDesign_ColorBlue .text.LEDDesign_ColorGreen - 0x0000000008000f50 0x80 Core/Src/main.o - 0x0000000008000f50 LEDDesign_ColorGreen + 0x00000000080016ec 0x80 Core/Src/main.o + 0x00000000080016ec LEDDesign_ColorGreen .text.LEDDesign_ColorRed - 0x0000000008000fd0 0x80 Core/Src/main.o - 0x0000000008000fd0 LEDDesign_ColorRed + 0x000000000800176c 0x80 Core/Src/main.o + 0x000000000800176c LEDDesign_ColorRed .text.LEDDesign_Crazy - 0x0000000008001050 0x80 Core/Src/main.o - 0x0000000008001050 LEDDesign_Crazy + 0x00000000080017ec 0x80 Core/Src/main.o + 0x00000000080017ec LEDDesign_Crazy + *fill* 0x000000000800186c 0x4 .text.LEDDesign_Smile - 0x00000000080010d0 0x5e0 Core/Src/main.o - 0x00000000080010d0 LEDDesign_Smile + 0x0000000008001870 0xa20 Core/Src/main.o + 0x0000000008001870 LEDDesign_Smile .text.LEDDesign_SuperCrazy - 0x00000000080016b0 0x104 Core/Src/main.o - 0x00000000080016b0 LEDDesign_SuperCrazy + 0x0000000008002290 0x104 Core/Src/main.o + 0x0000000008002290 LEDDesign_SuperCrazy + .text.lookupLED + 0x0000000008002394 0x2e0 Core/Src/main.o + 0x0000000008002394 lookupLED + .text.setLED 0x0000000008002674 0x60 Core/Src/main.o + 0x0000000008002674 setLED .text.updateWS2812BData - 0x00000000080017b4 0x340 Core/Src/main.o - 0x00000000080017b4 updateWS2812BData + 0x00000000080026d4 0x340 Core/Src/main.o + 0x00000000080026d4 updateWS2812BData .text.Error_Handler - 0x0000000008001af4 0xe Core/Src/main.o - 0x0000000008001af4 Error_Handler - *fill* 0x0000000008001b02 0x2 + 0x0000000008002a14 0xe Core/Src/main.o + 0x0000000008002a14 Error_Handler + *fill* 0x0000000008002a22 0x2 .text.HAL_MspInit - 0x0000000008001b04 0x50 Core/Src/stm32f4xx_hal_msp.o - 0x0000000008001b04 HAL_MspInit + 0x0000000008002a24 0x50 Core/Src/stm32f4xx_hal_msp.o + 0x0000000008002a24 HAL_MspInit .text.HAL_ADC_MspInit - 0x0000000008001b54 0x88 Core/Src/stm32f4xx_hal_msp.o - 0x0000000008001b54 HAL_ADC_MspInit + 0x0000000008002a74 0x88 Core/Src/stm32f4xx_hal_msp.o + 0x0000000008002a74 HAL_ADC_MspInit .text.HAL_SPI_MspInit - 0x0000000008001bdc 0xa0 Core/Src/stm32f4xx_hal_msp.o - 0x0000000008001bdc HAL_SPI_MspInit + 0x0000000008002afc 0xa0 Core/Src/stm32f4xx_hal_msp.o + 0x0000000008002afc HAL_SPI_MspInit .text.HAL_TIM_Base_MspInit - 0x0000000008001c7c 0x50 Core/Src/stm32f4xx_hal_msp.o - 0x0000000008001c7c HAL_TIM_Base_MspInit + 0x0000000008002b9c 0x50 Core/Src/stm32f4xx_hal_msp.o + 0x0000000008002b9c HAL_TIM_Base_MspInit .text.NMI_Handler - 0x0000000008001ccc 0xe Core/Src/stm32f4xx_it.o - 0x0000000008001ccc NMI_Handler + 0x0000000008002bec 0xe Core/Src/stm32f4xx_it.o + 0x0000000008002bec NMI_Handler .text.HardFault_Handler - 0x0000000008001cda 0x6 Core/Src/stm32f4xx_it.o - 0x0000000008001cda HardFault_Handler + 0x0000000008002bfa 0x6 Core/Src/stm32f4xx_it.o + 0x0000000008002bfa HardFault_Handler .text.MemManage_Handler - 0x0000000008001ce0 0x6 Core/Src/stm32f4xx_it.o - 0x0000000008001ce0 MemManage_Handler + 0x0000000008002c00 0x6 Core/Src/stm32f4xx_it.o + 0x0000000008002c00 MemManage_Handler .text.BusFault_Handler - 0x0000000008001ce6 0x6 Core/Src/stm32f4xx_it.o - 0x0000000008001ce6 BusFault_Handler + 0x0000000008002c06 0x6 Core/Src/stm32f4xx_it.o + 0x0000000008002c06 BusFault_Handler .text.UsageFault_Handler - 0x0000000008001cec 0x6 Core/Src/stm32f4xx_it.o - 0x0000000008001cec UsageFault_Handler + 0x0000000008002c0c 0x6 Core/Src/stm32f4xx_it.o + 0x0000000008002c0c UsageFault_Handler .text.SVC_Handler - 0x0000000008001cf2 0xe Core/Src/stm32f4xx_it.o - 0x0000000008001cf2 SVC_Handler + 0x0000000008002c12 0xe Core/Src/stm32f4xx_it.o + 0x0000000008002c12 SVC_Handler .text.DebugMon_Handler - 0x0000000008001d00 0xe Core/Src/stm32f4xx_it.o - 0x0000000008001d00 DebugMon_Handler + 0x0000000008002c20 0xe Core/Src/stm32f4xx_it.o + 0x0000000008002c20 DebugMon_Handler .text.PendSV_Handler - 0x0000000008001d0e 0xe Core/Src/stm32f4xx_it.o - 0x0000000008001d0e PendSV_Handler + 0x0000000008002c2e 0xe Core/Src/stm32f4xx_it.o + 0x0000000008002c2e PendSV_Handler .text.SysTick_Handler - 0x0000000008001d1c 0xc Core/Src/stm32f4xx_it.o - 0x0000000008001d1c SysTick_Handler + 0x0000000008002c3c 0xc Core/Src/stm32f4xx_it.o + 0x0000000008002c3c SysTick_Handler .text.EXTI0_IRQHandler - 0x0000000008001d28 0x24 Core/Src/stm32f4xx_it.o - 0x0000000008001d28 EXTI0_IRQHandler + 0x0000000008002c48 0x24 Core/Src/stm32f4xx_it.o + 0x0000000008002c48 EXTI0_IRQHandler .text.TIM6_DAC_IRQHandler - 0x0000000008001d4c 0x48 Core/Src/stm32f4xx_it.o - 0x0000000008001d4c TIM6_DAC_IRQHandler + 0x0000000008002c6c 0x48 Core/Src/stm32f4xx_it.o + 0x0000000008002c6c TIM6_DAC_IRQHandler .text.SPI4_IRQHandler - 0x0000000008001d94 0x24 Core/Src/stm32f4xx_it.o - 0x0000000008001d94 SPI4_IRQHandler - .text._sbrk 0x0000000008001db8 0x6c Core/Src/sysmem.o - 0x0000000008001db8 _sbrk + 0x0000000008002cb4 0x24 Core/Src/stm32f4xx_it.o + 0x0000000008002cb4 SPI4_IRQHandler + .text._sbrk 0x0000000008002cd8 0x6c Core/Src/sysmem.o + 0x0000000008002cd8 _sbrk .text.SystemInit - 0x0000000008001e24 0x2c Core/Src/system_stm32f4xx.o - 0x0000000008001e24 SystemInit + 0x0000000008002d44 0x2c Core/Src/system_stm32f4xx.o + 0x0000000008002d44 SystemInit .text.Reset_Handler - 0x0000000008001e50 0x50 Core/Startup/startup_stm32f429zitx.o - 0x0000000008001e50 Reset_Handler + 0x0000000008002d70 0x50 Core/Startup/startup_stm32f429zitx.o + 0x0000000008002d70 Reset_Handler .text.Default_Handler - 0x0000000008001ea0 0x2 Core/Startup/startup_stm32f429zitx.o - 0x0000000008001ea0 RTC_Alarm_IRQHandler - 0x0000000008001ea0 HASH_RNG_IRQHandler - 0x0000000008001ea0 EXTI2_IRQHandler - 0x0000000008001ea0 TIM8_CC_IRQHandler - 0x0000000008001ea0 UART8_IRQHandler - 0x0000000008001ea0 TIM1_CC_IRQHandler - 0x0000000008001ea0 DMA2_Stream5_IRQHandler - 0x0000000008001ea0 DMA1_Stream5_IRQHandler - 0x0000000008001ea0 PVD_IRQHandler - 0x0000000008001ea0 SDIO_IRQHandler - 0x0000000008001ea0 TAMP_STAMP_IRQHandler - 0x0000000008001ea0 CAN2_RX1_IRQHandler - 0x0000000008001ea0 EXTI3_IRQHandler - 0x0000000008001ea0 TIM8_TRG_COM_TIM14_IRQHandler - 0x0000000008001ea0 TIM1_UP_TIM10_IRQHandler - 0x0000000008001ea0 TIM8_UP_TIM13_IRQHandler - 0x0000000008001ea0 I2C3_ER_IRQHandler - 0x0000000008001ea0 I2C2_EV_IRQHandler - 0x0000000008001ea0 DMA1_Stream2_IRQHandler - 0x0000000008001ea0 CAN1_RX0_IRQHandler - 0x0000000008001ea0 FPU_IRQHandler - 0x0000000008001ea0 OTG_HS_WKUP_IRQHandler - 0x0000000008001ea0 LTDC_ER_IRQHandler - 0x0000000008001ea0 CAN2_SCE_IRQHandler - 0x0000000008001ea0 DMA2_Stream2_IRQHandler - 0x0000000008001ea0 SPI1_IRQHandler - 0x0000000008001ea0 TIM1_BRK_TIM9_IRQHandler - 0x0000000008001ea0 DCMI_IRQHandler - 0x0000000008001ea0 CAN2_RX0_IRQHandler - 0x0000000008001ea0 DMA2_Stream3_IRQHandler - 0x0000000008001ea0 USART6_IRQHandler - 0x0000000008001ea0 USART3_IRQHandler - 0x0000000008001ea0 CAN1_RX1_IRQHandler - 0x0000000008001ea0 UART5_IRQHandler - 0x0000000008001ea0 DMA2_Stream0_IRQHandler - 0x0000000008001ea0 TIM4_IRQHandler - 0x0000000008001ea0 I2C1_EV_IRQHandler - 0x0000000008001ea0 DMA1_Stream6_IRQHandler - 0x0000000008001ea0 DMA1_Stream1_IRQHandler - 0x0000000008001ea0 UART4_IRQHandler - 0x0000000008001ea0 TIM3_IRQHandler - 0x0000000008001ea0 RCC_IRQHandler - 0x0000000008001ea0 TIM8_BRK_TIM12_IRQHandler - 0x0000000008001ea0 Default_Handler - 0x0000000008001ea0 EXTI15_10_IRQHandler - 0x0000000008001ea0 ADC_IRQHandler - 0x0000000008001ea0 DMA1_Stream7_IRQHandler - 0x0000000008001ea0 SPI5_IRQHandler - 0x0000000008001ea0 TIM7_IRQHandler - 0x0000000008001ea0 CAN2_TX_IRQHandler - 0x0000000008001ea0 TIM5_IRQHandler - 0x0000000008001ea0 DMA2_Stream7_IRQHandler - 0x0000000008001ea0 I2C3_EV_IRQHandler - 0x0000000008001ea0 EXTI9_5_IRQHandler - 0x0000000008001ea0 RTC_WKUP_IRQHandler - 0x0000000008001ea0 LTDC_IRQHandler - 0x0000000008001ea0 ETH_WKUP_IRQHandler - 0x0000000008001ea0 SPI2_IRQHandler - 0x0000000008001ea0 OTG_HS_EP1_IN_IRQHandler - 0x0000000008001ea0 DMA1_Stream0_IRQHandler - 0x0000000008001ea0 CAN1_TX_IRQHandler - 0x0000000008001ea0 EXTI4_IRQHandler - 0x0000000008001ea0 ETH_IRQHandler - 0x0000000008001ea0 OTG_HS_EP1_OUT_IRQHandler - 0x0000000008001ea0 WWDG_IRQHandler - 0x0000000008001ea0 SPI6_IRQHandler - 0x0000000008001ea0 TIM2_IRQHandler - 0x0000000008001ea0 OTG_FS_WKUP_IRQHandler - 0x0000000008001ea0 TIM1_TRG_COM_TIM11_IRQHandler - 0x0000000008001ea0 OTG_HS_IRQHandler - 0x0000000008001ea0 DMA2D_IRQHandler - 0x0000000008001ea0 EXTI1_IRQHandler - 0x0000000008001ea0 UART7_IRQHandler - 0x0000000008001ea0 USART2_IRQHandler - 0x0000000008001ea0 I2C2_ER_IRQHandler - 0x0000000008001ea0 DMA2_Stream1_IRQHandler - 0x0000000008001ea0 CAN1_SCE_IRQHandler - 0x0000000008001ea0 FLASH_IRQHandler - 0x0000000008001ea0 DMA2_Stream4_IRQHandler - 0x0000000008001ea0 USART1_IRQHandler - 0x0000000008001ea0 OTG_FS_IRQHandler - 0x0000000008001ea0 SPI3_IRQHandler - 0x0000000008001ea0 DMA1_Stream4_IRQHandler - 0x0000000008001ea0 I2C1_ER_IRQHandler - 0x0000000008001ea0 FMC_IRQHandler - 0x0000000008001ea0 DMA2_Stream6_IRQHandler - 0x0000000008001ea0 SAI1_IRQHandler - 0x0000000008001ea0 DMA1_Stream3_IRQHandler - *fill* 0x0000000008001ea2 0x2 + 0x0000000008002dc0 0x2 Core/Startup/startup_stm32f429zitx.o + 0x0000000008002dc0 RTC_Alarm_IRQHandler + 0x0000000008002dc0 HASH_RNG_IRQHandler + 0x0000000008002dc0 EXTI2_IRQHandler + 0x0000000008002dc0 TIM8_CC_IRQHandler + 0x0000000008002dc0 UART8_IRQHandler + 0x0000000008002dc0 TIM1_CC_IRQHandler + 0x0000000008002dc0 DMA2_Stream5_IRQHandler + 0x0000000008002dc0 DMA1_Stream5_IRQHandler + 0x0000000008002dc0 PVD_IRQHandler + 0x0000000008002dc0 SDIO_IRQHandler + 0x0000000008002dc0 TAMP_STAMP_IRQHandler + 0x0000000008002dc0 CAN2_RX1_IRQHandler + 0x0000000008002dc0 EXTI3_IRQHandler + 0x0000000008002dc0 TIM8_TRG_COM_TIM14_IRQHandler + 0x0000000008002dc0 TIM1_UP_TIM10_IRQHandler + 0x0000000008002dc0 TIM8_UP_TIM13_IRQHandler + 0x0000000008002dc0 I2C3_ER_IRQHandler + 0x0000000008002dc0 I2C2_EV_IRQHandler + 0x0000000008002dc0 DMA1_Stream2_IRQHandler + 0x0000000008002dc0 CAN1_RX0_IRQHandler + 0x0000000008002dc0 FPU_IRQHandler + 0x0000000008002dc0 OTG_HS_WKUP_IRQHandler + 0x0000000008002dc0 LTDC_ER_IRQHandler + 0x0000000008002dc0 CAN2_SCE_IRQHandler + 0x0000000008002dc0 DMA2_Stream2_IRQHandler + 0x0000000008002dc0 SPI1_IRQHandler + 0x0000000008002dc0 TIM1_BRK_TIM9_IRQHandler + 0x0000000008002dc0 DCMI_IRQHandler + 0x0000000008002dc0 CAN2_RX0_IRQHandler + 0x0000000008002dc0 DMA2_Stream3_IRQHandler + 0x0000000008002dc0 USART6_IRQHandler + 0x0000000008002dc0 USART3_IRQHandler + 0x0000000008002dc0 CAN1_RX1_IRQHandler + 0x0000000008002dc0 UART5_IRQHandler + 0x0000000008002dc0 DMA2_Stream0_IRQHandler + 0x0000000008002dc0 TIM4_IRQHandler + 0x0000000008002dc0 I2C1_EV_IRQHandler + 0x0000000008002dc0 DMA1_Stream6_IRQHandler + 0x0000000008002dc0 DMA1_Stream1_IRQHandler + 0x0000000008002dc0 UART4_IRQHandler + 0x0000000008002dc0 TIM3_IRQHandler + 0x0000000008002dc0 RCC_IRQHandler + 0x0000000008002dc0 TIM8_BRK_TIM12_IRQHandler + 0x0000000008002dc0 Default_Handler + 0x0000000008002dc0 EXTI15_10_IRQHandler + 0x0000000008002dc0 ADC_IRQHandler + 0x0000000008002dc0 DMA1_Stream7_IRQHandler + 0x0000000008002dc0 SPI5_IRQHandler + 0x0000000008002dc0 TIM7_IRQHandler + 0x0000000008002dc0 CAN2_TX_IRQHandler + 0x0000000008002dc0 TIM5_IRQHandler + 0x0000000008002dc0 DMA2_Stream7_IRQHandler + 0x0000000008002dc0 I2C3_EV_IRQHandler + 0x0000000008002dc0 EXTI9_5_IRQHandler + 0x0000000008002dc0 RTC_WKUP_IRQHandler + 0x0000000008002dc0 LTDC_IRQHandler + 0x0000000008002dc0 ETH_WKUP_IRQHandler + 0x0000000008002dc0 SPI2_IRQHandler + 0x0000000008002dc0 OTG_HS_EP1_IN_IRQHandler + 0x0000000008002dc0 DMA1_Stream0_IRQHandler + 0x0000000008002dc0 CAN1_TX_IRQHandler + 0x0000000008002dc0 EXTI4_IRQHandler + 0x0000000008002dc0 ETH_IRQHandler + 0x0000000008002dc0 OTG_HS_EP1_OUT_IRQHandler + 0x0000000008002dc0 WWDG_IRQHandler + 0x0000000008002dc0 SPI6_IRQHandler + 0x0000000008002dc0 TIM2_IRQHandler + 0x0000000008002dc0 OTG_FS_WKUP_IRQHandler + 0x0000000008002dc0 TIM1_TRG_COM_TIM11_IRQHandler + 0x0000000008002dc0 OTG_HS_IRQHandler + 0x0000000008002dc0 DMA2D_IRQHandler + 0x0000000008002dc0 EXTI1_IRQHandler + 0x0000000008002dc0 UART7_IRQHandler + 0x0000000008002dc0 USART2_IRQHandler + 0x0000000008002dc0 I2C2_ER_IRQHandler + 0x0000000008002dc0 DMA2_Stream1_IRQHandler + 0x0000000008002dc0 CAN1_SCE_IRQHandler + 0x0000000008002dc0 FLASH_IRQHandler + 0x0000000008002dc0 DMA2_Stream4_IRQHandler + 0x0000000008002dc0 USART1_IRQHandler + 0x0000000008002dc0 OTG_FS_IRQHandler + 0x0000000008002dc0 SPI3_IRQHandler + 0x0000000008002dc0 DMA1_Stream4_IRQHandler + 0x0000000008002dc0 I2C1_ER_IRQHandler + 0x0000000008002dc0 FMC_IRQHandler + 0x0000000008002dc0 DMA2_Stream6_IRQHandler + 0x0000000008002dc0 SAI1_IRQHandler + 0x0000000008002dc0 DMA1_Stream3_IRQHandler + *fill* 0x0000000008002dc2 0x2 .text.HAL_Init - 0x0000000008001ea4 0x44 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o - 0x0000000008001ea4 HAL_Init + 0x0000000008002dc4 0x44 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + 0x0000000008002dc4 HAL_Init .text.HAL_InitTick - 0x0000000008001ee8 0x60 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o - 0x0000000008001ee8 HAL_InitTick + 0x0000000008002e08 0x60 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + 0x0000000008002e08 HAL_InitTick .text.HAL_IncTick - 0x0000000008001f48 0x28 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o - 0x0000000008001f48 HAL_IncTick + 0x0000000008002e68 0x28 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + 0x0000000008002e68 HAL_IncTick .text.HAL_GetTick - 0x0000000008001f70 0x18 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o - 0x0000000008001f70 HAL_GetTick + 0x0000000008002e90 0x18 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + 0x0000000008002e90 HAL_GetTick .text.HAL_Delay - 0x0000000008001f88 0x44 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o - 0x0000000008001f88 HAL_Delay + 0x0000000008002ea8 0x44 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + 0x0000000008002ea8 HAL_Delay .text.HAL_ADC_Init - 0x0000000008001fcc 0x86 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o - 0x0000000008001fcc HAL_ADC_Init - *fill* 0x0000000008002052 0x2 + 0x0000000008002eec 0x86 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o + 0x0000000008002eec HAL_ADC_Init + *fill* 0x0000000008002f72 0x2 .text.HAL_ADC_Start - 0x0000000008002054 0x18c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o - 0x0000000008002054 HAL_ADC_Start + 0x0000000008002f74 0x18c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o + 0x0000000008002f74 HAL_ADC_Start .text.HAL_ADC_PollForConversion - 0x00000000080021e0 0x108 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o - 0x00000000080021e0 HAL_ADC_PollForConversion + 0x0000000008003100 0x108 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o + 0x0000000008003100 HAL_ADC_PollForConversion .text.HAL_ADC_GetValue - 0x00000000080022e8 0x1a Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o - 0x00000000080022e8 HAL_ADC_GetValue - *fill* 0x0000000008002302 0x2 + 0x0000000008003208 0x1a Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o + 0x0000000008003208 HAL_ADC_GetValue + *fill* 0x0000000008003222 0x2 .text.HAL_ADC_ConfigChannel - 0x0000000008002304 0x264 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o - 0x0000000008002304 HAL_ADC_ConfigChannel + 0x0000000008003224 0x264 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o + 0x0000000008003224 HAL_ADC_ConfigChannel .text.ADC_Init - 0x0000000008002568 0x1f8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o + 0x0000000008003488 0x1f8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o .text.__NVIC_SetPriorityGrouping - 0x0000000008002760 0x48 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + 0x0000000008003680 0x48 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o .text.__NVIC_GetPriorityGrouping - 0x00000000080027a8 0x1c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + 0x00000000080036c8 0x1c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o .text.__NVIC_EnableIRQ - 0x00000000080027c4 0x3c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + 0x00000000080036e4 0x3c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o .text.__NVIC_SetPriority - 0x0000000008002800 0x54 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + 0x0000000008003720 0x54 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o .text.NVIC_EncodePriority - 0x0000000008002854 0x66 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o - *fill* 0x00000000080028ba 0x2 + 0x0000000008003774 0x66 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + *fill* 0x00000000080037da 0x2 .text.SysTick_Config - 0x00000000080028bc 0x44 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + 0x00000000080037dc 0x44 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o .text.HAL_NVIC_SetPriorityGrouping - 0x0000000008002900 0x16 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o - 0x0000000008002900 HAL_NVIC_SetPriorityGrouping + 0x0000000008003820 0x16 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + 0x0000000008003820 HAL_NVIC_SetPriorityGrouping .text.HAL_NVIC_SetPriority - 0x0000000008002916 0x38 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o - 0x0000000008002916 HAL_NVIC_SetPriority + 0x0000000008003836 0x38 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + 0x0000000008003836 HAL_NVIC_SetPriority .text.HAL_NVIC_EnableIRQ - 0x000000000800294e 0x1c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o - 0x000000000800294e HAL_NVIC_EnableIRQ + 0x000000000800386e 0x1c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + 0x000000000800386e HAL_NVIC_EnableIRQ .text.HAL_SYSTICK_Config - 0x000000000800296a 0x18 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o - 0x000000000800296a HAL_SYSTICK_Config + 0x000000000800388a 0x18 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + 0x000000000800388a HAL_SYSTICK_Config .text.HAL_DMA_Abort_IT - 0x0000000008002982 0x44 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o - 0x0000000008002982 HAL_DMA_Abort_IT - *fill* 0x00000000080029c6 0x2 + 0x00000000080038a2 0x44 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o + 0x00000000080038a2 HAL_DMA_Abort_IT + *fill* 0x00000000080038e6 0x2 .text.HAL_GPIO_Init - 0x00000000080029c8 0x354 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o - 0x00000000080029c8 HAL_GPIO_Init + 0x00000000080038e8 0x354 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o + 0x00000000080038e8 HAL_GPIO_Init .text.HAL_GPIO_WritePin - 0x0000000008002d1c 0x32 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o - 0x0000000008002d1c HAL_GPIO_WritePin - *fill* 0x0000000008002d4e 0x2 + 0x0000000008003c3c 0x32 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o + 0x0000000008003c3c HAL_GPIO_WritePin + *fill* 0x0000000008003c6e 0x2 .text.HAL_GPIO_EXTI_IRQHandler - 0x0000000008002d50 0x30 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o - 0x0000000008002d50 HAL_GPIO_EXTI_IRQHandler + 0x0000000008003c70 0x30 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o + 0x0000000008003c70 HAL_GPIO_EXTI_IRQHandler .text.HAL_GPIO_EXTI_Callback - 0x0000000008002d80 0x16 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o - 0x0000000008002d80 HAL_GPIO_EXTI_Callback - *fill* 0x0000000008002d96 0x2 + 0x0000000008003ca0 0x16 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o + 0x0000000008003ca0 HAL_GPIO_EXTI_Callback + *fill* 0x0000000008003cb6 0x2 .text.HAL_RCC_OscConfig - 0x0000000008002d98 0x4e0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o - 0x0000000008002d98 HAL_RCC_OscConfig + 0x0000000008003cb8 0x4e0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o + 0x0000000008003cb8 HAL_RCC_OscConfig .text.HAL_RCC_ClockConfig - 0x0000000008003278 0x1cc Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o - 0x0000000008003278 HAL_RCC_ClockConfig + 0x0000000008004198 0x1cc Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o + 0x0000000008004198 HAL_RCC_ClockConfig .text.HAL_RCC_GetSysClockFreq - 0x0000000008003444 0x1b0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o - 0x0000000008003444 HAL_RCC_GetSysClockFreq + 0x0000000008004364 0x1b0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o + 0x0000000008004364 HAL_RCC_GetSysClockFreq .text.HAL_SPI_Init - 0x00000000080035f4 0xc8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o - 0x00000000080035f4 HAL_SPI_Init + 0x0000000008004514 0xc8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + 0x0000000008004514 HAL_SPI_Init .text.HAL_SPI_Transmit_IT - 0x00000000080036bc 0x104 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o - 0x00000000080036bc HAL_SPI_Transmit_IT + 0x00000000080045dc 0x104 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + 0x00000000080045dc HAL_SPI_Transmit_IT .text.HAL_SPI_IRQHandler - 0x00000000080037c0 0x200 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o - 0x00000000080037c0 HAL_SPI_IRQHandler + 0x00000000080046e0 0x200 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + 0x00000000080046e0 HAL_SPI_IRQHandler .text.HAL_SPI_TxCpltCallback - 0x00000000080039c0 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o - 0x00000000080039c0 HAL_SPI_TxCpltCallback + 0x00000000080048e0 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + 0x00000000080048e0 HAL_SPI_TxCpltCallback .text.HAL_SPI_ErrorCallback - 0x00000000080039d4 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o - 0x00000000080039d4 HAL_SPI_ErrorCallback + 0x00000000080048f4 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + 0x00000000080048f4 HAL_SPI_ErrorCallback .text.SPI_DMAAbortOnError - 0x00000000080039e8 0x28 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + 0x0000000008004908 0x28 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o .text.SPI_TxISR_8BIT - 0x0000000008003a10 0x46 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + 0x0000000008004930 0x46 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o .text.SPI_TxISR_16BIT - 0x0000000008003a56 0x44 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + 0x0000000008004976 0x44 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o .text.SPI_WaitFlagStateUntilTimeout - 0x0000000008003a9a 0xd4 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o - *fill* 0x0000000008003b6e 0x2 + 0x00000000080049ba 0xd4 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + *fill* 0x0000000008004a8e 0x2 .text.SPI_EndRxTxTransaction - 0x0000000008003b70 0x84 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + 0x0000000008004a90 0x84 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o .text.SPI_CloseTx_ISR - 0x0000000008003bf4 0xc4 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + 0x0000000008004b14 0xc4 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o .text.HAL_TIM_Base_Init - 0x0000000008003cb8 0x56 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o - 0x0000000008003cb8 HAL_TIM_Base_Init + 0x0000000008004bd8 0x56 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o + 0x0000000008004bd8 HAL_TIM_Base_Init .text.HAL_TIM_Base_Start_IT - 0x0000000008003d0e 0x48 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o - 0x0000000008003d0e HAL_TIM_Base_Start_IT + 0x0000000008004c2e 0x48 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o + 0x0000000008004c2e HAL_TIM_Base_Start_IT .text.HAL_TIM_OnePulse_Init - 0x0000000008003d56 0x78 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o - 0x0000000008003d56 HAL_TIM_OnePulse_Init + 0x0000000008004c76 0x78 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o + 0x0000000008004c76 HAL_TIM_OnePulse_Init .text.HAL_TIM_OnePulse_MspInit - 0x0000000008003dce 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o - 0x0000000008003dce HAL_TIM_OnePulse_MspInit + 0x0000000008004cee 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o + 0x0000000008004cee HAL_TIM_OnePulse_MspInit .text.HAL_TIM_IRQHandler - 0x0000000008003de2 0x210 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o - 0x0000000008003de2 HAL_TIM_IRQHandler + 0x0000000008004d02 0x210 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o + 0x0000000008004d02 HAL_TIM_IRQHandler .text.HAL_TIM_PeriodElapsedCallback - 0x0000000008003ff2 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o - 0x0000000008003ff2 HAL_TIM_PeriodElapsedCallback + 0x0000000008004f12 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o + 0x0000000008004f12 HAL_TIM_PeriodElapsedCallback .text.HAL_TIM_OC_DelayElapsedCallback - 0x0000000008004006 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o - 0x0000000008004006 HAL_TIM_OC_DelayElapsedCallback + 0x0000000008004f26 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o + 0x0000000008004f26 HAL_TIM_OC_DelayElapsedCallback .text.HAL_TIM_IC_CaptureCallback - 0x000000000800401a 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o - 0x000000000800401a HAL_TIM_IC_CaptureCallback + 0x0000000008004f3a 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o + 0x0000000008004f3a HAL_TIM_IC_CaptureCallback .text.HAL_TIM_PWM_PulseFinishedCallback - 0x000000000800402e 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o - 0x000000000800402e HAL_TIM_PWM_PulseFinishedCallback + 0x0000000008004f4e 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o + 0x0000000008004f4e HAL_TIM_PWM_PulseFinishedCallback .text.HAL_TIM_TriggerCallback - 0x0000000008004042 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o - 0x0000000008004042 HAL_TIM_TriggerCallback - *fill* 0x0000000008004056 0x2 + 0x0000000008004f62 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o + 0x0000000008004f62 HAL_TIM_TriggerCallback + *fill* 0x0000000008004f76 0x2 .text.TIM_Base_SetConfig - 0x0000000008004058 0x140 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o - 0x0000000008004058 TIM_Base_SetConfig + 0x0000000008004f78 0x140 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o + 0x0000000008004f78 TIM_Base_SetConfig .text.HAL_TIMEx_MasterConfigSynchronization - 0x0000000008004198 0xf8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o - 0x0000000008004198 HAL_TIMEx_MasterConfigSynchronization + 0x00000000080050b8 0xf8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o + 0x00000000080050b8 HAL_TIMEx_MasterConfigSynchronization .text.HAL_TIMEx_CommutCallback - 0x0000000008004290 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o - 0x0000000008004290 HAL_TIMEx_CommutCallback + 0x00000000080051b0 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o + 0x00000000080051b0 HAL_TIMEx_CommutCallback .text.HAL_TIMEx_BreakCallback - 0x00000000080042a4 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o - 0x00000000080042a4 HAL_TIMEx_BreakCallback - .text.__errno 0x00000000080042b8 0xc b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-errno.o) - 0x00000000080042b8 __errno + 0x00000000080051c4 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o + 0x00000000080051c4 HAL_TIMEx_BreakCallback + .text.__errno 0x00000000080051d8 0xc b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-errno.o) + 0x00000000080051d8 __errno .text.__libc_init_array - 0x00000000080042c4 0x48 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-init.o) - 0x00000000080042c4 __libc_init_array - .text.memset 0x000000000800430c 0x10 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-memset.o) - 0x000000000800430c memset - .text.rand 0x000000000800431c 0x68 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-rand.o) - 0x000000000800431c rand - .text.malloc 0x0000000008004384 0x10 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-malloc.o) - 0x0000000008004384 malloc + 0x00000000080051e4 0x48 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-init.o) + 0x00000000080051e4 __libc_init_array + .text.memset 0x000000000800522c 0x10 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-memset.o) + 0x000000000800522c memset + .text.rand 0x000000000800523c 0x68 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-rand.o) + 0x000000000800523c rand + .text.malloc 0x00000000080052a4 0x10 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-malloc.o) + 0x00000000080052a4 malloc .text._malloc_r - 0x0000000008004394 0xb4 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-nano-mallocr.o) - 0x0000000008004394 _malloc_r - .text._sbrk_r 0x0000000008004448 0x20 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-sbrkr.o) - 0x0000000008004448 _sbrk_r + 0x00000000080052b4 0xb4 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-nano-mallocr.o) + 0x00000000080052b4 _malloc_r + .text._sbrk_r 0x0000000008005368 0x20 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-sbrkr.o) + 0x0000000008005368 _sbrk_r .text.__malloc_lock - 0x0000000008004468 0x2 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-mlock.o) - 0x0000000008004468 __malloc_lock + 0x0000000008005388 0x2 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-mlock.o) + 0x0000000008005388 __malloc_lock .text.__malloc_unlock - 0x000000000800446a 0x2 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-mlock.o) - 0x000000000800446a __malloc_unlock + 0x000000000800538a 0x2 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-mlock.o) + 0x000000000800538a __malloc_unlock *(.glue_7) - .glue_7 0x000000000800446c 0x0 linker stubs + .glue_7 0x000000000800538c 0x0 linker stubs *(.glue_7t) - .glue_7t 0x000000000800446c 0x0 linker stubs + .glue_7t 0x000000000800538c 0x0 linker stubs *(.eh_frame) - .eh_frame 0x000000000800446c 0x0 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o + .eh_frame 0x000000000800538c 0x0 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o *(.init) - .init 0x000000000800446c 0x4 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crti.o - 0x000000000800446c _init - .init 0x0000000008004470 0x8 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtn.o + .init 0x000000000800538c 0x4 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crti.o + 0x000000000800538c _init + .init 0x0000000008005390 0x8 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtn.o *(.fini) - .fini 0x0000000008004478 0x4 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crti.o - 0x0000000008004478 _fini - .fini 0x000000000800447c 0x8 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtn.o - 0x0000000008004484 . = ALIGN (0x4) - 0x0000000008004484 _etext = . + .fini 0x0000000008005398 0x4 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crti.o + 0x0000000008005398 _fini + .fini 0x000000000800539c 0x8 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtn.o + 0x00000000080053a4 . = ALIGN (0x4) + 0x00000000080053a4 _etext = . -.vfp11_veneer 0x0000000008004484 0x0 - .vfp11_veneer 0x0000000008004484 0x0 linker stubs +.vfp11_veneer 0x00000000080053a4 0x0 + .vfp11_veneer 0x00000000080053a4 0x0 linker stubs -.v4_bx 0x0000000008004484 0x0 - .v4_bx 0x0000000008004484 0x0 linker stubs +.v4_bx 0x00000000080053a4 0x0 + .v4_bx 0x00000000080053a4 0x0 linker stubs -.iplt 0x0000000008004484 0x0 - .iplt 0x0000000008004484 0x0 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o +.iplt 0x00000000080053a4 0x0 + .iplt 0x00000000080053a4 0x0 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o -.rodata 0x0000000008004484 0x10 - 0x0000000008004484 . = ALIGN (0x4) +.rodata 0x00000000080053a4 0x10 + 0x00000000080053a4 . = ALIGN (0x4) *(.rodata) *(.rodata*) .rodata.AHBPrescTable - 0x0000000008004484 0x10 Core/Src/system_stm32f4xx.o - 0x0000000008004484 AHBPrescTable - 0x0000000008004494 . = ALIGN (0x4) + 0x00000000080053a4 0x10 Core/Src/system_stm32f4xx.o + 0x00000000080053a4 AHBPrescTable + 0x00000000080053b4 . = ALIGN (0x4) -.ARM.extab 0x0000000008004494 0x0 - 0x0000000008004494 . = ALIGN (0x4) +.ARM.extab 0x00000000080053b4 0x0 + 0x00000000080053b4 . = ALIGN (0x4) *(.ARM.extab* .gnu.linkonce.armextab.*) - 0x0000000008004494 . = ALIGN (0x4) + 0x00000000080053b4 . = ALIGN (0x4) -.ARM 0x0000000008004494 0x8 - 0x0000000008004494 . = ALIGN (0x4) - 0x0000000008004494 __exidx_start = . +.ARM 0x00000000080053b4 0x8 + 0x00000000080053b4 . = ALIGN (0x4) + 0x00000000080053b4 __exidx_start = . *(.ARM.exidx*) - .ARM.exidx 0x0000000008004494 0x8 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_udivmoddi4.o) - 0x000000000800449c __exidx_end = . - 0x000000000800449c . = ALIGN (0x4) + .ARM.exidx 0x00000000080053b4 0x8 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_udivmoddi4.o) + 0x00000000080053bc __exidx_end = . + 0x00000000080053bc . = ALIGN (0x4) -.rel.dyn 0x000000000800449c 0x0 - .rel.iplt 0x000000000800449c 0x0 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o +.rel.dyn 0x00000000080053bc 0x0 + .rel.iplt 0x00000000080053bc 0x0 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o -.preinit_array 0x000000000800449c 0x0 - 0x000000000800449c . = ALIGN (0x4) - 0x000000000800449c PROVIDE (__preinit_array_start = .) +.preinit_array 0x00000000080053bc 0x0 + 0x00000000080053bc . = ALIGN (0x4) + 0x00000000080053bc PROVIDE (__preinit_array_start = .) *(.preinit_array*) - 0x000000000800449c PROVIDE (__preinit_array_end = .) - 0x000000000800449c . = ALIGN (0x4) + 0x00000000080053bc PROVIDE (__preinit_array_end = .) + 0x00000000080053bc . = ALIGN (0x4) -.init_array 0x000000000800449c 0x4 - 0x000000000800449c . = ALIGN (0x4) - 0x000000000800449c PROVIDE (__init_array_start = .) +.init_array 0x00000000080053bc 0x4 + 0x00000000080053bc . = ALIGN (0x4) + 0x00000000080053bc PROVIDE (__init_array_start = .) *(SORT_BY_NAME(.init_array.*)) *(.init_array*) - .init_array 0x000000000800449c 0x4 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o - 0x00000000080044a0 PROVIDE (__init_array_end = .) - 0x00000000080044a0 . = ALIGN (0x4) + .init_array 0x00000000080053bc 0x4 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o + 0x00000000080053c0 PROVIDE (__init_array_end = .) + 0x00000000080053c0 . = ALIGN (0x4) -.fini_array 0x00000000080044a0 0x4 - 0x00000000080044a0 . = ALIGN (0x4) +.fini_array 0x00000000080053c0 0x4 + 0x00000000080053c0 . = ALIGN (0x4) [!provide] PROVIDE (__fini_array_start = .) *(SORT_BY_NAME(.fini_array.*)) *(.fini_array*) - .fini_array 0x00000000080044a0 0x4 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o + .fini_array 0x00000000080053c0 0x4 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o [!provide] PROVIDE (__fini_array_end = .) - 0x00000000080044a4 . = ALIGN (0x4) - 0x00000000080044a4 _sidata = LOADADDR (.data) + 0x00000000080053c4 . = ALIGN (0x4) + 0x00000000080053c4 _sidata = LOADADDR (.data) -.data 0x0000000020000000 0x74 load address 0x00000000080044a4 +.data 0x0000000020000000 0x74 load address 0x00000000080053c4 0x0000000020000000 . = ALIGN (0x4) 0x0000000020000000 _sdata = . *(.data) *(.data*) - .data.prescale_DownShift.9777 + .data.cutoff.9783 0x0000000020000000 0x1 Core/Src/main.o - .data.divisor.9775 - 0x0000000020000001 0x1 Core/Src/main.o - .data.multiplier.9778 - 0x0000000020000002 0x1 Core/Src/main.o - *fill* 0x0000000020000003 0x1 + *fill* 0x0000000020000001 0x3 .data.SystemCoreClock 0x0000000020000004 0x4 Core/Src/system_stm32f4xx.o 0x0000000020000004 SystemCoreClock @@ -3644,11 +3682,11 @@ LOAD b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm 0x0000000020000074 . = ALIGN (0x4) 0x0000000020000074 _edata = . -.igot.plt 0x0000000020000074 0x0 load address 0x0000000008004518 +.igot.plt 0x0000000020000074 0x0 load address 0x0000000008005438 .igot.plt 0x0000000020000074 0x0 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o 0x0000000020000074 . = ALIGN (0x4) -.bss 0x0000000020000074 0x430 load address 0x0000000008004518 +.bss 0x0000000020000074 0x42c load address 0x0000000008005438 0x0000000020000074 _sbss = . 0x0000000020000074 __bss_start__ = _sbss *(.bss) @@ -3665,44 +3703,40 @@ LOAD b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm .bss.LEDData_WS2812B 0x0000000020000154 0x252 Core/Src/main.o 0x0000000020000154 LEDData_WS2812B - .bss.averagedDifferences.9779 + .bss.averagedReturnValue.9786 0x00000000200003a6 0x2 Core/Src/main.o - .bss.postscale_DownShift.9776 - 0x00000000200003a8 0x1 Core/Src/main.o - *fill* 0x00000000200003a9 0x3 .bss.__sbrk_heap_end - 0x00000000200003ac 0x4 Core/Src/sysmem.o + 0x00000000200003a8 0x4 Core/Src/sysmem.o .bss.__malloc_free_list - 0x00000000200003b0 0x4 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-nano-mallocr.o) - 0x00000000200003b0 __malloc_free_list + 0x00000000200003ac 0x4 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-nano-mallocr.o) + 0x00000000200003ac __malloc_free_list .bss.__malloc_sbrk_start - 0x00000000200003b4 0x4 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-nano-mallocr.o) - 0x00000000200003b4 __malloc_sbrk_start + 0x00000000200003b0 0x4 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-nano-mallocr.o) + 0x00000000200003b0 __malloc_sbrk_start *(COMMON) - COMMON 0x00000000200003b8 0xe4 Core/Src/main.o - 0x00000000200003b8 hadc3 - 0x0000000020000400 hspi4 - 0x0000000020000458 htim6 - 0x0000000020000498 WS2812BConvertedData - COMMON 0x000000002000049c 0x4 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o - 0x000000002000049c uwTick - COMMON 0x00000000200004a0 0x4 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-reent.o) - 0x00000000200004a0 errno - 0x00000000200004a4 . = ALIGN (0x4) - 0x00000000200004a4 _ebss = . - 0x00000000200004a4 __bss_end__ = _ebss + COMMON 0x00000000200003b4 0xe4 Core/Src/main.o + 0x00000000200003b4 hadc3 + 0x00000000200003fc hspi4 + 0x0000000020000454 htim6 + 0x0000000020000494 WS2812BConvertedData + COMMON 0x0000000020000498 0x4 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + 0x0000000020000498 uwTick + COMMON 0x000000002000049c 0x4 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-reent.o) + 0x000000002000049c errno + 0x00000000200004a0 . = ALIGN (0x4) + 0x00000000200004a0 _ebss = . + 0x00000000200004a0 __bss_end__ = _ebss ._user_heap_stack - 0x00000000200004a4 0x604 load address 0x0000000008004518 - 0x00000000200004a8 . = ALIGN (0x8) - *fill* 0x00000000200004a4 0x4 + 0x00000000200004a0 0x600 load address 0x0000000008005438 + 0x00000000200004a0 . = ALIGN (0x8) [!provide] PROVIDE (end = .) - 0x00000000200004a8 PROVIDE (_end = .) - 0x00000000200006a8 . = (. + _Min_Heap_Size) - *fill* 0x00000000200004a8 0x200 - 0x0000000020000aa8 . = (. + _Min_Stack_Size) - *fill* 0x00000000200006a8 0x400 - 0x0000000020000aa8 . = ALIGN (0x8) + 0x00000000200004a0 PROVIDE (_end = .) + 0x00000000200006a0 . = (. + _Min_Heap_Size) + *fill* 0x00000000200004a0 0x200 + 0x0000000020000aa0 . = (. + _Min_Stack_Size) + *fill* 0x00000000200006a0 0x400 + 0x0000000020000aa0 . = ALIGN (0x8) /DISCARD/ libc.a(*) @@ -3767,97 +3801,103 @@ LOAD b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm .ARM.attributes 0x0000000000000569 0x34 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-reent.o) .ARM.attributes - 0x000000000000059d 0x22 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_aeabi_uldivmod.o) + 0x000000000000059d 0x22 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_addsubdf3.o) .ARM.attributes - 0x00000000000005bf 0x34 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_udivmoddi4.o) + 0x00000000000005bf 0x22 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_muldivdf3.o) .ARM.attributes - 0x00000000000005f3 0x22 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_dvmd_tls.o) + 0x00000000000005e1 0x22 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_fixunsdfsi.o) .ARM.attributes - 0x0000000000000615 0x22 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtn.o + 0x0000000000000603 0x22 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_aeabi_uldivmod.o) + .ARM.attributes + 0x0000000000000625 0x34 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_udivmoddi4.o) + .ARM.attributes + 0x0000000000000659 0x22 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_dvmd_tls.o) + .ARM.attributes + 0x000000000000067b 0x22 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtn.o OUTPUT(STM32F429I-DISC1_LEDFaceMask-Rough.elf elf32-littlearm) -.debug_info 0x0000000000000000 0xd979 - .debug_info 0x0000000000000000 0x2338 Core/Src/main.o - .debug_info 0x0000000000002338 0x11c3 Core/Src/stm32f4xx_hal_msp.o - .debug_info 0x00000000000034fb 0x9d5 Core/Src/stm32f4xx_it.o - .debug_info 0x0000000000003ed0 0x985 Core/Src/sysmem.o - .debug_info 0x0000000000004855 0x56e Core/Src/system_stm32f4xx.o - .debug_info 0x0000000000004dc3 0x22 Core/Startup/startup_stm32f429zitx.o - .debug_info 0x0000000000004de5 0x9b9 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o - .debug_info 0x000000000000579e 0xcee Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o - .debug_info 0x000000000000648c 0xe5e Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o - .debug_info 0x00000000000072ea 0x968 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o - .debug_info 0x0000000000007c52 0x7cf Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o - .debug_info 0x0000000000008421 0x91e Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o - .debug_info 0x0000000000008d3f 0x163a Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o - .debug_info 0x000000000000a379 0x24a9 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o - .debug_info 0x000000000000c822 0x1157 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o +.debug_info 0x0000000000000000 0xd9cf + .debug_info 0x0000000000000000 0x238e Core/Src/main.o + .debug_info 0x000000000000238e 0x11c3 Core/Src/stm32f4xx_hal_msp.o + .debug_info 0x0000000000003551 0x9d5 Core/Src/stm32f4xx_it.o + .debug_info 0x0000000000003f26 0x985 Core/Src/sysmem.o + .debug_info 0x00000000000048ab 0x56e Core/Src/system_stm32f4xx.o + .debug_info 0x0000000000004e19 0x22 Core/Startup/startup_stm32f429zitx.o + .debug_info 0x0000000000004e3b 0x9b9 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + .debug_info 0x00000000000057f4 0xcee Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o + .debug_info 0x00000000000064e2 0xe5e Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + .debug_info 0x0000000000007340 0x968 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o + .debug_info 0x0000000000007ca8 0x7cf Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o + .debug_info 0x0000000000008477 0x91e Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o + .debug_info 0x0000000000008d95 0x163a Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + .debug_info 0x000000000000a3cf 0x24a9 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o + .debug_info 0x000000000000c878 0x1157 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o -.debug_abbrev 0x0000000000000000 0x1d08 - .debug_abbrev 0x0000000000000000 0x396 Core/Src/main.o - .debug_abbrev 0x0000000000000396 0x1a6 Core/Src/stm32f4xx_hal_msp.o - .debug_abbrev 0x000000000000053c 0x169 Core/Src/stm32f4xx_it.o - .debug_abbrev 0x00000000000006a5 0x19b Core/Src/sysmem.o - .debug_abbrev 0x0000000000000840 0x12b Core/Src/system_stm32f4xx.o - .debug_abbrev 0x000000000000096b 0x12 Core/Startup/startup_stm32f429zitx.o - .debug_abbrev 0x000000000000097d 0x1c7 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o - .debug_abbrev 0x0000000000000b44 0x205 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o - .debug_abbrev 0x0000000000000d49 0x2fa Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o - .debug_abbrev 0x0000000000001043 0x229 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o - .debug_abbrev 0x000000000000126c 0x1c9 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o - .debug_abbrev 0x0000000000001435 0x245 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o - .debug_abbrev 0x000000000000167a 0x240 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o - .debug_abbrev 0x00000000000018ba 0x230 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o - .debug_abbrev 0x0000000000001aea 0x21e Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o +.debug_abbrev 0x0000000000000000 0x1d33 + .debug_abbrev 0x0000000000000000 0x3c1 Core/Src/main.o + .debug_abbrev 0x00000000000003c1 0x1a6 Core/Src/stm32f4xx_hal_msp.o + .debug_abbrev 0x0000000000000567 0x169 Core/Src/stm32f4xx_it.o + .debug_abbrev 0x00000000000006d0 0x19b Core/Src/sysmem.o + .debug_abbrev 0x000000000000086b 0x12b Core/Src/system_stm32f4xx.o + .debug_abbrev 0x0000000000000996 0x12 Core/Startup/startup_stm32f429zitx.o + .debug_abbrev 0x00000000000009a8 0x1c7 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + .debug_abbrev 0x0000000000000b6f 0x205 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o + .debug_abbrev 0x0000000000000d74 0x2fa Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + .debug_abbrev 0x000000000000106e 0x229 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o + .debug_abbrev 0x0000000000001297 0x1c9 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o + .debug_abbrev 0x0000000000001460 0x245 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o + .debug_abbrev 0x00000000000016a5 0x240 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + .debug_abbrev 0x00000000000018e5 0x230 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o + .debug_abbrev 0x0000000000001b15 0x21e Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o -.debug_aranges 0x0000000000000000 0xd20 +.debug_aranges 0x0000000000000000 0xd30 .debug_aranges - 0x0000000000000000 0xb0 Core/Src/main.o + 0x0000000000000000 0xc0 Core/Src/main.o .debug_aranges - 0x00000000000000b0 0x50 Core/Src/stm32f4xx_hal_msp.o + 0x00000000000000c0 0x50 Core/Src/stm32f4xx_hal_msp.o .debug_aranges - 0x0000000000000100 0x78 Core/Src/stm32f4xx_it.o + 0x0000000000000110 0x78 Core/Src/stm32f4xx_it.o .debug_aranges - 0x0000000000000178 0x20 Core/Src/sysmem.o + 0x0000000000000188 0x20 Core/Src/sysmem.o .debug_aranges - 0x0000000000000198 0x28 Core/Src/system_stm32f4xx.o + 0x00000000000001a8 0x28 Core/Src/system_stm32f4xx.o .debug_aranges - 0x00000000000001c0 0x28 Core/Startup/startup_stm32f429zitx.o + 0x00000000000001d0 0x28 Core/Startup/startup_stm32f429zitx.o .debug_aranges - 0x00000000000001e8 0x100 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + 0x00000000000001f8 0x100 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o .debug_aranges - 0x00000000000002e8 0xe8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o + 0x00000000000002f8 0xe8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o .debug_aranges - 0x00000000000003d0 0x118 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + 0x00000000000003e0 0x118 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o .debug_aranges - 0x00000000000004e8 0x90 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o + 0x00000000000004f8 0x90 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o .debug_aranges - 0x0000000000000578 0x58 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o + 0x0000000000000588 0x58 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o .debug_aranges - 0x00000000000005d0 0x88 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o + 0x00000000000005e0 0x88 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o .debug_aranges - 0x0000000000000658 0x1d0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + 0x0000000000000668 0x1d0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o .debug_aranges - 0x0000000000000828 0x3a8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o + 0x0000000000000838 0x3a8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o .debug_aranges - 0x0000000000000bd0 0x150 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o + 0x0000000000000be0 0x150 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o -.debug_ranges 0x0000000000000000 0xc38 - .debug_ranges 0x0000000000000000 0xa0 Core/Src/main.o - .debug_ranges 0x00000000000000a0 0x40 Core/Src/stm32f4xx_hal_msp.o - .debug_ranges 0x00000000000000e0 0x68 Core/Src/stm32f4xx_it.o - .debug_ranges 0x0000000000000148 0x10 Core/Src/sysmem.o - .debug_ranges 0x0000000000000158 0x18 Core/Src/system_stm32f4xx.o - .debug_ranges 0x0000000000000170 0x20 Core/Startup/startup_stm32f429zitx.o - .debug_ranges 0x0000000000000190 0xf0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o - .debug_ranges 0x0000000000000280 0xd8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o - .debug_ranges 0x0000000000000358 0x108 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o - .debug_ranges 0x0000000000000460 0x80 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o - .debug_ranges 0x00000000000004e0 0x48 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o - .debug_ranges 0x0000000000000528 0x78 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o - .debug_ranges 0x00000000000005a0 0x1c0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o - .debug_ranges 0x0000000000000760 0x398 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o - .debug_ranges 0x0000000000000af8 0x140 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o +.debug_ranges 0x0000000000000000 0xc48 + .debug_ranges 0x0000000000000000 0xb0 Core/Src/main.o + .debug_ranges 0x00000000000000b0 0x40 Core/Src/stm32f4xx_hal_msp.o + .debug_ranges 0x00000000000000f0 0x68 Core/Src/stm32f4xx_it.o + .debug_ranges 0x0000000000000158 0x10 Core/Src/sysmem.o + .debug_ranges 0x0000000000000168 0x18 Core/Src/system_stm32f4xx.o + .debug_ranges 0x0000000000000180 0x20 Core/Startup/startup_stm32f429zitx.o + .debug_ranges 0x00000000000001a0 0xf0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + .debug_ranges 0x0000000000000290 0xd8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o + .debug_ranges 0x0000000000000368 0x108 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + .debug_ranges 0x0000000000000470 0x80 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o + .debug_ranges 0x00000000000004f0 0x48 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o + .debug_ranges 0x0000000000000538 0x78 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o + .debug_ranges 0x00000000000005b0 0x1c0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + .debug_ranges 0x0000000000000770 0x398 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o + .debug_ranges 0x0000000000000b08 0x140 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o .debug_macro 0x0000000000000000 0x2448d .debug_macro 0x0000000000000000 0x389 Core/Src/main.o @@ -3947,53 +3987,53 @@ OUTPUT(STM32F429I-DISC1_LEDFaceMask-Rough.elf elf32-littlearm) .debug_macro 0x00000000000240be 0x1e8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o .debug_macro 0x00000000000242a6 0x1e7 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o -.debug_line 0x0000000000000000 0xa537 - .debug_line 0x0000000000000000 0x109e Core/Src/main.o - .debug_line 0x000000000000109e 0x7f5 Core/Src/stm32f4xx_hal_msp.o - .debug_line 0x0000000000001893 0x859 Core/Src/stm32f4xx_it.o - .debug_line 0x00000000000020ec 0x61f Core/Src/sysmem.o - .debug_line 0x000000000000270b 0x787 Core/Src/system_stm32f4xx.o - .debug_line 0x0000000000002e92 0x85 Core/Startup/startup_stm32f429zitx.o - .debug_line 0x0000000000002f17 0x995 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o - .debug_line 0x00000000000038ac 0xbd8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o - .debug_line 0x0000000000004484 0xa95 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o - .debug_line 0x0000000000004f19 0xa3f Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o - .debug_line 0x0000000000005958 0x978 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o - .debug_line 0x00000000000062d0 0x9c9 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o - .debug_line 0x0000000000006c99 0x112d Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o - .debug_line 0x0000000000007dc6 0x19ea Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o - .debug_line 0x00000000000097b0 0xd87 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o +.debug_line 0x0000000000000000 0xa54b + .debug_line 0x0000000000000000 0x10b2 Core/Src/main.o + .debug_line 0x00000000000010b2 0x7f5 Core/Src/stm32f4xx_hal_msp.o + .debug_line 0x00000000000018a7 0x859 Core/Src/stm32f4xx_it.o + .debug_line 0x0000000000002100 0x61f Core/Src/sysmem.o + .debug_line 0x000000000000271f 0x787 Core/Src/system_stm32f4xx.o + .debug_line 0x0000000000002ea6 0x85 Core/Startup/startup_stm32f429zitx.o + .debug_line 0x0000000000002f2b 0x995 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + .debug_line 0x00000000000038c0 0xbd8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o + .debug_line 0x0000000000004498 0xa95 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + .debug_line 0x0000000000004f2d 0xa3f Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o + .debug_line 0x000000000000596c 0x978 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o + .debug_line 0x00000000000062e4 0x9c9 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o + .debug_line 0x0000000000006cad 0x112d Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + .debug_line 0x0000000000007dda 0x19ea Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o + .debug_line 0x00000000000097c4 0xd87 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o -.debug_str 0x0000000000000000 0xde361 - .debug_str 0x0000000000000000 0xdb11e Core/Src/main.o - 0xdb52c (size before relaxing) - .debug_str 0x00000000000db11e 0xb0 Core/Src/stm32f4xx_hal_msp.o +.debug_str 0x0000000000000000 0xde373 + .debug_str 0x0000000000000000 0xdb130 Core/Src/main.o + 0xdb53e (size before relaxing) + .debug_str 0x00000000000db130 0xb0 Core/Src/stm32f4xx_hal_msp.o 0xd6f7d (size before relaxing) - .debug_str 0x00000000000db1ce 0xf2 Core/Src/stm32f4xx_it.o + .debug_str 0x00000000000db1e0 0xf2 Core/Src/stm32f4xx_it.o 0xd67f1 (size before relaxing) - .debug_str 0x00000000000db2c0 0x4e9 Core/Src/sysmem.o + .debug_str 0x00000000000db2d2 0x4e9 Core/Src/sysmem.o 0x5f7f (size before relaxing) - .debug_str 0x00000000000db7a9 0xc4 Core/Src/system_stm32f4xx.o + .debug_str 0x00000000000db7bb 0xc4 Core/Src/system_stm32f4xx.o 0xd52de (size before relaxing) - .debug_str 0x00000000000db86d 0x36 Core/Startup/startup_stm32f429zitx.o + .debug_str 0x00000000000db87f 0x36 Core/Startup/startup_stm32f429zitx.o 0x8c (size before relaxing) - .debug_str 0x00000000000db8a3 0x5c8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + .debug_str 0x00000000000db8b5 0x5c8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o 0xd5e4a (size before relaxing) - .debug_str 0x00000000000dbe6b 0x29d Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o + .debug_str 0x00000000000dbe7d 0x29d Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o 0xd5862 (size before relaxing) - .debug_str 0x00000000000dc108 0x392 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + .debug_str 0x00000000000dc11a 0x392 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o 0xd5beb (size before relaxing) - .debug_str 0x00000000000dc49a 0x31d Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o + .debug_str 0x00000000000dc4ac 0x31d Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o 0xd56e0 (size before relaxing) - .debug_str 0x00000000000dc7b7 0x20c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o + .debug_str 0x00000000000dc7c9 0x20c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o 0xd551d (size before relaxing) - .debug_str 0x00000000000dc9c3 0x259 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o + .debug_str 0x00000000000dc9d5 0x259 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o 0xd56cb (size before relaxing) - .debug_str 0x00000000000dcc1c 0x55a Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + .debug_str 0x00000000000dcc2e 0x55a Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o 0xd5b39 (size before relaxing) - .debug_str 0x00000000000dd176 0xd49 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o + .debug_str 0x00000000000dd188 0xd49 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o 0xd63d7 (size before relaxing) - .debug_str 0x00000000000ddebf 0x4a2 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o + .debug_str 0x00000000000dded1 0x4a2 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o 0xd5bd7 (size before relaxing) .comment 0x0000000000000000 0x7b @@ -4013,29 +4053,32 @@ OUTPUT(STM32F429I-DISC1_LEDFaceMask-Rough.elf elf32-littlearm) .comment 0x000000000000007b 0x7c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o .comment 0x000000000000007b 0x7c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o -.debug_frame 0x0000000000000000 0x389c - .debug_frame 0x0000000000000000 0x2d4 Core/Src/main.o - .debug_frame 0x00000000000002d4 0x10c Core/Src/stm32f4xx_hal_msp.o - .debug_frame 0x00000000000003e0 0x160 Core/Src/stm32f4xx_it.o - .debug_frame 0x0000000000000540 0x34 Core/Src/sysmem.o - .debug_frame 0x0000000000000574 0x58 Core/Src/system_stm32f4xx.o - .debug_frame 0x00000000000005cc 0x3b4 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o - .debug_frame 0x0000000000000980 0x3fc Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o - .debug_frame 0x0000000000000d7c 0x498 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o - .debug_frame 0x0000000000001214 0x250 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o - .debug_frame 0x0000000000001464 0x14c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o - .debug_frame 0x00000000000015b0 0x1f0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o - .debug_frame 0x00000000000017a0 0x824 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o - .debug_frame 0x0000000000001fc4 0x10f0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o - .debug_frame 0x00000000000030b4 0x5c0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o - .debug_frame 0x0000000000003674 0x20 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-errno.o) - .debug_frame 0x0000000000003694 0x2c b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-init.o) - .debug_frame 0x00000000000036c0 0x20 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-memset.o) - .debug_frame 0x00000000000036e0 0x48 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-rand.o) - .debug_frame 0x0000000000003728 0x30 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-malloc.o) - .debug_frame 0x0000000000003758 0x2c b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-nano-mallocr.o) - .debug_frame 0x0000000000003784 0x2c b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-sbrkr.o) - .debug_frame 0x00000000000037b0 0x30 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-mlock.o) - .debug_frame 0x00000000000037e0 0x5c b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-reent.o) - .debug_frame 0x000000000000383c 0x2c b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_aeabi_uldivmod.o) - .debug_frame 0x0000000000003868 0x34 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_udivmoddi4.o) +.debug_frame 0x0000000000000000 0x3a10 + .debug_frame 0x0000000000000000 0x328 Core/Src/main.o + .debug_frame 0x0000000000000328 0x10c Core/Src/stm32f4xx_hal_msp.o + .debug_frame 0x0000000000000434 0x160 Core/Src/stm32f4xx_it.o + .debug_frame 0x0000000000000594 0x34 Core/Src/sysmem.o + .debug_frame 0x00000000000005c8 0x58 Core/Src/system_stm32f4xx.o + .debug_frame 0x0000000000000620 0x3b4 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + .debug_frame 0x00000000000009d4 0x3fc Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o + .debug_frame 0x0000000000000dd0 0x498 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + .debug_frame 0x0000000000001268 0x250 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o + .debug_frame 0x00000000000014b8 0x14c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o + .debug_frame 0x0000000000001604 0x1f0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o + .debug_frame 0x00000000000017f4 0x824 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + .debug_frame 0x0000000000002018 0x10f0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o + .debug_frame 0x0000000000003108 0x5c0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o + .debug_frame 0x00000000000036c8 0x20 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-errno.o) + .debug_frame 0x00000000000036e8 0x2c b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-init.o) + .debug_frame 0x0000000000003714 0x20 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-memset.o) + .debug_frame 0x0000000000003734 0x48 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-rand.o) + .debug_frame 0x000000000000377c 0x30 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-malloc.o) + .debug_frame 0x00000000000037ac 0x2c b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-nano-mallocr.o) + .debug_frame 0x00000000000037d8 0x2c b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-sbrkr.o) + .debug_frame 0x0000000000003804 0x30 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-mlock.o) + .debug_frame 0x0000000000003834 0x5c b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-reent.o) + .debug_frame 0x0000000000003890 0xac b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_addsubdf3.o) + .debug_frame 0x000000000000393c 0x50 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_muldivdf3.o) + .debug_frame 0x000000000000398c 0x24 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_fixunsdfsi.o) + .debug_frame 0x00000000000039b0 0x2c b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_aeabi_uldivmod.o) + .debug_frame 0x00000000000039dc 0x34 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_udivmoddi4.o)