From a73860745529d23a72211b4a4744fda3f0b5d5bb Mon Sep 17 00:00:00 2001 From: Edward Emelianov Date: Mon, 31 Jan 2022 17:27:53 +0300 Subject: [PATCH] add autoincrement of version when make; correct some bugs, seems that it works! --- STM32/TSYS_controller/Makefile | 28 +++++++++++++++++-------- STM32/TSYS_controller/Readme.md | 20 +++++++++--------- STM32/TSYS_controller/can.c | 5 ++++- STM32/TSYS_controller/can_process.c | 2 +- STM32/TSYS_controller/main.c | 18 +++------------- STM32/TSYS_controller/proto.c | 16 +++++++++++--- STM32/TSYS_controller/sensors_manage.c | 4 ++-- STM32/TSYS_controller/tsys01.bin | Bin 21752 -> 21900 bytes STM32/TSYS_controller/usart.c | 5 ++++- STM32/TSYS_controller/usb.c | 5 +++-- STM32/TSYS_controller/usb_lib.c | 14 +++++++------ STM32/TSYS_controller/version.inc | 2 ++ 12 files changed, 69 insertions(+), 50 deletions(-) create mode 100644 STM32/TSYS_controller/version.inc diff --git a/STM32/TSYS_controller/Makefile b/STM32/TSYS_controller/Makefile index 72e4685..0701667 100644 --- a/STM32/TSYS_controller/Makefile +++ b/STM32/TSYS_controller/Makefile @@ -13,6 +13,11 @@ DEFS := -DUSARTNUM=1 -DI2CPINS=67 # for example, if you have STM32F103VBT6, you should write: LDSCRIPT = stm32f042x6.ld +# autoincremental version & build date +VERSION_FILE := version.inc +NEXTVER := $(shell expr $$(awk '/#define BUILD_NUMBER/' $(VERSION_FILE) | tr -cd "[0-9]") + 1) +BUILDDATE := $(shell date +%Y-%m-%d) + INDEPENDENT_HEADERS= FP_FLAGS ?= -msoft-float @@ -56,7 +61,7 @@ LIB_DIR := $(INC_DIR)/ld ############################################################################### # C flags CFLAGS += -O2 -g -D__thumb2__=1 -CFLAGS += -Wall -Wextra -Wshadow -Wimplicit-function-declaration +CFLAGS += -Wall -Werror -Wextra -Wshadow -Wimplicit-function-declaration CFLAGS += -Wredundant-decls $(INCLUDE) # -Wmissing-prototypes -Wstrict-prototypes CFLAGS += -fno-common -ffunction-sections -fdata-sections @@ -72,8 +77,8 @@ LDFLAGS += -Wl,--gc-sections ############################################################################### # Used libraries -LDLIBS += -Wl,--start-group -lc -lgcc -Wl,--end-group -LDLIBS += $(shell $(CC) $(CFLAGS) -print-libgcc-file-name) +#LDLIBS += -Wl,--start-group -lc -lgcc -Wl,--end-group +#LDLIBS += $(shell $(CC) $(CFLAGS) -print-libgcc-file-name) DEFS += -DSTM32$(FAMILY) -DSTM32$(MCU) @@ -103,8 +108,16 @@ $(OBJDIR): $(STARTUP): $(INC_DIR)/startup/vector.c $(CC) $(CFLAGS) $(DEFS) $(INCLUDE) $(ARCH_FLAGS) -o $@ -c $< +$(VERSION_FILE): *.[ch] + @echo " Generate version: $(NEXTVER) for date $(BUILDDATE)" + @sed -i "s/#define BUILD_NUMBER.*/#define BUILD_NUMBER \"$(NEXTVER)\"/" $(VERSION_FILE) + @sed -i "s/#define BUILD_DATE.*/#define BUILD_DATE \"$(BUILDDATE)\"/" $(VERSION_FILE) + +$(OBJDIR)/proto.o: proto.c $(VERSION_FILE) + $(OBJDIR)/%.o: %.c - @echo " CC $<" + @make $(VERSION_FILE) + @echo " CC $<" $(CC) $(CFLAGS) -MD $(DEFS) $(INCLUDE) $(ARCH_FLAGS) -o $@ -c $< $(BIN): $(ELF) @@ -120,7 +133,7 @@ $(LIST): $(ELF) $(OBJDUMP) -S $(ELF) > $(LIST) $(ELF): $(OBJDIR) $(OBJS) - @echo " LD $(ELF)" + @echo " LD $(ELF)" $(LD) $(LDFLAGS) $(ARCH_FLAGS) $(OBJS) $(LDLIBS) -o $(ELF) @size $(ELF) @@ -141,7 +154,4 @@ boot: $(BIN) @echo " LOAD $(BIN) through bootloader" $(STBOOT) -b$(BOOTSPEED) $(BOOTPORT) -w $(BIN) -gentags: - CFLAGS="$(CFLAGS) $(DEFS)" geany -g $(BINARY).c.tags *[hc] 2>/dev/null - -.PHONY: clean flash boot dfuboot gentags +.PHONY: clean flash boot dfuboot diff --git a/STM32/TSYS_controller/Readme.md b/STM32/TSYS_controller/Readme.md index cf659f9..0feff0f 100644 --- a/STM32/TSYS_controller/Readme.md +++ b/STM32/TSYS_controller/Readme.md @@ -89,16 +89,16 @@ First (number zero) byte of every sequence is command mark (0xA5) or data mark ( ### Sensors state data format - byte 3 - Sstate value: -- - `[SENS_INITING]` = "init" -- - `[SENS_RESETING]` = "reset" -- - `[SENS_GET_COEFFS]` = "getcoeff" -- - `[SENS_SLEEPING]` = "sleep" -- - `[SENS_START_MSRMNT]` = "startmeasure" -- - `[SENS_WAITING]` = "waitresults" -- - `[SENS_GATHERING]` = "collectdata" -- - `[SENS_OFF]` = "off" -- - `[SENS_OVERCURNT]` = "overcurrent" -- - `[SENS_OVERCURNT_OFF]` = "offbyovercurrent" + - `[SENS_INITING]` = "init" + - `[SENS_RESETING]` = "reset" + - `[SENS_GET_COEFFS]` = "getcoeff" + - `[SENS_SLEEPING]` = "sleep" + - `[SENS_START_MSRMNT]` = "startmeasure" + - `[SENS_WAITING]` = "waitresults" + - `[SENS_GATHERING]` = "collectdata" + - `[SENS_OFF]` = "off" + - `[SENS_OVERCURNT]` = "overcurrent" + - `[SENS_OVERCURNT_OFF]` = "offbyovercurrent" - byte 4 - `sens_present[0]` value - byte 5 - `sens_present[1]` value - byte 6 - `Nsens_present` value diff --git a/STM32/TSYS_controller/can.c b/STM32/TSYS_controller/can.c index b638715..561c367 100644 --- a/STM32/TSYS_controller/can.c +++ b/STM32/TSYS_controller/can.c @@ -20,11 +20,14 @@ * MA 02110-1301, USA. * */ + #include // memcpy + #include "can.h" #include "hardware.h" #include "proto.h" + // incoming message buffer size #define CAN_INMESSAGE_SIZE (6) @@ -237,7 +240,7 @@ static void can_process_fifo(uint8_t fifo_num){ uint32_t *dptr = (uint32_t*)msg.data; dptr[0] = dptr[1] = 0; } - uint8_t len = box->RDTR & 0x7; + uint8_t len = box->RDTR & 0x0f; msg.length = len; msg.ID = box->RIR >> 21; if(len){ // message can be without data diff --git a/STM32/TSYS_controller/can_process.c b/STM32/TSYS_controller/can_process.c index f9bea8a..e6aa695 100644 --- a/STM32/TSYS_controller/can_process.c +++ b/STM32/TSYS_controller/can_process.c @@ -100,7 +100,7 @@ void can_messages_proc(){ newline(); sendbuf(); } // don't process alien messages - if(can_mesg->ID != CANID || can_mesg->ID != BCAST_ID) return; + if(can_mesg->ID != CANID && can_mesg->ID != BCAST_ID) return; int16_t t; if(data[0] == COMMAND_MARK){ // process commands if(len < 2) return; diff --git a/STM32/TSYS_controller/main.c b/STM32/TSYS_controller/main.c index 8f745d0..affe161 100644 --- a/STM32/TSYS_controller/main.c +++ b/STM32/TSYS_controller/main.c @@ -75,23 +75,11 @@ int main(void){ adc_setup(); usart_setup(); i2c_setup(LOW_SPEED); - CAN_setup(0); // setup with default 250kbaud -/* - SEND("Greetings! My address is "); - printuhex(CANID); - newline(); - - if(RCC->CSR & RCC_CSR_IWDGRSTF){ // watchdog reset occured - SEND("WDGRESET=1\n"); - } - if(RCC->CSR & RCC_CSR_SFTRSTF){ // software reset occured - SEND("SOFTRESET=1\n"); - } - */ - RCC->CSR |= RCC_CSR_RMVF; // remove reset flags - USB_setup(); readCANID(); if(CANID == MASTER_ID) cansniffer = 1; // MASTER in sniffer mode by default + CAN_setup(0); // setup with default 250kbaud + RCC->CSR |= RCC_CSR_RMVF; // remove reset flags + USB_setup(); iwdg_setup(); while (1){ diff --git a/STM32/TSYS_controller/proto.c b/STM32/TSYS_controller/proto.c index f84bf55..716d530 100644 --- a/STM32/TSYS_controller/proto.c +++ b/STM32/TSYS_controller/proto.c @@ -20,6 +20,9 @@ * MA 02110-1301, USA. * */ + +#include + #include "adc.h" #include "can.h" #include "can_process.h" @@ -28,7 +31,7 @@ #include "sensors_manage.h" #include "usart.h" #include "usb.h" -#include // strlen, strcpy( +#include "version.inc" extern volatile uint8_t canerror; @@ -347,6 +350,7 @@ void cmd_parser(char *txt, uint8_t isUSB){ newline(); break; default: // help + SEND("https://github.com/eddyem/tsys01/tree/master/STM32/TSYS_controller build#" BUILD_NUMBER " @ " BUILD_DATE "\n"); SEND( "ALL little letters - without CAN messaging\n" "0..7 - send command to given controller (0 - this) instead of broadcast\n" @@ -388,8 +392,9 @@ void printu(uint32_t val){ *(--bufptr) = '0'; }else{ while(val){ - *(--bufptr) = val % 10 + '0'; + register uint32_t o = val; val /= 10; + *(--bufptr) = (o - 10*val) + '0'; } } addtobuf(bufptr); @@ -399,8 +404,13 @@ void printu(uint32_t val){ void printuhex(uint32_t val){ addtobuf("0x"); uint8_t *ptr = (uint8_t*)&val + 3; - int i, j; + int i, j, z = 1; for(i = 0; i < 4; ++i, --ptr){ + if(*ptr == 0){ // omit leading zeros + if(i == 3) z = 0; + if(z) continue; + } + else z = 0; for(j = 1; j > -1; --j){ uint8_t half = (*ptr >> (4*j)) & 0x0f; if(half < 10) bufputchar(half + '0'); diff --git a/STM32/TSYS_controller/sensors_manage.c b/STM32/TSYS_controller/sensors_manage.c index 6ba2656..63e485f 100644 --- a/STM32/TSYS_controller/sensors_manage.c +++ b/STM32/TSYS_controller/sensors_manage.c @@ -23,7 +23,7 @@ #include "sensors_manage.h" #include "can_process.h" #include "i2c.h" -#include "proto.h" // addtobuf, bufputchar +#include "proto.h" // addtobuf, bufputchar, memcpy extern volatile uint32_t Tms; uint8_t sensors_scan_mode = 0; // infinite scan mode @@ -61,6 +61,7 @@ const char *sensors_get_statename(SensorsState x){ return statenames[x]; } +const double mul[5] = {-1.5e-2, 1., -2., 4., -2.}; /** * Get temperature & calculate it by polinome * T = (-2) * k4 * 10^{-21} * ADC16^4 @@ -81,7 +82,6 @@ static uint16_t calc_t(uint32_t t, int i){ int j; double d = (double)t/256., tmp = 0.; // k0*(-1.5e-2) + 0.1*1e-5*val*(1*k1 + 1e-5*val*(-2.*k2 + 1e-5*val*(4*k3 + 1e-5*val*(-2*k4)))) - const double mul[5] = {-1.5e-2, 1., -2., 4., -2.}; for(j = 4; j > 0; --j){ tmp += mul[j] * (double)coeff[j]; tmp *= 1e-5*d; diff --git a/STM32/TSYS_controller/tsys01.bin b/STM32/TSYS_controller/tsys01.bin index d11a38343aa8e27c59cbba7a66b57eee5b99f73e..b5e88b7ad328682cfd81f808f8de146a6f40bc84 100755 GIT binary patch delta 4534 zcmai1dsI}{)!%1kfB``fd<=t*^FTW?JO+HkpePP_#Ti8fY*aMzG=qs1fvk*a(jkd4 zVv{W8R*Qfwi8c~VQyes3^PnZsCeh?unNhQf7%fz0E=iO0np!U-_tAZ?wCNw;`oda2 z_TIm}&%WoLea=32Mqei{o+k0210%76R>%Zx7;$KFvKM3n#{XnJH~zj;4)`IwKl_Jc z{{I|_pk4J}Nr)C_ccwQB9-T>CitOA-vmuMHK{iB=~Qg1 zNT;ZOwsN7Xg=(cHSvn|k8qBH|(o#u1LY2E!d50*odqZ55L+5u=A$O-+o0{0)0yMRa zN_Ae|^h+vx;=u0g*tXr-F`IWA=r7f_`82hW(mS_46JO_~^z~1|SQ1LzNwQr?0U(mZ|Y#w81+TC zl~JMW5C4K8D6fVOGJw(_evu(;`@Loc%m-Zhy5|{U-jDJbW(QSE?Q^NRl07B$&%5-V z1NCK|PwMyL;!J3G4*$CvB25x!mmb6M=kL`r#H5Ppk~phWjnhe@kHuI>BK>~MEU#Kx z#_Yh!FW}|rzRWLT+-PO+Rsi+|J{P&Y{4I}hPqIpv59|pg>Zg1;#>`M+9#>-O`Kmpg z<1sD#HD(j~V-NZWfxSGo41J#|KC9xJ&3Enrwvf+3{=CA^ zQ1~Rie2-<%3Q*qbL4H2E&noUX#T~;B;;?kSk%`Oz|C^ywTnSL#K^WVH`n|D153n

_;3#v?99bKDsZ#PCq)$?=54rr)BO1^z=iMy+lv{d9r1>|DI&hbP=|2>^z=3eV~L&c7rX>50+L+-KC}p``M^u zSx%|j)OmqYbt|yfu@FBWJsgrAcw^iV=3*+oxIoK9-#xrrMz zYSzTl&nDW5gYHROIa$qKAIql}CK<|aFjgS!C_Q0Hjn{te`EIc6py&p$Y6Eez?ej_+ zb{1Gc;_9S`ZhP;<**gm~5Mv_j7lIj{gY!Cjb{UY|D|%a9blUCyFR>Wxx#zmcL0zH5 z{aD&TY32~iq#u1gyV5Posl;2+Cz4U zJ0gMQ8^##@>ogW^+5M92PGkG+=zRgbH}OGF(PV0%;uF_%-AQ$7HgxZz>yq=*+W8)R z`C?B505%MXdsH-nebISelx=E%x=)>+>_3kaJ0X66|6dV%UA;~@`hM&NQQh75-rH0+ z#rD2i=vXrBTa?E1zeA@_o9v-_mg3Vnaez64qxXnsupK}u1k`^8bCywGCvl&M zF<9}B#f!{ojBtymTsqvlb-ct?ie1QT6T6U+xEtb0v^I*bxi)$*hblf_;;x7%kSh|8 zD-oY6nU0Gmun~2-^ya!w>{AlgJl4S+!?4Ao$o*Y9!W_j81hy6|ehVF(HrLCEoel`R zHT38V2pk)VN{1U)hoD`u$+BUC2FL;i`ygIbW7{$DUf142eO(jE%g|QQWKJM$6%scl zY-A>wntT%H8`W6Bzn-bZ*WMwn!Hy|$3&&P5B6m{Iz!Nx+pkUlDan<7EsQ*PM_oDHz z*nq}0VG#9=;%?Nh2%V@GD{nMcOl5W=cTo_zor1;y17$--khpxss~3~8JxiQsY&tgL zO?ZM5nJSF-36(D0e{w{LS_W7%AHg)>%R_)*ELjLG>OneIm*Cwc?!z_MJOr(rMFp`r z?a=0cYt&GaPs9QgVY0E6Iy}IJ6GgH-$r?XodZo!X5|}A$wfd7y44}aO2(X zE7ZR(0&U@1(8?WeZ!u^Gi@cy6LB|{DNI>~}luHO0FQAN9f$=KJT(lEVZ$;gXdc2$z zb_$9=4+3R+9m@0;hgReCN`(hPV1CH!+K8J9tIpd) zF-p(@C1`GF6$Uwk*`X+f^(w3(REX>Yf<6?du#F0v7+Q&JnlLF8tFW~Ss|``engmTq ztFR9%tPm_fcA5|lM%>R^qR`(39Y{|Qz71*=x=>-6;BsU^xE1U&{?^olHC>|c*MoV; z-{Jopgm%}8=z+3`vN)Knfre*XAv;$4BF_gcxMOPh4}3p5D|^kvnb0L>s-0%;Ib@AzK{PQihB{IOsn z$|d~KU;@fT{Ndnal=Jy`WzYNY+Qx&=9|*=FJD1-Vl*=`WWr)R+NfOpwF5UQ^cyY~Q z(54|#h-ktf`P0;mdfhpL>1#~X9-g)atW)rUvU#SgZp*WH3?@4NTcf28n=HLP*+!nA zpH80XeTceA6;Ugwt#~Hds4cF+bM4fYwOfi_>R#;0-l|`IIZF5Wda4XIIg^vh;8JlJ z72E;lx9n@kMn2#3pS&}26h0tIIi{@a&A@$Kts-j>ur9B*dWGWb-nQ~FO z{VMhW0oq7A-mYRQ%)_g&VocNKjX>ffQDrG}bWrN{p@ImQ2(A?oezUvEtz9Cg9mKX{ z#>bu&;UGB_)v97|@nAL}b6UKgFn6qgBJ7N@Vk)v7d}Sc7l)reoOM5K(SFPBi8kwoi zL=TylSl7U;$C!BM{g_L|k7O}@@^|kjAfVyS3-M99i z8y#M1#W;G=%$IG>QLL?Bg=G*^@eQn2))Mez$B6TN&@TOl;VlpFijg~lV+rF4B|Y0` zts|52!q)u~_s8(CPu{MF=|34W6HMVdjNE(V%`~8#<&aHut|@mxPIxNb zcXoRpPHBF48}eCUc@vd}b5Xa2!QAt3I|a562g)4DzI0ajcczcXDf$U>dXm5! z>+)w@3}oP4Y{$z`{*|J!i`)xzubEzO5MNLJ2GruiV-f39ktQcuqW?PT=*ry1q| ztT%wRmww)|9)H};9_tyfgwzqQ%mM8X{ih!Vk$ZQPe$$$U%0EYYZd!L}41Kr)od~rW z;4DfN%2AXl8}MVZl-{1ckX-0FmL5ekg#Cj+cV*a7IU&$rWXvE>_k=T|i6LfGl)qrV zfx#47PMR*W(2sfer;F zFE27yKHkt{ThmN7xf>hn8geo-AE|A0KVF$pwQFZ)O?CC2nw^=A4SO2wS(%OXH8q(# zD;gSW>N879*UZb#EG^kovaM>@Pa5lYJ@!~lJ?5%?tlE;j$e3r$wr6Lj+q2T=WySQI zDO#rXmQMq%0a2+3?P|nAglrqfWemzYNua%n_!uGk-a&a{T#p==tnR*VU|e26`R2GT zkNLmg(LtrwfI&Kh3UO~bXzNjKM|_96Jm@OQBZ!v~o^fu=xRm{+sK+39)LFy`Lgoh% zM-Yv4px9=5%?#Q(h(3fL5pMx)2Eu`8M7xuoS<;~T`dj+tlGHh8am&AlxPb5@`Vk|D xI|#s?sX@e-(tj=SEgiE_Sqj>J+p;e6vi)lA_xQxwq|1OjeL+0+E?Ro;^*o90tzge&y`?tUS?f19O6Q{|{3nU)2VEEHg&|F6R5pg&{?*X|0^FP_nkH1wZJA5AwW`4iV zzmJgwnnm9ULNqwKmoKDHY896-!;Di|h8>a`z#xUHrN$y^fe$)$ozSUOkrv~qmg1Tu zCPVe;hQoB~8iro!?4ikNFh%{av6bp3-BHV_f+Mu4wRT~YUF-X#b)dDIZla^I62^W5 zS&k1jy-rur$+5?F;D5|!{MRv`s;n!!=}KDXxc{+uR}-yk-wp4kXe+wmJe>|r#asTe ze-l?C_-c zE;-+DMDEr#w$VlIr1pzWy}Q8+);RyDvuVG+i?M6`uR9ofgx~D`Z>!N)Zw3FEiHITY z!fQ@#D{$L|b0xri$~W!@?tlQfF+RwAwPG~@_c7miKe-b)k1%4t`C*I!xa9(H7x{Nt zlKausX7@s?YV1XiqYtjs9iz`!iErF`#s2~ZyTmuT$5$7n^%UA{z-a}!=_28etQ5MB zZ=;*tDr1ssuU8*)$kj?$yQI(~(r?*8Q@^ttbe&$d*U30^oiDK}Y&9J|#Zt&q;gc*u zo(Laj0r^_^8J2JdXZzTVVEQko&h;CXm<}Q{Y#Y6ee%wh7>fP1t2b?1bIveQpZ=8Tw^QIF*GN4R;dKqh<+Iu zXmL@77qT~hXuz6n{LAbH^t++>tJGQffnC6r^LeOW zR&hbUq<3?wF8^&m&Oq<$bn0pgE1egyJ%!RMcN=Ee{;d19L;nmdn zt7&~JSQq-h+(WAdRSX`*8OdBot9n%h{u)&eaDT#mdVJ8?i9MNgEPyfMOB7DkZJ)I%@&KeZ(xd{Q-|_ zwY?|dp_70Il2_;hK9_c|kZpro3j~8dV4bjK46R+NDlS0o+D+>$|ogJl=1~ASA z`&WJy<{DcfR`*CZSsU^Z>2r3JE@n~}`5WGG?j1^T5pGO)+j-e>xniYT*SOXl0f6~L z3hfdNU|W638)Z!#%kipmw7!ejxmUd4{Jlf=yXCc2R1J-uKSvMI+=btj*z=~mtFu2F zJI7S~AlXw9R$D&uuftw7(m4Avwmu*ZVOoGJ@Kc|FX_-Oil0w(S7~JKn;$`*}dh8NU zIkk9jf67at4sj3_m-sv?Qs^u3B$l>`C!KX}j6ua0Nueq61Ztbb6N<-mCDJS6bC{5h zIdvx2046Lc)H~PDK8D?lQV#PXkfw9vog)Ysg zE#SMG-G!te}Sfz;WCZ3|*Lb#YfQQghme*ekOKc;WJ?Z?QP-? zw5Nmtw40R~tr4@>hfy0B#L%OHIt|9_Ck-HlYLr^5sK-1lg%-^vvtZhUcOi*wLhnmL zlT-VT7+O)o0++%^upKyg@DubUtDsvo!Q^Ta*S3rMa1Az1LQlv{LF}47=(WSu^^=`m z5jS8XhI>+&43;4u#zCx=J`CcEH8&QVrc0PT+7!<(1Otenr*YH50$C|<=wF1$>@WQn zf|Rl<7G+gl4c6kSObFhfN>Ni4^>nZX)%S(xgOQ4wsHg+MDpcPQ`h!GKqZIYYU?r-r z3x|WzsEQ$8l2`kHCs>a1E5g3uDE+CNt>!b=XK24t4jMUgad(4e5bbHyb|NPtcOvHz zFg$@APl2HyIUmc3Xg8v5LpvV*-o|W)H?d>@c@Qy#IE&~(v?4rmdTc?%jhM!cKpEXj z%INZfWjMI4!s;NH?seAT>5)PKepxU^@#$B5vVx`PQzI-1Mk(rHMNJQupjs;Eg9{aP zpQ7F#+<@vjAwC$ZsCy)}2NxkaNTa+$hzM#F8B+_YVxSmRi!d9AP}Bz$_3r^Ys;R#@LA)TCV8V0tKi?3S$B2bFPmbZ-{7E2$^c=c&sdF!>#_1 z_Xq(qo{c^HTY(%DuJA4PW5M?Q>CRsJa$h>uZ0FOQ>EB5kCVn>KQ}43&=RiF{@*o@h zrvl4%+n{~Fi1$=w`NnrVa67iE;-3j5A(!*Lfkb2n|5QNEfixel9PT&pah5`TCH&)o zg($D(|1%)(*C=kodk9GaD8qgH_B_;}_6;H)wGw3cBh-erYb4G11qM39Y|`t=G3F7y zmF#Dp)u(zsqVJ{4>Gkv`=fp@K4ViW2brsCe3is~&b%pOnY2R;v+R}R*4Ji%qPE`Z_ z#eHCuZ|3GOSR#EYlL4Y$kV5CN6z5ML;J2Bc56WX%GvBE{aRW z7faXL&`P+Mq%2s0uT}vMy`+zDCnb-@++gpgsk{id4JL|@uMhgcWWvx#B{`U?hvMEA zz?6>4A?a2l6Hhpbr~1@SH$a@SGT`-9B|FRLh-Z2*$?RblIg;FDMUrbbOZ6o<8X%(d z*7|M7m+5RZ?h4*M`8F01T+QiylGK9Nuwd+_G}<>x4xs~p>#o1G-sl>cnOes@l=|zq zmKm_z?xRfjg{Qpo zA^aaEY*?DOHvA1MXB0WIJcsEjW{uGn)gP8!I+z{C{5xyHi}1O!*+%iTC=YK&-5Hj@ z1-6It(Ow@0)9_F5s9E0}Z?NmVIfg!33aw#o7~djqFsDs9DanGtRkZlBKNp`;8@^?| zcC}A!6GP83e={+uJWfykNYh~Fv4|Y~t<)wDs+4)woD`9o2AZSHIrH6W{5}+iZ_5a( zA|74>nlnuJhXK^i%`u-?veEea+;HL@ZR)h_8qmZdR4R;%Od+=*A3{u3Grc*hh;7)P z6GgDi`5ER~t__XjGfe!_#iVpNXK6G^%a{>y>ETP5$iNtKwtNp8%XXI<48wJfw+XX- znK)dv?3q~VNX_uq`CDVjO~zQ36dhE7W&$zJ6qcRv9Et(W0YoFB4pE74Anb@Wh~JG+IW6ApBE8I@J9u|ZRk%uTo)F2uW4cY)^HvTVz`TwaCtx1b7`t+h-3AN$3q&Hw-a diff --git a/STM32/TSYS_controller/usart.c b/STM32/TSYS_controller/usart.c index b79aa84..d1ccc0b 100644 --- a/STM32/TSYS_controller/usart.c +++ b/STM32/TSYS_controller/usart.c @@ -18,10 +18,13 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301, USA. */ + +#include + #include "stm32f0.h" #include "hardware.h" #include "usart.h" -#include + extern volatile uint32_t Tms; static int datalen[2] = {0,0}; // received data line length (including '\n') diff --git a/STM32/TSYS_controller/usb.c b/STM32/TSYS_controller/usb.c index f7aeb4c..03cd614 100644 --- a/STM32/TSYS_controller/usb.c +++ b/STM32/TSYS_controller/usb.c @@ -21,10 +21,11 @@ * */ +#include + +#include "usart.h" #include "usb.h" #include "usb_lib.h" -#include // memcpy, memmove -#include "usart.h" // incoming buffer size #define IDATASZ (256) diff --git a/STM32/TSYS_controller/usb_lib.c b/STM32/TSYS_controller/usb_lib.c index 3b1e3e8..4b1cbcb 100644 --- a/STM32/TSYS_controller/usb_lib.c +++ b/STM32/TSYS_controller/usb_lib.c @@ -20,11 +20,13 @@ * MA 02110-1301, USA. * */ -#include "proto.h" + +#include // memcpy + +#include "stm32f0.h" #include "usart.h" #include "usb_lib.h" -#include -#include // memcpy + #ifdef EBUG #undef EBUG @@ -146,17 +148,17 @@ _USB_STRING_(USB_StringProdDescriptor, u"USB-Serial Controller"); */ // SET_LINE_CODING void WEAK linecoding_handler(usb_LineCoding __attribute__((unused)) *lc){ - MSG("linecoding_handler\n"); + //MSG("linecoding_handler\n"); } // SET_CONTROL_LINE_STATE void WEAK clstate_handler(uint16_t __attribute__((unused)) val){ - MSG("clstate_handler\n"); + //MSG("clstate_handler\n"); } // SEND_BREAK void WEAK break_handler(){ - MSG("break_handler\n"); + //MSG("break_handler\n"); } // handler of vendor requests diff --git a/STM32/TSYS_controller/version.inc b/STM32/TSYS_controller/version.inc new file mode 100644 index 0000000..a6bd452 --- /dev/null +++ b/STM32/TSYS_controller/version.inc @@ -0,0 +1,2 @@ +#define BUILD_NUMBER "28" +#define BUILD_DATE "2022-01-31"