update code to libopencm3 API change
This commit is contained in:
parent
9da8708bca
commit
0ac0af5d52
|
@ -285,10 +285,10 @@ static void usb_dfu_detach(usbd_device *usbd_dev, struct usb_setup_data *req)
|
||||||
* @param[in] buf control request data
|
* @param[in] buf control request data
|
||||||
* @param[in] len control request data length
|
* @param[in] len control request data length
|
||||||
* @param[in] complete function to run after request completed
|
* @param[in] complete function to run after request completed
|
||||||
* @return 0 if succeeded, error else
|
* @return USBD_REQ_HANDLED if handled correctly, USBD_REQ_NOTSUPP else
|
||||||
* @note resets device when configured with 5 bits
|
* @note resets device when configured with 5 bits
|
||||||
*/
|
*/
|
||||||
static int usb_cdcacm_control_request(usbd_device *usbd_dev, struct usb_setup_data *req, uint8_t **buf, uint16_t *len, void (**complete)(usbd_device *usbd_dev, struct usb_setup_data *req))
|
static enum usbd_request_return_codes usb_cdcacm_control_request(usbd_device *usbd_dev, struct usb_setup_data *req, uint8_t **buf, uint16_t *len, void (**complete)(usbd_device *usbd_dev, struct usb_setup_data *req))
|
||||||
{
|
{
|
||||||
if (usb_dfu_interface.bInterfaceNumber==req->wIndex) { // check if request is for DFU
|
if (usb_dfu_interface.bInterfaceNumber==req->wIndex) { // check if request is for DFU
|
||||||
switch (req->bRequest) {
|
switch (req->bRequest) {
|
||||||
|
@ -305,7 +305,7 @@ static int usb_cdcacm_control_request(usbd_device *usbd_dev, struct usb_setup_da
|
||||||
*len = 6; // set length of buffer to return
|
*len = 6; // set length of buffer to return
|
||||||
break;
|
break;
|
||||||
default: // other requests are not supported
|
default: // other requests are not supported
|
||||||
return 0;
|
return USBD_REQ_NOTSUPP;
|
||||||
}
|
}
|
||||||
} else if (usb_cdcacm_communication_interface.bInterfaceNumber==req->wIndex) { // check if request is for CDC
|
} else if (usb_cdcacm_communication_interface.bInterfaceNumber==req->wIndex) { // check if request is for CDC
|
||||||
switch (req->bRequest) {
|
switch (req->bRequest) {
|
||||||
|
@ -332,17 +332,17 @@ static int usb_cdcacm_control_request(usbd_device *usbd_dev, struct usb_setup_da
|
||||||
case USB_CDC_REQ_SET_LINE_CODING:
|
case USB_CDC_REQ_SET_LINE_CODING:
|
||||||
// ignore if length is wrong
|
// ignore if length is wrong
|
||||||
if (*len < sizeof(struct usb_cdc_line_coding)) {
|
if (*len < sizeof(struct usb_cdc_line_coding)) {
|
||||||
return 0;
|
return USBD_REQ_NOTSUPP;
|
||||||
}
|
}
|
||||||
// line coding is ignored
|
// line coding is ignored
|
||||||
// to get the line coding
|
// to get the line coding
|
||||||
// struct usb_cdc_line_coding *coding = (struct usb_cdc_line_coding *)*buf;
|
// struct usb_cdc_line_coding *coding = (struct usb_cdc_line_coding *)*buf;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return 0;
|
return USBD_REQ_NOTSUPP;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 1;
|
return USBD_REQ_HANDLED;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** USB CDC ACM communication callback
|
/** USB CDC ACM communication callback
|
||||||
|
|
|
@ -187,21 +187,21 @@ static void usb_dfu_reset(usbd_device *usbd_dev, struct usb_setup_data *req)
|
||||||
* @param[in] buf control request data
|
* @param[in] buf control request data
|
||||||
* @param[in] len control request data length
|
* @param[in] len control request data length
|
||||||
* @param[in] complete not used
|
* @param[in] complete not used
|
||||||
* @return 0 if succeeded, error else
|
* @return USBD_REQ_HANDLED if handled correctly, USBD_REQ_NOTSUPP else
|
||||||
* @note resets device when configured with 5 bits
|
* @note resets device when configured with 5 bits
|
||||||
*/
|
*/
|
||||||
static int usb_dfu_control_request(usbd_device *usbd_dev, struct usb_setup_data *req, uint8_t **buf, uint16_t *len, void (**complete)(usbd_device *usbd_dev, struct usb_setup_data *req))
|
static enum usbd_request_return_codes usb_dfu_control_request(usbd_device *usbd_dev, struct usb_setup_data *req, uint8_t **buf, uint16_t *len, void (**complete)(usbd_device *usbd_dev, struct usb_setup_data *req))
|
||||||
{
|
{
|
||||||
(void)complete;
|
(void)complete;
|
||||||
(void)usbd_dev; // device is not used
|
(void)usbd_dev; // device is not used
|
||||||
|
|
||||||
// DFU only requires handling class requests
|
// DFU only requires handling class requests
|
||||||
if ((req->bmRequestType & USB_REQ_TYPE_TYPE)!=USB_REQ_TYPE_CLASS) {
|
if ((req->bmRequestType & USB_REQ_TYPE_TYPE)!=USB_REQ_TYPE_CLASS) {
|
||||||
return 0;
|
return USBD_REQ_NOTSUPP;
|
||||||
}
|
}
|
||||||
|
|
||||||
led_off(); // indicate we are processing request
|
led_off(); // indicate we are processing request
|
||||||
int to_return = 1; // value to return
|
int to_return = USBD_REQ_HANDLED; // value to return
|
||||||
switch (req->bRequest) {
|
switch (req->bRequest) {
|
||||||
case DFU_DETACH: // USB detach requested
|
case DFU_DETACH: // USB detach requested
|
||||||
*complete = usb_dfu_reset; // reset after reply
|
*complete = usb_dfu_reset; // reset after reply
|
||||||
|
@ -243,7 +243,7 @@ static int usb_dfu_control_request(usbd_device *usbd_dev, struct usb_setup_data
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case DFU_UPLOAD: // upload firmware from flash
|
case DFU_UPLOAD: // upload firmware from flash
|
||||||
to_return = 0; // upload no supported
|
to_return = USBD_REQ_NOTSUPP; // upload no supported
|
||||||
break;
|
break;
|
||||||
case DFU_GETSTATUS: // get status
|
case DFU_GETSTATUS: // get status
|
||||||
(*buf)[0] = usb_dfu_status; // set status
|
(*buf)[0] = usb_dfu_status; // set status
|
||||||
|
@ -276,7 +276,7 @@ static int usb_dfu_control_request(usbd_device *usbd_dev, struct usb_setup_data
|
||||||
flash_pointer = (uint32_t)&__application_beginning; // reset download location
|
flash_pointer = (uint32_t)&__application_beginning; // reset download location
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
to_return = 0;
|
to_return = USBD_REQ_NOTSUPP;
|
||||||
}
|
}
|
||||||
led_on(); // indicate we finished processing
|
led_on(); // indicate we finished processing
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue