stm32f1: fix h103 usbdfu example
This has been broken since f87170e when set config started clearing control handlers to be re-registered by different configurations. Fix this example to use a set config callback to setup control transfer callbacks, just like CDC-ACM demos. With this fix, this demo works with dfu-tool 0.8 Signed-off-by: Karl Palsson <karlp@tweak.net.au>
This commit is contained in:
@@ -229,6 +229,17 @@ static int usbdfu_control_request(usbd_device *usbd_dev, struct usb_setup_data *
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void usbdfu_set_config(usbd_device *usbd_dev, uint16_t wValue)
|
||||||
|
{
|
||||||
|
(void)wValue;
|
||||||
|
|
||||||
|
usbd_register_control_callback(
|
||||||
|
usbd_dev,
|
||||||
|
USB_REQ_TYPE_CLASS | USB_REQ_TYPE_INTERFACE,
|
||||||
|
USB_REQ_TYPE_TYPE | USB_REQ_TYPE_RECIPIENT,
|
||||||
|
usbdfu_control_request);
|
||||||
|
}
|
||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
usbd_device *usbd_dev;
|
usbd_device *usbd_dev;
|
||||||
@@ -257,11 +268,7 @@ int main(void)
|
|||||||
gpio_set(GPIOC, GPIO11);
|
gpio_set(GPIOC, GPIO11);
|
||||||
|
|
||||||
usbd_dev = usbd_init(&stm32f103_usb_driver, &dev, &config, usb_strings, 4, usbd_control_buffer, sizeof(usbd_control_buffer));
|
usbd_dev = usbd_init(&stm32f103_usb_driver, &dev, &config, usb_strings, 4, usbd_control_buffer, sizeof(usbd_control_buffer));
|
||||||
usbd_register_control_callback(
|
usbd_register_set_config_callback(usbd_dev, usbdfu_set_config);
|
||||||
usbd_dev,
|
|
||||||
USB_REQ_TYPE_CLASS | USB_REQ_TYPE_INTERFACE,
|
|
||||||
USB_REQ_TYPE_TYPE | USB_REQ_TYPE_RECIPIENT,
|
|
||||||
usbdfu_control_request);
|
|
||||||
|
|
||||||
gpio_clear(GPIOC, GPIO11);
|
gpio_clear(GPIOC, GPIO11);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user