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
#define STR_MANUFACTURER u"Kiibohd" | #define STR_MANUFACTURER u"Kiibohd" | ||||
#define STR_PRODUCT u"Kiibohd DFU Bootloader" | #define STR_PRODUCT u"Kiibohd DFU Bootloader" | ||||
#define STR_SERIAL u"@CHIP@" | #define STR_SERIAL u"@CHIP@" | ||||
#define STR_ALTNAME u"@BOOT_DFU_ALTNAME@" | |||||
// Mac OS-X and Linux automatically load the correct drivers. On | // Mac OS-X and Linux automatically load the correct drivers. On |
.bInterfaceClass = USB_DEV_CLASS_APP, | .bInterfaceClass = USB_DEV_CLASS_APP, | ||||
.bInterfaceSubClass = USB_DEV_SUBCLASS_APP_DFU, | .bInterfaceSubClass = USB_DEV_SUBCLASS_APP_DFU, | ||||
.bInterfaceProtocol = USB_DEV_PROTO_DFU_DFU, | .bInterfaceProtocol = USB_DEV_PROTO_DFU_DFU, | ||||
.iInterface = 0 | |||||
.iInterface = 4 | |||||
}, | }, | ||||
.dfu = { | .dfu = { | ||||
USB_DESC_STRING(STR_MANUFACTURER), | USB_DESC_STRING(STR_MANUFACTURER), | ||||
USB_DESC_STRING(STR_PRODUCT), | USB_DESC_STRING(STR_PRODUCT), | ||||
USB_DESC_STRING(STR_SERIAL), | USB_DESC_STRING(STR_SERIAL), | ||||
USB_DESC_STRING(STR_ALTNAME), | |||||
NULL | NULL | ||||
}; | }; | ||||
set( PRODUCT_ID "0xB04D" ) | set( PRODUCT_ID "0xB04D" ) | ||||
set( BOOT_VENDOR_ID "0x1C11" ) | set( BOOT_VENDOR_ID "0x1C11" ) | ||||
set( BOOT_PRODUCT_ID "0xB007" ) | set( BOOT_PRODUCT_ID "0xB007" ) | ||||
set( BOOT_DFU_ALTNAME "Kiibohd DFU" ) | |||||
set( DFU 1 ) | set( DFU 1 ) | ||||
message( "dfu" ) | message( "dfu" ) | ||||
elseif ( "${CHIP}" MATCHES "mk20dx128" OR "${CHIP}" MATCHES "mk20dx256" ) | elseif ( "${CHIP}" MATCHES "mk20dx128" OR "${CHIP}" MATCHES "mk20dx256" ) |