mirror of
https://github.com/XIVN1987/DAPLink.git
synced 2026-09-26 22:16:11 +00:00
update serial number string with chip unique ID
This commit is contained in:
@@ -402,7 +402,7 @@ const uint8_t USB_StringProduct[] =
|
||||
|
||||
|
||||
/* Serial Number Descriptor */
|
||||
const uint8_t USB_StringSerialNbr[] =
|
||||
uint8_t USB_StringSerialNbr[] =
|
||||
{
|
||||
USB_SIZE_STRING_SERIALNBR,
|
||||
USB_DESCR_TYP_STRING,
|
||||
|
||||
@@ -62,7 +62,7 @@ extern const uint8_t USB_CfgDesc_HS[];
|
||||
extern const uint8_t USB_StringLangID[];
|
||||
extern const uint8_t USB_StringVendor[];
|
||||
extern const uint8_t USB_StringProduct[];
|
||||
extern const uint8_t USB_StringSerialNbr[];
|
||||
extern uint8_t USB_StringSerialNbr[];
|
||||
extern const uint8_t USB_QualifierDesc[];
|
||||
extern const uint8_t HID_ReportDesc_FS[];
|
||||
extern const uint8_t HID_ReportDesc_HS[];
|
||||
|
||||
+30
-1
@@ -11,7 +11,7 @@ volatile uint32_t SysTick_ms = 0;
|
||||
|
||||
|
||||
void SysTick_Config(uint32_t ticks);
|
||||
|
||||
void int_to_unicode(uint32_t value , uint8_t *pbuf , uint8_t len);
|
||||
|
||||
void main(void)
|
||||
{
|
||||
@@ -19,6 +19,15 @@ void main(void)
|
||||
|
||||
VCOM_Init();
|
||||
|
||||
/* update serial number string with chip unique ID */
|
||||
extern uint8_t USB_StringSerialNbr[];
|
||||
uint32_t serial0 = *(uint32_t*)0x1FFFF7E8;
|
||||
uint32_t serial1 = *(uint32_t*)0x1FFFF7EC;
|
||||
uint32_t serial2 = *(uint32_t*)0x1FFFF7F0;
|
||||
|
||||
int_to_unicode(serial0 + serial2, &USB_StringSerialNbr[2], 8);
|
||||
int_to_unicode(serial1 + serial2, &USB_StringSerialNbr[18], 4);
|
||||
|
||||
USBHS_RCC_Init();
|
||||
USBHS_Device_Init(ENABLE);
|
||||
|
||||
@@ -52,3 +61,23 @@ void SysTick_Handler(void)
|
||||
|
||||
SysTick_ms++;
|
||||
}
|
||||
|
||||
|
||||
void int_to_unicode(uint32_t value , uint8_t *pbuf , uint8_t len)
|
||||
{
|
||||
for(int i = 0 ; i < len ; i++)
|
||||
{
|
||||
if((value >> 28) < 0xA)
|
||||
{
|
||||
pbuf[2 * i] = (value >> 28) + '0';
|
||||
}
|
||||
else
|
||||
{
|
||||
pbuf[2 * i] = (value >> 28) + 'A' - 10;
|
||||
}
|
||||
|
||||
pbuf[2 * i + 1] = 0;
|
||||
|
||||
value = value << 4;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user