mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-05-28 18:07:25 +08:00
[stm32] use desig_get_unique_id from libopencm3
This commit is contained in:
@@ -35,6 +35,7 @@
|
|||||||
#include <libopencm3/usb/usbd.h>
|
#include <libopencm3/usb/usbd.h>
|
||||||
#include <libopencm3/usb/cdc.h>
|
#include <libopencm3/usb/cdc.h>
|
||||||
#include <libopencm3/cm3/scb.h>
|
#include <libopencm3/cm3/scb.h>
|
||||||
|
#include <libopencm3/stm32/desig.h>
|
||||||
|
|
||||||
#include "mcu_periph/usb_serial.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);
|
bool_t fifo_get(fifo_t *fifo, uint8_t *pc);
|
||||||
int fifo_avail(fifo_t *fifo);
|
int fifo_avail(fifo_t *fifo);
|
||||||
int fifo_free(fifo_t *fifo);
|
int fifo_free(fifo_t *fifo);
|
||||||
inline char *get_dev_unique_id(char *serial_no);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
usbd_device *my_usbd_dev;
|
usbd_device *my_usbd_dev;
|
||||||
@@ -215,31 +214,6 @@ static const char *usb_strings[] = {
|
|||||||
serial_no,
|
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.
|
* Buffer to be used for control requests.
|
||||||
@@ -529,7 +503,7 @@ void VCOM_init(void)
|
|||||||
rcc_periph_clock_enable(RCC_OTGFS);
|
rcc_periph_clock_enable(RCC_OTGFS);
|
||||||
|
|
||||||
/* Get serial number */
|
/* Get serial number */
|
||||||
get_dev_unique_id(serial_no);
|
desig_get_unique_id_as_string(serial_no, 25);
|
||||||
|
|
||||||
/* usb driver init*/
|
/* usb driver init*/
|
||||||
my_usbd_dev = usbd_init(&otgfs_usb_driver, &dev, &config,
|
my_usbd_dev = usbd_init(&otgfs_usb_driver, &dev, &config,
|
||||||
|
|||||||
+1
-1
Submodule sw/ext/libopencm3 updated: 40d9ffcb6b...4b8f6e01ab
+1
-1
Submodule sw/ext/luftboot updated: f7a961e3ea...6af6ab63a3
Reference in New Issue
Block a user