From 25a448f1a01612fd7bf7b9ca82f88c1d2b49c264 Mon Sep 17 00:00:00 2001 From: zhaohe <1013909206@qq.com> Date: Wed, 29 Dec 2021 21:31:00 +0800 Subject: [PATCH] update --- .clang-format | 5 +++ .vscode/settings.json | 6 ++++ README.md | 1 + release/aarch64/uart_read_test_main.out | Bin 14248 -> 53360 bytes release/aarch64/uart_write_test.out | Bin 14296 -> 61368 bytes uart_read_test_main.cpp | 52 ++++++++++++++++++++------------ uart_read_test_main.out | Bin 0 -> 53360 bytes uart_write_test.out | Bin 0 -> 61368 bytes uart_write_test_main.cpp | 39 ++++++++++++++++++------ 9 files changed, 74 insertions(+), 29 deletions(-) create mode 100644 .clang-format create mode 100644 .vscode/settings.json create mode 100755 uart_read_test_main.out create mode 100755 uart_write_test.out diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..8587fbe --- /dev/null +++ b/.clang-format @@ -0,0 +1,5 @@ +# Defines the Chromium style for automatic reformatting. +# http://clang.llvm.org/docs/ClangFormatStyleOptions.html +Language: Cpp +BasedOnStyle: Google +ColumnLimit: 300 \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..02e74bf --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,6 @@ +{ + "files.associations": { + "*.tcc": "cpp", + "ostream": "cpp" + } +} \ No newline at end of file diff --git a/README.md b/README.md index 79ef4e0..4c3b742 100644 --- a/README.md +++ b/README.md @@ -2,5 +2,6 @@ ``` +uart_read_test_main.out ``` \ No newline at end of file diff --git a/release/aarch64/uart_read_test_main.out b/release/aarch64/uart_read_test_main.out index c889546a56365c4b913fa848c0f703aae9a12a02..e6072f3459fbdf0fd1a1f26989ce6eebdc1031cb 100755 GIT binary patch literal 53360 zcmeHweSDS0mH*t_C{YokpkTFf5mZzNxgkKJs5fsy%8S_~R%-d}lbd@lNi=WXdjmmO zjn-e6UHK^~X{9aF`10uj?XSyLTVZRr@nu(9wPo>*?xMW`Y_ZywidLv%_IqaL+&j;c z=Rq`J_75Ko=b1BS&YU?jbLPx>=04Bu74xsn^7#Z`e({)~RA98igmgy!&-D#JNEC@v z@bBlv`Ql`xvn5XDhZI1rx(;d940ANz4@l*TvJ}Dz&(m}aSwey*={z^Es#akc3fUU< zFUdM?vC1E}SaD=1g+W#k2_-L;PvTLzd|fVImtz>x@-yW25gYoe)%i|Xjy$>;5-nX- zuP38)UtS`UgWz+dI9v?5+~1%a$$6|-t|qM3^?B)Kzpjs=(uxq%nw#pUHAkm5H??+j zP7R0Sk;a*Yd5N~XplbIR@Ta147G5vTEvnA_LuH%)-U}bNdg<0*Y}^0P+Ygi6Bm?my z8oG#nguGLD%H#Sp`j~)UoF>+A1C0`XF;<8=JIAxpKW7;(o;R~Z+Y++uutvD#&|3oC99M#tjgL2 zRx}omH8drXv3Tu*vgWqdSZ%nzIi~VlbC$)Mk}*MCL|c2TmAEF7(a7bO6VsW(vKm_2 zTCGGf98X%7ux?yf6RwO@lm{!8B2kkpD7LEWtz3< zHOXL6nxwTY8nf!diC9g(Rb8XlC1+Vyq_Z;^3>F}#DT2Du(f zs8v>7Q5LMInir{_S2LX$*!VZKM&hxSSZmUwT1Afvp|`eWkR)n_o15DrXbWTrTlLUg zs}%_+BaI-9Hdj$bLuaSe9*Za1TEopv$>r8ks9LK5qL3OE)_jsipaq50g4Sg%y83ub z%Js=O>MmJ0@8b(IE7I1|9*)N?4$nA=D5-KdQyjy1sQ;6L?j} z5*;lu8eb7Lw3aMs?npF>_Ksu%?Z*g<+-yY}Z?=|%o0p9*)My;m~#=3!Xx@{*UfXf`>LjWNAzmQYzmM zNdGC?EJ;VyCrOMDImn}nd=Vf1`xa~oxeWpQRb9ONG@@9kNMwF3?m7Ry?r*@|8X@j7 z@?p{(`6t`*A2ax?^4UhdU)-R}1Be&?`DVDeCy9G?oykkT2G`OrzNOQ*9J&wOvcz|F z{p`p3wL>_W957q~?XNOE|MLnz*?~`Kf4|S7R-h)$XRGG3%YmPJwc@kif#0t2IdyhE zoZhPGec*q(Vj=(CZs5)JbcccGy#N(R8TgA0J_ii^r3U_xfxpba=W01=3pCNdulidh ze-`A_Dwerx47^s6#IG~(=KiGDz?=U0Mgz}2FEQF;;CU}W_^k&16hi2$&%mF`NWkp| z9s@aj?J)2o(^w&P8Te5KK4sv~F!1{gyyNy=FHMLhjX*8=niC!e|dbs z{}TVnylatnp~{o#FCblNq!%JxZ=|b{zSBs55$Okw^o>YAX{7%a={-ie9_g$rr7W_( zB}iXrq;EpH)JV4?U2ml0NZ)Csmm>Y3k-in_Cyn%NNbfPycOsoNJ5&Exk-pGK|0B|+ zM*1G4>y7l+kiOGMe*@_Ujr6yWe$q&9Kzfgneh}%bt1|U}7wHR)^k$?>jr0$Yt~b&@ zMEXu6{bQsbG}8Zy^pi&V-;my8q@P4O>*`GX|AF*{M*0^>mm29`B3*B!cOreKk$xHJ z2UYs>qHE^`_t*?@bonDI{!PxOgQtnZkD$)F z`cQGmCuV@}8nJKA;V#h2I=WX!ydNLh=F3rdA&>{X2_bd}F}r&cc>BPc=ysnXdQ#Vb z?wZgx*t=T-K2b|}Tba=8?)4}mMAupW2uS)nvf^ne&p_E(|9NDENVhFDO>85XWV?3H zfjp>tP8ML-&Vk!c+B7g7@=ZfsBXwPn*;ZHY?Cv{sT{jCcCPn!H(QTs%T-DtP8krYz z5eBFD{ul@efo3A7~q)9hY_g$jwk|i~8j`{KDFnET1UDeN%JSYc;y*mXtXiQQ)y)>55=X>Uq9`-}; zrNaNFAN}5iF$JG!%t7dx^!hI-pT%kDQSw9kNuI9~Z@=#{HReN`FuuBJ{tY~JPG+3d z_%^+ZF-GII|4Olq>y=~e6*bo6c+M8LOqeQa`>zabOAUOd8g01wfhnSP;0EZa#@D^K z%#X34=7leCb$80|-~5nI^w7LZeHpwX=ws0Mdxab`q(@&!(fu5BA)>QDm(X+}HMS&O zoud00=<0|r0=lngx|BiJrRZJ&nX1+pFjhzw7BGx|=}JiZL6=f=h`;ruh%N!Tr!-w%c7~t0M(X9KpcCl()H2Y$py|X( z8M=U?djxa=qFVvFy_&AqpbIIwUxSXuQtEcl9n^H8lQaD46y2{tS4VVT0iB=5JNhGK z&~+)ge+OL`(fvK>Mr*pR5gC5HitZ<%>m|CoK_}-A_yuw@bbX5MUqIJKboYX8y5`qs z(4`dJE1*je-CEFonBM`|W2ryH4>7LptWMnrx*AOI->gy=n|SPbXtaAouc~<=(>pRA<%tA)1?f$E=Bhe=z59npFp=(({+u^ z@at7{&w{Rx=)MQKhcsQ_^bB2}qI&{#DWdyl&^@B*`V6|1qI(Q+fao3r-3yvdoROgmD7qIw7b3c!fNrm*>ow>wM~NTJ-#ViE8R!mbx=?P0 zU!9_(`P)TwPl3+w?^ff_pzBg}KLTAZ(LDpY(VDL7%nZL?MfW|>^%32(pqr@a0%v9D z`V`#*pi2?muRu3l)Abp2DMg2cyoY3Z2X^dTf7ec05B>mLKVWL2uX`Wt!d~R{`^RkF z<3BsS&b=ec`MQ4(co5|i^`m9mZqE{L!k*S99u)tXf=#Z5|NmFmci^^U1qAt9TYOyt z>oNSNs?)pcj||+G%eEYKz6^fvpxn`TUZr`aAk(cV51w+}=zpd3a2D2$2_oywEUX(L z$dQHogEb|v_v8a%J$ULIxgPNTq#t%Y0Q=R6b%XaQ17(nX1g+6nBj76{t=13&KOQ~| zDV1n{jew&9C_hc6(uk=$HI|0N+?p9rkwh@Ysn9DH7r{6=riL0$LZ zp8D#@ihq~B;gJ;|Uw-(X7(Yt>_q430{J+$=K7x?{heMSA2a@0D&AR{_@HbTX-^G|= z`Ja)z?fT!Kacc-d{yRP7?-Jqw`BERH|Jx+L(VI5{&cffZ$j`jp#?LPd`KdphIg#q>LJR%Q1TnSxf5^%{)Q_5cMSQdKb`Vlt#SDTA^(L#l>Y+BZ}jH5fUmqiborBp z{M4UL`A2D-APD*2hTU_Uzud730<$q1q=j+}<5b{4c zMEUiLfa{+iG0^uNP5{_}oc-LiQXy&LN(_{T*;DQ~xyk`VzvLe^R<1|3j}M_I~^k_?Z3Z z)XnqA$9lGz*6<%voq&IWJYHq`5tAXBe#BXx20gF$PQHIJ@_0;0A7cd8O&MoUu?*}p z-%O4D&gUpDz~jovi{csYyYM3!xeV7~;!HjyH_1%09{?|V`}EpNZ8Lla*83pakF}h} z!andx&sjYd_G{b?x(?>?QMP5CEH`?y5B<63uNVh1j-`A9Zd(evBVBNtkF5A^F7irGWd2Zx7l|1^|IaDi7$Li(k1m@ zAWOx;Xr4*^Va$_Wo}o0#kWak_^!*c2268=1c#2i^f)25XKfq_E{@^;Dx(Z>O&x1}f zzLI^6{~rA8{i*aqwoHy!=n{VFpHmdC!~I^+^Oz@n5l;3c#Rzdv?fNar2w77Y69=?> zM^-3(+4>{L>}ID`YE;s+KF^;#L=dpEXUEp zXwyNG6aHux{6Wcs`UbWG=aJI!Hpn4kmAT+W@g$-r9k6^9+cM)&r1L)>CcEU@Y>q`9 zbEI1?E8B+ll5b7A^I`9U7(_SCGwNqsJ&@H|&x^Vq)~`8liJ!n8iu!|X4eK9#J@*Z4 zr+$NSu46;@&mOdc>i93vk({LO-6S_4jd2<)bWd^BC$L5!9s|?$;*EzPPY5i;4bT5wuvPw{xta@IG;Yx6 z?;uU>!&$nXebio>tJwcgjFrl*0v^wX$IzUlIlY4TU>@80blTuPwRr5vJ&szNxXq+P zr>>~&V&q^QO1y23W#+zV(>Fm*p1Tw$G5ehBmAuf8Tz7iU<*@sMbgTD`v}crd1on>i zkQ-5#v~4tYpffy2lygo9QO$ESMRSk(0b`Ef&&lS%-*^jlh0;IM>HU<}{Wrl)&*%f^ z+&PK$47=rJA8&_@Ja^Lb*BJl(82>a+?*Sdj%=3`-M)Qnx=QfU=bCt#m*Tv<%`a9DP z?tOYIc)9iC;Ca6-vkn?_#Acsn>G^^6=qB(@!JZzZ^$25}o{vy0hy4)r@hx@P=rhVA z8T8sA`y9CCz|lJVU6k8Hc0%_(JuBiquS1_xtc7f?03@Cv%(;Qfp-b>+1P^Je%Mg2t z_>@e4U$NZ!$TF0VvG)Ir`npCyUTP1NkX+HG4%j}cMM*UI`=#yu#Z}ZdxwO8xm4QZn*Hl0a&m(8&pnE}(OwGk3eQ*%8~Z6)zw{A!4nilSj|cQPSqJ^dv4?Ru zUijWj>9vX4-Vgh@8#6Mx^>#+??~Ok zcarO$(kt6udaljBHm$uhrsX_@4SoW#LAEFPz?1#6`|5UENxsVj&|Qc=rS)&BF2gpM z>(u^QrY~Us*XYAK zex`AVe^WnZ^kuA9nh)!n%JlO*0l(KNE~NJXzoZy7<`=Ciso#iVvf(t3q@BS%_ z|0g>If3qKRf@pFeBhSGU_(~hT7kdEY|3urgbEyu{;;3bhlo506W$-qAr(YxO#b=Y| zW3zeSM|G6wykoI>+x~*~9L46zaZvZs{oQ~%)BUUa9OqavxIulMnYVIJgMNM)ve0;? zG>@Ciyd6yc zu>T-iQc7d~7;MSKaxD2aXXdqgAIyYoX`Smncm?w_jq~V-bo>IkxC}hx{sA`r0`!BN z+t3ZQe~Qc_|9`N4F2_FMqjXMfz7%b;+bX-R3qMlNcKTb<&IwqX;5()JhtFgk zbUdr0wVKA4IHhane;p!Q6go_PrCb}4_gBQmq#uBGze=_PwEV2@^Wc9fY|QiTVvK^8 z%FckE&P02t{CTpkMsKF}sWq9;WGP?A?$c!2K>DNStGu^_Z)UW^rN7Z1KW5p;_CnT6 zQO2%QmvW$+4LUi$P)_OIsp;z{v5#PQ^rBfvi3J^P;K5&HjL&`_Mq zhqF}D-soqSJZI8-VLmTp_;RGnJJ6#^bz$(Kc1D-^XY!{71?K^ zlko%KTB#qA|19b!y{l)_j<{ygJv+PhZhbp&&r@%wic)W9>_=wK_FGuH&=vu^SrX`~ zzJb~^5zn3{sxw^J)75f5jSE4~-bI#r_8!XWehl>3hn-ap`R*9ewG(UT&OG9Q`A>aB z>nQyGT3fk*zk8D|hdDe(>MbXw%7){R88$00~yE<<8(X8eF@54qS{V%+T`x@ zcdyWL=V-aHo^K-=s13A-py%+=M|Ec03_d40a1H2jHWJV8gLja>fU)=bJE(iSk{R)u zZT;iBw#oe>@~$AcP-YL#M@o5cHj1F=&F+@{1w5aHWE;SKFrCYk^+7g2_)@(hTl|e! z8Comnxg7WY%l=IDlU&zy;p|8VzL2;ZeOF9p*fP8`^H+`u#E)J;In`dZ=BW9o+Dvu` z8|58659W8j`{k@nU&sBA>hrsMvd(_?FX-db58=+?xcJ^pc<6DK1+?jMV}aL#3Q;+mJglQsIy2?GPQa@>Epbklp0GCc2Bc8BVx zvwD0sgU@3?U+7Lm4UTeMUs7Egpr7^y0v9DPsPF@(WDWhC56J-i)(SYfu1|y;VpkAy zS~RwFS~9u(`kK=GKrlF?AU_{8KsH5Uf!1(K>Q^7i+>` zu_ByaqzGorQW>g2LKIBTml=gK^JU2y`E&^(=>Urhg0etR;`4IaX=;uIqOn9I-qfCKiwBm_AK@-aoUVJvSx){E zj+Bpn3gDNQN&2;=B)0R%&*1{KWi=%Wue%{Yzl+Q8lXBrlep)OkR{}qs3|tfq&`0X;GY<9V1KtH#4!9n05#XbM&4AAVb^-1K>;e1$ za3kOtEKH9BP66BvI3Mr>z-GW*dm$&_A;3ogr|cUT*acVxcnGi=a2yQjdcb_Z#{sJV zcK|j5?gQ)s9Qiur2K+wYcEG0rQ-uHRz(DpXCLt^_PX0Js-$ zJzyW;6p}AMh=}`ENsx)4>-oA8<9`T)>9`>i}~OqCJ2C zz;%E{fLj1p0`36J#lyRI04D>E93=$S#epe+y@2xpcK|j6j`_>Lz-quMz%77L!0mvm z0rvww4w!QW^Z+;+@Bm;4u=YL30k|Hpi}C?`0mUKc18_263a}iIenhzla2()Dz#_n$ z!zd4UK42$cIp8|V2iyv{3vd@;E)ESI0=x@w66VvxfIWb@A7DHJb^*Q!xEt^t!0aO! z&u4)ia4sN<%FB0awaD(gz<1ur@e(%<*z#XOw>qEbrr@s*xRAyL0O@`;aB~4g$*92n z*&F<&YqJ)<_Ua4J4)lk=DE_v92Gciv5gunR#N*h^P+cgSTaFTh?{UGO58U@Pelj4} zHTShw)Ac+D^wZ!6Us&>6fE+5f4}bfC4*+txYmIW*aHuGs>LxkLP)^E(r0>?M`BF0@ zzWvgKEUkjFpx?{Ro#E;hEqz{=JbqcM(bZ3CFw{nb-Og(3~#!2 z&>dpB^StTSfo{#OH9wy>T_5Ns|Cgrw9VU#2eEUJy$8^to)8#@(i(s>fZ}ubZbfoJl zxE}{V7r?z!*OcFm{Eg3HPO1FR{W%*(gmqs~zv7t*He#?Ppv(TUtY^(BCHH^Lx1rlt zx^|5(>+7$+Mk9;*>T%FKjJnKzqx%pZQ0;*pCf}Vqoz(+k~qdr@u^PPR!3q1J(CZ6iv3jAW=-E6@m-eIf%k{|Lf$~n-9@Y4LsvO&$4sI9m-bK9O8$}J?HyE-VLjH@$ z52$>bY@}=Ql_=k=oA~ByJn5MG-y9!R$lrx>^HsiV)880vYDa!Hd^D4t1swXoa+SGg?p1VP_9W>_Hq5F4$f7(Tck?_}?cxv+` zjW1Mn+2#!KD@Xn=2fqODi#2|iD#!g4H~R_CUd3wos#Fi_ljjrRdXc{h`BPNB)Murk z&pzb$Am7v*l_MXt*Ml#~Oup%Q3oot!{&rJ&_}Arx$jspdtbd}}4?XM$4cV*g%P=ss5Ay|Mu8`mT4rrpFVLm*U z0zgecJw@=>sgJUMkBOyunEliU9wE?}ZK3-v;AaDGww?67PUGF`q;gx4-{mMr_#G~I z;U$GY0z&r>x}~KNmEtpDIItQRLHp zMXw2R?3nt!3;FYpl27}Q#mM)P{b}TPA%C_}KWsIYwTutCA2jPgL+yZ!a=epX@aix#w~cGc4gkag?ula zZbkkW?CCU=+?WzKv_`20gxJ9U!%B{wI_ET_3N=8W^uypOoJttXe`V!A|;M42Ee+%%m z$Mx#39msze`93qAz}yFR7PI|1HMyhv)B8?_kBR0h?L}d zPHj2Hf-n2=Z2X)z8$qUZSzFPes4urF8)wnFd?dp}$?$7b_ty=^huTbIP;li#pYU+{Q;?fOnjl-Fq6QCUBo!pK0JT4Sc47&ouCv z20qik@N0nIAIR?uOpR7D>E)c4^)$p8CV6o_y-SfUPSd*&&2%m8e{tcgiM)QK({Kgl z#qV#1izct*UMTyxa;zgdp_Kqt^PkRy*qwf6(TJwB0bN!gj zJg@Ee5rW6N9iJn3p4joH2%e92{HcQHtsU?6{`rxD`_)c=dir|{cKj&8cF&GKL!`7l zwBvKr-wUwg&lI^8CPv-+@n-agYuxao@tp*=+?jkoo-(mr&0y*MsAuE*2yXP}r0t-c z9#*f;jeeXM=Za^mpW#BKv&EkWG8lFDB?$(PAGwDYgY~TF2kX=F;Lm&(>GhE7|1oZ| zz@PDK=N0|n@u2X7`}e7%)_a;*&kLQdnEAZu7!RL=g531O^0zzWzX@H-vQ55|90^Jo8r`71ty$L-f7pTT%V zf2Nq^m=_A4k(2r3yL4lXCE3ytqIM=#X=a2mVD5JpJ&`yqJG&z{DaJD3hm)F%#VJFM8nd zqaEADd}=4!(1QCnP{*24`Ak2BC$28W_@sjm<5zj$*L&c%c;KJ*!0+NJ@7j`@P|C`xq0sL*9G12 zogVnr9{8;V?tDJ*z)zX(PQS(j|F{Q!hX;PY2Y!B`d%aN){7Mgep9j7cKV~p5o=43d z_(whP`#kVtW|`bG^K_91zQ+T<(F4E31CLL<*)DEZzyn|CfnVo=PkG=2#kOkGcB$M0 z-|T^3<$+)Cf$wwRza+&tOI%m$F3)_tVA;G_KXo4XRUY_05B&L8n%pz}Uh9G1?!cdn zeKPs;fw77YJzJ$~rp9wz?|g;Ue$nXk_d+yUpl20A7|Wy`7Elj^YPjrF@3Ltz7_TQ#F@g0C$4VoT?u+T z86UJC{{`%0mKeMryjSx7^MG?7t>PV{2kpBzN&bWPHFO5lhkfxD+CUkX($C=d!%om& zh;hQ}IJ<+E-~GF3j{;Bh>=(_|b&SC?T*C9Z&+f}wjc0!{py}zi3PjI#iRpg;{8@(F ze0xOGv)?;LXUxR7cB7vIJn?5gkonVBd)(+ZX?k9d*e#&5ak*k_df&?OyszompLtGa z>_Om^>UHX~EyumyJAo&9-lqgKpVu{>?Est0RS+xyd7SZ+d<2Hi#D0_GLQuQBt^wYy zy^B5YcLGoHuzh1a|54+4f7hq^&pp+HKk&qd?dobxf5vI<^mP2zP0p)#$SftI-CW1j^EPxZn~xcPkeY?WB%XLc=m4#6}c!zJSZ1&l`6-6wgh;$ z_Evk~W5A!8H8`FV2cG2NeJktddm7LF5BJM-bPCb)evRqBuJOFSPtx*_gOEhe{sZgn zn-Z^y4DhI?=lxDV=bbZJ@!@?a^S>Q;M12#8AELzwx;J9q?}B?VzUTI0?%$1r@pJEd;!qel}=4 z`?1U?|6E1S@qvJD@4Xt&etWsb@Ar`NSZb@qu2=r|olEPCcLk8vm~v@1zf% zr|3DJ!}2fJc#g9%pFZHp4zT|t&#Ix0|JL-p|B`2Wf&UQ?o>Zb%?!@EaYQ)`$568_I|D?uqyp;RpeU0Zh`E1>W&%-bhAC50EpT{(w<6|sm zMHcnfIKgpa?w1LdDn3p-`8|#2xDD9K>vY7ws9ug^aJ^sEc#bEt{67Pp?5(pOpV#yp zFJk)I%N2i)&-dwif1vTae`or`z`Ko~FJPdOoKCy?Rp7}VcKV+WLqBfo!dlIT_rpd&z-j5dmPyG2gNS~&sc$}M@|ETGm`C zymQ=^6)653A7FX^J z(DXgPQ@yp?&uQ2AEt;O6i}AeJs_`5z3TgU=8HztYC+gGqCxCa;+Y27}KY8GD5s!1@ zb20GL-hiWjZ_#*;+warzyrc0>KdlMlp7=QT#l+XG-VZgsbDg@PNa>TGTdmghei3-L zet8!7fTl6Q?<5}+qweY8zneVg7OQ&sTuHVrdMWT!uXA1aF5_Xh=$fy9xDoL$N$Dht^YK!RciPVfHQw1Te*iw9>oUOynx3E2jnSDiU|2{Vj+2km_->7N?#Fj)JU_Q( z`qwqyY5(V7+y_iS^nDn3s+XUOv7LEJLr=p;wWmhnZHdIRa5x@moLM-vxv90Ib816t$F$;Ud3l-t2j^3H zP!Onz#FN3iHZdtGCUqWn?qJ>o<`KN0#99^$<8$7vC!&s4sw19EBs-QY$&29SH2iUU zE7@X2=)?E)QSoS-)zI9AZ_!&(yjLY*g*!S0ee1kAmW)O7ih~6+-H9xGD7?uE$K&DU z7G8-GUyjd%BTBmJce(}Cu51EMPC=si?p}ntL`<) z`N87$rdTAltSJ$*B5inYOS~hJ)LGN@OI_OH;Mbs#Gn*P(+v50O`Hh7^`5p3PQ$$wT zL?1E_C!5+@tuVf>jv#T zvojc!uL6SdV$DmYQY-S>YS6Z8t4kJCSQQJ)Eqt8bnzQhFt75K3&MmJNR{56}mMo|& zL!PbWQ9A-Jq``OFS&Hkfy|$*J)~YQjonJwpykA(8EV8QWtt39WUWvpk`aC-%3KrCd z6KEjX($v~e8NqkwgY+&M5QdwQiONVtO&I@FRMaF3+rv%q%6T<2tecPu=36zf=2#>d zOe8C7iYy{%jwKS6$fq)dst5+HlIG^Nh}GH_jg%GlQjCKii+uYVNb${*1sT>*!_q3q3(k^#Mw-y`<`a&;vH}_zMV7ShZ4pNeHOc0r_oS__p66XF zj6=Rv8-yxrN}$D9G@J|%-#D9PEr4~CUDwgtbW2Cfs+7%M2#aB}BGMFj%@d4-%&?Qj z-k748N7RvM_3$;*W)IP`WDj9_n`5nxjzzys$GY)}O!ZApQ_Mq9nr=+q0-n4>8k%Zk z&Vn{8ufzHgZECeT5;0npuoOjZwjzyiMew#eN6Vy@vyzSRwq=-vQA?VSrJ6_?bn2gZ z#g+v(ORiEgEl^=ujzz7OSWA7!k|ED38gAieG=6*(5rmu8iEBTJe) z5{-`bqi55m=o58s+M;}{m6%$bc7LP^to(wUVVF=$$v$Q#jnB8Mf+U z4d~!VI2l2M$`&muDXp}EdD8{G=kR|;3ujq1RgvckjI+s0)BT*jzFZ1^N;yYHqD zo<-g!)!Tc5BXP7D8D5=pg)8Z+rQ8yYwo zaszg>8U_vSp<3(AZli>D8)~O9JZtw1x%QF{|+SzHf?INC@-Vu#rbr`wLiW^p2@eJ-f>wi0eY{}5dFc_J_1V;HVOntahpT4~b=0{^Xk`luLQ);!yZci2|C7(R*g$U?GXYhn}G>j5G4>(cJ(=wZx;d&-Xd--@%Lt`?tcjfiv6FL_Z9w{jt8~~Q~?1ar2 zOiBz)mnWXsuuAU^|CCZs+IAk%*vH*@495y7;|t_$P%N5l&#{K7(rz9U5ajhWBA;0v zZ7LoA_}_7T%D~}PxLQMS{UgmZHfC7#L=n$y+BzIjso|QGDfXQV?ejfmsL;>0>0Lj<2!qG8xU6yZsZ^jeNKeojo-p{zii=EA}euB_$LNFTi# zV@K}hIv>{<4y^47iHxcpt(q@Ko0Z3X%~2JXDZefAKw6$JINBrR%t0g-*HR%5#io!> zEg?K|LNrxz9hu6(N24%M)XAvp^r64w;bc=_&T-1Z9=h`|uE(f3TDw2)lLxrrRr4a4 z8`JG4$@Hm2ZncMC9PCU-C#BD-LRWMmONFk~Civ4kYL{_*=#-s~M1OkK+hXDJoFBHN zT8d#Xy_qAR@V$qje%txCNVAF`Rd|IZx4;xP01$4KMZg30VWtB6;53^pMO0jGw|*wI$qX@$*vk z&?A!QkUtopW`C+KOmX_0VI}M~oid~&6!HuOohanJy&+rFy@^av7H4d2tBAcY@c+3n5p((wWL>m)u|q?j`Z2h$IbK%PKTO{=sYw9+FWMor)!1PqtMD)99&HQ zR1aZF`k`KJxSkFjUf;S5hpw#ZSfZna*4?r)3-4stt7Jqz^wT4rkL70;7W%oKas`H= z|AzG(gxBEVjr(=(E(Xlr|GuAb@j---lzFg|JRE1FSlqNDH$>Yj+h8@c;1`@`xWtIM z&_lgrjvbH>VEa|%&{nq!^{htwtwZCbG$-vmJz=jop}sIZVWP+x*&hCpu-)sRg&{C=(K1@*G5tG_O8lsStSWlCIMzx_n$@(Va#13V7+zDtO5o?? zv@4@X$PE59E&r?;!O37gjyB_WhVs{&6*FX_VyTW<*37r?|FA7^^os}McgMq^bQpYc z9Pr!3w&h2EDBF%7jwhEmTw~(^Skuw$XFdmsm8w6z5Tm(AEtY#!`cZNESH7aRnRs4nrvxZx?y3 zZOK?3e*T$P-_g_@o!S)DDE#VhYBJm)WL{%9(J1nw%Ui)u!DL+JEX8SjyqCe2u#gvz zHHWEyzH4tziadH_fXKr`ef%rE+Prw1{4I1|tWm#qqA`lHoC4EG#ENxBV(m!_;=_}c zJk%R06c4^fRpFMV2#U0UyW)yN$085Mxasu2esReV!Fed}!yjIkC9fiV!;tdLi)hV@ zKKp=I%%;op_mddn^+C3a-^;^DypG6LzEjuFFu;TwI?L00VE%${gt7eV^bN!FbveAQ zS6(?9GFXTkyrMNN|5ja|VL(@SGHCFs;q-Ug_`Nh=)OfC+zwgA5ztaXXc{%m>x4_aj z(6~H*2a4e$U5@2vI)*nRpT4QaY5ram!#-V}1^_TLH|HId8nccmEeciy;uF3;`1 zOP4PNq>H~l#gM-!W!KDyTA+9AJhM`4w$d{6Kn@Mo6i?^!Wy=Z5J* znmyhPr>-7Hd48WH!|&sLbmqnKGwxfsG3)2=V=?4t|Z4{62l_~ddd z*Flt__Otx_oyB&V*tphErg3q3hKG=6mQTOOuuc`?dB!Zb9H&3T4dJ+celO#=Iz>^W zK>A;2c|R(r`t#Ei>W0hf*Px|yxj81}v6Cjk&D=Vb>YSt?ts_6hAJ@T}SsgW$G&U7Tj{{ROlo&Nv; literal 14248 zcmeHOdvH|Oc|ZFwC*almdS50YINrVza-LfkQ3o?L-5cMNTFRR@vwDxLu*}bxb zVdBMQJWkW;cmob3V^i1lbP$tvXvcL?>!u3!bezVMQXEsJgB_tsGPKSgFvK=;khj0@ zob#>Dy}O&Fou>bk19!iBe&6GK=R1#k?>R?LZrXZZFc1)&LgH_Q%-yPxsAimKW(gsp zV!ikjeiw^HVhZ3euBc}F>2+~c zP11dMw#-)1w1Ndw*83dv$j@Ik&C-Hhy1aUEY0&Xt%I(mUPW3dUldIFI%)sF4cs!rz zTemh+$VOUJz30I`sdjGPB`$70`Or7+cyh++g=^ODJbK5edmGlACcnuCvPUwMNPeok zQ#kRsJPrR+BqXMZv)mAdMo26`1A8rg6@1-g3`rrLsDsDr;M80eE`Rz4fTeyA`7T_w z${nhMAFP8H>frNGO$$7KIuAg1Ef1>`xmy18*1`Y24!*4p{!ATwHE;`;KT-d#<&QwW z%ej4dC!VC<)-3ET-P`P>lXv!{3a*py-qxPZW}NPLPufwunw-b;Dc2EXMPzeMhO8#Y z-a6q7rd$#4$>v>=%cnAKuSmqx>1;w2+Z{r=CFBHrccbZanYW{qa;r^yVE$)E+W6$t51O6Mc``dj{h9r0CqbrLEmw6KVO3 z*wECM?RT2u$^KNPDW1zU^?(lK_T=M9hlU}F+S8xS=%Q?nWKhsQfh#2M=sv9P2_X)R zuYecza{#E2(GV*_i{23$vE#$|H{2AnfzdKp}KOw)=$p16)ZASik z$oClebI3nsz(6&0Gjw| z=lCJeL!+JJZXNn>4vmz==2SJyBZWQAE5xfQ=e`?7O zJICXYzY+?Z6o@L=@Tr4zoO++${D+gNomHR_q<6xInh?!NA@k-;V}Vya?|L?j1q< zd+fpY?PQPQ85SjKuZyz%{z1iSCj7HS>*!1shnQ9Dx>J@9AD1Z~AEB}|e@wOEDLm;) z(%)#Hv<~vrE*(P5J2}V_X3qgJWI|v`q$7FwtA*O-pVi@!CJjtWH<~0H*tnoqAkLVXP4U1vf z_fWro`J{YwjLLx?)whhi**;XJ$M2C~>0`)Heevv&eqVwf`9O8JM7A0P`c$!NV*l&1 zf7Ti+W$N$L55uD6Ahj9B%_%Bdk0UWXI((_II81$u#?*I+2c0pD5$VtFkc$6{q0)KD ziw^U6s9PR<3&AdxE5hP);z0B;wI|sh4TV;{rpp-JSR5t{?eG=Ey_Lr0q-`~ajH2Jj zKG6^zKM6fmUo}5)`PX&^hK``kj|A72KKOia=sDc~&Df_)M}qUe`ytx*qeN)vBh>GD zD0uRVuu-0Q>~mEx=X`Dn{ggkVv;ujxsM+6gJ4>oTTMul|#L$w1eUbiF_*O zX7g4rU4*SD+@`&PA09pV#vOMZ%XRlzsSI9@GYLlud*$#BZgscsjBUUF0gGP7C+$hU zoJ>-?CG8iS48oDL5`FP}Jb{k|U4CFu=(qbINbfaU$IIm+=mAi)vv>{k1Zeo%Ia(OxE+KFy|ADeNuA@;%_29AH3a#-s@ zEO0%KdZ!h?`GqORZwWr63=sb!uFHr=4wUUbY}mg6c>RrX`3nYrm%*nc85jKJiZAQd zsreL_d%+(B|A3+2c6iE>TiTxse=W4>Xz*BI=X>w|+l6<|zx{ox6va9Roj0Ik#)8yu zrkfGC8G)M-xEX<)5x5zFn-RDff&X6-;B{zTccxcbN`Cr)f-Crl&flf!HBIT;ffDaK z@tW{A_2TCpijDn8RRZs8;(J@BJ2mBX@x?mN{0}}UX9+r{KKCknpr`bUEw5#t)_nf3 zTBa++Yq|8DL214sm0wAQjwuQ@MNS<$Bf#&>H+*zX3d&uhj!ZO;d4pmd6B-X^X%spo&UaG9LHyil;=2T^S^R(MOWben)3cL?~nYVit>I5 z?~nN9d4Hs{y?ukVa#znl#vQO)BcF~muWtFwfXudhX-#vadF`(&*l(alK7>)j`}!uE zcAt1Z+>3|Apzgn3JY4DbUi=op{oRXC5j-xu_*B9D#fzg6Yjm6tPC0OY_R8N{>Gxi| z-oEp6!TrN4k6D5Ts=)|}8G`2x1IE75OffRkMAUr-ZA}l|rG7p*D zkeFN9m-FKDD(4=&_RzB+Dp9s6u&y{}zfg?te98Rz*>$yc|#!mHcy^`BerG;xt9L|IQE*v>1ycE1w= zsudshe}~Wi6_6+Y{rEi^FZ$$F+!hF)7qmNKgO=y#CgVGR2aNVbRwiYqx?kB+z8Zg8 z+vn#q+gEm~`|VeyooZak&lZP#{a@kL{qV0~r&c_b{7mttFa8|o>HJ{z)OWVH>?`*> zzrcQ!7ORZJ_TSWKHK5>pNn8SCwzA5^(&UY;*-B9<3C&YaVn=) zJpU8&@??kJ|ECLw+eUw^TuiY9>aE4;5{i=<6Mx6 zPxbs9g`GJVFZ_Jv^}`(+U#~a2gFjFQe+2lf8u57?xK*j;Q^$^I z8YtxDA;mq3#Og#oTPQT?Q;Pb`;-1VvQ)^QsGWoxnkJDAeCbBb;cUvM^u{*E} zU5_Yj*x7U-&vu=HIx!bXzLzKr$XW^e z;q|I9!n*h9f=g50E|YBLwoA9pa-Ipg&yGN9$mD13Wds%KJVE=uMsC1 zcjNGv_4RF;i{vK9!Q;q^g!q@a6q{VH#|oXtIjogH02>o z4+76=51S(G@tmTJatc|yFP=%_WT!l!=~dlwKYU20GWI~hK__^)RkjyxfqP8RLCs3j zQqPg+GQFlMacpTJBVA6yNj>Ix%qWj4Z6xFgPwKuNOO;ci9@MsRN|k#r9bc_^L{*(W z^(cx+VPC%+?*Vo5iuUmxj;cEOoQPzyt`ouB7U>yC;jn2csi9cgmep>2kC42+c%e^3 zlKV2Srzj4xO3q{06;EX|o{SA%-bu$vLEq)lu87F!MOwv-LTRzxuE^kXWiG4cO5AzE*vHy*s6$i(XsOnE&{v!yKG z6J3Uj*0@-o*DshZCm|!@vE)fO59HD3bq=PMN1EQ9y{QA)53$C@uhHu^yS2XGe+|p?{1j8x=XD*XyiUpGbNsmehoDRPZQ3BO zdse8fFzM6Us$c()fsqI=Go94}OnE&4A~I1~X8JNRrarGHF`eZLIDbwuJ>t`^ya(#< z{%>-{b)oD(`#^ukV3yD8Q%t!WmiPPrqSoj5^EwvOn9qNI`6qn(yxzq$%>`@fFQ3+L zs0c2f*TtC9SsgR^%O3%gUWI9FP~vrb{<|5!Jm;Cd1s(b%Vtroc7kVRs<;XTA&NICL zjQh6aSN;x(aza?TV%)!2kK5%EWT=Wi2>!_#Iz|<8oP+zBOy<|3#CM_?QJX_3Qr^hu=HY diff --git a/release/aarch64/uart_write_test.out b/release/aarch64/uart_write_test.out index 5ca81944248adeae319f8035babdcc0b5ccf6841..4c7c1428c41331878a9c1107c20d4f99e142d638 100755 GIT binary patch literal 61368 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 literal 14296 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 diff --git a/uart_read_test_main.cpp b/uart_read_test_main.cpp index c368fea..56a7fe2 100644 --- a/uart_read_test_main.cpp +++ b/uart_read_test_main.cpp @@ -14,10 +14,25 @@ #include #include #include +// +#include +#include +#include #include "uart.h" #define MAX_RECV_SIZE 235 +using namespace std; +map g_baundmap = { + {"0", 0000000}, {"50", 0000001}, {"75", 0000002}, {"110", 0000003}, // + {"134", 0000004}, {"150", 0000005}, {"200", 0000006}, {"300", 0000007}, // + {"600", 0000010}, {"1200", 0000011}, {"1800", 0000012}, {"2400", 0000013}, // + {"4800", 0000014}, {"9600", 0000015}, {"19200", 0000016}, {"38400", 0000017}, // + {"57600", 0010001}, {"115200", 0010002}, {"230400", 0010003}, {"460800", 0010004}, // + {"500000", 0010005}, {"576000", 0010006}, {"921600", 0010007}, {"1000000", 0010010}, // + {"1152000", 0010011}, {"1500000", 0010012}, {"2000000", 0010013}, {"2500000", 0010014}, // + {"3000000", 0010015}, {"3500000", 0010016}, {"4000000", 0010017}, +}; void openuart(struct UartDevice *device, char *devname, int rate) { device->name = devname; @@ -33,33 +48,32 @@ void openuart(struct UartDevice *device, char *devname, int rate) { int main(int argc, char *argv[]) { struct UartDevice dev = {0}; - // struct UartDevice dev2 = {0}; - - if (argc != 2) { - printf("Usage:%s dev1\n", argv[0]); - // printf("Demo:%s /dev/ttyUSB0 /dev/ttyUSB1\n", argv[0]); - exit(-1); + if (argc != 3) { + printf("Usage: %s /dev/ttyUSB0 115200\n", argv[0]); + return -1; } + printf("device name:%s\n", argv[1]); + printf("baundrate :%s\n", argv[2]); + + auto baundrate_find_result = g_baundmap.find(argv[2]); + if (baundrate_find_result == g_baundmap.end()) { + printf("unsupport baundrate\n"); + return -1; + }; - openuart(&dev, argv[1], B9600); - // openuart(&dev, argv[1], B115200); - // openuart(&dev2, argv[2], B9600); + openuart(&dev, argv[1], baundrate_find_result->second); char buf[1024] = {0}; memset(buf, 0x55, 1024); for (size_t i = 0;; i++) { int ret1, ret2; - ret1 = uartReceive(&dev, buf, 2/*接收的字节数2-1*/); // send the received text over UART + ret1 = uartReceive(&dev, buf, 2 /*接收的字节数2-1*/); // send the received text over UART if (ret1 != 0) { - // printf("receive %d %x characters %d\n", ret1, buf[0], i); - printf("%x\n", buf[0]); - - if (buf[0] != 0x12 && buf[0] != 0x34 && buf[0] != 0x56 && - buf[0] != 0x78 && buf[0] != 0x9a) { - printf("....................................................%x\n", buf[0]); - } + printf("%x", buf[0]); + } + fflush(stdout); + if (i % 20 == 0) { + printf("\n"); } - // ret2 = uartSend(&dev2, buf, 1); // send the received text over UART - // usleep(1*1000); } while (1) { diff --git a/uart_read_test_main.out b/uart_read_test_main.out new file mode 100755 index 0000000000000000000000000000000000000000..e6072f3459fbdf0fd1a1f26989ce6eebdc1031cb GIT binary patch literal 53360 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 literal 0 HcmV?d00001 diff --git a/uart_write_test.out b/uart_write_test.out new file mode 100755 index 0000000000000000000000000000000000000000..4c7c1428c41331878a9c1107c20d4f99e142d638 GIT binary patch literal 61368 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 literal 0 HcmV?d00001 diff --git a/uart_write_test_main.cpp b/uart_write_test_main.cpp index 1a36db5..97dfc3a 100644 --- a/uart_write_test_main.cpp +++ b/uart_write_test_main.cpp @@ -16,8 +16,23 @@ #include #include "uart.h" +// +#include +#include +#include #define MAX_RECV_SIZE 235 +using namespace std; +map g_baundmap = { + {"0", 0000000}, {"50", 0000001}, {"75", 0000002}, {"110", 0000003}, // + {"134", 0000004}, {"150", 0000005}, {"200", 0000006}, {"300", 0000007}, // + {"600", 0000010}, {"1200", 0000011}, {"1800", 0000012}, {"2400", 0000013}, // + {"4800", 0000014}, {"9600", 0000015}, {"19200", 0000016}, {"38400", 0000017}, // + {"57600", 0010001}, {"115200", 0010002}, {"230400", 0010003}, {"460800", 0010004}, // + {"500000", 0010005}, {"576000", 0010006}, {"921600", 0010007}, {"1000000", 0010010}, // + {"1152000", 0010011}, {"1500000", 0010012}, {"2000000", 0010013}, {"2500000", 0010014}, // + {"3000000", 0010015}, {"3500000", 0010016}, {"4000000", 0010017}, +}; void openuart(struct UartDevice *device, char *devname, int rate) { device->name = devname; @@ -33,24 +48,28 @@ void openuart(struct UartDevice *device, char *devname, int rate) { int main(int argc, char *argv[]) { struct UartDevice dev = {0}; - // struct UartDevice dev2 = {0}; - - if (argc != 2) { - printf("Usage:%s dev1\n", argv[0]); - // printf("Demo:%s /dev/ttyUSB0 /dev/ttyUSB1\n", argv[0]); - exit(-1); + if (argc != 3) { + printf("Usage: %s /dev/ttyUSB0 115200\n", argv[0]); + return -1; } + printf("device name:%s\n", argv[1]); + printf("baundrate :%s\n", argv[2]); + + auto baundrate_find_result = g_baundmap.find(argv[2]); + if (baundrate_find_result == g_baundmap.end()) { + printf("unsupport baundrate\n"); + return -1; + }; openuart(&dev, argv[1], B9600); // openuart(&dev2, argv[2], B9600); char buf[1024] = {0x55}; memset(buf, 0x55, 1024); for (size_t i = 0;; i++) { - int ret1, ret2; + int ret1; ret1 = uartSend(&dev, buf, 1); // send the received text over UART - // ret2 = uartSend(&dev2, buf, 1); // send the received text over UART - printf("send %d %d characters %d\n", ret1, ret2, i); - usleep(1*1000); + printf("send %d characters %d\n", ret1, i); + usleep(1 * 1000); } while (1) {