From e24fc6f012fce17ccfdf258828b521e213896393 Mon Sep 17 00:00:00 2001 From: Alexander Mandera <alexander@mandera.eu> Date: Thu, 29 Jun 2023 00:02:07 +0200 Subject: [PATCH] Fix minichlink compilation --- minichlink/Makefile | 6 +++--- minichlink/minichlink.exe | Bin 98816 -> 98816 bytes minichlink/minichlink.h | 14 +++++++------- minichlink/pgm-wch-linke.c | 34 +++++++++++++++++----------------- 4 files changed, 27 insertions(+), 27 deletions(-) diff --git a/minichlink/Makefile b/minichlink/Makefile index 8f215a1..f4b2d8e 100644 --- a/minichlink/Makefile +++ b/minichlink/Makefile @@ -1,6 +1,6 @@ TOOLS:=minichlink minichlink.so -CFLAGS:=-O0 -g3 -Wall -I. +CFLAGS:=-O0 -g3 -Wall -DCH32V003 -I. C_S:=minichlink.c pgm-wch-linke.c pgm-esp32s2-ch32xx.c nhc-link042.c ardulink.c serial_dev.c pgm-b003fun.c minichgdb.c # General Note: To use with GDB, gdb-multiarch @@ -9,7 +9,7 @@ C_S:=minichlink.c pgm-wch-linke.c pgm-esp32s2-ch32xx.c nhc-link042.c ardulink.c ifeq ($(OS),Windows_NT) LDFLAGS:=-L. -lpthread -lusb-1.0 -lsetupapi -lws2_32 - CFLAGS:=-Os -s -Wall -D_WIN32_WINNT=0x0600 -I. + CFLAGS:=-Os -s -Wall -D_WIN32_WINNT=0x0600 -DCH32V003 -I. TOOLS:=minichlink.exe else OS_NAME := $(shell uname -s | tr A-Z a-z) @@ -18,7 +18,7 @@ else endif ifeq ($(OS_NAME),darwin) LDFLAGS:=-lpthread -lusb-1.0 -framework CoreFoundation -framework IOKit - CFLAGS:=-O0 -Wall -Wno-asm-operand-widths -Wno-deprecated-declarations -Wno-deprecated-non-prototype -D__MACOSX__ -I. + CFLAGS:=-O0 -Wall -Wno-asm-operand-widths -Wno-deprecated-declarations -Wno-deprecated-non-prototype -D__MACOSX__ -DCH32V003 -I. INCLUDES:=$(shell pkg-config --cflags-only-I libusb-1.0) LIBINCLUDES:=$(shell pkg-config --libs-only-L libusb-1.0) INCS:=$(INCLUDES) $(LIBINCLUDES) diff --git a/minichlink/minichlink.exe b/minichlink/minichlink.exe index df60e922ad7b48584993e0b6c5ce86de66bc14f6..276e83f802abc51a6c9dc345d7e52041d0fecf41 100644 GIT binary patch delta 15124 zcmc(Gd3=m#+xC5pOeAGYkcmh{CNUwgH6cMrNMgc-M1$D3*n(QigjgpeDYr3%3$eA; z>Y^<zQbMa0qJmmtYppG%Ix$*HEwQxsdz|-uM|hs+``+*UeSf_3`<-(f*Lj}TzF(7M z=elR-y5}#dc6RHA<@S_n$0Ib$FYRQT3zxHBHI47x76hmHrXX1ChJemYu-6g2D#L#y zsNpoe)-8a2!He9ISTbkYN$fX1MSF!!<~`hl>ks}7N%UJtNoenOVuD4~iW8aOOyi>a zde)AIR1a!A)CIF+3bTm!oUef=iFYlc+b>D>v@7u6Z^<cPPK}FCsP4}a`J(C}>^=TP z^)Z3N$_2sho>Rf}dD?#@31tkS4D7mE0OvR!>CuAu^AR4cb=Bcnp8dBZiTj<s`3D}o z*}lR@9#<LbQuxzrGitCCg>U!_&@xlur~a9YE#-j$!E8KFz_*2u#&-x`6cDV@oa0*p zg4i#GCjtsQSd+qx#(|zTeTg9C6=zm=`Wpnn)ym>9TtN+z#cR%o2UN@GX0Z6eQl?ri zDVDm<#Vx6_2Q7KU`aC^@R||OUP`!3m#_!e%mh-T@uUgj27VFJD8iBio8(AI?32)2} z@Z|77c8yQK_a}Twcq?{<@5A@A!u#R3G@7`v+}I_m_PA3ho!x8-O%{Je+d7|cQ)FZI zEAJi|&(?59q(8IrPa|8g0sL}gTMgUC4N>9jOWq}_8C%b%MvXw1or_9j_ql(Y32Y)? z)TVL6MQNsP@%qCSN1CZ?DN@cBkcA`J6lW3Vn2h{Hn}8ATqJMJcnBqJ$^^47>{y9!f z4AU=kz|mq4n0`VKP!&Olcw}+3*m748q%)}P=O9$Vb<ZWqj1tGmK4#HuijmHcA_h*U zRHsaCX&Y9*J6v67Wj{HI1l8J_FK*i^q(m;^U!PkXb4;np;;G8A%Egom9KYL>UvK-m z&5EId4ASHx>ko_7{!_8d$6qe?tUGG4XM#|%$3FYN6#G5ZsWY6St){r?jm`R9Zf)g~ zTO>ZDt#|$UFuhzCFEt9|d)fuD7=Ec;edgc~+YMq7yl1qJNAaK3>bk9ba<o7DfZL;k zJZ3AZJXtk_mqmxTzX6r=8h;jTs?&z(5aeQU=)#GA&Li4K>fJzH)zP#9>1uIn`_}qn zf2g{{AkJfaS9>Fd*iY>{X~sY0_Lzq5$)xYXV>%d_A0N`84d&g-4zGJ=K#jI=b>y{U z>Un;M)r3L~<<L1L<otryjA_6w^01gDwFSlBEGC<biQ*II06sjXk^4hhg(~>sm_YX* ziJswK#ssmi_^B8Z+sz-vG_;*SQT4k{TSj^>x3HtquT>-9JvGm6RjQ4u>WwPZyQ(Ut zO0_{%)vi*#qo|y1AE9S@Rq5A8sD?lo%CXcbqgft-%T$vaOjR)){9vrnYlUh%{*V?g zZ8iQNww1@A$C8w6k2=CzcFgs?jR{XJR#Q&vPbK8M_kh~m{~UtOl}Hz(bdI;xrz-hk zUaeDv=Qh=SE|2Z>UX6wbnK2*3(R{ymO04THhbNefG?NC?fSt`d#U<7~eT)2F);Hn> zae+M#Lhn5EK*`Nb&dcf}7wbz{DE_tkFdmj%9kchEa?l7YvzBb%tJu{_99F#xdG+`= zb*m`V(THeqXtjJ^ye})~1@XabKmR(uIToDX<4tTjubI%Eb>LkSjLo)VA-9MZoOS+^ zq<GXjlqK6^59}9&%<3TfK_aANM`m$!>_>b>LX$cv+XX>9lviwRptO!*3;!XZNpLec z87xjI;=N??DN>}hKyVX;_}%ytoRheB=Wwr9SZ6U2E<2S9X7IGmJ=hJtsdLBZkZrV# z4%wDhEFRM5PLe8n*DwcVh!^k0@7{qG4b6i1J+33gPwrs%x#v8`{mcP+*YB_)OC$0U zoH4wMIjG)yUn)h_=ib3$sTTKXF`s9SV3~ZI+0cIZR>ZO!nldKraYw`?u{feQSuCX$ zO}hh)m?EZoq=*MCVuA-W8}6Z5MGe?)E}4gW<f|V(G;s=ho1aXquX#R#-%1?M>hZo^ zOspxN-6b6R$CfT(HvI?<vND@27O}IhCFfx3pb|^Y?NIEkc`dQU<{h!RONMpBH9|!3 zA?-M*P#tXsAwKXAE$Iz^V?=RwY<JS?^Rmdtp=*eimkgT`69<84N()Vd?JqZ#?Dl{R zvN&u832lziBg%=&4&kzc&Yj{o4EHPT9Vtu+cq#UqEoA#2m3E&>JGKI3pgW}4ot5@K zDNOOp6#K^%wmA$xS31ZM$N@c03B0W&a6++@p+GTAR1Du&M$A)Ew$4VRo{DW>rER!s z8wOjHV%t+`i*3Q;sYuq&FxFR$UsW3AFl<d=`@6YZ)sHG|4=D^=jYHZCoLhEb5$=}c zr>PjuGm?6<LjHA9&)1Tu&oJ9sG~tGB$*e9P(Jhf3=bO7lvPJw#w@_^O?%k&~@Nde5 z++u5j#lFOpP1SR(G*JUehI?UrRrjWdQrx{K`<!=5_NiBMDD`F+ulU_GgObHt$>I~q zFkQC&GDNl+U$w=PjqTt$$t@Y@JCb{_G|p1$vsT<c<pE3KUOgh48wYAI!re?XKyoT1 zYw*``asiA@<f7G0vez`xhHjAzA$&@Y0L|mZd|3})96mSq2x29LM|%V?&$$CMf><IM zcJjM#Pz^&;C$af_WomGPzWp_HZVQnNH~MLW*x#xNg4LJOlnk@^>D1;p&`PO(Sa$q+ zuFzC8;$QR}Q)5_PIgX!X$m7OdVQeJt)~ln(jUCiJhOc>kuRgkk2+)e!9GWbCzgO29 zt)WR2uOi&I(A;|^W4HK)v_Kp(pQM@DOy04NkB2XY7VKs|xKA3}%eVKL!=~_-eV1Yx z{I+lR{*N!hEM9ch#S%gX%P#VsZFnN9FGz;ly);;IzQ<6^+a&ju?mA4)8-HRw{>RPM z0n;kz3w2Y9{}%g;B(KZYczQnrGw|vCCe>Jkr6ozEGiKkyJN>pZwuQexz|2namIK4N z&%k=j2G*5zmBSw+{0skXU^-66frEnBmcsZ!S2S!A4;*T#q5Y(?y8e9X&}Qs){_fC@ zn!7&y=b?U@2RHfCp&eKOZ!_#IukSyimGXRwV}c3GmBF1C4eNq*{~6}Xe&qGiGuSXb zFFiw3Vc|E^!`Kz>HM|+yz+;97d(`?+Zm$_UV|aTumcKu|p)K_^YMhl%4Rru>Ad?O- z&7qT1$KX4_FfhxVe#$Bo35!&0jV4u)q6$@1jY)N$mTrg6Pf^t+l?LNOD$cA8wGL`$ zEV4?BxZ#?pEY!Y+7HE3p`4q=%+6*7yB#J$~fcG8oBa7oLMz%ISFH=luX#Zq;jbw+m z7M$a=qX%R2a%eqx_Q+`O&&@PnI(w<3J~LJ_oae_!2C{egA0wNy9PT%&5gMuEs1|Gw zpD?O9JH}6qs>ipDGU7;h3g4XHAC(YL+*u>wVpPAlYAv>iKUnNZUXsC$_Z&SJ>75+? z9Sh`3Gup7t{QHcl=<;@B`k<qijv0>DzB{HH>%}{aUC3VJC1VG%KY8G|dDw{F9oGOi zjc>-yWc_*6n^Ra5{_&fuSZy9NK8NXe@pv1iZ`=e+ts85ocgqt+Ct76{Up--U?Zb!B z03+QNSXh~a`JnUTu@f8g{|j1YS%osRy`SJ{m8x!jPq45e@^7VbySWUi`d3B$NKreJ z5!Dr-+77{nF@;zrzJ21X`h#{-Hw1kB6J5ouKCYh0;(eMz8@PE=SPf}4ja8+9S(AFO zF1&QoYPPI!=;Rg}Y=leR>gutU%Vn6#FTK?)>gQ;zCfb7@40#;Hnv@x+W}BjT4Ll^5 z)M-Tzmm4sylI<buc!#MmxJ_kE?O<bwPuH%Iy1JCcZZFK%4BTfDB*TezG>7FxgVjXs zD^Qo+W!2>ZZ2MkGdJE15u1KVCsyY+C*2*j5j;gq=)wpjUE*fEt8f!XTk4M(hy@N=S zVLbdxwGJLPEx>=78zzQByT~0|$H>!k32JV(d*@^5X7a3Q?L*pYV6bajW6WFZap~|$ zan#I5j37izgeRyE|7lvd-)}gUl)7PBP|n()v`jeU=0)@v53+9eW5_|1Sub8JL*ehi zniz2eZ6O)1@!QrGQPbMc(rRrgmmf{iTr$KVt;(fzV~JAz5tvrH(XfI`U#iXFJu-b; zhb==;zp}U_K8?;CIHLqiqnVcTja-%_@mQuwZIw%KMXQY9Ycqq5r>N%QHHmLTd}QsX zI;~Zl`tVDcjSa4oG|h{@_Jt2plIkM*4DK^Mf_=m-(?c*@CQT0udgy=|ADV1~;s>K7 zC`h>3uDuKcV!X$9Pj43JiL}s$9!Q5)s30}JsY_*_L0mH<%oeW%rqRI@tH{`==<P1F zorop#uhZ_@LHlksjbL>bwX1>A0g=eTYRbEm=|{twp`U@JS_9NHIGjx|6vcpARF0g3 z?Wk~l<yOjxeX@i~Jn~|)c*u%I({?!_2yHC5dBrKiD%E1KBjEf3ci~d)5%R_-=b6!3 zJ?EL%yy~vn-*`cR4&KVI&Is^cK^{rsaU^L*l0iuFGOwLwU>UqgRzr_Zj+3t;j;CY= zdI(e=hartyvy3&)BcifFPU7!ng&IT1GiRQK8a!S+_oDY4@I#~w{(Dw4!`B#X5ykO2 zC+PNi{2#jdY7g-yGe7fsDloy#rOSxb<Y!jT(YpAxnXj{KUVBzZ!-0z_<%8jahQ<$$ z9}+*ba>$5haI9X-(`L1(;ev~@fPBW6%nGa3R-*7(vxvt7LsMQdD<x<!rQ$He?*pKZ za_G{Rjk+i1-Jr9cb}x^Zol<ksbBfr2=Eq3Bcy?=Sgx}2$*ZgyY-<{o9|KkxsnY|I0 zERNX2JY-H3i{gXk_%k0qV~$A|g&IkQ4zFVsk8RF3&&i{$cy0jJ+2pw`ZO`_iXEnG2 zq3#vnwDTu=(9!D@3g#s14f#%`yQx~6ys*k~4=L7rs@3y_^*Y7ftXPRt$}X%xO3G)+ zy7<09&X@vZKCUcKrM%WWpRhgT(I4^2(nqmuA)Q&(#VfjvJY`<JfHkm`zo}@Jl2=XH z%Q`OEuJz{g=Z$B<{EvB&Ov8h1nOK+C*a{f)EDWE&gEbhm8~*G5kc*NAP8nX2_iaN@ z{?7s*LlQZRg#%ee%bUER6A#PTZ1}hcmd|g?mfT|W9GdYReluqp3+DrKo1`@$`x)4w zU%d-Oj8~2b7l=nGTmzqE@w9V`;#LR2a^-NblUDzTOUaI%Q$Ui$hv?vnUHn{b5ZlEc z=eEb=Wvjf_9$g#LMaM9VPs}qmd}Ak8G;^|}Gs9)np^HXF5s#d^T$s&{5HtTguR*I8 z&^aB@z}|>>1Dpo)E#mD#Lx(A&c}Pi4><9Bu9cx{T!iW3#lRT5h$p<twS{&ygZ-+Eq zfk3=i9AnBf<(<xKQ>vW_1$|1jGhVQ9e9GIwtQ+TVH@DS?)-uxI2bll#Z%l<5K{*w3 zGqLtce+hyoVwTTGdpNo=^CGvpqV68FITelcdE=oi)m}spT_ThZMv!TLK+rN$dkhdu ziRl-bp^wkGYjmVCRBHxW0qImr)PGl;DDD>xH9vr>)8`f~K+AZyg+|*XC~y)J;`d*5 zGcVGPN3i@igpuqZaPw>0{sfD(JpqaOUB!pos$m`3Z`Vdb;YhuVS0d36N<PsCG8<!Q z&pAph+P)AOWuPz3c5NM4aoo1x{pscdtiM*+uY5)Oz$33@N2~{^b8I<WqobVs$-+*d zdns}QXkH|@gM5BQXO(If-beB9L1XjuMNzm=tX|Z%Z3H<ibV|}Av#EVG>s#0p@7|*+ z|6Q;~uxp**IKI7D`lif5ksJmMcN0xvn_<KST<h#SmXckCppwBdFf^#(+=PVf+FagK zY?{yqN_uLDBOf9bB9eh2BjnnK%ydJdFt!dczywXHwjsW$>q@l^__tzE@B4SD0kC7= zk_;Dv=&VwVJ**{dIyy{RyN(`Wom0k8j02$bDb?-;lS@?gI~uZvd^No0yomctPV6Qg zu{fR|T^!CoTRb#Y3Rz&(2>JQ?z+5@5vXg7`W}<j@`BodO4>Y6TWf<F&N$W`Upxx9W z8q#^Jy#XuX1MQtyXTHuJTD#jFh6TauULwaS)wbbh?0wl8-gHTr$Gx^R@uF_=K}$s6 zW9YgUM^b%YHsx(`1Z?Bam$YO9c{4}5l&~F`o2#pAGb#LbRX7RZ@@bgr`oK7f`zeJ- zR)yc9aBqZRE8*K5gK(>>xwKQ=kUtphaCw*XOMTErs8&5bbZJlaJ>RypMeTyybhl44 z8L=b#`bt<Q{#+W28&U0LEeA%CP3(??#087k8z=e)_2ql%F3Hdh48!&McDyAWaE`)p zfJzl{sXT}ZVAno%;YXXkxNhkd!3Dnq`1(3K%7=zup~EjZ%UU-02tIj_thnlo_IR<l z#19)%QmTEMUtiWZh?XCmvYG=*wSD0&w_4aii^FUR$CFKW-ZVd%-Q+X!p9TL@j>Jyu zm-eI+s6Do%9-betHjaKS_Y6vOjjvoz&$xS*|G>`kycKPN%5hh9*2EY|rf0|${1)WU zX}^T70;eJH<^1vrfBfcAv7$SR=4PIPcfu8X5nE8`zp@%LeQ{I1>Pdz^b<q~~fO!a8 z@-A7UkiEv6R8b>&!m19eAD_1>fYs+4R<&vN^fxAm?JVLH4~%HZu)YrYX%9k+utf~` z8jP-GbQ}A7Rr6+c^8W!dKo?P5dFs;#Vx<icl{k_iTuwtbfTyjFOiD(e$}^+oi(xKm zJrTimP90D3t69!djkU{+=6R>BsdnxC8#I*lxfn%g?W_FM>V_C1cUK43`#`p2_O)x* zfYEYMi0bC@u!2S%v!TI@Tps{^O0~UJCK<G~HA4AV3<u|Woa|hiGG3I$p-X}njvah) z!I!KNZ@)%lYx%)7HZ+oXZ6|ht=dPX1#_<Q>VLWo(GPbtx;JOtWwz{z2JG>g3TIkyN zMm?5L*kSiYcQ(AxXJ0qQ-1zX~p{%g5xcClZrG?uLw6Df$6uQ1QGrZJ<mxdZX#M*XW zKR`=p)>}^B*Z0?M<P%GcY#Co#IsnHaXXzkpo#w-@vzdj~!)q8ba^2DTtRZi5v<=>? zh8}IiTztXNww}|lF5K691x(v?;3#7w3QK+%S`GCGK544&o{6iLML+3qhW_>a`i0Z5 zcV+1N=_D&3cCr<-^A#tXv!#XmPA+g`mw3Y2aZD`Sa&{|2VBn7f+3v!fKV~xj*Cxp6 z>j=L^3rZ;WVU$<LCh*XsfrX>aKXk*R(7-ExKE*#Up|WB3P$x)daEs!LuY`o_HdBvg zCSg6O1Bzi;4bFIjmVUB0x`)!YZUAC9-I~z`a*_XXrGah!Q6}Ug#*t5`t2Nd#yY>s2 zGJS4el%#wrzG(G<()I1jqiHwomkYJoYQ!2CuEs&i!ieEgAL$~$sj$+ckZw7M1s7;? zvPf4m)S=2}{cP6!{V^~8xzSMZW4MgOV}jdJdTnfxY{wzB1WHY^=yo*oum#t*P$ab< zD#=iC1m3v8gu1?@rAWN+9km8d#R=~);ml1(7f;I?i=$>9H7BOrF&_U*DBHx}{3WsV zw;!RdvF?<z#a^>4Su~X;i8W1D4=NpQGH4Io6Zj}Wixl$UF#q+Jll4kIgbpQZX|a3d z#6CwzgI!`PKYX>3N05mYc-<`i*VU+Su9#9iGS^iWdO1{*ftOYmdcLx%r-mYhorV3c zEo1(p*HZG5K6fB$k|N&5W9rlo=oa1L2d=rkpjlf4G?~khO9mM3vEQRh7GRoT`-(W? z{1i_dNh8fBkDOQ?|MI$#X?fZ89`t&4BgS~IKu+5lm=oLQeI%pL%b|tSq02@{G7RLi zZ!|G{MowZ^Z%ZkT&e)8$W2UbtEV}Vr8&p1smS&+ue(Fba9{HE>r~K@#4*1#D%Qczx z;n}X%-ZR%R0i!|Pb;ZM$h1v{W>T)oT!alcuVr(OC@n<L8pC<lUz?@urX9e5J*W8I_ zlM7GZ31_T5uXgYC$OPQU^Yf*U{}Xmo?Jpy5d9MK<anEQQp&I{}&=&H)l(Cv`jP(Ce zfWjO18?yGjzEYb1e$oFFdE|ouc!yv5pr8M!_H<jJzeUKbd<wC8(PS|!S@H1GPMdJE zph-1{HpsHP;+d6?Dxc|Pr<sibxDKE9#tY3an9SwFbY#%Yfx&6u&WB-MgA~`cO%+#> z2R&-*;jJjWc>1G8<6FE=Kjap_IFhMvB&Tc9-tgTa6y~oGCGzvS$l@WEag6fyb8*DN zI3`{|e5t~7z)@y>ZpWIKdZ*=*m(Nw=Oy+++^0$pd!bo(Jl4yA^td&S3k<!=>ju_5V ztit8b6+=vAf<M*3{hb!F@@4o!l;BFsw`8Fu*OdizjY{>$q^1M4YdF*o=sb_ctXW+x z6?C3_<ztg!uVT^X_Cth-(=G!noB8p_4Q-+t=cOp~pejEhpRBZR{=0b?RIX?w(Bt22 z-6<+pqQ3s`=H`k@pIh{rT2Wj1TjZS+yA~!vpZgvRaoPWL%?zMMI=h^1({yIkC1Qnj zjt)Sht%u9v&Mc;DW-aKGNuL6}t4>T>W-Ylfs7DOjXTxwX80S5Ei+8A_==X2acC2yu zWdMJtam_h%jwJE&3Lp0KiYKkZF2G+rL_Z0oVHj4vmNr7ncseT@b~QrdVkGw9gP)AB zeSvm_a)_cVe+Pw69{I=DZoqE#<U1A4cad{9d(Ar$r!C?kXFfuxWZPM=CyC$dbN!Uz zLJD~(y@oIq8{5&fIQ_04@qR2BJYkjV;ssLP${pMN_t9HS8=25ru(iWB8-`LSW10T4 zrLJ1SRIkb(dP&<#)wbtTo*MisaAHrk>o(&^gWq;i@{Z_pv++!WvTfiSp9UGS(46t8 zWov)5^eVjdp`V-ZAD@QRn}}vda@5{vhVsFfi+E3|&V8OW3vW#~Cv?<n@*AIAkL=la zPpo{%uA#&=C~=+9{H<pVZC9uX90qSi=_;cQJMw!p5H1igrFbQ5>*4Hx;u7<+(1lto zaqclfAzn-p4_Q19>_!<ROZ0*1mH8}IlKfe%^6pxwL=F-}HV>e~4~R}1-qq-*`%GTz zxkprAL_mMI<iGh*JqE%9c7uGrl8+UVp{45Qjg&s;-Jdt8tA!>-tU!37np-%Z_1s@0 z&EN&k8`*YHqdE)&Rohh^mM`4;rSdW8MYDJxBR35;r(b<!_Q*OQ;*oeiDf*E$A@0#3 zeP&}E(vg)e4lZIE{<z{VUtESk*hOfYQ^ae~#Orr?w}m2@a*+->k3;7wg2F>fF8g@L zzeAZjAM^J)k8tHVERLK18K`*}#5ev^ziuIlqEz8b5E4MI|ICm5GoBUkc2a{FUs&lc zy24S7RMj3|10(A!s^JQW&ykq5a<RTm1I1xTRNee|zSOYpcTg&Cp3PN#Io~fu_%E=+ z8H1%3C4sS0|8&l;TKNK=y-LSI8n;&xJ7-kNH1;(#9Udj6@;g}QP`L{*I6qp|pEarT z?KCARtvuxL+Io4_au#6w&h6!CVN(<O&GY4Hk)vu)zM|crYWKXN-Kc6ey`o*OY8|g= zR~iMI+?F$5QRl19!(Y)ZR<+$<(H5%Os8_U9ZR(@ISF~qTt>;Tx{Fy;z<Nf9Fa-A!+ zSN@~6^cC$@HR0{AXm6_8^{;4etJ*w8YolukhQlpYJ^2;q`>J-pf7Et<MSDl}ZSjis z4^><5742WDmU-A-uJcn>?W+E=HcTCn=U&m;RPDZ3v^P}kr>|&zgO%>!(7GzupCpXX zWV>FOG)bz*)Pi=^SeWm6Egn{@J{ZvQXG+0#H~d~Yvs(YvZfqOdNI_dcoR%3Qu09gt zm{9def2@S>s`_FzT&CjHqWN0ZxsFY9N|JsllcZWI690b@!)Zxck2swmy}^&D@xKB8 z@8U15^0CRz6v_Hh0otAW?-OB&GhZ!0B=`>SHfkD=FG^Cwe@SCLmZHjnO;!uA_#94f zkIzVwA0m!bBOfa|=gaD8gF4ohq@IvbkaEZj$YRI`YWUkCT|@TF({QjY7FUQBVuySJ zIam}B%Kp;Yo+jYbkW?k#TB<nduc)?cbCte6bk=w!?A^Iaf4NH)r?~rJGXh(`B<qmh zNr<XzER&`$IaE47M~0RBLeb8a%&uYKMez|Vht;o0mZU8ZGvpZLGUPU7Z_$-jY$OXY z_Cm)0B8z$|x>V?i7Z!|;WX)`AXCXLUkwTT1srdU#wm!2Z$pInX&w!;Wzpi3s8vjGI z$q5QLx>3Y!DmsD2xsuc$Li)6s3KC!NQlb7ev$LxI%X(o(Ros{L3b!f71z8G8aL$6v zL56jZQ8&m};G|1e6FQ6V1Be-MC~<G_%7o9TelKTQ$tga~{-jA6<0g%>&J=nK?;#ZF z+OS3%mR%Ilj@el4^!Hv}Bg%^QN3-iSZSQs#g!5CGKv-tRh6zrnO%#L*aKa3TFpbIh zIe1NQ!n+V}aKeNxg3th*Fc)G1Cp-jc4o(=IA_$S-gj-Xw0#0K#nT+Zw2xDQG0$c&H zf)joP$pR-l3z-8>Xy_#f+2Dk2Axppsvmq<N2`eBQzzLi57K9JM3HPK4!WMACt^=?I zeT6_*Ja`pAj)4<;;@#prIH3q}f)frMjD*1n^M?q6mlZc&;5!f#IN@iIP;kO4kmlfo zQ-=ydJ8;6e!>}oU&$WRZgrp%r=$0-B>EML(AY;J^%OF;8!s;VXQ*go{$Qp3MZjg=O zgnpw0VKX@47m&T+gx4U)zzMxa3xe$|0z}dvm%$0&fjGelk3b%P6W)eA2PcfoKw&eP zjB~(if)gHuc!Lwx9D^|dPFNda0w;VMKOBXE=a0n^h$9e*0O1KpJ8(kXI9%|+39mye z;Dk-y6omfZgsG5paKhB_Xf5Kv-jFHagnc1aaKbDSaKiPF>`WVzN#_ZIum}diPa$i- z34JDF;D8g_A=|(S_fHap-QZ=w`;dd+gx-_Uyx@c_A!oq}^QT}uffE)(oZy5NHhkSh zpaK~678Kxwy&!JWnT$5@n&8>McOc&2gc~8g;DnnX4ZsPvL5$#pPar06LjS24jNpU` zkVtSFk*Sav1PGTx%;1FMreThP6VAW`_F!<rJct#XkVCS-3Ezjz0Vi}pvcU;Uv(UQW zgug*Hf)l#UME`F_07M9eYy&5}2-yuzcm;A0oUqMoK{yOfI0o+km%-_`$yE?1IN{fj z+u(#P=c0AN3A;mt8BE5B;2z);=h_5e7Xn@g5T1wlf)g^lI2pkSGvF5rPPh*e4o;}e z#()JUjEBU46MD=?D}odHK+?bor$YLJ6WSo@HUx-NUmyshzzI_!Q@{zQLFRxH7C~~s z3Ckh*;DqnyV8DVCvRn*UaKgioZQz9c-p0TKC)@!k11Gc{T8L&ufbe(7ZE(WJkO$y| zev2?L!3ozuge)fGI&d#=!ZQ$WaKdNHF&M!KeOF+hffMGhL~DT)j$Vz5W?}s&@+Kr5 z2ExgZQQ(AD$XIZ~OvnUqV}T$HgiHZX2OfoFftLaAKytzF0{?<60vFZ@!t0PF;NigS zkd@%Yz>+oS!;J`(A#ivtnvOW|3}i3(RbaPuXgcsz;Ewf}-{8f-hwoy%fD7-T?;&@| z2RIl~0gfG4@OvLCCb$u}9O5<;(-j!>0a^<@+y=4-VnU!8_`xO&F7R!@%aC^9SAn4) zVsKFe;7Ldvcp1?05vC}3Do})^g69LDLDIm5k1=Z?{lVjaM<9d2%YaKiLI0;y0K^3u z1%4M;cQcwA+z1>4v4T$l9*1O;Kk#qJ5^&*DG&^J^_+4Pv&#>)+rvi&VM~i|J-ra&J zO+LW3TQQ}<<F;b{|A9am8GsLVph>}nLiFP<L;}wzEW(tU1s~wzZ!oyP^MRB1VnqX= z0`&S8tp!ea7h)!VVER6^3OM1q64V}?{+#d335=mxSpTnr)H{j60)r8_0g_Knz`Ya( zF9x<eg|Px24s>^-HsD@B_j0WB#DTpbH^9?@(YLTDfyV(CKpueS6L(=u5C=Z6;mcz- zYJ3|<B8V6GHsHiRu=s#a0Ur4i{SRIS{P8aO9{eis&wJ=&aQe%QcK0z;z~g}02k1U< zFJQxmSU<pxz>r61Rq$|NFGxPPEgfVLWF-Rmz@3ma;KjfnAREBTfR`W}!Ex6VT#ygJ zalaJ$J;p%;9CuCu_e^0MIN@Q)ZgAW=g-ejV;8%eXq!?VNz<{j~h6;xf$VcE5q>P+^ zKR&_eCk`C)4E+h74m=Eb4qgU4_Z++89QXj+|BcoHPZgLj0{_UEi-YSFU}nL@o~$Gy z4rb&ieC3V32tqTH(9;cDPXZcLwV#FVcd{1^@5MIh=zmfRs;9G{L^=r3d65n>be^Q+ zA|2`IkW+aWqQeiJFX_lgM@Tvr(lL>afpjbsizcSC9}J#YgW{+#LIG}E#-jA;Y-_cm RTC><wEn8INnav)v{{n*<!QB7= delta 15031 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 Wb6XVVl~-jtd#+{~d7hc<3HvVsNtY@B diff --git a/minichlink/minichlink.h b/minichlink/minichlink.h index a46793c..11cf32c 100644 --- a/minichlink/minichlink.h +++ b/minichlink/minichlink.h @@ -105,13 +105,13 @@ struct ProgrammerStructBase #define MAX_FLASH_SECTORS 262144 enum RiscVChip { - CH32V10x = 0x01, - CH57x = 0x02, - CH56x = 0x03, - CH32V20x = 0x05, - CH32V30x = 0x06, - CH58x = 0x07, - CH32V003 = 0x09 + CHIP_CH32V10x = 0x01, + CHIP_CH57x = 0x02, + CHIP_CH56x = 0x03, + CHIP_CH32V20x = 0x05, + CHIP_CH32V30x = 0x06, + CHIP_CH58x = 0x07, + CHIP_CH32V003 = 0x09 }; struct InternalState diff --git a/minichlink/pgm-wch-linke.c b/minichlink/pgm-wch-linke.c index 7a98ce4..fe42054 100644 --- a/minichlink/pgm-wch-linke.c +++ b/minichlink/pgm-wch-linke.c @@ -18,25 +18,25 @@ struct LinkEProgrammerStruct static void printChipInfo(enum RiscVChip chip) { switch(chip) { - case CH32V10x: + case CHIP_CH32V10x: fprintf(stderr, "Detected: CH32V10x\n"); break; - case CH57x: + case CHIP_CH57x: fprintf(stderr, "Detected: CH57x\n"); break; - case CH56x: + case CHIP_CH56x: fprintf(stderr, "Detected: CH56x\n"); break; - case CH32V20x: + case CHIP_CH32V20x: fprintf(stderr, "Detected: CH32V20x\n"); break; - case CH32V30x: + case CHIP_CH32V30x: fprintf(stderr, "Detected: CH32V30x\n"); break; - case CH58x: + case CHIP_CH58x: fprintf(stderr, "Detected: CH58x\n"); break; - case CH32V003: + case CHIP_CH32V003: fprintf(stderr, "Detected: CH32V003\n"); break; } @@ -44,15 +44,15 @@ static void printChipInfo(enum RiscVChip chip) { static int checkChip(enum RiscVChip chip) { switch(chip) { - case CH32V003: + case CHIP_CH32V003: return 0; // Use direct mode - case CH32V10x: - case CH32V20x: - case CH32V30x: + case CHIP_CH32V10x: + case CHIP_CH32V20x: + case CHIP_CH32V30x: return 1; // Use binary blob mode - case CH56x: - case CH57x: - case CH58x: + case CHIP_CH56x: + case CHIP_CH57x: + case CHIP_CH58x: default: return -1; // Not supported yet } @@ -530,10 +530,10 @@ int bootloader_len = 512; static const uint8_t * GetFlashLoader( enum RiscVChip chip ) { switch(chip) { - case CH32V10x: + case CHIP_CH32V10x: return bootloader_v1; - case CH32V20x: - case CH32V30x: + case CHIP_CH32V20x: + case CHIP_CH32V30x: default: return bootloader_v2; } -- GitLab