Fixes #22 Each (dfu) interface may have more than one a ltsetting each with their own index and name. According to the DFU_1.1 pdf section 4.2.3, "* Alternate settings can be used by an application to access additional memory segments. In this case, it is suggested that each alternate setting employ a string descriptor to indicate the target memory segment; e.g., 'EEPROM'." Whether or not we end up using multiple memory segments it is still good to have a descriptive name incase there are other dfu devices connected.simple
@@ -32,6 +32,7 @@ | |||
#define STR_MANUFACTURER u"Kiibohd" | |||
#define STR_PRODUCT u"Kiibohd DFU Bootloader" | |||
#define STR_SERIAL u"@CHIP@" | |||
#define STR_ALTNAME u"@BOOT_DFU_ALTNAME@" | |||
// Mac OS-X and Linux automatically load the correct drivers. On |
@@ -50,7 +50,7 @@ static const struct usb_config_1 usb_config_1 = { | |||
.bInterfaceClass = USB_DEV_CLASS_APP, | |||
.bInterfaceSubClass = USB_DEV_SUBCLASS_APP_DFU, | |||
.bInterfaceProtocol = USB_DEV_PROTO_DFU_DFU, | |||
.iInterface = 0 | |||
.iInterface = 4 | |||
}, | |||
.dfu = { | |||
@@ -101,6 +101,7 @@ static const struct usb_desc_string_t * const dfu_device_str_desc[] = { | |||
USB_DESC_STRING(STR_MANUFACTURER), | |||
USB_DESC_STRING(STR_PRODUCT), | |||
USB_DESC_STRING(STR_SERIAL), | |||
USB_DESC_STRING(STR_ALTNAME), | |||
NULL | |||
}; | |||
@@ -113,6 +113,7 @@ if ( "${CHIP}" MATCHES "mk20dx128vlf5" OR "${CHIP}" MATCHES "mk20dx256vlh7" ) | |||
set( PRODUCT_ID "0xB04D" ) | |||
set( BOOT_VENDOR_ID "0x1C11" ) | |||
set( BOOT_PRODUCT_ID "0xB007" ) | |||
set( BOOT_DFU_ALTNAME "Kiibohd DFU" ) | |||
set( DFU 1 ) | |||
message( "dfu" ) | |||
elseif ( "${CHIP}" MATCHES "mk20dx128" OR "${CHIP}" MATCHES "mk20dx256" ) |