[stm32] use desig_get_unique_id from libopencm3

This commit is contained in:
Felix Ruess
2014-12-07 17:00:09 +01:00
parent 71f61cc3f4
commit 705a7df752
3 changed files with 4 additions and 30 deletions
+2 -28
View File
@@ -35,6 +35,7 @@
#include <libopencm3/usb/usbd.h>
#include <libopencm3/usb/cdc.h>
#include <libopencm3/cm3/scb.h>
#include <libopencm3/stm32/desig.h>
#include "mcu_periph/usb_serial.h"
@@ -61,8 +62,6 @@ bool_t fifo_put(fifo_t *fifo, uint8_t c);
bool_t fifo_get(fifo_t *fifo, uint8_t *pc);
int fifo_avail(fifo_t *fifo);
int fifo_free(fifo_t *fifo);
inline char *get_dev_unique_id(char *serial_no);
usbd_device *my_usbd_dev;
@@ -215,31 +214,6 @@ static const char *usb_strings[] = {
serial_no,
};
/**
* Serial is 96bit so 12bytes so 12 hexa numbers, or 24 decimal + termination character
*/
inline char *get_dev_unique_id(char *s)
{
#if defined STM32F4
volatile uint8_t *unique_id = (volatile uint8_t *)0x1FFF7A10;
#else
volatile uint8_t *unique_id = (volatile uint8_t *)0x1FFFF7E8;
#endif
int i;
// Fetch serial number from chip's unique ID
for (i = 0; i < 24; i += 2) {
s[i] = ((*unique_id >> 4) & 0xF) + '0';
s[i + 1] = (*unique_id++ & 0xF) + '0';
}
for (i = 0; i < 24; i++)
if (s[i] > '9') {
s[i] += 'A' - '9' - 1;
}
// add termination character
s[24] = '\0';
return s;
}
/*
* Buffer to be used for control requests.
@@ -529,7 +503,7 @@ void VCOM_init(void)
rcc_periph_clock_enable(RCC_OTGFS);
/* Get serial number */
get_dev_unique_id(serial_no);
desig_get_unique_id_as_string(serial_no, 25);
/* usb driver init*/
my_usbd_dev = usbd_init(&otgfs_usb_driver, &dev, &config,