serial descriptor clean up
This commit is contained in:
		@@ -40,9 +40,6 @@
 | 
			
		||||
// MACRO TYPEDEF CONSTANT ENUM DECLARATION
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
 | 
			
		||||
// Serial string using unique Device ID
 | 
			
		||||
extern char               usb_desc_str_serial[1+16];
 | 
			
		||||
 | 
			
		||||
/* tinyusb function that handles power event (detected, ready, removed)
 | 
			
		||||
 * We must call it within SD's SOC event handler, or set it as power event handler if SD is not enabled. */
 | 
			
		||||
extern void tusb_hal_nrf_power_event(uint32_t event);
 | 
			
		||||
@@ -90,12 +87,9 @@ void usb_init(bool cdc_only)
 | 
			
		||||
    tusb_hal_nrf_power_event(NRFX_POWER_USB_EVT_READY);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  usb_desc_set_mode(cdc_only);
 | 
			
		||||
  usb_desc_init(cdc_only);
 | 
			
		||||
 | 
			
		||||
  // Create Serial string descriptor
 | 
			
		||||
  sprintf(usb_desc_str_serial, "%08lX%08lX", NRF_FICR->DEVICEID[1], NRF_FICR->DEVICEID[0]);
 | 
			
		||||
 | 
			
		||||
  // Init tusb stack
 | 
			
		||||
  // Init TinyUSB stack
 | 
			
		||||
  tusb_init();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -33,8 +33,12 @@ enum {
 | 
			
		||||
    ITF_STR_MSC
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// CDC + MSC or CDC only mode
 | 
			
		||||
static bool _cdc_only = false;
 | 
			
		||||
 | 
			
		||||
// Serial is 64-bit DeviceID -> 16 chars len
 | 
			
		||||
static char desc_str_serial[1+16];
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
// Device Descriptor
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
@@ -112,7 +116,7 @@ uint8_t const * tud_descriptor_configuration_cb(uint8_t index)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Enumerate as CDC + MSC or CDC only
 | 
			
		||||
void usb_desc_set_mode(bool cdc_only)
 | 
			
		||||
void usb_desc_init(bool cdc_only)
 | 
			
		||||
{
 | 
			
		||||
  _cdc_only = cdc_only;
 | 
			
		||||
 | 
			
		||||
@@ -121,6 +125,9 @@ void usb_desc_set_mode(bool cdc_only)
 | 
			
		||||
    // Change PID to CDC only
 | 
			
		||||
    desc_device.idProduct = USB_DESC_CDC_ONLY_PID;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Create Serial string descriptor
 | 
			
		||||
  sprintf(desc_str_serial, "%08lX%08lX", NRF_FICR->DEVICEID[1], NRF_FICR->DEVICEID[0]);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
@@ -149,8 +156,6 @@ void usb_desc_set_mode(bool cdc_only)
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// Serial is 64-bit DeviceID -> 16 chars len
 | 
			
		||||
char usb_desc_str_serial[1+16];
 | 
			
		||||
 | 
			
		||||
// array of pointer to string descriptors
 | 
			
		||||
char const* string_desc_arr [] =
 | 
			
		||||
@@ -158,7 +163,7 @@ char const* string_desc_arr [] =
 | 
			
		||||
  (const char[]) { 0x09, 0x04 }, // 0: is supported language is English (0x0409)
 | 
			
		||||
  "Adafruit Industries",         // 1: Manufacturer
 | 
			
		||||
  "Bluefruit DFU",               // 2: Product
 | 
			
		||||
  usb_desc_str_serial,           // 3: Serials, should use chip ID
 | 
			
		||||
  desc_str_serial,               // 3: Serials, should use chip ID
 | 
			
		||||
  "Bluefruit Serial",            // 4: CDC Interface
 | 
			
		||||
  "Bluefruit UF2",               // 5: MSC Interface
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
@@ -28,7 +28,7 @@
 | 
			
		||||
#include "tusb.h"
 | 
			
		||||
#include "boards.h"
 | 
			
		||||
 | 
			
		||||
void usb_desc_set_mode(bool cdc_only);
 | 
			
		||||
void usb_desc_init(bool cdc_only);
 | 
			
		||||
 | 
			
		||||
#ifndef USB_DESC_VID
 | 
			
		||||
#define USB_DESC_VID             0x239A
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user