USB Device CDC API#
USBD_CDC_ConfigureMemSeg()#
Description#
Configures the memory segment to use when allocating control data.
Files#
usbd_cdc.h/usbd_cdc.c
Prototype#
void  USBD_CDC_ConfigureMemSeg (MEM_SEG  *p_mem_seg)Arguments#
p_mem_seg
Pointer to memory segment to use when allocating control data. DEF_NULL means general purpose heap segment.
Returned Value#
None.
Notes / Warnings#
- This function is optional, if it is not called, the default value will be used. 
- This function MUST be called before the CDC class is initialized via the - USBD_CDC_Init()function.
USBD_CDC_Init()#
Description#
Initializes CDC class.
Files#
usbd_cdc.h/usbd_cdc.c
Prototype#
void USBD_CDC_Init (USBD_CDC_QTY_CFG   *p_qty_cfg,
                    RTOS_ERR           *p_err)Arguments#
p_qty_cfg
Pointer to CDC bas class configuration structure.
p_err
Pointer to the variable that will receive one of these returned error codes from this function :
- RTOS_ERR_NONE
- RTOS_ERR_SEG_OVF
Returned Value#
None.
Notes / Warnings#
None.
USBD_CDC_Add()#
Description#
Adds a new instance of the CDC class.
Files#
usbd_cdc.h/usbd_cdc.c
Prototype#
CPU_INT08U USBD_CDC_Add (CPU_INT08U               subclass,
                         USBD_CDC_SUBCLASS_DRV   *p_subclass_drv,
                         void                    *p_subclass_arg,
                         CPU_INT08U               protocol,
                         CPU_BOOLEAN              notify_en,
                         CPU_INT16U               notify_interval,
                         RTOS_ERR                *p_err)Arguments#
subclass
Communication class subclass subcode (see Note #1).
p_subclass_drv
Pointer to the CDC subclass driver.
p_subclass_arg
Pointer to the CDC subclass driver argument.
protocol
Communication class protocol code.
notify_en
Notification enabled :
DEF_ENABLED Enable CDC class notifications.
DEF_DISABLED Disable CDC class notifications.
notify_interval
Notification interval in milliseconds (must be a power of 2).
p_err
Pointer to the variable that will receive one of these returned error codes from this function :
- RTOS_ERR_NONE
- RTOS_ERR_CLASS_INSTANCE_ALLOC
Returned Value#
- CDC class instance number, if no errors are returned. 
- USBD_CDC_NBR_NONE, if any errors returned.
Notes / Warnings#
- Communication class subclass codes are defined in ' - usbd_cdc.h' '- USBD_CDC_SUBCLASS_XXXX'.
USBD_CDC_ConfigAdd()#
Description#
Adds a CDC instance into the USB device configuration.
Files#
usbd_cdc.h/usbd_cdc.c
Prototype#
CPU_BOOLEAN USBD_CDC_ConfigAdd (CPU_INT08U    class_nbr,
                                CPU_INT08U    dev_nbr,
                                CPU_INT08U    config_nbr,
                                RTOS_ERR     *p_err)Arguments#
class_nbr
Class instance number.
dev_nbr
Device number.
config_nbr
Configuration index to which to add the new CDC class interface.
p_err
Pointer to the variable that will receive one of these returned error codes from this function :
- RTOS_ERR_NONE
- RTOS_ERR_INVALID_DEV_STATE
- RTOS_ERR_IF_ALT_ALLOC
- RTOS_ERR_ALLOC
- RTOS_ERR_IF_GRP_ALLOC
- RTOS_ERR_CLASS_INSTANCE_ALLOC
- RTOS_ERR_ALREADY_EXISTS
- RTOS_ERR_IF_ALLOC
- RTOS_ERR_INVALID_ARG
- RTOS_ERR_EP_ALLOC
- RTOS_ERR_EP_NONE_AVAIL
Returned Value#
- DEF_YES, if the CDC class instance was added to USB device configuration successfully.
- DEF_NO, if the instance was not added successfully.
Notes / Warnings#
None.
USBD_CDC_IsConn()#
Description#
Gets the CDC class connection state.
Files#
usbd_cdc.h/usbd_cdc.c
Prototype#
CPU_BOOLEAN USBD_CDC_IsConn (CPU_INT08U   class_nbr)Arguments#
class_nbr
Class instance number.
Returned Value#
- DEF_YES, if CDC class is connected.
- DEF_NO, if CDC class is not connected.
Notes / Warnings#
None.
USBD_CDC_DataIF_Add()#
Description#
Adds a data interface class to the CDC communication interface class.
Files#
usbd_cdc.h/usbd_cdc.c
Prototype#
CPU_INT08U USBD_CDC_DataIF_Add (CPU_INT08U     class_nbr,
                                CPU_BOOLEAN    isoc_en,
                                CPU_INT08U     protocol,
                                RTOS_ERR      *p_err)Arguments#
class_nbr
Class instance number.
isoc_en
Data interface isochronous enable (see Note #1) :
- DEF_ENABLEDData interface uses isochronous EPs.
- DEF_DISABLEDData interface uses bulk EPs.
protocol
Data interface protocol code.
p_err
Pointer to the variable that will receive one of these returned error codes from this function :
- RTOS_ERR_NONE
- RTOS_ERR_ALLOC
Returned Value#
Data interface number.
Notes / Warnings#
- The value of ' - isoc_en' must be- DEF_DISABLED. Isochronous EPs are not supported.
USBD_CDC_DataRx()#
Description#
Receives data on the CDC data interface.
Files#
usbd_cdc.h/usbd_cdc.c
Prototype#
CPU_INT32U USBD_CDC_DataRx (CPU_INT08U    class_nbr,
                            CPU_INT08U    data_if_nbr,
                            CPU_INT08U   *p_buf,
                            CPU_INT32U    buf_len,
                            CPU_INT16U    timeout,
                            RTOS_ERR     *p_err)Arguments#
class_nbr
Class instance number.
data_if_nbr
CDC data interface number.
p_buf
Pointer to the destination buffer to receive data.
buf_len
Number of octets to receive.
timeout
Timeout in milliseconds.
p_err
Pointer to the variable that will receive one of these returned error codes from this function :
- RTOS_ERR_NONE
- RTOS_ERR_INVALID_DEV_STATE
- RTOS_ERR_NULL_PTR
- RTOS_ERR_EP_QUEUING
- RTOS_ERR_RX
- RTOS_ERR_NOT_SUPPORTED
- RTOS_ERR_NOT_READY
- RTOS_ERR_EP_INVALID
- RTOS_ERR_OS_SCHED_LOCKED
- RTOS_ERR_NOT_AVAIL
- RTOS_ERR_WOULD_OVF
- RTOS_ERR_OS_OBJ_DEL
- RTOS_ERR_INVALID_HANDLE
- RTOS_ERR_WOULD_BLOCK
- RTOS_ERR_INVALID_ARG
- RTOS_ERR_IS_OWNER
- RTOS_ERR_INVALID_CLASS_STATE
- RTOS_ERR_INVALID_EP_STATE
- RTOS_ERR_ABORT
- RTOS_ERR_TIMEOUT
Returned Value#
- Number of octets received, if no errors are returned. 
- 0, if any errors returned. 
Notes / Warnings#
None.
USBD_CDC_DataTx()#
Description#
Sends data on the CDC data interface.
Files#
usbd_cdc.h/usbd_cdc.c
Prototype#
CPU_INT32U USBD_CDC_DataTx (CPU_INT08U    class_nbr,
                            CPU_INT08U    data_if_nbr,
                            CPU_INT08U   *p_buf,
                            CPU_INT32U    buf_len,
                            CPU_INT16U    timeout,
                            RTOS_ERR     *p_err)Arguments#
class_nbr
Class instance number.
data_if_nbr
CDC data interface number.
p_buf
Pointer to the buffer of data that will be transmitted.
buf_len
Number of octets to transmit.
timeout
Timeout in milliseconds.
p_err
Pointer to the variable that will receive one of these returned error codes from this function :
- RTOS_ERR_NONE
- RTOS_ERR_INVALID_DEV_STATE
- RTOS_ERR_NULL_PTR
- RTOS_ERR_EP_QUEUING
- RTOS_ERR_TX
- RTOS_ERR_NOT_SUPPORTED
- RTOS_ERR_NOT_READY
- RTOS_ERR_EP_INVALID
- RTOS_ERR_OS_SCHED_LOCKED
- RTOS_ERR_NOT_AVAIL
- RTOS_ERR_WOULD_OVF
- RTOS_ERR_OS_OBJ_DEL
- RTOS_ERR_INVALID_HANDLE
- RTOS_ERR_WOULD_BLOCK
- RTOS_ERR_INVALID_ARG
- RTOS_ERR_IS_OWNER
- RTOS_ERR_INVALID_CLASS_STATE
- RTOS_ERR_INVALID_EP_STATE
- RTOS_ERR_ABORT
- RTOS_ERR_TIMEOUT
Returned Value#
- Number of octets transmitted, if no errors are returned. 
- 0, if any errors returned. 
Notes / Warnings#
None.
USBD_CDC_Notify()#
Description#
Sends a communication interface class notification to the host.
Files#
usbd_cdc.h/usbd_cdc.c
Prototype#
CPU_BOOLEAN USBD_CDC_Notify (CPU_INT08U    class_nbr,
                             CPU_INT08U    notification,
                             CPU_INT16U    value,
                             CPU_INT08U   *p_buf,
                             CPU_INT16U    data_len,
                             RTOS_ERR     *p_err)Arguments#
class_nbr
Class instance number.
notification
Notification code.
value
Notification value.
p_buf
Pointer to the notification buffer (see Note #1).
data_len
Length of the data portion of the notification.
p_err
Pointer to the variable that will receive one of these returned error codes from this function :
- RTOS_ERR_NONE
- RTOS_ERR_INVALID_DEV_STATE
- RTOS_ERR_NULL_PTR
- RTOS_ERR_EP_QUEUING
- RTOS_ERR_TX
- RTOS_ERR_NOT_READY
- RTOS_ERR_EP_INVALID
- RTOS_ERR_OS_SCHED_LOCKED
- RTOS_ERR_NOT_AVAIL
- RTOS_ERR_WOULD_OVF
- RTOS_ERR_OS_OBJ_DEL
- RTOS_ERR_INVALID_HANDLE
- RTOS_ERR_WOULD_BLOCK
- RTOS_ERR_IS_OWNER
- RTOS_ERR_INVALID_CLASS_STATE
- RTOS_ERR_INVALID_EP_STATE
- RTOS_ERR_ABORT
- RTOS_ERR_TIMEOUT
Returned Value#
None.
Notes / Warnings#
- The notification buffer MUST contain space for the notification header ' - USBD_CDC_NOTIFICATION_HEADER' plus the variable-length data portion.