Toggle navigation
Documentation
The friendly Operating System for the Internet of Things
Loading...
Searching...
No Matches
tusb_config.h
Go to the documentation of this file.
1
/*
2
* SPDX-FileCopyrightText: 2019 Ha Thach (tinyusb.org)
3
* SPDX-FileCopyrightText: 2022 Gunar Schorcht
4
* SPDX-License-Identifier: MIT
5
*/
6
7
#pragma once
8
18
19
/* defined by the application */
20
#if __has_include("tinyusb_app_config.h")
21
#include "tinyusb_app_config.h"
22
#endif
23
#include "
tinyusb.h
"
24
25
#if MODULE_TINYUSB_CLASS_NET
26
#include "
net/ethernet.h
"
27
#endif
28
29
#if !DOXYGEN
30
31
#if MODULE_TINYUSB_CLASS_NET_CDC_NCM && (MODULE_TINYUSB_CLASS_NET_CDC_ECM \
32
|| MODULE_TINYUSB_CLASS_NET_RNDIS)
33
#error "CDC NCM device class cannot be used together with CDC ECM or RNDIS device class"
34
#endif
35
36
#ifndef CONFIG_TUSBD_AUDIO_NUMOF
37
#if MODULE_TINYUSB_DEVICE && MODULE_TINYUSB_CLASS_AUDIO
38
#define CONFIG_TUSBD_AUDIO_NUMOF 1
39
#else
40
#define CONFIG_TUSBD_AUDIO_NUMOF 0
41
#endif
42
#endif
43
44
#ifndef CONFIG_TUSBD_BTH_NUMOF
45
#if MODULE_TINYUSB_DEVICE && MODULE_TINYUSB_CLASS_BTH
46
#define CONFIG_TUSBD_BTH_NUMOF 1
47
#else
48
#define CONFIG_TUSBD_BTH_NUMOF 0
49
#endif
50
#endif
51
52
#ifndef CONFIG_TUSBD_CDC_NUMOF
53
#if MODULE_TINYUSB_DEVICE && MODULE_TINYUSB_CLASS_CDC
54
#define CONFIG_TUSBD_CDC_NUMOF 1
55
#else
56
#define CONFIG_TUSBD_CDC_NUMOF 0
57
#endif
58
#endif
59
60
#ifndef CONFIG_TUSBD_DFU_NUMOF
61
#if MODULE_TINYUSB_DEVICE && MODULE_TINYUSB_CLASS_DFU
62
#define CONFIG_TUSBD_DFU_NUMOF 1
63
#else
64
#define CONFIG_TUSBD_DFU_NUMOF 0
65
#endif
66
#endif
67
68
#ifndef CONFIG_TUSBD_DFU_RT_NUMOF
69
#if MODULE_TINYUSB_DEVICE && MODULE_TINYUSB_CLASS_DFU_RUNTIME
70
#define CONFIG_TUSBD_DFU_RT_NUMOF 1
71
#else
72
#define CONFIG_TUSBD_DFU_RT_NUMOF 0
73
#endif
74
#endif
75
76
#ifndef CONFIG_TUSBD_HID_NUMOF
77
#if MODULE_TINYUSB_DEVICE && MODULE_TINYUSB_CLASS_HID
78
#define CONFIG_TUSBD_HID_NUMOF 1
79
#else
80
#define CONFIG_TUSBD_HID_NUMOF 0
81
#endif
82
#endif
83
84
#ifndef CONFIG_TUSBD_MIDI_NUMOF
85
#if MODULE_TINYUSB_DEVICE && MODULE_TINYUSB_CLASS_MIDI
86
#define CONFIG_TUSBD_MIDI_NUMOF 1
87
#else
88
#define CONFIG_TUSBD_MIDI_NUMOF 0
89
#endif
90
#endif
91
92
#ifndef CONFIG_TUSBD_MSC_NUMOF
93
#if MODULE_TINYUSB_DEVICE && MODULE_TINYUSB_CLASS_MSC
94
#define CONFIG_TUSBD_MSC_NUMOF 1
95
#else
96
#define CONFIG_TUSBD_MSC_NUMOF 0
97
#endif
98
#endif
99
100
#ifndef CONFIG_TUSBD_USBTMC_NUMOF
101
#if MODULE_TINYUSB_DEVICE && MODULE_TINYUSB_CLASS_USBTMC
102
#define CONFIG_TUSBD_USBTMC_NUMOF 1
103
#else
104
#define CONFIG_TUSBD_USBTMC_NUMOF 0
105
#endif
106
#endif
107
108
#ifndef CONFIG_TUSBD_VENDOR_NUMOF
109
#if MODULE_TINYUSB_DEVICE && MODULE_TINYUSB_CLASS_VENDOR
110
#define CONFIG_TUSBD_VENDOR_NUMOF 1
111
#else
112
#define CONFIG_TUSBD_VENDOR_NUMOF 0
113
#endif
114
#endif
115
116
#ifndef CONFIG_TUSBD_VIDEO_NUMOF
117
#if MODULE_TINYUSB_DEVICE && MODULE_TINYUSB_CLASS_VIDEO
118
#define CONFIG_TUSBD_VIDEO_NUMOF 1
119
#else
120
#define CONFIG_TUSBD_VIDEO_NUMOF 0
121
#endif
122
#endif
123
124
#ifndef CONFIG_TUSBH_CDC_NUMOF
125
#if MODULE_TINYUSB_HOST && MODULE_TINYUSB_CLASS_CDC
126
#define CONFIG_TUSBH_CDC_NUMOF 1
127
#else
128
#define CONFIG_TUSBH_CDC_NUMOF 0
129
#endif
130
#endif
131
132
#ifndef CONFIG_TUSBH_HID_NUMOF
133
#if MODULE_TINYUSB_HOST && MODULE_TINYUSB_CLASS_HID
134
#define CONFIG_TUSBH_HID_NUMOF 1
135
#else
136
#define CONFIG_TUSBH_HID_NUMOF 0
137
#endif
138
#endif
139
140
#ifndef CONFIG_TUSBH_HUB_NUMOF
141
#if MODULE_TINYUSB_HOST && MODULE_TINYUSB_CLASS_HUB
142
#define CONFIG_TUSBH_HUB_NUMOF 1
143
#else
144
#define CONFIG_TUSBH_HUB_NUMOF 0
145
#endif
146
#endif
147
148
#ifndef CONFIG_TUSBH_MSC_NUMOF
149
#if MODULE_TINYUSB_HOST && MODULE_TINYUSB_CLASS_MSC
150
#define CONFIG_TUSBH_MSC_NUMOF 1
151
#else
152
#define CONFIG_TUSBH_MSC_NUMOF 0
153
#endif
154
#endif
155
156
#ifndef CONFIG_TUSBH_VENDOR_NUMOF
157
#if MODULE_TINYUSB_HOST && MODULE_TINYUSB_CLASS_VENDOR
158
#define CONFIG_TUSBH_VENDOR_NUMOF 1
159
#else
160
#define CONFIG_TUSBH_VENDOR_NUMOF 0
161
#endif
162
#endif
163
164
#ifndef CONFIG_TUSBD_EP0_SIZE
165
#define CONFIG_TUSBD_EP0_SIZE 64
166
#endif
167
168
#ifndef CONFIG_TUSBD_FS_EP_SIZE
169
#define CONFIG_TUSBD_FS_EP_SIZE 64
170
#endif
171
172
#ifndef CONFIG_TUSBD_HS_EP_SIZE
173
#define CONFIG_TUSBD_HS_EP_SIZE 512
174
#endif
175
176
#ifndef CONFIG_TUSBD_CDC_NOTIF_EP_SIZE
177
#define CONFIG_TUSBD_CDC_NOTIF_EP_SIZE 8
178
#endif
179
180
#ifndef CONFIG_TUSBD_CDC_FS_EP_SIZE
181
#define CONFIG_TUSBD_CDC_FS_EP_SIZE CONFIG_TUSBD_FS_EP_SIZE
182
#endif
183
184
#ifndef CONFIG_TUSBD_CDC_HS_EP_SIZE
185
#define CONFIG_TUSBD_CDC_HS_EP_SIZE CONFIG_TUSBD_HS_EP_SIZE
186
#endif
187
188
#ifndef CONFIG_TUSBD_DFU_ATTR
189
#define CONFIG_TUSBD_DFU_ATTR (DFU_ATTR_CAN_DOWNLOAD | \
190
DFU_ATTR_WILL_DETACH | \
191
DFU_ATTR_MANIFESTATION_TOLERANT)
192
#endif
193
194
#ifndef CONFIG_TUSBD_DFU_DETACH_TIMEOUT
195
#define CONFIG_TUSBD_DFU_DETACH_TIMEOUT 1000
196
#endif
197
198
#ifndef CONFIG_TUSBD_DFU_POLL_TIMEOUT
199
#define CONFIG_TUSBD_DFU_POLL_TIMEOUT 1
200
#endif
201
202
#ifndef CONFIG_TUSBD_DFU_RESET_DELAY
203
#define CONFIG_TUSBD_DFU_RESET_DELAY 2
204
#endif
205
206
#ifndef CONFIG_TUSBD_DFU_FS_XFER_SIZE
207
#define CONFIG_TUSBD_DFU_FS_XFER_SIZE CONFIG_TUSBD_FS_EP_SIZE
208
#endif
209
210
#ifndef CONFIG_TUSBD_DFU_HS_XFER_SIZE
211
#define CONFIG_TUSBD_DFU_HS_XFER_SIZE CONFIG_TUSBD_HS_EP_SIZE
212
#endif
213
214
#ifndef CONFIG_TUSBD_HID_EP_SIZE
215
#define CONFIG_TUSBD_HID_EP_SIZE CONFIG_TUSBD_FS_EP_SIZE
216
#endif
217
218
#ifndef CONFIG_TUSBD_DFU_RT_DETACH_TIMEOUT
219
#define CONFIG_TUSBD_DFU_RT_DETACH_TIMEOUT 1000
220
#endif
221
222
#ifndef CONFIG_TUSBD_DFU_RT_FS_XFER_SIZE
223
#define CONFIG_TUSBD_DFU_RT_FS_XFER_SIZE CONFIG_TUSBD_FS_EP_SIZE
224
#endif
225
226
#ifndef CONFIG_TUSBD_DFU_RT_HS_XFER_SIZE
227
#define CONFIG_TUSBD_DFU_RT_HS_XFER_SIZE CONFIG_TUSBD_HS_EP_SIZE
228
#endif
229
230
#ifndef CONFIG_TUSBD_HID_EP_SIZE
231
#define CONFIG_TUSBD_HID_EP_SIZE CONFIG_TUSBD_FS_EP_SIZE
232
#endif
233
234
#ifndef CONFIG_TUSBD_HID_0_POLL_INTERVALL
235
#define CONFIG_TUSBD_HID_0_POLL_INTERVALL 10
236
#endif
237
238
#ifndef CONFIG_TUSBD_HID_1_POLL_INTERVALL
239
#define CONFIG_TUSBD_HID_1_POLL_INTERVALL 10
240
#endif
241
242
#ifndef CONFIG_TUSBD_MSC_FS_EP_SIZE
243
#define CONFIG_TUSBD_MSC_FS_EP_SIZE CONFIG_TUSBD_FS_EP_SIZE
244
#endif
245
246
#ifndef CONFIG_TUSBD_MSC_HS_EP_SIZE
247
#define CONFIG_TUSBD_MSC_HS_EP_SIZE CONFIG_TUSBD_HS_EP_SIZE
248
#endif
249
250
#ifndef CONFIG_TUSBD_NET_FS_EP_SIZE
251
#define CONFIG_TUSBD_NET_FS_EP_SIZE CONFIG_TUSBD_FS_EP_SIZE
252
#endif
253
254
#ifndef CONFIG_TUSBD_NET_HS_EP_SIZE
255
#define CONFIG_TUSBD_NET_HS_EP_SIZE CONFIG_TUSBD_HS_EP_SIZE
256
#endif
257
258
#ifndef CONFIG_TUSBD_VENDOR_FS_EP_SIZE
259
#define CONFIG_TUSBD_VENDOR_FS_EP_SIZE CONFIG_TUSBD_FS_EP_SIZE
260
#endif
261
262
#ifndef CONFIG_TUSBD_VENDOR_HS_EP_SIZE
263
#define CONFIG_TUSBD_VENDOR_HS_EP_SIZE CONFIG_TUSBD_HS_EP_SIZE
264
#endif
265
266
#ifndef CONFIG_TUSBD_NET_NOTIF_EP_SIZE
267
#define CONFIG_TUSBD_NET_NOTIF_EP_SIZE 64
268
#endif
269
270
#ifndef CONFIG_TUSBD_NET_MTU_SIZE
271
#define CONFIG_TUSBD_NET_MTU_SIZE ETHERNET_FRAME_LEN
272
#endif
273
274
#if MODULE_TINYUSB_CLASS_NET_CDC_ECM
275
#define CONFIG_TUSBD_NET_CDC_ECM 1
276
#else
277
#define CONFIG_TUSBD_NET_CDC_ECM 0
278
#endif
279
280
#if MODULE_TINYUSB_CLASS_NET_CDC_NCM
281
#define CONFIG_TUSBD_NET_CDC_NCM 1
282
#else
283
#define CONFIG_TUSBD_NET_CDC_NCM 0
284
#endif
285
286
#if MODULE_TINYUSB_CLASS_NET_RNDIS
287
#define CONFIG_TUSBD_NET_RNDIS 1
288
#else
289
#define CONFIG_TUSBD_NET_RNDIS 0
290
#endif
291
292
#if CONFIG_TUSBD_NET_CDC_ECM || CONFIG_TUSBD_NET_CDC_NCM || CONFIG_TUSBD_NET_RNDIS
293
#define CONFIG_TUSBD_NET_NUMOF 1
294
#else
295
#define CONFIG_TUSBD_NET_NUMOF 0
296
#endif
297
298
#ifndef CONFIG_TUSBH_ENUM_SIZE
299
#define CONFIG_TUSBH_ENUM_SIZE 256
300
#endif
301
302
#ifndef CONFIG_TUSBH_HID_EPIN_SIZE
303
#define CONFIG_TUSBH_HID_EPIN_SIZE CONFIG_TUSBD_HID_EP_SIZE
304
#endif
305
306
#ifndef CONFIG_TUSBH_HID_EPOUT_SIZE
307
#define CONFIG_TUSBH_HID_EPOUT_SIZE CONFIG_TUSBD_HID_EP_SIZE
308
#endif
309
315
#ifndef CFG_TUSB_MCU
316
#error CFG_TUSB_MCU must be defined
317
#endif
318
320
#define CFG_TUSB_OS OPT_OS_CUSTOM
321
323
#ifndef CFG_TUSB_DEBUG
324
#define CFG_TUSB_DEBUG 0
325
#endif
326
335
#define CFG_TUSB_MEM_SECTION
336
#define CFG_TUSB_MEM_ALIGN __attribute__ ((aligned(4)))
337
339
344
#define CFG_TUD_ENABLED MODULE_TINYUSB_DEVICE
345
346
#define CFG_TUD_ENDPOINT0_SIZE CONFIG_TUSBD_EP0_SIZE
347
348
#define CFG_TUD_AUDIO CONFIG_TUSBD_AUDIO_NUMOF
349
#define CFG_TUD_BTH CONFIG_TUSBD_BTH_NUMOF
350
#define CFG_TUD_CDC CONFIG_TUSBD_CDC_NUMOF
351
#define CFG_TUD_ECM_RNDIS (CONFIG_TUSBD_NET_CDC_ECM || CONFIG_TUSBD_NET_RNDIS)
352
#define CFG_TUD_DFU CONFIG_TUSBD_DFU_NUMOF
353
#define CFG_TUD_DFU_RUNTIME CONFIG_TUSBD_DFU_RT_NUMOF
354
#define CFG_TUD_HID CONFIG_TUSBD_HID_NUMOF
355
#define CFG_TUD_MIDI CONFIG_TUSBD_MIDI_NUMOF
356
#define CFG_TUD_MSC CONFIG_TUSBD_MSC_NUMOF
357
#define CFG_TUD_NCM CONFIG_TUSBD_NET_CDC_NCM
358
#define CFG_TUD_USBTMC CONFIG_TUSBD_USBTMC_NUMOF
359
#define CFG_TUD_VENDOR CONFIG_TUSBD_VENDOR_NUMOF
360
#define CFG_TUD_VIDEO CONFIG_TUSBD_VIDEO_NUMOF
361
363
368
#define CFG_TUH_ENABLED MODULE_TINYUSB_HOST
369
370
#define CFG_TUH_MAX_SPEED OPT_MODE_DEFAULT_SPEED
371
372
#define CFG_TUH_ENUMERATION_BUFSIZE CONFIG_TUSBH_ENUM_SIZE
373
375
#define CFG_TUH_DEVICE_MAX (CFG_TUH_HUB ? 4 : 1)
376
377
#define CFG_TUH_CDC CONFIG_TUSBH_CDC_NUMOF
378
#define CFG_TUH_HID CONFIG_TUSBH_HID_NUMOF
379
#define CFG_TUH_HUB CONFIG_TUSBH_HUB_NUMOF
380
#define CFG_TUH_MSC CONFIG_TUSBH_MSC_NUMOF
381
#define CFG_TUH_VENDOR CONFIG_TUSBH_VENDOR_NUMOF
382
384
389
#define CFG_TUD_CDC_EP_BUFSIZE (TUD_OPT_HIGH_SPEED ? CONFIG_TUSBD_CDC_HS_EP_SIZE \
390
: CONFIG_TUSBD_CDC_FS_EP_SIZE)
391
#define CFG_TUD_CDC_RX_BUFSIZE CFG_TUD_CDC_EP_BUFSIZE
392
#define CFG_TUD_CDC_TX_BUFSIZE CFG_TUD_CDC_EP_BUFSIZE
393
395
400
#define CFG_TUD_DFU_XFER_BUFSIZE (TUD_OPT_HIGH_SPEED ? CONFIG_TUSBD_DFU_HS_XFER_SIZE \
401
: CONFIG_TUSBD_DFU_FS_XFER_SIZE)
403
408
#define CFG_TUD_HID_EP_BUFSIZE CONFIG_TUSBD_HID_EP_SIZE
410
415
#define CFG_TUD_MIDI_RX_BUFSIZE CFG_TUD_MIDI_EP_BUFSIZE
416
#define CFG_TUD_MIDI_TX_BUFSIZE CFG_TUD_MIDI_EP_BUFSIZE
418
423
#define CFG_TUD_MSC_EP_BUFSIZE (TUD_OPT_HIGH_SPEED ? CONFIG_TUSBD_MSC_HS_EP_SIZE \
424
: CONFIG_TUSBD_MSC_FS_EP_SIZE)
426
431
#define CFG_TUD_NET_MTU CONFIG_TUSBD_NET_MTU_SIZE
432
437
#define CFG_TUH_HID_EPIN_BUFSIZE CONFIG_TUSBH_HID_EPIN_SIZE
438
#define CFG_TUH_HID_EPOUT_BUFSIZE CONFIG_TUSBH_HID_EPOUT_SIZE
440
441
#ifdef __cplusplus
442
extern
"C"
{
443
#endif
444
445
#ifdef __cplusplus
446
}
447
#endif
448
449
#endif
/* !DOXYGEN */
ethernet.h
Definitions for Ethernet.
tinyusb.h
TinyUSB API.
Generated on Sat Oct 3 2026 14:10:59 by
1.13.2