Skip to content

Commit 7b09ae3

Browse files
committed
Move receiving to double buffering on STM32F10x
1 parent f246905 commit 7b09ae3

File tree

2 files changed

+10
-8
lines changed

2 files changed

+10
-8
lines changed

Diff for: cores/arduino/stm32/usb/cdc/usbd_cdc.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,9 @@ extern "C" {
4141
/** @defgroup usbd_cdc_Exported_Defines
4242
* @{
4343
*/
44-
#define CDC_IN_EP 0x81U /* EP1 for data IN */
44+
#define CDC_IN_EP 0x82U /* EP1 for data IN */
4545
#define CDC_OUT_EP 0x01U /* EP1 for data OUT */
46-
#define CDC_CMD_EP 0x82U /* EP2 for CDC commands */
46+
#define CDC_CMD_EP 0x83U /* EP2 for CDC commands */
4747

4848
#ifndef CDC_HS_BINTERVAL
4949
#define CDC_HS_BINTERVAL 0x10U

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

+8-6
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,12 @@
2828
/* Private typedef -----------------------------------------------------------*/
2929
/* Private define ------------------------------------------------------------*/
3030
/* Size in words, byte size divided by 2 */
31-
#define PMA_EP0_OUT_ADDR (8 * 3)
31+
#define PMA_EP0_OUT_ADDR (8 * 4)
3232
#define PMA_EP0_IN_ADDR (PMA_EP0_OUT_ADDR + USB_MAX_EP0_SIZE)
33-
#define PMA_CDC_OUT_ADDR (PMA_EP0_IN_ADDR + USB_MAX_EP0_SIZE)
34-
#define PMA_CDC_IN_ADDR (PMA_CDC_OUT_ADDR + USB_FS_MAX_PACKET_SIZE)
33+
#define PMA_CDC_OUT_BASE (PMA_EP0_IN_ADDR + USB_MAX_EP0_SIZE)
34+
#define PMA_CDC_OUT_ADDR ((PMA_CDC_OUT_BASE + USB_FS_MAX_PACKET_SIZE) | \
35+
(PMA_CDC_OUT_BASE << 16U))
36+
#define PMA_CDC_IN_ADDR (PMA_CDC_OUT_BASE + USB_FS_MAX_PACKET_SIZE)
3537
#define PMA_CDC_CMD_ADDR (PMA_CDC_IN_ADDR + USB_FS_MAX_PACKET_SIZE)
3638
/* Private macro -------------------------------------------------------------*/
3739
/* Private variables ---------------------------------------------------------*/
@@ -489,9 +491,9 @@ USBD_StatusTypeDef USBD_LL_Init(USBD_HandleTypeDef *pdev)
489491
#else
490492
HAL_PCDEx_PMAConfig(&g_hpcd, 0x00, PCD_SNG_BUF, PMA_EP0_OUT_ADDR);
491493
HAL_PCDEx_PMAConfig(&g_hpcd, 0x80, PCD_SNG_BUF, PMA_EP0_IN_ADDR);
492-
HAL_PCDEx_PMAConfig(&g_hpcd, 0x01, PCD_SNG_BUF, PMA_CDC_OUT_ADDR);
493-
HAL_PCDEx_PMAConfig(&g_hpcd, 0x81, PCD_SNG_BUF, PMA_CDC_IN_ADDR);
494-
HAL_PCDEx_PMAConfig(&g_hpcd, 0x82, PCD_SNG_BUF, PMA_CDC_CMD_ADDR);
494+
HAL_PCDEx_PMAConfig(&g_hpcd, 0x01, PCD_DBL_BUF, PMA_CDC_OUT_ADDR);
495+
HAL_PCDEx_PMAConfig(&g_hpcd, 0x82, PCD_SNG_BUF, PMA_CDC_IN_ADDR);
496+
HAL_PCDEx_PMAConfig(&g_hpcd, 0x83, PCD_SNG_BUF, PMA_CDC_CMD_ADDR);
495497
#endif
496498
#endif /* USE_USB_HS */
497499
return USBD_OK;

0 commit comments

Comments
 (0)