From ee3d9c505a47cb7e98990d04b269aae1bbe782d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?King=20K=C3=A9vin?= Date: Sat, 11 Aug 2018 18:44:05 +0200 Subject: [PATCH] BV: set version in USB serial string --- application.c | 2 +- lib/usb_cdcacm.c | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/application.c b/application.c index 4bdcdd1..47d0763 100644 --- a/application.c +++ b/application.c @@ -276,8 +276,8 @@ void main(void) // setup board board_setup(); // setup board uart_setup(); // setup USART (for printing) - usb_cdcacm_setup(); // setup USB CDC ACM (for printing) busvoodoo_setup(); // setup BusVoodoo board + usb_cdcacm_setup(); // setup USB CDC ACM (for printing) printf("\nwelcome to \x1b[32mBus\x1b[35mVoodoo\x1b[0m (%s)\n", busvoodoo_full ? "full" : "light"); // print welcome message // setup terminal diff --git a/lib/usb_cdcacm.c b/lib/usb_cdcacm.c index 91a603f..d367e82 100644 --- a/lib/usb_cdcacm.c +++ b/lib/usb_cdcacm.c @@ -35,6 +35,8 @@ /* own libraries */ #include "global.h" // global utilities #include "usb_cdcacm.h" // USB CDC ACM header and definitions +#include "busvoodoo_global.h" // to know version +#include "print.h" // to set serial number based on version and ID /** maximum packet size for USB data transfer */ #define USB_DATA_TRANSFER_SIZE 64 // 64 is the maximum for full speed devices @@ -435,6 +437,11 @@ static void usb_cdcacm_set_config(usbd_device *usbd_dev, uint16_t wValue) void usb_cdcacm_setup(void) { + // set serial + static char serial[] = "H_YYYY-MM-DD_AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDD"; + snprintf(serial, sizeof(serial), "%c_%04u-%02u-%02u_%08x%08x%08x", busvoodoo_version, BUILD_YEAR, BUILD_MONTH, BUILD_DAY, DESIG_UNIQUE_ID0, DESIG_UNIQUE_ID1, DESIG_UNIQUE_ID2); + usb_strings[2] = serial; + // initialize USB rcc_periph_reset_pulse(RST_USB); // reset USB peripheral usb_disconnect(); // disconnect to force re-enumeration