Skip to content

Commit 90b75cc

Browse files
committed
core: usb: allow PCD single buffer endpoint kind usage
Defining USBD_CDC_USE_SINGLE_BUFFER will set endpoint kind as single buffer instead of double one per default. Fixes stm32duino#804 Signed-off-by: Frederic Pillon <[email protected]>
1 parent eee23e2 commit 90b75cc

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

Diff for: cores/arduino/stm32/usb/usbd_ep_conf.c

+4
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,11 @@ const ep_desc_t ep_def[] = {
3737
#else
3838
{0x00, PCD_SNG_BUF, PMA_EP0_OUT_ADDR },
3939
{0x80, PCD_SNG_BUF, PMA_EP0_IN_ADDR },
40+
#ifndef USBD_CDC_USE_SINGLE_BUFFER
4041
{CDC_OUT_EP, PCD_DBL_BUF, PMA_CDC_OUT_ADDR },
42+
#else
43+
{CDC_OUT_EP, PCD_SNG_BUF, PMA_CDC_OUT_ADDR },
44+
#endif
4145
{CDC_IN_EP, PCD_SNG_BUF, PMA_CDC_IN_ADDR },
4246
{CDC_CMD_EP, PCD_SNG_BUF, PMA_CDC_CMD_ADDR }
4347
#endif

Diff for: cores/arduino/stm32/usb/usbd_ep_conf.h

+4
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,12 @@ typedef struct {
7272

7373
#ifdef USBD_USE_CDC
7474
#define PMA_CDC_OUT_BASE (PMA_EP0_IN_ADDR + USB_MAX_EP0_SIZE)
75+
#ifndef USBD_CDC_USE_SINGLE_BUFFER
7576
#define PMA_CDC_OUT_ADDR ((PMA_CDC_OUT_BASE + USB_FS_MAX_PACKET_SIZE) | \
7677
(PMA_CDC_OUT_BASE << 16U))
78+
#else
79+
#define PMA_CDC_OUT_ADDR (PMA_CDC_OUT_BASE + USB_FS_MAX_PACKET_SIZE)
80+
#endif
7781
#define PMA_CDC_IN_ADDR (PMA_CDC_OUT_BASE + USB_FS_MAX_PACKET_SIZE * 2)
7882
#define PMA_CDC_CMD_ADDR (PMA_CDC_IN_ADDR + CDC_CMD_PACKET_SIZE)
7983
#endif /* USBD_USE_CDC */

0 commit comments

Comments
 (0)