From de546126548b8ee1d05bf71a2af0a83059b658ff Mon Sep 17 00:00:00 2001 From: Martin Date: Tue, 15 Nov 2022 13:21:43 +0100 Subject: [PATCH] VERSION is always v1.2-345-gxxxxxxx, fix version format on left border get a fixed string format for USB version string parsing fix left border ver display for v1.2-3-g.., 1.2-34-g.. and 1.2-3456-g.. changes to make dfu (build *.dfu) and make flash (switch to dfu mode) Signed-off-by: Martin --- Makefile | 23 ++++++++++++++++------- ui_sa.c | 24 +++++++++++++++++------- usbcfg.c | 14 ++++++-------- 3 files changed, 39 insertions(+), 22 deletions(-) diff --git a/Makefile b/Makefile index 7d04772..c2bfb4a 100644 --- a/Makefile +++ b/Makefile @@ -65,8 +65,13 @@ endif # Build global options ############################################################################## +# format va.b-n-gxxxxxxx +# or va.b-nn-gxxxxxxx +# or va.b-nnn-gxxxxxxx +# or ... + ifeq ($(VERSION),) - VERSION="$(PROJECT)_$(shell git describe --tags)" + VERSION="$(PROJECT)_$(shell git describe --tags --long)" endif ############################################################################## @@ -297,15 +302,19 @@ clean: rm -f -rf build/tinySA4.* build/lst/*.* build/obj/*.* else clean: - rm -f -rf build/tinySA.* + rm -f -rf build/$(PROJECT).* endif -flash: build/ch.bin - dfu-util -d 0483:df11 -a 0 -s 0x08000000:leave -D build/ch.bin +flash: build/$(PROJECT).bin + -@printf "reset dfu\r" >/dev/cu.usbmodem401 # mac + -@printf "reset dfu\r" >/dev/ttyACM0 # linux + sleep 2 + dfu-util -d 0483:df11 -a 0 -s 0x08000000:leave -D $< + +dfu: build/$(PROJECT).hex + -@#c:/work/dfu/HEX2DFU $< build/$(PROJECT).dfu # win + -@hex2dfu -i $< -o build/$(PROJECT).dfu # mac / linux -dfu: - c:/work/dfu/HEX2DFU build/ch.hex build/ch.dfu - -@printf "reset dfu\r" >/dev/cu.usbmodem401 TAGS: Makefile ifeq ($(TARGET),F303) diff --git a/ui_sa.c b/ui_sa.c index 245cfe1..1021ac8 100644 --- a/ui_sa.c +++ b/ui_sa.c @@ -4386,13 +4386,23 @@ redraw_cal_status: // Version y += YSTEP + YSTEP/2 ; -#ifdef TINYSA4 - strncpy(buf,&TINYSA_VERSION[9], BLEN+1); -#else - strncpy(buf,&TINYSA_VERSION[8], BLEN+1); -#endif - if (buf[7]=='-') { - buf[3] = buf[4]; +#ifdef TINYSA4 // 'tinySA4_v1.2-[0-9]*-gxxxxxxx' + strncpy(buf,&TINYSA_VERSION[9], BLEN+1); // '1.2-...' +#else // 'tinySA_v1.2-[0-9]*-gxxxxxxx' + strncpy(buf,&TINYSA_VERSION[8], BLEN+1); // '1.2-...' +#endif + if (buf[5]=='-' ) { // '1.2-n-g...' + if (buf[4]=='0') // '1.2-0-g...' + buf[3] = 0; // -> '1.2' + else { + buf[5] = buf[4]; // -> '1.200n' + buf[4] = '0'; + buf[3] = '0'; + } + } else if (buf[6]=='-' ) { // 1.2-nn-g... + buf[3] = '0'; // -> '1.20nn' + } else { // 1.2-345-g... (or 1.2-3456...) + buf[3] = buf[4]; // -> '1.2345' buf[4] = buf[5]; buf[5] = buf[6]; } diff --git a/usbcfg.c b/usbcfg.c index 0d81d2c..a57ed3f 100644 --- a/usbcfg.c +++ b/usbcfg.c @@ -178,10 +178,11 @@ static const uint8_t vcom_string2[] = { #ifdef TINYSA4 /* * Serial Number string. VERSION = 'tinySA4_v1.3-nnn-gxxxxxxx' - * 0123456789012345678901234 + * 01234567890123456789012 + * skip last two 'xx' char due to 'tinySA4_v1.3-n-gxxxxxxx' */ static const uint8_t vcom_string3[] = { - USB_DESC_BYTE(36), /* bLength. */ + USB_DESC_BYTE(32), /* bLength. */ USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ VERSION[8], 0, /* 'v' */ VERSION[9], 0, /* '1' */ @@ -198,16 +199,15 @@ static const uint8_t vcom_string3[] = { VERSION[20], 0, /* 'x' */ VERSION[21], 0, /* 'x' */ VERSION[22], 0, /* 'x' */ - VERSION[23], 0, /* 'x' */ - VERSION[24], 0 /* 'x' */ }; #else /* * Serial Number string. VERSION = 'tinySA_v1.3-nnn-gxxxxxxx' - * 012345678901234567890123 + * 0123456789012345678901 + * skip last two 'xx' char due to 'tinySA_v1.3-n-gxxxxxxx' */ static const uint8_t vcom_string3[] = { - USB_DESC_BYTE(36), /* bLength. */ + USB_DESC_BYTE(32), /* bLength. */ USB_DESC_BYTE(USB_DESCRIPTOR_STRING), /* bDescriptorType. */ VERSION[7], 0, /* 'v' */ VERSION[8], 0, /* '1' */ @@ -224,8 +224,6 @@ static const uint8_t vcom_string3[] = { VERSION[19], 0, /* 'x' */ VERSION[20], 0, /* 'x' */ VERSION[21], 0, /* 'x' */ - VERSION[22], 0, /* 'x' */ - VERSION[23], 0 /* 'x' */ }; #endif