From 3aad7271a18286f069d7089639c966c7e0674c77 Mon Sep 17 00:00:00 2001 From: Alexander Heldt Date: Mon, 30 Dec 2024 11:48:38 +0100 Subject: [PATCH] Use `RCC_CFGR_SW` helper function to set software clock --- build/final.elf | Bin 55108 -> 55088 bytes build/final.elf.map | 204 ++++++++++++++++++++++---------------------- build/main.S | 73 +++++++--------- build/main.i | 11 ++- build/main.o | Bin 48592 -> 48576 bytes src/main.c | 3 +- 6 files changed, 141 insertions(+), 150 deletions(-) diff --git a/build/final.elf b/build/final.elf index e6ae9b9d07bbea34512c92474c3b43c177b02eac..364d3f75554307ee5409e2fa3d5859e17ffd3deb 100755 GIT binary patch delta 2450 zcmX@Ij(Nj6<_Qv#TW_wbg^arbim&=4$~;^r-#;p(OQ#lcxP!P#3n z!^z7T%(nNI&am@R{=mpAoM7WEonh_e{H4KIIDuimrMGkj^A`qV2JN30%)F&DOudvp zG!zRb7<)%&7=ctV2PYVKM`h@H8h8skdnf36&(6^CQvUFPd2)i5x2D(Z`i#j58s4)r z)V-9yJP4kgpz1w4Lj|NUcyfZ0_v{QsFXb-@&XW`5z2&@SXG~6z^_I?%0XerAWW6NF z`VS1nAnQSF36RcY;RG>n=?qaX=PwM!!U@9O(iuWt${+Zdg%fzaXJ_zuIe+OWcK*P~ zJUM~Wdvcht9b^3Dslxhwq;`cKbb`&h4IPeOp!TkzTT`=3=9kn%nTeI3=9m6 zbF5hy7=&|DQy3Tnc|ame6N`90L@+RfLV0C8jIj(1VeDs_85o!*mNJOchchrR^6+{v zF>qK+4wBYjd^NdRdb4T`3j+rS*hGQuI0gnrQMMcw1`YwRh@c)wgpG}3alm+urP3> zFfcH{%&eJwQAM7!g@u8`fq{YH$mE|YmbN>X*umanWRPZHU|?ln0VfJ}uvT`kMs|oJ zMUkb!X0RXGoUdB1%=l{adyf^|OjnpUfACntwb?cPDHG#`&Du$^jFbD4wb?+%GoPBg zKY2SN$K>)9cgCE_`%|PDYbM`LSDEudjp3rCHnCyB&oiS%}?g@|~ohQ^8TPANjA>$fOK$5qFmNX!TDKRiH*rV}%(fEOA{9pzKCvZ^(Gav#@0Vvj= zKrIwt`1n5`O}-YypSpAZ8R!vc^hB>ANv{^Y->o!q z6GQFfy=cxjji&4d8vg+r|0x>(4I2L^8lR1cfuRvvpn<%>&BRcTlBNWiP-8#_jjw{n z*G1!7q4Dj|_)chi4<=z$3;jR}Cciz08a?G8QKaZ-MdSCP@n3;Fr#`~6pb&*Y>cWv5lw*_8ebd4-)wuKn1#`2 z^2RI5Oix56|GOeK`OOsz#wU|iuc|Y0PWHX3&Kjb^z_4O6<5l6wJy!*o{-{izcU6rs zWAf3f>Z}}z3=Eqmf4r*9xO=kbHFd`P$+p+jS+^WvU@!q|sJSM<_+oPJHFd^}$y=|f aGhUf|_nJDR$z;~+>a01J85mB3Q~>~DY@YQ1 delta 2440 zcmdn6j`_$s<_Qv#TW_x6^~@$z#1&=4$~;^{4&;o+tH#lcxP!OdGb z!_~_f%y#mY&T#Zn{=mpAoM7)QonhzY{H4KIIDuimjkk0L^A`qV2JN30EWM>OEWDII zG!zRbn0ZHMn1WO>2PYVNM`aj!8hZ;ndnXup&(6^IQvUFPd2)iTw~p8B`i#j5+TOD> zw7itRJP4kgpy53`Lmi|scyfZO_v{Q6FXb-@&XW_AycNA>XG~5|@RrVy2RXMGWW5Z? z`VS1nAnQSFX^_rj;RH!<=?n=k=PwM!!U{DU2UB$BN8hGxuSwVqjqC zVP@dyU|?WioMX+xz#yEHn!>;s!~+sxnpnj1A%cM+49Y9xVT@&92%l^qEz0OJ*-cu5 z@x$bN>CLJgEDRhRU=swo;}{qiMcFD?7&rvLB7%A#5jHlF$?h_)j8c<(Wi%OWCU2Lq zXS}ufyUcec!3!)59138iY|60=3@j5i|CgW0!s^1vz|b>!s*1dz2nz#83IhWJ%*>9- zM^)rGC$KPZI503UT$ub;#nSc&6Fb-&j11BY3=FIcEa1ez4%W&J*2oTVq$sj9*bMdy zo0C=Rm6<*;ZSDzA@NdRjn|neg@iJc9ET0t1$fRgHxguGg4P*iH>B(!8w=;@N zPEB!VteCtuMVhf=^2wC7j1wl8r|L6a*t|UTU?L;Ko{(p}uzBwZZAL?o>%snD zU}E57U|>jLVE~0P0|NsS12;54VDcb-$7IP<#kwGCnV>pqm{E0rya3YyGLdKU&QtRB zpkP22J%MHqD29;b-yq3bLQ5Ht!;~1980^vbzG(bFG=4AxgA=%zf*BBjrT`T4AD|Wr zFns)6wvVF5@LG?jv!xfH~o{PMKCAhNFG zU{T34^58-gX4YMhD3ab+X#DqR{69#1klj3tkb)Ryo(LLW9*wWY$S`^P8ATNTxT2}? zLF0#j_>(!$qPjenk%3_%G@pQ6QVvpu%YlHZkH7^viFh)$C zdqtV?!{mck{24z?7QCv?C_35lsybuBCFGR |= ((0x0111) << 0); - ((struct rcc *) (0x40023800U))->CFGR &= ~((0b11) << 0); - ((struct rcc *) (0x40023800U))->CFGR |= ((0b10) << 0); + ((struct rcc *) (0x40023800U))->CFGR |= (((0b10) & (0b11)) << 0); @@ -2322,13 +2321,13 @@ int main(void) { uint16_t counter = ((struct timer *) (0x40000800U))->CNT; -# 87 "src/main.c" 3 4 +# 86 "src/main.c" 3 4 _Bool -# 87 "src/main.c" +# 86 "src/main.c" led_on = -# 87 "src/main.c" 3 4 +# 86 "src/main.c" 3 4 ((_Bool)+0u) -# 87 "src/main.c" +# 86 "src/main.c" ; while(1) { if ((((struct timer *) (0x40000800U))->CNT - counter) >= 250) { diff --git a/build/main.o b/build/main.o index a62cebb4b1caa0599d56accb964ef6f3d85993ea..e3ccc40ad397b8def0206d30f3931f0517f28c48 100644 GIT binary patch delta 904 zcmccco9V!BrU?p+5)&2Q*L!$N=eT=0e`p96PI2>=&T#co{^H;)oZ##&o#Eu=3})MV zOJ~@5DSu#O7EZA7md>#Da{kg_ES$iw-_lz;gZT@CF@yHc3ufNZ8Kz#!9~z2<6O6s1 zGmJp0n1d4xyrVMoJq^5toxKxuy=Q0WcqxDQz&trY%UjcHc74X=1P$-m8R}ljUmgTc zPEhrpouLBK7(6*a$$NH&qL=cQ1n0>K^4@Y@voj_q$a+g>$bg(%46$*VvzM9 zwggCLvT%Z!w{(W6m-82fV&Mc~Z|MvnFXa#X%)$x0-m^1!yqv#u6gz)lWS*SB>AhKs zX(x-XH)|CG1avSkFfh)sW?^6u&Ph#SU<~8|i7-tp;*m6DUTKJ^7#PAKRxe^;$bedH z0JfS>oPi;0vh8k_$%Z@C*($^t816GpuG_9WxpAjDYq%r>LnqiEfyozlszUI6JX+@;QTPL6>=3*wND$p?3-v;L50U@(E|7u>DRs-wWb;5PZ} zc9qGAyVY5X6c`xvz_KeQZ``fUv_N5U*ETiA2a_51sIwkYU|_g1S$B^zBgf>xJ?f0p zCRgrJXXKl_aF04;$mElIKmq=7k2=$b^^>Lcsxc}|cH9e+$lR;WSTcFyUUdn94Gavd LjG&|e!7wHO=d2ik delta 908 zcmX@`o9V)DrU?p+8WR=Y*L!#Aa{kg_ES$iw-^N=ygZT@CF@yHc3zpu}85Um39~z2<6U@A$ zGfY9Mn1d6Hy`wUWJdM4DoxKwbyk}?VdnteTz&trY*IUPHc74X=1a0rx8CqV-UmgTc zPSEh4ouLlW7(6*a)q8e^ikI@21n0>KO5TcIvoj_qD0oX}$b+0)46$*VvzM9 zwlqj*vT%Z=w{(Vtm-82fV&McaZ|MwCFXa#X%)$u*-m^3Ky_~;v6gz)lWS*SBfyk(2`)hw)wC^EF+Vm z?PM7x6UNh<1C?r%CSPcg;d5bRU~uGPX=ilgWoMc?`B%#&UXTzIgBXJ>0|SG}=9{hj zT8#ahU#{QG!ss%2?iOXnfXN59s51skez`@R@y2Aqt?G;wlP$NZGpbEa+^Wu)HMw)E zI^%=M8@H-6PMUmktNP@CZ7h>nwy7|#ovgV{orz=OJU|?YI zV_;xVnjE`Ln$=%~fuVGA?KWjbgUKJask0stVPMb#^LI>k+^){{PK1FWhGDYbPUXoH zx2v;yi83(QOxE44GWp?lb+$H91_oxv$#vV57$;0N+@a3eDaOEH1=f9Fa^ntl*27{9 z4B;R?FUMjAh773924I_|#2FZ}Kyr))lNEQWv$cpbFx&?jraZZDr#fr0Bm+a|| zz+eK_%(z>f)k1-R!EN&29V(LpcdN73DKIeTf$iNfdEst#rZoy+lRixTxLcj|oB{*G zt;w=`lo=%^JMK|uTroLwk2<5mCFGR |= (FLASH_ACR_LATENCY_3_WAIT_STATES << FLASH_ACR_LATENCY_BIT); // Use PLL as system clock - RCC->CFGR &= ~(RCC_CFGR_SW_MASK << RCC_CFGR_SW_BIT); - RCC->CFGR |= (RCC_CFGR_SW_PLL << RCC_CFGR_SW_BIT); + RCC->CFGR |= RCC_CFGR_SW(RCC_CFGR_SW_PLL); // Wait indefinitely for PLL clock to be selected // TODO indicate error/timeout somehow?