Merge pull request #202 from smunaut/dfu-rt
Add support for DFU Runtime class for devices
This commit is contained in:
		| @@ -167,6 +167,20 @@ static usbd_class_driver_t const usbd_class_drivers[] = | ||||
|       .sof              = NULL | ||||
|   }, | ||||
|   #endif | ||||
|  | ||||
|   #if CFG_TUD_DFU_RT | ||||
|   { | ||||
|       .class_code       = TUD_DFU_APP_CLASS, | ||||
|     //.subclass_code    = TUD_DFU_APP_SUBCLASS | ||||
|       .init             = dfu_rtd_init, | ||||
|       .reset            = dfu_rtd_reset, | ||||
|       .open             = dfu_rtd_open, | ||||
|       .control_request  = dfu_rtd_control_request, | ||||
|       .control_complete = dfu_rtd_control_complete, | ||||
|       .xfer_cb          = dfu_rtd_xfer_cb, | ||||
|       .sof              = NULL | ||||
|   }, | ||||
|   #endif | ||||
| }; | ||||
|  | ||||
| enum { USBD_CLASS_DRIVER_COUNT = TU_ARRAY_SIZE(usbd_class_drivers) }; | ||||
|   | ||||
| @@ -304,6 +304,21 @@ TU_ATTR_WEAK bool tud_vendor_control_complete_cb(uint8_t rhport, tusb_control_re | ||||
|   /* Endpoint In */\ | ||||
|   7, TUSB_DESC_ENDPOINT, _epin, TUSB_XFER_BULK, U16_TO_U8S_LE(_epsize), 0 | ||||
|  | ||||
| //------------- DFU Runtime -------------// | ||||
| #define TUD_DFU_APP_CLASS    (TUSB_CLASS_APPLICATION_SPECIFIC) | ||||
| #define TUD_DFU_APP_SUBCLASS 0x01u | ||||
|  | ||||
| // Length of template descriptr: 18 bytes | ||||
| #define TUD_DFU_RT_DESC_LEN (9 + 9) | ||||
|  | ||||
| // DFU runtime descriptor | ||||
| // Interface number, string index, attributes, detach timeout, transfer size | ||||
| #define TUD_DFU_RT_DESCRIPTOR(_itfnum, _stridx, _attr, _timeout, _xfer_size) \ | ||||
|   /* Interface */ \ | ||||
|   9, TUSB_DESC_INTERFACE, _itfnum, 0, 0, TUD_DFU_APP_CLASS, TUD_DFU_APP_SUBCLASS, DFU_PROTOCOL_RT, _stridx, \ | ||||
|   /* Function */ \ | ||||
|   9, DFU_DESC_FUNCTIONAL, _attr, U16_TO_U8S_LE(_timeout), U16_TO_U8S_LE(_xfer_size), U16_TO_U8S_LE(0x0101) | ||||
|  | ||||
|  | ||||
| #ifdef __cplusplus | ||||
|  } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 hathach
					hathach