mirror of
https://github.com/hathach/tinyusb.git
synced 2025-04-24 09:02:37 +00:00
clean up device cdc
separate cdc tx & rx bufsize
This commit is contained in:
parent
d438000b99
commit
b9f8575e2d
@ -72,7 +72,9 @@
|
|||||||
*------------------------------------------------------------------*/
|
*------------------------------------------------------------------*/
|
||||||
|
|
||||||
// FIFO size of CDC TX and RX
|
// FIFO size of CDC TX and RX
|
||||||
#define CFG_TUD_CDC_BUFSIZE 64
|
#define CFG_TUD_CDC_RX_BUFSIZE 64
|
||||||
|
#define CFG_TUD_CDC_TX_BUFSIZE 64
|
||||||
|
|
||||||
|
|
||||||
// TX is sent automatically every Start of Frame event.
|
// TX is sent automatically every Start of Frame event.
|
||||||
// If not enabled, application must call tud_cdc_flush() periodically
|
// If not enabled, application must call tud_cdc_flush() periodically
|
||||||
|
@ -77,7 +77,9 @@
|
|||||||
*------------------------------------------------------------------*/
|
*------------------------------------------------------------------*/
|
||||||
|
|
||||||
// FIFO size of CDC TX and RX
|
// FIFO size of CDC TX and RX
|
||||||
#define CFG_TUD_CDC_BUFSIZE 128
|
#define CFG_TUD_CDC_RX_BUFSIZE 128
|
||||||
|
#define CFG_TUD_CDC_TX_BUFSIZE 128
|
||||||
|
|
||||||
|
|
||||||
// TX is sent automatically in Start of Frame event.
|
// TX is sent automatically in Start of Frame event.
|
||||||
// If not enabled, application must call tud_cdc_flush() periodically
|
// If not enabled, application must call tud_cdc_flush() periodically
|
||||||
|
@ -67,17 +67,12 @@ typedef struct {
|
|||||||
|
|
||||||
// TODO multiple rhport
|
// TODO multiple rhport
|
||||||
|
|
||||||
#if CFG_TUSB_MCU == OPT_MCU_NRF5X
|
|
||||||
// FIXME nrf52 OUT: Controller ACK data even we didn't prepare transfer
|
|
||||||
CFG_TUSB_ATTR_USBRAM CFG_TUSB_MEM_ALIGN uint8_t _tmp_rx_buf[600];
|
|
||||||
#else
|
|
||||||
CFG_TUSB_ATTR_USBRAM CFG_TUSB_MEM_ALIGN uint8_t _tmp_rx_buf[64];
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
CFG_TUSB_ATTR_USBRAM CFG_TUSB_MEM_ALIGN uint8_t _tmp_rx_buf[64];
|
||||||
CFG_TUSB_ATTR_USBRAM CFG_TUSB_MEM_ALIGN uint8_t _tmp_tx_buf[64];
|
CFG_TUSB_ATTR_USBRAM CFG_TUSB_MEM_ALIGN uint8_t _tmp_tx_buf[64];
|
||||||
|
|
||||||
FIFO_DEF(_rx_ff, CFG_TUD_CDC_BUFSIZE, uint8_t, true);
|
FIFO_DEF(_rx_ff, CFG_TUD_CDC_RX_BUFSIZE, uint8_t, true);
|
||||||
FIFO_DEF(_tx_ff, CFG_TUD_CDC_BUFSIZE, uint8_t, false);
|
FIFO_DEF(_tx_ff, CFG_TUD_CDC_TX_BUFSIZE, uint8_t, false);
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
// INTERNAL OBJECT & FUNCTION DECLARATION
|
// INTERNAL OBJECT & FUNCTION DECLARATION
|
||||||
|
@ -37,6 +37,7 @@
|
|||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
#include "tusb_fifo.h"
|
#include "tusb_fifo.h"
|
||||||
|
#include "common/tusb_verify.h" // for ASSERT
|
||||||
|
|
||||||
/*------------------------------------------------------------------*/
|
/*------------------------------------------------------------------*/
|
||||||
/*
|
/*
|
||||||
@ -207,7 +208,9 @@ bool fifo_peek_at(fifo_t* f, uint16_t position, void * p_buffer)
|
|||||||
bool fifo_write(fifo_t* f, void const * p_data)
|
bool fifo_write(fifo_t* f, void const * p_data)
|
||||||
{
|
{
|
||||||
if ( !fifo_initalized(f) ) return false;
|
if ( !fifo_initalized(f) ) return false;
|
||||||
if ( fifo_full(f) && !f->overwritable ) return false;
|
|
||||||
|
// if ( fifo_full(f) && !f->overwritable ) return false;
|
||||||
|
TU_ASSERT( !(fifo_full(f) && !f->overwritable) );
|
||||||
|
|
||||||
mutex_lock_if_needed(f);
|
mutex_lock_if_needed(f);
|
||||||
|
|
||||||
|
@ -46,10 +46,12 @@
|
|||||||
#include "usbd.h"
|
#include "usbd.h"
|
||||||
#include "device/usbd_pvt.h"
|
#include "device/usbd_pvt.h"
|
||||||
|
|
||||||
#define USBD_TASK_QUEUE_DEPTH 16
|
#ifndef CFG_TUD_TASK_QUEUE_SZ
|
||||||
|
#define CFG_TUD_TASK_QUEUE_SZ 16
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef CFG_TUD_TASK_STACKSIZE
|
#ifndef CFG_TUD_TASK_STACK_SZ
|
||||||
#define CFG_TUD_TASK_STACKSIZE 150
|
#define CFG_TUD_TASK_STACK_SZ 150
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef CFG_TUD_TASK_PRIO
|
#ifndef CFG_TUD_TASK_PRIO
|
||||||
@ -190,10 +192,10 @@ typedef struct ATTR_ALIGNED(4)
|
|||||||
|
|
||||||
VERIFY_STATIC(sizeof(usbd_task_event_t) <= 12, "size is not correct");
|
VERIFY_STATIC(sizeof(usbd_task_event_t) <= 12, "size is not correct");
|
||||||
|
|
||||||
OSAL_TASK_DEF(_usbd_task_def, "usbd", usbd_task, CFG_TUD_TASK_PRIO, CFG_TUD_TASK_STACKSIZE);
|
OSAL_TASK_DEF(_usbd_task_def, "usbd", usbd_task, CFG_TUD_TASK_PRIO, CFG_TUD_TASK_STACK_SZ);
|
||||||
|
|
||||||
/*------------- event queue -------------*/
|
/*------------- event queue -------------*/
|
||||||
OSAL_QUEUE_DEF(_usbd_qdef, USBD_TASK_QUEUE_DEPTH, usbd_task_event_t);
|
OSAL_QUEUE_DEF(_usbd_qdef, CFG_TUD_TASK_QUEUE_SZ, usbd_task_event_t);
|
||||||
static osal_queue_t _usbd_q;
|
static osal_queue_t _usbd_q;
|
||||||
|
|
||||||
/*------------- control transfer semaphore -------------*/
|
/*------------- control transfer semaphore -------------*/
|
||||||
@ -547,12 +549,14 @@ void dcd_bus_event(uint8_t rhport, usbd_bus_event_type_t bus_event)
|
|||||||
|
|
||||||
case USBD_BUS_EVENT_SOF:
|
case USBD_BUS_EVENT_SOF:
|
||||||
{
|
{
|
||||||
|
#if CFG_TUD_CDC_FLUSH_ON_SOF
|
||||||
usbd_task_event_t task_event =
|
usbd_task_event_t task_event =
|
||||||
{
|
{
|
||||||
.rhport = rhport,
|
.rhport = rhport,
|
||||||
.event_id = USBD_EVT_SOF,
|
.event_id = USBD_EVT_SOF,
|
||||||
};
|
};
|
||||||
osal_queue_send_isr(_usbd_q, &task_event);
|
osal_queue_send_isr(_usbd_q, &task_event);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user