diff options
| author | Mengsk <[email protected]> | 2021-07-07 12:07:10 +0200 |
|---|---|---|
| committer | Mengsk <[email protected]> | 2021-07-07 12:12:52 +0200 |
| commit | 3949fb9e8c1b9a9646223e3edf7a0df4f010b5be (patch) | |
| tree | 2d9f29415ba1aec17bd390f260a2904e7fb709b9 /src | |
| parent | 88478594bc0c5946853567620beb944940f81a1d (diff) | |
Add DFU_DETACH support
Diffstat (limited to 'src')
| -rw-r--r-- | src/class/dfu/dfu_device.c | 7 | ||||
| -rw-r--r-- | src/class/dfu/dfu_device.h | 2 |
2 files changed, 8 insertions, 1 deletions
diff --git a/src/class/dfu/dfu_device.c b/src/class/dfu/dfu_device.c index f6fcb1339..f4edd713a 100644 --- a/src/class/dfu/dfu_device.c +++ b/src/class/dfu/dfu_device.c @@ -263,6 +263,12 @@ bool dfu_moded_control_xfer_cb(uint8_t rhport, uint8_t stage, tusb_control_reque switch (request->bRequest) { + case DFU_REQUEST_DETACH: + { + tud_control_status(rhport, request); + if (tud_dfu_reboot_cb) tud_dfu_reboot_cb(); + break; + } case DFU_REQUEST_DNLOAD: { if ( (stage == CONTROL_STAGE_ACK) @@ -273,7 +279,6 @@ bool dfu_moded_control_xfer_cb(uint8_t rhport, uint8_t stage, tusb_control_reque return true; } } // fallthrough - case DFU_REQUEST_DETACH: case DFU_REQUEST_UPLOAD: case DFU_REQUEST_GETSTATUS: case DFU_REQUEST_CLRSTATUS: diff --git a/src/class/dfu/dfu_device.h b/src/class/dfu/dfu_device.h index 67d15c3c6..53be0005e 100644 --- a/src/class/dfu/dfu_device.h +++ b/src/class/dfu/dfu_device.h @@ -81,6 +81,8 @@ TU_ATTR_WEAK void tud_dfu_abort_cb(void); // Return the number of bytes to write TU_ATTR_WEAK uint16_t tud_dfu_req_upload_data_cb(uint8_t alt, uint16_t block_num, uint8_t* data, uint16_t length); +// Invoked when a DFU_DETACH request is received +TU_ATTR_WEAK void tud_dfu_reboot_cb(void); //--------------------------------------------------------------------+ // Internal Class Driver API //--------------------------------------------------------------------+ |
