enable flashing by providing real downloaded data length

Change-Id: I6f16170a4b41a70d89954e2c4a841efc67a26786
This commit is contained in:
Kevin Redon 2019-01-09 14:44:31 +01:00
parent 389aca7c2e
commit 37409534d7
1 changed files with 1 additions and 3 deletions

View File

@ -245,11 +245,9 @@ static int32_t dfudf_out_req(uint8_t ep, struct usb_req *req, enum usb_ctrl_stag
} else { // there is data to be flash
if (USB_SETUP_STAGE == stage) { // there will be data to be flash
to_return = usbdc_xfer(ep, dfu_download_data, req->wLength, false); // send ack to the setup request to get the data
//to_return = usbdc_xfer(ep, NULL, 0, false); // send ACK
} else { // now there is data to be flashed
dfu_download_progress = req->wValue * sizeof(dfu_download_data); // remember which block to flash
dfu_download_length = 0;
//dfu_download_length = req->wLength; // remember the data size to be flash
dfu_download_length = req->wLength; // remember the data size to be flash
dfu_state = USB_DFU_STATE_DFU_DNLOAD_SYNC; // go to sync state
to_return = usbdc_xfer(ep, NULL, 0, false); // ACK the data
// we let the main application flash the data because this can be long and would stall the USB ISR