From 55f6cdb243663b6d746b87d726ca461835970634 Mon Sep 17 00:00:00 2001 From: Penguin Date: Thu, 10 Feb 2022 01:30:22 -0600 Subject: [PATCH] sfjdhkahkfjhaf --- .../index/driver_init.h.C09240556F37DBF9.idx | Bin 1030 -> 1034 bytes .../index/hal_atomic.h.066AAD04FA8F0A31.idx | Bin 802 -> 796 bytes .../index/hpl_init.h.C783DBC219E80A7F.idx | Bin 1092 -> 1102 bytes .../clangd/index/main.c.0EA8F41F94171F4D.idx | Bin 340 -> 340 bytes .../index/pdebug.c.1B63F8810F039F22.idx | Bin 848 -> 930 bytes .../index/pdebug.h.4C4C1357662BA1EC.idx | Bin 554 -> 638 bytes .../index/utils_list.h.6663C47E68A5DF97.idx | Bin 1542 -> 1548 bytes build/.gdb_history | 36 +- build/compile_commands.json | 90 ++--- build/gdb.txt | 321 ++++++++++++++++++ shared/drivers/sd_mmc.c | 39 ++- shared/util/pdebug.c | 7 + shared/util/pdebug.h | 5 + 13 files changed, 419 insertions(+), 79 deletions(-) diff --git a/build/.cache/clangd/index/driver_init.h.C09240556F37DBF9.idx b/build/.cache/clangd/index/driver_init.h.C09240556F37DBF9.idx index b81de38dc5bdb8fb84fdd05df2d5d7ebbdc2336b..6ae716a7086021b2e9c0e33ebaf66592a28f3331 100644 GIT binary patch literal 1034 zcmWIYbaP{3VPJ4h@vO*AElC728F+!XxTGl4l97SoF;Jjl&e|!y{)Y{C+N$rZKhenS zk+Ji=$qSX1gecdCZ6c|i+oe7Q9?e|(@pb0)&ag%5C(eGGZL>{g?@6&YwekXdYZ?kZ z95k{DWI25y(IxYPx7(L@WoH_%zUc5=KGP_!R_OIQ-3VUB*IZ2|TM}-5^$ip2Uv#JA zt=aq*rTTkM{TH?Su0Hzi>DTa&bM{XypSxvey~JY8WSzc_jb(mUUuDIvTj`d_I(Lqc zlt<}iH+j7%XQLyMYtNcUR0>%oa3?O1y>Otb*zc}jB}-hGQNuIo^-|n=Li$br8LqO{ zx?egJrONYeXOCFVf*adkiSJnR@7ye&Eg_i(|7R?l)V4Ty*~JUTo!s&Rm#WO0uc-PV zVzK{8@4bh%T%O3dVlq?xnJJU3Zf#f`#M9fAb8nk?;l1sL|C{dE`gO(T{AaUInlTht z<|c&zLy+P3wrlL4PkiQK;A3DANMKD66I5qa7h~XLVPayCN7EMvtuSLLLTA zpb9}&K?y;5R(S~|6)x9b@GtK2IK#sr15}a9nkpcu%c?5?R>251!=qPOBExK79S;Ks zP=zF`q@#PTkwS7uQEFQ8VW5Gquw~=~hbb%|fm~1k%1d4<5zqP6!^k5j%O|T03q+tS zDDYq*2IPW53Kl#-E+|+6_8YLj?LLa_6MwxVgV_ft|os+`(- zBPUE)Gfe;X)y)zKm-9B(*8aY1bM5`p+WfWha_*+7J!b_Czx6GRiqSo-YO1kjL36MZ z^UAtwFAm?#_H46wTso6Yncs>1jl!G^QK^W6b1UtYz8^Rp#de|QZD{sE*GH}&<}au+ z+~W}yvAX4;?DUIGf+Fq9+gR^i{h#j3wu>d$`|w50%UKdzCR~gT(d<0_cPYy|=`Wg< zE5m1$Ss5|-20h5<3JN;@=SxV}!qAClpTEsH$Nuii$2m#YDzDt+f3$hs4u;~&+@ug- z=rR1>c8&e>iO)O?d_WEe2&l8Fi!pGrFflR6@G=T8%Klq7qeoVEArAv5L;-_ykm3QV_z-8g zZtJnaIXny?O&}nk!m1*LAR zRfYv3P!<$;un+@sK_LYT9v~MKECKrs*k5w|jtAbzN+6hm2qr&*DTH7O!CA;66&K83Ul7YHzJFYW zhcR+Pozc13LKaP1!shig`*IlmVE6dJcQ_+x`h?#S2Nug}m{_fljbz_-;?ty)Vb1TW zXXktmt=``_^~S_z>$z_qr?3khJd_~pd;40vPT*Php9g=fQ9B;IuZWkUSk0p9_LP7* zFJu2JMEZpJTz|N~exb|5QV;1L_a(@=kxfucVdn?m+`fFIS{`it}_}j(@cb(Vk8TvMHN#gPL_0*KlrsyI(Wy zuHpRB*f&+7-m88|I879NcbtEhgwoZc`JvoXUo#X}<|cIjBhg`<;hd*Ce_ZEb-~#eM zfH#vhQ;LC;g`Jg2kcW|%QP-nz>+OH*4J3FNI3Ow*cw<>(Axap*O6J~f58Y9iEyT^h sKUtqiMG#_60cU|U&>S{4W`W5mOv}ajpt?bJeCCg=P>$geW#nT30H~b%XaE2J delta 618 zcmV-w0+s!o2BHRkQb|Te8Up|TLu5&KZDn*}1ONa44FCWDb98cPxB&nFvIGDCc%0Rf zL2uMB5QTHjub2ae7AUrFyRqyNbJEQP)Nv}`y?B{aSe_sk+U8IU7{F&%5rHIXnZ{An{{Xlce(E) zCxL*HuzoZyn-U~KYHfNv4weyO@DITF2E%Almyr7yz@r@~G&-mqSqHi(=_!+~hTQj- zZTCfczk*G%BM0|7+sDZcQUnWwWtz6Fza&L9ALR$@vzi=F`N}mQ%$eZmZBs&Vrg!^; z(qgh=x()w-4J8WCL)yUimRvi7lF7o`q|$RmBb>pF@BWPa6uZxu^f}DvU1rwL4r-=B z{q>fa<(@HR4)Ecx4ckk>`-fg#B2R*h4avBbHu`!b^GvL(S3lqGhNv4OEwv{F-y13HopFP*bsWSbAss;Q~Z7@}*f$$jX0o<(d2M2d0000$t}&eDx%k%%015yA4mAZe8VzX$X&L|t z1P28(0ul@X4FO1TwcGx$Fc=H~2mk;MD+MbW4P6CY8UP6d2L%BV3;_)Ro!f_1xN&O| z3jh$4DFP%B4n7G!8x3#?a2oO^5J5tCj5rxy%rc7wTtQupmg=bd_%b%TnZ`&Wr zY+gQdWpjRG>)OZeP2I&2akfmmI=nRsPk1b4-0EL%l_e&k5#9N7{;K{7YP=r#tW1I2 zGM5x4tX%BFsD4-RgxU$k#_g^e^#h<6m!IwhT;b%*)&nbhd16mX1xnv*dIezGKCXlQRRa>8AcU zJ;P|@gQGu%RCgEVaBa!USv}i4x4fs!WcJA?>SbT&`IWjqyZY&jRlTnLl>b$4GU99s zwgt&r&&piuef4Vi)$4oDUU_x8qj|Z4>-pk8z7hPY8#UK{H0^t=Z+$m!%6uj-VpLU@lVX%+lxcZ$ zulLK`EFK0S1_oJmR&`lvPgYM^22K_p9!9yzuNW19Bo7ma)B}?NOo|Yl+jp3{N%U)# q@GwXKBN_yxgIR+$z&csvCQkvY-UcRbfXQEAQid65)@D0qHbwxtF5xWz delta 559 zcmX@dafG8j$kWZuhJ}H_ImNRgH?<@Y$YkIJ;^LB`%tl5AhTY5z3>9;hPPEOJHsonD zy}$m!1;scmlQ<@SS*s-u+!7w!w+V>IozsUNOhj9x}|jHd}8fR*5{L>oqe4PBcubC*DqO|)+*TjG$bx$Z>vdWL-lC^ z!RQ4u*xQ<9#d`8C*|J-*RQd_zr0V4NoZWll>lFX(+B%neH|)Ee5ngd*hf`b6Qg788 z?Pui7Ur1-BN9X+T{P;bhN&eA?`2rS>u5yhR*;-CNHGk3eVn)!E>859&#}*r1+}~~Y zd&BQ71x7~<0-n@!A6|U)uFu?)mKSGgZZ4|J^;q#Nb8eQ7O^&nV{AOvN1+RP#hTh#i zg|k2T)RI@vo@XCF+MgV}p!V^~svnoXop|9knvZ&zH572a7kT8 z;P*FsdrcN-;_^%Cx+>*ZXB|77v3E zFp@w(+LP5&mVuLnhlf#i@)t%$ASuQKA}zpV6qu|5lk>pj0VYL=S(j52dRe_Dv-23#s~lw>ffdS diff --git a/build/.cache/clangd/index/main.c.0EA8F41F94171F4D.idx b/build/.cache/clangd/index/main.c.0EA8F41F94171F4D.idx index a0d2ee2acef0a73b69a6c4f1fea33e15a0e00bef..9b8e188ba79078c354fcb914150b9e7648cfe6ff 100644 GIT binary patch delta 29 lcmcb@bcJccvx#5%`Ijlrd}sFe*i}XzCQe39_Q@=a0RYFx3ibd1 delta 24 gcmcb@bcJccGp?@9%@qs{zfLgnOnfLZnT0U`0E=e|A^-pY diff --git a/build/.cache/clangd/index/pdebug.c.1B63F8810F039F22.idx b/build/.cache/clangd/index/pdebug.c.1B63F8810F039F22.idx index 383b1629b740384de55fcd7bffaa9c542fa90c7c..c010616c015c284f02cc6bb73b2b10c4d19593f4 100644 GIT binary patch literal 930 zcmWIYbaR`<%)sEB;#rZKT9U}Zz`(!@#Kk2=nJSD74F8xI7%Jwho#>l)SV5rGlB-+i zmR94RlBcEScSBz>3bbuB7G=vmaMNXHb>SnGzNcQHp`0vL#-I19C-`?iUS@Fc_>t2B zGUvmqqdpxiv|f?6zH`6H#;~bw*9GUS-rb(n`c7#-pV6-)vQ-wgn9IW(h(*ManQ=Z%Q{i>Ko^Bc)0I_G>oyYQXBRVG2>qt*A=(-ywTYHj?Q z+d9Q)nZqu&pEKJJp4y(Ui>;>XQ}ZG588w}{t1?0_OFZ2$W!eXZB^Q!~e(z6yv~;8Q ziM5+@ux2Fq3F|y2nhkeI^eB2QUzI zS#&x1xLLS488}(knHhvQ8TlAJ&TcBZ9XQ{ghd~smLWo6(n~$A^og1ivjR~Tn+W3&% z$_=8qJPg7>6-um1Jbaw2oIF4ktc(m|TtG8sDDtN9K7aF!hd~6Wf|G@lpO2M=l^>{r zg#}{9zmqRgS;TkU;AP+js$iF8R|OLc44}vbf}+&4Vqaj~vRSPzNzMojW#r+N=a3hG zIiHaW>~`b$=M}xLAH)J>r5L5yO>B>F-KdNb0dhqcMcD0bUH@?CWwrs3%g)Cx4f7Za z3okDtFFP05Z!ElOOllk~y!ssae37nm!^Emg_<`zW8D%+R4=;N5bix*1AXiCPNj$Gv zuH5Dsqco5!!zjZE3k0A`Kq1infYf&r)o6b8$bXTCH0 zd+aJR57+@bV5@n+Rv&%Xa8ydq>OIhKZboj|i(YSD_qzxk0-7cwEFuXs%}U$Uk^ci!!!6IP!NbcV!Xx{7Y5nFqN}jiXYIqoVg#J2TX4sm% z@ePnG$0)}R4Aq=OQ0NvHB^SGc7(5^X0{CGJ1_nVmlabf|_1%4?0�u`FQvR1Q`V2 JQVe_uCIDc08VCRY literal 848 zcmWIYbaV4yW?*nm@vO*AElFfyU|`?{;^LB`OaVp)hF&HHhKf0BC!WqaY#`wJRWmB( zqKLcKrFDDWE!*v6?{MPMjhTzuFCLyfp?>`wi`*QImVgNt42-|eb99~;c06|Np6*Vw zd(u%(wX0sd+A)9AD+T7-Z5xHxx=d!Cvs!<1R`;_>b#pJh5Hfx7V2hf0!^)e>x{Qt; zi?ZY{bNzqd9JlhvSvwEaoq0CLH1KQnPUedjp7+tzQ)rD=I5+$ zG~`TJ9ITeDA=CTs+_{FlOsh%OOT{MLo%Z(Tw`q!pSLj$P?d=hCs$6b6#b2d1eoe49 zTmP&Y=9z4d^@=NVliGmc<8gLV+3mpj{yYpq3=CXCEJEDe>@4iu44f>iObq;NjNFXX z#)srqZV=7oVGsbSP-0c$;pSxJN+VPp_y2dbE%$eYId{LM2S20@?-P8LpnZdMjn zexM3wW{4U8PQFNG5#M!#mw^MQf?bwf6-+QNfT9Tqic-^xjexPlX0^H`IU_Wbk%vp3 zLtel*{&_|3>j$wwt`wsbyNT@)t{at6B0#PPqX@g*t?M5Sz05WMa@qOVrC~l{X5r#x z zWjJB}W#j^Tw*AMEmmz`QTbOvbBpD?+fDTiV*X-KdT*1)r>jY2`WET(E7FaLwKAEYx2f7K&~949D7k}P9i7- wi;I$r-9Zda5CH)^Fa`qyADqd^wIsc3?zH`ub*$W+JiL71TmqHlhO1%#0IR+Q0{{R3 diff --git a/build/.cache/clangd/index/pdebug.h.4C4C1357662BA1EC.idx b/build/.cache/clangd/index/pdebug.h.4C4C1357662BA1EC.idx index e996821c95ad59647261d78cb9755176a8fe26d8..b3a64012c8ee44c8383649155fb4f8c0a89677f0 100644 GIT binary patch literal 638 zcmWIYbaN|XVqkDi@vO*AElFfyU|`?{;^LB`OfE(Sh6zBqiaBd1?9MxEz~lN=Q_5(I zYtlkr_4ARtL|?FTY;v*I`C{N<={=!-{Ui&1_IE)d6BHiBefr?^D05@|+T5-=sgoy7 zUs}?>H0I5Hx2t))C#N5no5%aB@xhaI>UrJ&boTcf9n-OOv#{yj&6-?%!aFkb>YU>< z)279LeEmx<=A83~rGHdEU$OY4cZ#*5)z{hXgz9~nS8Nw;1vsPYr|cGX-yY^w=$B#@ z5TD96=az~!OUKNs>Pz!CEPWtnYAxGzRZcp!h+(~@^r@@g-b>h-^GWV~C2QgwezSh* z-A%kcrvf65iX^fwb8Nl%>!9P!#|Bf+eezsne#YUcZEto@#H)E-SG!`J)aw}1Dj!`f zuFOs90EUc2+tWQ}qU|$z7&sUhcyw8GIeEERxH%a(S=gBw_&FJQ89mN!D!Uyx-=Bv; z2&h7cMTnc1orRqnsDh0NqN3XPkle}*qPaW_0zef?tV%q*oUEKYKozWv48mMMGiE6A zrtv<1^Nfc<5U7Hag_EC`m4%fbsDgzBVn$JFT5&s)dl(_^fLRXYf-H?ayy)4}30rs> zfi?(pikAv*S$1UIdj&==UI7jP9+*3Tib3|nECq5wmMv4B`OfU`v8zDE{2cszTW>$U zXvmNj1myB@@bP`(QtFg!<+uyvGIB5qF%+fdBm$koP+XK;tPEmsg9r%VgE4@KE9+&I N{@#xlIheTl7y!r9%S`|P literal 554 zcmWIYbaPW;VqkDi@vO*AElFfyU|`?{;^LB`%&$ON9w=8aXYGXDd4~;nT)%2c8JV;u zFYG^AJS~s)7h{voMLup@p1@N=PwsoG`$dbt2ojl~@aUemoYSMc;;I)pT_Gv+Cryvp zRjh2j{J85@_Q_9c7XJY%-iQjw`s&T_o!Eq-vt?xvK2SkQXQz0FUX)UG@! z;RvgKGgXsu&$6VVO#XU#=j#c&FRngWus%8af9b93c~dtTS-wf?+Q58y@u7^`(gQN> zos<7$CmFd+__=pWcF&2gQ*KHfFCO!NUi$1t<$L{S%i`r(`R~U7#!@2cyszMz#&vTQ~dz va=AIU`51~)a}t3TG87jj7b}Ap93TP$xM2(i2CjvlxDR`3&9G+T;AQ{-{2H{y diff --git a/build/.cache/clangd/index/utils_list.h.6663C47E68A5DF97.idx b/build/.cache/clangd/index/utils_list.h.6663C47E68A5DF97.idx index 82bf8a9bd78d861cc8bb974c81d80dde63fa7e86..f56e33b3aa146e54f42b58bb95d8cc84642f7fd8 100644 GIT binary patch delta 1044 zcmZqU>ETff@^o`!VPjx$PVubBO)W`eVPIh31>)k8qRe?r3=9(|D$3M{HY8Xwb_Jzh zl8~|9G*@S}=zm%3bM2Rxv{3-M?n)YaUmLy)`ZF|I2SS zfm1RccYOJOJwrH!MBVs%pkVJ0lU{$%gzpQP{mlQ#@6Rwb`WVCL{pY!@`chklJ6Ncx*9$O_febPGG zaca?)oL5%$p4ZYucRz`53)hw^3VO6o{?H$zJZ;xoas?(k_Fw;+TE91LvZm|q7dh4@ zg~IFOcWP(6dGx>Oh_Cc6kpM+7!NAEP%)@0U%_z?(;3n$I%zB`Uhe3&fK|!5W zT|~Zxk+p?U1gJ)Ymr+UvsK&wTpio^GZxkDY%49)iMJ-LBS+OFqnqUH`PLz)uY*v=4 z-6Ff-%lSME%0RR7S@R_($1uyN=>j+i1D+7HB@n2{lp>ee}s=g zUw!gCW;tbTpi(ndGYR<&)(i=tLJ2`;16iO84hS7SnKCt{j*UTW@_lB-dPP+Rd22Ci zDKNpn0m_L$aA2kMj8oe>9`G>e0bS@U>?{i=z!q|X&AI&C`asR6q!T<0IzXGeSiQvM zD_ASU!8WmgRlGkTbat&n&tDz}EuacVR!1@U0@ebMqa}ryz$%JT(>B+$v@-$#v#gpA delta 1032 zcmeC-Y2#50@^o|i$I8IqoZ?xLn_7~{!oa}53&h1GMVT|07#M6PD$3NaWpK1)?7Eb4 zNkYbY)7&XnyZ-mdK0o|3V|H1%%&lYd%+Kc^GoCz2^v?~iF3mls4gT@|<|%CxQsO&d z;Jz-g+vmevCS3(4x2bWG^OYtA{+s)0{#U*nqZX%tb-mgBpA&U&$NJ|qY_z@d$@9w6 zC#L-_p+>w)rD3Pa&&9d&Y|#;XS08L3mFTYh=H!Y`rrh$EGBPzTb!fKuo1L-^-NAHe z>4SONQ*J%)ykxbAF*I9d*+Iqjix=C@&q|y8F|oS$1Gg1-Uyw4*Z0jL_hBv#Ps+Y7@LB&d>N7S+Dn{v+`m3i8~)6C-V!1Y+TYRR^+kdY<{cw zmo@G;mVeBPVSW3wpKaQN%S8*aSZ9d;Dhx}AJvqJJf10vT^)tQi%%wuNUvE4SYQN^h z>eb85Uq=)?UgeW`q)+XQG4u6vS=;~bvlFgo4)@QOu29XmBsKeUdyPB8>7{$;tT^i9 zZc!6#yQ^=v&e_+J7o;sDGL9SNN2@&E$u#Z9`D(wQYK9%6O%p3>V`r{k`!hskDbICB z0gd9IEr%aui`9GjG<{dnTieZL=lzj8`SSuUsZ}axK3k-eNT&#Ld-=}f(&&$znIO=; z#~|mES+(c2D$!dHc-PB{w(Ls1;o>^0#_)>8z3gI(xb@dlye{fQ-R3Ken16lkn;jCn zcI@X)ocrlv-=~_}wvW%u*8N`e(cscP#tz%Y8?%+){W@XK{_dBqO>t#z(jG=&!aSsU z@bunqjXVtM3=HxCA_0nEf`OAon1{lPDiISW}j&-6Ff-%lSMEN)SB^@^ctj=P*hD)rbplNXY;V&WkF^ zho+XO~2pc*lLcCa~B99KVai2EPmW6)D$kT(%CkpdG89H30az@W#l zC_!)jn@4F6co?)`hGej2fUJ=aWY(7jT5~|?@X3^^DRpcNs*|5GD>5mlOy*#bi_itS z+*#OJ7EFL`) + 0x000007f8 main+12 ldr r0, [pc, #20] ; (0x810 ) + 0x000007fa main+14 blx r3 + 0x000007fc main+16 ldr r3, [pc, #20] ; (0x814 ) + 0x000007fe main+18 blx r3 + 0x00000800 main+20 b.n 0x800  + 0x00000802 main+22 nop + 0x00000804 main+24 lsrs r1, r0, #23 + 0x00000806 main+26 movs r0, r0 + 0x00000808 main+28 lsrs r1, r5, #24 +─── Breakpoints ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +─── Expressions ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +─── History ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +─── Memory ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +─── Registers ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── + r0 0x00000000 r1 0x0000000a r2 0x41008000 r3 0x10000000 r4 0x1ffffffd r5 0x00000006 + r6 0x00000ef1 r7 0x00000ed9 r8 0x00000f09 r9 0x00000f91 r10 0x00000eb1 r11 0xaf9faffe + r12 0x0000000a sp 0x200100d0 lr 0x00001163 pc 0x00000800 xpsr 0x61000000 fpscr 0x00000000 + msp 0x200100d0 psp 0xfff3df7c primask 0x00 basepri 0x00 faultmask 0x00 control 0x00 +─── Source ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +  5 { +  6 /* Initializes MCU, drivers and middleware */ +  7 atmel_start_init(); +  8 pdebug_init(); +  9 + 10 printf("Hi\n"); + 11 + 12 sd_mmc_init(); + 13 /* Replace with your application code */ + 14 while (1) { + 15 } + 16 } +~ +~ +~ +~ +~ +~ +~ +~ +─── Stack ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +[0] from 0x00000800 in main+20 at ../main.c:15 +─── Threads ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +[1] id 0 from 0x00000800 in main+20 at ../main.c:15 +─── Variables ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +main () at ../main.c:15 +15 } +Breakpoint 1 at 0x7ec: file ../main.c, line 7. +Loading section .text, size 0x20b0 lma 0x0 +Loading section .relocate, size 0x64 lma 0x20b0 +Start address 0x0, load size 8468 +Transfer rate: 45 KB/sec, 846 bytes/write. +─── Output/messages ───────────────────────────────────────────────────────────────────────────────────────────────────────────────── +Note: automatically using hardware breakpoints for read-only addresses. +─── Assembly ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +~ +~ +~ +~ +~ +!0x000007ec main+0 push {r3, lr} + 0x000007ee main+2 ldr r3, [pc, #20] ; (0x804 ) + 0x000007f0 main+4 blx r3 + 0x000007f2 main+6 ldr r3, [pc, #20] ; (0x808 ) + 0x000007f4 main+8 blx r3 +─── Breakpoints ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +[1] break at 0x000007ec in ../main.c:7 for main hit 1 time +─── Expressions ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +─── History ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +─── Memory ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +─── Registers ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── + r0 0x20000064 r1 0x00000000 r2 0x00f00000 r3 0x000007ed r4 0x1ffffffd r5 0x00000006 + r6 0x00000ef1 r7 0x00000ed9 r8 0x00000f09 r9 0x00000f91 r10 0x00000eb1 r11 0xaf9faffe + r12 0x0000000a sp 0x200100d8 lr 0x000007bd pc 0x000007ec xpsr 0x61000000 fpscr 0x00000000 + msp 0x200100d8 psp 0xfff3df7c primask 0x00 basepri 0x00 faultmask 0x00 control 0x00 +─── Source ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +~ +~ +~ +~ +  1 #include +  2 #include "pdebug.h" +  3 #include "sd_mmc.h" +  4 int main(void) +  5 { +  6 /* Initializes MCU, drivers and middleware */ +! 7 atmel_start_init(); +  8 pdebug_init(); +  9 + 10 printf("Hi\n"); + 11 + 12 sd_mmc_init(); + 13 /* Replace with your application code */ + 14 while (1) { + 15 } + 16 } +─── Stack ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +[0] from 0x000007ec in main+0 at ../main.c:7 +─── Threads ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +[1] id -1 from 0x000007ec in main+0 at ../main.c:7 +─── Variables ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── + +Breakpoint 1, main () at ../main.c:7 +7 atmel_start_init(); +─── Assembly ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── + 0x000007f6 main+10 ldr r3, [pc, #20] ; (0x80c ) + 0x000007f8 main+12 ldr r0, [pc, #20] ; (0x810 ) + 0x000007fa main+14 blx r3 + 0x000007fc main+16 ldr r3, [pc, #20] ; (0x814 ) + 0x000007fe main+18 blx r3 + 0x00000800 main+20 b.n 0x800  + 0x00000802 main+22 nop + 0x00000804 main+24 lsrs r1, r0, #23 + 0x00000806 main+26 movs r0, r0 + 0x00000808 main+28 lsrs r1, r5, #24 +─── Breakpoints ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +─── Expressions ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +─── History ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +─── Memory ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +─── Registers ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── + r0 0x00000006 r1 0x0000000a r2 0x000000f1 r3 0x000005b1 r4 0x1ffffffd r5 0x00000006 + r6 0x00000ef1 r7 0x00000ed9 r8 0x00000f09 r9 0x00000f91 r10 0x00000eb1 r11 0xaf9faffe + r12 0x0000000a sp 0x200100d0 lr 0x00001225 pc 0x00000800 xpsr 0x21000000 fpscr 0x00000000 + msp 0x200100d0 psp 0xfff3df7c primask 0x00 basepri 0x00 faultmask 0x00 control 0x00 +─── Source ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +  5 { +  6 /* Initializes MCU, drivers and middleware */ +  7 atmel_start_init(); +  8 pdebug_init(); +  9 + 10 printf("Hi\n"); + 11 + 12 sd_mmc_init(); + 13 /* Replace with your application code */ + 14 while (1) { + 15 } + 16 } +~ +~ +~ +~ +~ +~ +~ +~ +─── Stack ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +[0] from 0x00000800 in main+20 at ../main.c:15 +─── Threads ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +[1] id 0 from 0x00000800 in main+20 at ../main.c:15 +─── Variables ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +main () at ../main.c:15 +15 } +Breakpoint 1 at 0x7ec: file ../main.c, line 7. +Loading section .text, size 0x20b0 lma 0x0 +Loading section .relocate, size 0x64 lma 0x20b0 +Start address 0x0, load size 8468 +Transfer rate: 45 KB/sec, 846 bytes/write. +─── Output/messages ───────────────────────────────────────────────────────────────────────────────────────────────────────────────── +Note: automatically using hardware breakpoints for read-only addresses. +─── Assembly ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +~ +~ +~ +~ +~ +!0x000007ec main+0 push {r3, lr} + 0x000007ee main+2 ldr r3, [pc, #20] ; (0x804 ) + 0x000007f0 main+4 blx r3 + 0x000007f2 main+6 ldr r3, [pc, #20] ; (0x808 ) + 0x000007f4 main+8 blx r3 +─── Breakpoints ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +[1] break at 0x000007ec in ../main.c:7 for main hit 1 time +─── Expressions ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +─── History ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +─── Memory ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +─── Registers ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── + r0 0x20000064 r1 0x00000000 r2 0x00f00000 r3 0x000007ed r4 0x1ffffffd r5 0x00000006 + r6 0x00000ef1 r7 0x00000ed9 r8 0x00000f09 r9 0x00000f91 r10 0x00000eb1 r11 0xaf9faffe + r12 0x0000000a sp 0x200100d8 lr 0x000007bd pc 0x000007ec xpsr 0x61000000 fpscr 0x00000000 + msp 0x200100d8 psp 0xfff3df7c primask 0x00 basepri 0x00 faultmask 0x00 control 0x00 +─── Source ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +~ +~ +~ +~ +  1 #include +  2 #include "pdebug.h" +  3 #include "sd_mmc.h" +  4 int main(void) +  5 { +  6 /* Initializes MCU, drivers and middleware */ +! 7 atmel_start_init(); +  8 pdebug_init(); +  9 + 10 printf("Hi\n"); + 11 + 12 sd_mmc_init(); + 13 /* Replace with your application code */ + 14 while (1) { + 15 } + 16 } +─── Stack ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +[0] from 0x000007ec in main+0 at ../main.c:7 +─── Threads ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +[1] id -1 from 0x000007ec in main+0 at ../main.c:7 +─── Variables ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── + +Breakpoint 1, main () at ../main.c:7 +7 atmel_start_init(); +─── Assembly ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── + 0x000007f6 main+10 ldr r3, [pc, #20] ; (0x80c ) + 0x000007f8 main+12 ldr r0, [pc, #20] ; (0x810 ) + 0x000007fa main+14 blx r3 + 0x000007fc main+16 ldr r3, [pc, #20] ; (0x814 ) + 0x000007fe main+18 blx r3 + 0x00000800 main+20 b.n 0x800  + 0x00000802 main+22 nop + 0x00000804 main+24 lsrs r1, r0, #23 + 0x00000806 main+26 movs r0, r0 + 0x00000808 main+28 lsrs r1, r5, #24 +─── Breakpoints ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +─── Expressions ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +─── History ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +─── Memory ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +─── Registers ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── + r0 0x00000006 r1 0x0000000a r2 0x000000f1 r3 0x000005b1 r4 0x1ffffffd r5 0x00000f95 + r6 0x00000fc1 r7 0x00000fed r8 0x00000eb1 r9 0x00000f91 r10 0x00000eb1 r11 0xaf9faffe + r12 0x0000000a sp 0x200100d0 lr 0x00001225 pc 0x00000800 xpsr 0x21000000 fpscr 0x00000000 + msp 0x200100d0 psp 0xfff3df7c primask 0x00 basepri 0x00 faultmask 0x00 control 0x00 +─── Source ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +  5 { +  6 /* Initializes MCU, drivers and middleware */ +  7 atmel_start_init(); +  8 pdebug_init(); +  9 + 10 printf("Hi\n"); + 11 + 12 sd_mmc_init(); + 13 /* Replace with your application code */ + 14 while (1) { + 15 } + 16 } +~ +~ +~ +~ +~ +~ +~ +~ +─── Stack ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +[0] from 0x00000800 in main+20 at ../main.c:15 +─── Threads ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +[1] id 0 from 0x00000800 in main+20 at ../main.c:15 +─── Variables ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +main () at ../main.c:15 +15 } +Breakpoint 1 at 0x7ec: file ../main.c, line 7. +Loading section .text, size 0x2130 lma 0x0 +Loading section .relocate, size 0x64 lma 0x2130 +Start address 0x0, load size 8596 +Transfer rate: 46 KB/sec, 859 bytes/write. +─── Output/messages ───────────────────────────────────────────────────────────────────────────────────────────────────────────────── +Note: automatically using hardware breakpoints for read-only addresses. +─── Assembly ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +~ +~ +~ +~ +~ +!0x000007ec main+0 push {r3, lr} + 0x000007ee main+2 ldr r3, [pc, #20] ; (0x804 ) + 0x000007f0 main+4 blx r3 + 0x000007f2 main+6 ldr r3, [pc, #20] ; (0x808 ) + 0x000007f4 main+8 blx r3 +─── Breakpoints ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +[1] break at 0x000007ec in ../main.c:7 for main hit 1 time +─── Expressions ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +─── History ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +─── Memory ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +─── Registers ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── + r0 0x20000064 r1 0x00000000 r2 0x00f00000 r3 0x000007ed r4 0x1ffffffd r5 0x00000f95 + r6 0x00000fc1 r7 0x00000fed r8 0x00000eb1 r9 0x00000f91 r10 0x00000eb1 r11 0xaf9faffe + r12 0x0000000a sp 0x200100d8 lr 0x000007bd pc 0x000007ec xpsr 0x61000000 fpscr 0x00000000 + msp 0x200100d8 psp 0xfff3df7c primask 0x00 basepri 0x00 faultmask 0x00 control 0x00 +─── Source ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +~ +~ +~ +~ +  1 #include +  2 #include "pdebug.h" +  3 #include "sd_mmc.h" +  4 int main(void) +  5 { +  6 /* Initializes MCU, drivers and middleware */ +! 7 atmel_start_init(); +  8 pdebug_init(); +  9 + 10 printf("Hi\n"); + 11 + 12 sd_mmc_init(); + 13 /* Replace with your application code */ + 14 while (1) { + 15 } + 16 } +─── Stack ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +[0] from 0x000007ec in main+0 at ../main.c:7 +─── Threads ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +[1] id -1 from 0x000007ec in main+0 at ../main.c:7 +─── Variables ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── + +Breakpoint 1, main () at ../main.c:7 +7 atmel_start_init(); diff --git a/shared/drivers/sd_mmc.c b/shared/drivers/sd_mmc.c index c15fb4b..3c02556 100644 --- a/shared/drivers/sd_mmc.c +++ b/shared/drivers/sd_mmc.c @@ -73,7 +73,10 @@ sd_mmc_err_t sd_mmc_deselect(uint8_t slot) { UNUSED(slot); sd_mmc_err_t ret = SD_MMC_SUCCESS; + uint8_t dummy = 0xFF; + SD_MMC_INTF_WRITE(&dummy, 1); SD_MMC_INTF_DESELECT_DEVICE(); + SD_MMC_INTF_WRITE(&dummy, 1); return ret; } sd_mmc_err_t sd_mmc_select(uint8_t slot, uint32_t clock, uint8_t bus_width, bool high_speed) @@ -83,7 +86,10 @@ sd_mmc_err_t sd_mmc_select(uint8_t slot, uint32_t clock, uint8_t bus_width, bool UNUSED(bus_width); UNUSED(high_speed); sd_mmc_err_t ret = SD_MMC_SUCCESS; + uint8_t dummy = 0xFF; + SD_MMC_INTF_WRITE(&dummy, 1); SD_MMC_INTF_SELECT_DEVICE(); + SD_MMC_INTF_WRITE(&dummy, 1); return ret; } @@ -133,13 +139,15 @@ sd_mmc_err_t sd_mmc_read_res7(uint8_t* res7) ret = SD_MMC_ERR_COMM; break; } - - /* if(res7[0] > 1) */ - /* { */ - /* // handle this error better later */ - /* ret = SD_MMC_ERR_COMM; */ - /* break; */ - /* } */ + printf("hi"); + if(res7[0] > 1) + { + // handle this error better later + printf("res7: 0x%02x\n", res7[0]); + perr("res7 > 1..."); + ret = SD_MMC_ERR_COMM; + break; + } }while(0); return ret; } @@ -149,19 +157,18 @@ sd_mmc_err_t sd_mmc_read_res3(uint8_t* res3) sd_mmc_err_t ret = SD_MMC_SUCCESS; do { - SD_MMC_INTF_READ(res3, 1); if(5 != SD_MMC_INTF_READ(res3, 5)) { ret = SD_MMC_ERR_COMM; break; } - /* if(res3[0] > 1) */ - /* { */ - /* // handle this error better later */ - /* ret = SD_MMC_ERR_COMM; */ - /* break; */ - /* } */ + if(res3[0] > 1) + { + // handle this error better later + ret = SD_MMC_ERR_COMM; + break; + } }while(0); return ret; @@ -305,7 +312,7 @@ void sd_mmc_print_res1(uint8_t res) void sd_mmc_print_res7(const uint8_t* const res) { sd_mmc_print_res1(res[0]); - /* if(res[0] > 1) return; */ + if(res[0] > 1) return; printf("\tCommand Version: 0x%02x\n", CMD_VER(res[1])); @@ -320,7 +327,7 @@ void sd_mmc_print_res7(const uint8_t* const res) void sd_mmc_print_res3(const uint8_t* const res) { sd_mmc_print_res1(res[0]); - /* if(res[0] > 1) return; */ + if(res[0] > 1) return; printf("\tCard Power Up Status: 0x%02x\n", res[1]); if(POWER_UP_STATUS(res[1])) diff --git a/shared/util/pdebug.c b/shared/util/pdebug.c index b76bb47..b7148ee 100644 --- a/shared/util/pdebug.c +++ b/shared/util/pdebug.c @@ -43,3 +43,10 @@ void passert(const bool cond, const char* msg_failure, const char* file, const i for(;;){} } } +int _perr(const char* str, const char* file, int line) +{ + return printf("P_ERR >>> %s:%d -- %s\n", + file, + line, + str); +} diff --git a/shared/util/pdebug.h b/shared/util/pdebug.h index 9f164c3..f164d79 100644 --- a/shared/util/pdebug.h +++ b/shared/util/pdebug.h @@ -8,11 +8,16 @@ int pdebug_init(void); int pprintf(const char* fmt, ...); void passert(const bool cond, const char* msg_failure, const char* file, const int line); + +int _perr(const char* str, const char* file, int line); + #ifdef DEBUG #define assert(cond_, f_) passert(cond_, f_, __FILE__, __LINE__) #define printf(f_, ...) pprintf((f_), ##__VA_ARGS__) +#define perr(f_) _perr(f_, __FILE__, __LINE__) #else #define printf(f_, ...) void(f_, ...) #define assert(cond_, f_) void(cond_, f_) +#define perr(f_) void(f_, __FILE__, __LINE__) #endif #endif