summaryrefslogtreecommitdiff
path: root/src/device
diff options
context:
space:
mode:
authorJeremiah McCarthy <[email protected]>2021-04-05 17:52:33 -0400
committerJeremiah McCarthy <[email protected]>2021-04-05 17:52:33 -0400
commitc39b7b8177acbab23e82fee295d5f3205aa9752c (patch)
tree4b821dba031b4ab6b3ee8af618a96ce506e1b71e /src/device
parentbc2cb99780a0bc0359195a4be8e556f71da5a70b (diff)
Add DFU runtime and mode "class"
With the runtime and mode portions in separate classes, a single application should only be building with one or the other enabled. In some applications both might be desired at build time. The CFG_TUD_DFU_RUNTIME_AND_MODE option creates a DFU class, which asks the application which mode to initialize to. This allows a runtime change between RT and DFU mode, by just reinitializing tusb.
Diffstat (limited to 'src/device')
-rw-r--r--src/device/usbd.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/device/usbd.c b/src/device/usbd.c
index de0e7b0b7..6f2262feb 100644
--- a/src/device/usbd.c
+++ b/src/device/usbd.c
@@ -199,6 +199,18 @@ static usbd_class_driver_t const _usbd_driver[] =
},
#endif
+ #if CFG_TUD_DFU_RUNTIME_AND_MODE
+ {
+ DRIVER_NAME("DFU-RT-MODE")
+ .init = dfu_init,
+ .reset = dfu_reset,
+ .open = dfu_open,
+ .control_xfer_cb = dfu_control_xfer_cb,
+ .xfer_cb = NULL,
+ .sof = NULL
+ },
+ #endif
+
#if CFG_TUD_NET
{
DRIVER_NAME("NET")