diff options
author | Kévin Redon <kredon@sysmocom.de> | 2018-12-13 13:42:27 +0100 |
---|---|---|
committer | Kévin Redon <kredon@sysmocom.de> | 2019-01-16 18:39:41 +0100 |
commit | efd55db9cc4d1480eda1734088d99f6fdf7a1c45 (patch) | |
tree | eb8e636ab28df41cd4b03183493926a0c06ebe99 /config/usbd_config.h | |
parent | df28f25276abf7fa04e5b3dfa06579f7dd2f34d2 (diff) |
add USB DFU description
uses the USB CDC ACM example code as template to create a USB DFU
description according to USB DFU specification version 1.1
USB DFU stack is under LGPLv2.1 or later license
Change-Id: I7bd6cb46b734ffe8a51f2de7083b4f9e76d385e6
Diffstat (limited to 'config/usbd_config.h')
-rw-r--r-- | config/usbd_config.h | 358 |
1 files changed, 150 insertions, 208 deletions
diff --git a/config/usbd_config.h b/config/usbd_config.h index e8334ec..e33f4ba 100644 --- a/config/usbd_config.h +++ b/config/usbd_config.h @@ -14,33 +14,54 @@ #define CONF_USBD_HS_SP 0 #endif -// ---- USB Device Stack CDC ACM Options ---- +// ---- USB Device Stack DFU Options ---- // <e> Enable String Descriptors -// <id> usb_cdcd_acm_str_en -#ifndef CONF_USB_CDCD_ACM_STR_EN -#define CONF_USB_CDCD_ACM_STR_EN 0 +// <ID> USB_DFUD_STR_EN +#ifndef CONF_USB_DFUD_STR_EN +#define CONF_USB_DFUD_STR_EN 0 #endif // <s> Language IDs // <i> Language IDs in c format, split by comma (E.g., 0x0409 ...) -// <id> usb_cdcd_acm_langid -#ifndef CONF_USB_CDCD_ACM_LANGID -#define CONF_USB_CDCD_ACM_LANGID "0x0409" +// <id> usb_dufd_langid +#ifndef CONF_USB_DFUD_LANGID +#define CONF_USB_DFUD_LANGID "0x0409" #endif -#ifndef CONF_USB_CDCD_ACM_LANGID_DESC -#define CONF_USB_CDCD_ACM_LANGID_DESC +#ifndef CONF_USB_DFUD_LANGID_DESC +#define CONF_USB_DFUD_LANGID_DESC 4, 0x03, 0x09, 0x04, #endif // </e> -// <h> CDC ACM Device Descriptor +// <h> DFU Device Descriptor // <o> bcdUSB // <0x0200=> USB 2.0 version // <0x0210=> USB 2.1 version -// <id> usb_cdcd_acm_bcdusb -#ifndef CONF_USB_CDCD_ACM_BCDUSB -#define CONF_USB_CDCD_ACM_BCDUSB 0x200 +// <id> usb_dfud_bcdusb +#ifndef CONF_USB_DFUD_BCDUSB +#define CONF_USB_DFUD_BCDUSB 0x200 +#endif + +// <o> bDeviceClass +// <0=> unused +// <id> usb_dfud_bdeviceclass +#ifndef CONF_USB_DFUD_BDEVICECLASS +#define CONF_USB_DFUD_BDEVICECLASS 0 +#endif + +// <o> bDeviceSubClass +// <0=> unused +// <id> usb_dfud_bdevicesubclass +#ifndef CONF_USB_DFUD_BDEVICESUBCLASS +#define CONF_USB_DFUD_BDEVICESUBCLASS 0 +#endif + +// <o> bDeviceProtocol +// <0=> unused +// <id> usb_dfud_bdeviceprotocol +#ifndef CONF_USB_DFUD_BDEVICEPROTOCOL +#define CONF_USB_DFUD_BDEVICEPROTOCOL 0 #endif // <o> bMaxPackeSize0 @@ -48,133 +69,149 @@ // <0x0010=> 16 bytes // <0x0020=> 32 bytes // <0x0040=> 64 bytes -// <id> usb_cdcd_acm_bmaxpksz0 -#ifndef CONF_USB_CDCD_ACM_BMAXPKSZ0 -#define CONF_USB_CDCD_ACM_BMAXPKSZ0 0x40 +// <id> usb_dufd_bmaxpksz0 +#ifndef CONF_USB_DFUD_BMAXPKSZ0 +#define CONF_USB_DFUD_BMAXPKSZ0 0x40 #endif -// <o> idVender <0x0000-0xFFFF> -// <id> usb_cdcd_acm_idvender -#ifndef CONF_USB_CDCD_ACM_IDVENDER -#define CONF_USB_CDCD_ACM_IDVENDER 0x3eb +// <o> idVendor <0x0000-0xFFFF> +// <0x1d50=> OpenMoko +// <id> usb_octsim_idvendor +#ifndef CONF_USB_OCTSIM_IDVENDOR +#define CONF_USB_OCTSIM_IDVENDOR 0x1d50 #endif // <o> idProduct <0x0000-0xFFFF> -// <id> usb_cdcd_acm_idproduct -#ifndef CONF_USB_CDCD_ACM_IDPRODUCT -#define CONF_USB_CDCD_ACM_IDPRODUCT 0x2404 +// <0x6140=> sysmoOCTSIM +// <id> usb_dufd_idproduct +#ifndef CONF_USB_OCTSIM_IDPRODUCT +#define CONF_USB_OCTSIM_IDPRODUCT 0x6140 #endif // <o> bcdDevice <0x0000-0xFFFF> -// <id> usb_cdcd_acm_bcddevice -#ifndef CONF_USB_CDCD_ACM_BCDDEVICE -#define CONF_USB_CDCD_ACM_BCDDEVICE 0x100 +// <id> usb_dufd_bcddevice +#ifndef CONF_USB_DFUD_BCDDEVICE +#define CONF_USB_DFUD_BCDDEVICE 0x000 #endif // <e> Enable string descriptor of iManufact -// <id> usb_cdcd_acm_imanufact_en -#ifndef CONF_USB_CDCD_ACM_IMANUFACT_EN -#define CONF_USB_CDCD_ACM_IMANUFACT_EN 0 +// <id> usb_dufd_imanufact_en +#ifndef CONF_USB_DFUD_IMANUFACT_EN +#define CONF_USB_DFUD_IMANUFACT_EN 1 #endif -#ifndef CONF_USB_CDCD_ACM_IMANUFACT -#define CONF_USB_CDCD_ACM_IMANUFACT (CONF_USB_CDCD_ACM_IMANUFACT_EN * (CONF_USB_CDCD_ACM_IMANUFACT_EN)) +#ifndef CONF_USB_DFUD_IMANUFACT +#define CONF_USB_DFUD_IMANUFACT (CONF_USB_DFUD_IMANUFACT_EN * (CONF_USB_DFUD_IMANUFACT_EN)) #endif // <s> Unicode string of iManufact -// <id> usb_cdcd_acm_imanufact_str -#ifndef CONF_USB_CDCD_ACM_IMANUFACT_STR -#define CONF_USB_CDCD_ACM_IMANUFACT_STR "Atmel" +// <id> usb_dufd_imanufact_str +#ifndef CONF_USB_DFUD_IMANUFACT_STR +#define CONF_USB_DFUD_IMANUFACT_STR "sysmocom" #endif -#ifndef CONF_USB_CDCD_ACM_IMANUFACT_STR_DESC -#define CONF_USB_CDCD_ACM_IMANUFACT_STR_DESC +#ifndef CONF_USB_DFUD_IMANUFACT_STR_DESC +#define CONF_USB_DFUD_IMANUFACT_STR_DESC 18, 0x03, 's', 0x00, 'y', 0x00, 's', 0x00, 'm', 0x00, 'o', 0x00, 'c', 0x00, 'o', 0x00, 'm', 0x00, #endif // </e> // <e> Enable string descriptor of iProduct -// <id> usb_cdcd_acm_iproduct_en -#ifndef CONF_USB_CDCD_ACM_IPRODUCT_EN -#define CONF_USB_CDCD_ACM_IPRODUCT_EN 0 +// <id> usb_dufd_iproduct_en +#ifndef CONF_USB_DFUD_IPRODUCT_EN +#define CONF_USB_DFUD_IPRODUCT_EN 1 #endif -#ifndef CONF_USB_CDCD_ACM_IPRODUCT -#define CONF_USB_CDCD_ACM_IPRODUCT \ - (CONF_USB_CDCD_ACM_IPRODUCT_EN * (CONF_USB_CDCD_ACM_IMANUFACT_EN + CONF_USB_CDCD_ACM_IPRODUCT_EN)) +#ifndef CONF_USB_DFUD_IPRODUCT +#define CONF_USB_DFUD_IPRODUCT \ + (CONF_USB_DFUD_IPRODUCT_EN * (CONF_USB_DFUD_IMANUFACT_EN + CONF_USB_DFUD_IPRODUCT_EN)) #endif // <s> Unicode string of iProduct -// <id> usb_cdcd_acm_iproduct_str -#ifndef CONF_USB_CDCD_ACM_IPRODUCT_STR -#define CONF_USB_CDCD_ACM_IPRODUCT_STR "CDC ACM Serial Bridge Demo" +// <id> usb_dufd_iproduct_str +#ifndef CONF_USB_DFUD_IPRODUCT_STR +#define CONF_USB_DFUD_IPRODUCT_STR "sysmoOCTSIM" #endif -#ifndef CONF_USB_CDCD_ACM_IPRODUCT_STR_DESC -#define CONF_USB_CDCD_ACM_IPRODUCT_STR_DESC +#ifndef CONF_USB_DFUD_IPRODUCT_STR_DESC +#define CONF_USB_DFUD_IPRODUCT_STR_DESC 24, 0x03, 's', 0x00, 'y', 0x00, 's', 0x00, 'm', 0x00, 'o', 0x00, 'O', 0x00, 'C', 0x00, 'T', 0x00, 'S', 0x00, 'I', 0x00, 'M', 0x00, #endif // </e> // <e> Enable string descriptor of iSerialNum -// <id> usb_cdcd_acm_iserialnum_en -#ifndef CONF_USB_CDCD_ACM_ISERIALNUM_EN -#define CONF_USB_CDCD_ACM_ISERIALNUM_EN 0 +// <id> usb_dufd_iserialnum_en +#ifndef CONF_USB_DFUD_ISERIALNUM_EN +#define CONF_USB_DFUD_ISERIALNUM_EN 0 #endif -#ifndef CONF_USB_CDCD_ACM_ISERIALNUM -#define CONF_USB_CDCD_ACM_ISERIALNUM \ - (CONF_USB_CDCD_ACM_ISERIALNUM_EN \ - * (CONF_USB_CDCD_ACM_IMANUFACT_EN + CONF_USB_CDCD_ACM_IPRODUCT_EN + CONF_USB_CDCD_ACM_ISERIALNUM_EN)) +#ifndef CONF_USB_DFUD_ISERIALNUM +#define CONF_USB_DFUD_ISERIALNUM \ + (CONF_USB_DFUD_ISERIALNUM_EN \ + * (CONF_USB_DFUD_IMANUFACT_EN + CONF_USB_DFUD_IPRODUCT_EN + CONF_USB_DFUD_ISERIALNUM_EN)) #endif // <s> Unicode string of iSerialNum -// <id> usb_cdcd_acm_iserialnum_str -#ifndef CONF_USB_CDCD_ACM_ISERIALNUM_STR -#define CONF_USB_CDCD_ACM_ISERIALNUM_STR "123456789ABCDEF" +// <id> usb_dufd_iserialnum_str +#ifndef CONF_USB_DFUD_ISERIALNUM_STR +#define CONF_USB_DFUD_ISERIALNUM_STR "123456789ABCDEF" #endif -#ifndef CONF_USB_CDCD_ACM_ISERIALNUM_STR_DESC -#define CONF_USB_CDCD_ACM_ISERIALNUM_STR_DESC +#ifndef CONF_USB_DFUD_ISERIALNUM_STR_DESC +#define CONF_USB_DFUD_ISERIALNUM_STR_DESC #endif // </e> // <o> bNumConfigurations <0x01-0xFF> -// <id> usb_cdcd_acm_bnumconfig -#ifndef CONF_USB_CDCD_ACM_BNUMCONFIG -#define CONF_USB_CDCD_ACM_BNUMCONFIG 0x1 +// <id> usb_dufd_bnumconfig +#ifndef CONF_USB_DFUD_BNUMCONFIG +#define CONF_USB_DFUD_BNUMCONFIG 0x1 #endif // </h> -// <h> CDC ACM Configuration Descriptor +// <h> DFU Configuration Descriptor + +// <o> wTotalLength <0x01-0xFF> +// <id> usb_dufd_wtotallength +#ifndef CONF_USB_DFUD_WTOTALLENGTH +#define CONF_USB_DFUD_WTOTALLENGTH 27 +#endif + +// <o> bNumInterfaces <0x01-0xFF> +// <id> usb_dufd_bnuminterfaces +#ifndef CONF_USB_DFUD_BNUMINTERFACES +#define CONF_USB_DFUD_BNUMINTERFACES 1 +#endif + // <o> bConfigurationValue <0x01-0xFF> -// <id> usb_cdcd_acm_bconfigval -#ifndef CONF_USB_CDCD_ACM_BCONFIGVAL -#define CONF_USB_CDCD_ACM_BCONFIGVAL 0x1 +// <id> usb_dufd_bconfigval +#ifndef CONF_USB_DFUD_BCONFIGVAL +#define CONF_USB_DFUD_BCONFIGVAL 0x1 #endif + // <e> Enable string descriptor of iConfig -// <id> usb_cdcd_acm_iconfig_en -#ifndef CONF_USB_CDCD_ACM_ICONFIG_EN -#define CONF_USB_CDCD_ACM_ICONFIG_EN 0 +// <id> usb_dufd_iconfig_en +#ifndef CONF_USB_DFUD_ICONFIG_EN +#define CONF_USB_DFUD_ICONFIG_EN 0 #endif -#ifndef CONF_USB_CDCD_ACM_ICONFIG -#define CONF_USB_CDCD_ACM_ICONFIG \ - (CONF_USB_CDCD_ACM_ICONFIG_EN \ - * (CONF_USB_CDCD_ACM_IMANUFACT_EN + CONF_USB_CDCD_ACM_IPRODUCT_EN + CONF_USB_CDCD_ACM_ISERIALNUM_EN \ - + CONF_USB_CDCD_ACM_ICONFIG_EN)) +#ifndef CONF_USB_DFUD_ICONFIG +#define CONF_USB_DFUD_ICONFIG \ + (CONF_USB_DFUD_ICONFIG_EN \ + * (CONF_USB_DFUD_IMANUFACT_EN + CONF_USB_DFUD_IPRODUCT_EN + CONF_USB_DFUD_ISERIALNUM_EN \ + + CONF_USB_DFUD_ICONFIG_EN)) #endif // <s> Unicode string of iConfig -// <id> usb_cdcd_acm_iconfig_str -#ifndef CONF_USB_CDCD_ACM_ICONFIG_STR -#define CONF_USB_CDCD_ACM_ICONFIG_STR "" +// <id> usb_dufd_iconfig_str +#ifndef CONF_USB_DFUD_ICONFIG_STR +#define CONF_USB_DFUD_ICONFIG_STR "" #endif -#ifndef CONF_USB_CDCD_ACM_ICONFIG_STR_DESC -#define CONF_USB_CDCD_ACM_ICONFIG_STR_DESC +#ifndef CONF_USB_DFUD_ICONFIG_STR_DESC +#define CONF_USB_DFUD_ICONFIG_STR_DESC #endif // </e> @@ -184,157 +221,62 @@ // <0xA0=> Bus power supply, support for remote wakeup // <0xC0=> Self powered, not support for remote wakeup // <0xE0=> Self powered, support for remote wakeup -// <id> usb_cdcd_acm_bmattri -#ifndef CONF_USB_CDCD_ACM_BMATTRI -#define CONF_USB_CDCD_ACM_BMATTRI 0x80 +// <id> usb_dufd_bmattri +#ifndef CONF_USB_DFUD_BMATTRI +#define CONF_USB_DFUD_BMATTRI 0x80 #endif // <o> bMaxPower <0x00-0xFF> -// <id> usb_cdcd_acm_bmaxpower -#ifndef CONF_USB_CDCD_ACM_BMAXPOWER -#define CONF_USB_CDCD_ACM_BMAXPOWER 0x32 +// <id> usb_dufd_bmaxpower +#ifndef CONF_USB_DFUD_BMAXPOWER +#define CONF_USB_DFUD_BMAXPOWER 0x32 #endif // </h> -// <h> CDC ACM Communication Interface Descriptor +// <h> DFU Interface Descriptor // <o> bInterfaceNumber <0x00-0xFF> -// <id> usb_cdcd_acm_comm_bifcnum -#ifndef CONF_USB_CDCD_ACM_COMM_BIFCNUM -#define CONF_USB_CDCD_ACM_COMM_BIFCNUM 0x0 -#endif -// <o> bAlternateSetting <0x00-0xFF> -// <id> usb_cdcd_acm_comm_baltset -#ifndef CONF_USB_CDCD_ACM_COMM_BALTSET -#define CONF_USB_CDCD_ACM_COMM_BALTSET 0x0 -#endif - -// <o> iInterface <0x00-0xFF> -// <id> usb_cdcd_acm_comm_iifc -#ifndef CONF_USB_CDCD_ACM_COMM_IIFC -#define CONF_USB_CDCD_ACM_COMM_IIFC 0x0 -#endif - -// <o> Interrupt IN Endpoint Address -// <0x81=> EndpointAddress = 0x81 -// <0x82=> EndpointAddress = 0x82 -// <0x83=> EndpointAddress = 0x83 -// <0x84=> EndpointAddress = 0x84 -// <0x85=> EndpointAddress = 0x85 -// <0x86=> EndpointAddress = 0x86 -// <0x87=> EndpointAddress = 0x87 -// <id> usb_cdcd_acm_epaddr -#ifndef CONF_USB_CDCD_ACM_COMM_INT_EPADDR -#define CONF_USB_CDCD_ACM_COMM_INT_EPADDR 0x82 -#endif - -// <o> Interrupt IN Endpoint wMaxPacketSize -// <0x0008=> 8 bytes -// <0x0010=> 16 bytes -// <0x0020=> 32 bytes -// <0x0040=> 64 bytes -// <id> usb_cdcd_acm_comm_int_maxpksz -#ifndef CONF_USB_CDCD_ACM_COMM_INT_MAXPKSZ -#define CONF_USB_CDCD_ACM_COMM_INT_MAXPKSZ 0x40 +// <id> usb_dufd_bifcnum +#ifndef CONF_USB_DFUD_BIFCNUM +#define CONF_USB_DFUD_BIFCNUM 0x0 #endif -// <o> Interrupt IN Endpoint Interval <0x00-0xFF> -// <id> usb_cdcd_acm_comm_int_interval -#ifndef CONF_USB_CDCD_ACM_COMM_INT_INTERVAL -#define CONF_USB_CDCD_ACM_COMM_INT_INTERVAL 0xa -#endif -// </h> - -// <h> CDC ACM Data Interface Descriptor - -// <o> bInterfaceNumber <0x00-0xFF> -// <id> usb_cdcd_acm_data_bifcnum -#ifndef CONF_USB_CDCD_ACM_DATA_BIFCNUM -#define CONF_USB_CDCD_ACM_DATA_BIFCNUM 0x1 -#endif // <o> bAlternateSetting <0x00-0xFF> -// <id> usb_cdcd_acm_data_baltset -#ifndef CONF_USB_CDCD_ACM_DATA_BALTSET -#define CONF_USB_CDCD_ACM_DATA_BALTSET 0x0 +// <id> usb_dufd_baltset +#ifndef CONF_USB_DFUD_BALTSET +#define CONF_USB_DFUD_BALTSET 0x0 #endif -// <o> iInterface <0x00-0xFF> -// <id> usb_cdcd_acm_data_iifc -#ifndef CONF_USB_CDCD_ACM_DATA_IIFC -#define CONF_USB_CDCD_ACM_DATA_IIFC 0x0 +// <o> bNumEndpoints <0x00-0xFF> +// <id> usb_dufd_bnumep +#ifndef CONF_USB_DFUD_BNUMEP +#define CONF_USB_DFUD_BNUMEP 0x0 #endif -// <o> BULK IN Endpoint Address -// <0x81=> EndpointAddress = 0x81 -// <0x82=> EndpointAddress = 0x82 -// <0x83=> EndpointAddress = 0x83 -// <0x84=> EndpointAddress = 0x84 -// <0x85=> EndpointAddress = 0x85 -// <0x86=> EndpointAddress = 0x86 -// <0x87=> EndpointAddress = 0x87 -// <id> usb_cdcd_acm_data_bulkin_epaddr -#ifndef CONF_USB_CDCD_ACM_DATA_BULKIN_EPADDR -#define CONF_USB_CDCD_ACM_DATA_BULKIN_EPADDR 0x81 +// <e> Enable string descriptor of iInterface +// <id> usb_dufd_iinterface_en +#ifndef CONF_USB_DFUD_IINTERFACE_EN +#define CONF_USB_DFUD_IINTERFACE_EN 1 #endif -// <o> BULK IN Endpoint wMaxPacketSize -// <0x0008=> 8 bytes -// <0x0010=> 16 bytes -// <0x0020=> 32 bytes -// <0x0040=> 64 bytes -// <id> usb_cdcd_acm_data_builin_maxpksz -#ifndef CONF_USB_CDCD_ACM_DATA_BULKIN_MAXPKSZ -#define CONF_USB_CDCD_ACM_DATA_BULKIN_MAXPKSZ 0x40 +#ifndef CONF_USB_DFUD_IINTERFACE +#define CONF_USB_DFUD_IINTERFACE \ + (CONF_USB_DFUD_IINTERFACE_EN \ + * (CONF_USB_DFUD_IMANUFACT_EN + CONF_USB_DFUD_IPRODUCT_EN + CONF_USB_DFUD_ISERIALNUM_EN \ + + CONF_USB_DFUD_ICONFIG_EN + CONF_USB_DFUD_IINTERFACE_EN)) #endif -// <o> BULK IN Endpoint wMaxPacketSize for High Speed -// <0x0008=> 8 bytes -// <0x0010=> 16 bytes -// <0x0020=> 32 bytes -// <0x0040=> 64 bytes -// <0x0080=> 128 bytes -// <0x0100=> 256 bytes -// <0x0200=> 512 bytes -// <id> usb_cdcd_acm_data_builin_maxpksz_hs -#ifndef CONF_USB_CDCD_ACM_DATA_BULKIN_MAXPKSZ_HS -#define CONF_USB_CDCD_ACM_DATA_BULKIN_MAXPKSZ_HS 0x200 -#endif - -// <o> BULK OUT Endpoint Address -// <0x01=> EndpointAddress = 0x01 -// <0x02=> EndpointAddress = 0x02 -// <0x03=> EndpointAddress = 0x03 -// <0x04=> EndpointAddress = 0x04 -// <0x05=> EndpointAddress = 0x05 -// <0x06=> EndpointAddress = 0x06 -// <0x07=> EndpointAddress = 0x07 -// <id> usb_cdcd_acm_data_bulkout_epaddr -#ifndef CONF_USB_CDCD_ACM_DATA_BULKOUT_EPADDR -#define CONF_USB_CDCD_ACM_DATA_BULKOUT_EPADDR 0x1 -#endif - -// <o> BULK OUT Endpoint wMaxPacketSize -// <0x0008=> 8 bytes -// <0x0010=> 16 bytes -// <0x0020=> 32 bytes -// <0x0040=> 64 bytes -// <id> usb_cdcd_acm_data_buckout_maxpksz -#ifndef CONF_USB_CDCD_ACM_DATA_BULKOUT_MAXPKSZ -#define CONF_USB_CDCD_ACM_DATA_BULKOUT_MAXPKSZ 0x40 +// <s> Unicode string of iInterface +// <id> usb_dufd_iinterface_str +#ifndef CONF_USB_DFUD_IINTERFAGE_STR +#define CONF_USB_DFUD_IINTERFACE_STR "SAM D5x/E5x DFU bootloader (DFU mode)" #endif -// <o> BULK OUT Endpoint wMaxPacketSize for High Speed -// <0x0008=> 8 bytes -// <0x0010=> 16 bytes -// <0x0020=> 32 bytes -// <0x0040=> 64 bytes -// <0x0080=> 128 bytes -// <0x0100=> 256 bytes -// <0x0200=> 512 bytes -// <id> usb_cdcd_acm_data_buckout_maxpksz_hs -#ifndef CONF_USB_CDCD_ACM_DATA_BULKOUT_MAXPKSZ_HS -#define CONF_USB_CDCD_ACM_DATA_BULKOUT_MAXPKSZ_HS 0x200 +#ifndef CONF_USB_DFUD_IINTERFACE_STR_DESC +#define CONF_USB_DFUD_IINTERFACE_STR_DESC 76, 0x03, 'S', 0x00, 'A', 0x00, 'M', 0x00, ' ', 0x00, 'D', 0x00, '5', 0x00, 'x', 0x00, '/', 0x00, 'E', 0x00, '5', 0x00, 'x', 0x00, ' ', 0x00, 'D', 0x00, 'F', 0x00, 'U', 0x00, ' ', 0x00, 'b', 0x00, 'o', 0x00, 'o', 0x00, 't', 0x00, 'l', 0x00, 'o', 0x00, 'a', 0x00, 'd', 0x00, 'e', 0x00, 'r', 0x00, ' ', 0x00, '(', 0x00, 'D', 0x00, 'F', 0x00, 'U', 0x00, ' ', 0x00, 'm', 0x00, 'o', 0x00, 'd', 0x00, 'e', 0x00, ')', 0x00, #endif + +// </e> // </h> // <<< end of configuration section >>> |