dfu.h
1 /*
2  * Copyright (C) 2020 Mesotic SAS
3  *
4  * This file is subject to the terms and conditions of the GNU Lesser General
5  * Public License v2.1. See the file LICENSE in the top level directory for
6  * more details.
7  */
8 
19 #ifndef USB_USBUS_DFU_H
20 #define USB_USBUS_DFU_H
21 
22 #include "usb/dfu.h"
23 #include "riotboot/flashwrite.h"
24 
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28 
32 typedef struct usbus_dfu_device {
37 #ifdef MODULE_RIOTBOOT_USB_DFU
38  usbus_interface_alt_t iface_alt_slot1;
39  usbus_string_t slot1_str;
40  riotboot_flashwrite_t writer;
41 #endif
44  unsigned mode;
45  unsigned selected_slot;
48 
56 void usbus_dfu_init(usbus_t *usbus, usbus_dfu_device_t *handler, unsigned mode);
57 
58 #ifdef __cplusplus
59 }
60 #endif
61 
62 #endif /* USB_USBUS_DFU_H */
Definition for USB DFU interfaces.
usb_dfu_state_t
USBUS DFU internal state.
Definition: dfu.h:95
struct usbus_dfu_device usbus_dfu_device_t
USBUS DFU device interface context.
void usbus_dfu_init(usbus_t *usbus, usbus_dfu_device_t *handler, unsigned mode)
DFU initialization function.
riotboot flash writing module
firmware update state structure
Definition: flashwrite.h:106
USBUS descriptor generator.
Definition: usbus.h:298
USBUS DFU device interface context.
Definition: dfu.h:32
usbus_interface_t iface
Control interface.
Definition: dfu.h:34
usb_dfu_state_t dfu_state
Internal DFU state machine.
Definition: dfu.h:46
usbus_string_t slot0_str
Descriptor string for Slot 0.
Definition: dfu.h:36
unsigned mode
0 - APP mode, 1 DFU mode
Definition: dfu.h:44
bool skip_signature
Skip RIOTBOOT signature status.
Definition: dfu.h:42
unsigned selected_slot
Slot used for upgrade.
Definition: dfu.h:45
usbus_handler_t handler_ctrl
Control interface handler.
Definition: dfu.h:33
usbus_descr_gen_t dfu_descr
DFU descriptor generator.
Definition: dfu.h:35
usbus_t * usbus
Ptr to the USBUS context.
Definition: dfu.h:43
USBUS handler struct.
Definition: usbus.h:436
USBUS interface alternative setting.
Definition: usbus.h:341
USBUS interface.
Definition: usbus.h:353
USBUS string type.
Definition: usbus.h:210
USBUS context struct.
Definition: usbus.h:448