nRF5 SDK v17.1.0
Data Structures | Macros | Typedefs | Functions | Variables
USB CDC ACM internals

nRF52840 only: Internals of the USB ACM class implementation. More...

Data Structures

struct  app_usbd_cdc_acm_inst_t
 CDC ACM class part of class instance data. More...
 
struct  app_usbd_cdc_acm_notify_t
 CDC ACM serial state class notify. More...
 
struct  app_usbd_cdc_acm_req_t
 CDC ACM class specific request handled via control endpoint. More...
 
struct  cdc_rx_buffer_t
 CDC ACM rx transfer buffer. More...
 
struct  app_usbd_cdc_acm_ctx_t
 CDC ACM class context. More...
 

Macros

#define APP_USBD_CDC_ACM_DEFAULT_INTERVAL   0x10
 Default interval value for comm endpoint IN.
 
#define APP_USBD_CDC_ACM_CONFIG(iface_comm, epin_comm, iface_data, epin_data, epout_data)
 CDC ACM class configuration macro. More...
 
#define APP_USBD_CDC_ACM_INSTANCE_SPECIFIC_DEC   app_usbd_cdc_acm_inst_t inst;
 Specific class constant data for cdc_acm class. More...
 
#define APP_USBD_CDC_ACM_INST_CONFIG(user_event_handler,comm_ifc,comm_ein,data_ifc,data_ein,data_eout,cdc_protocol,ep_list)
 Configures cdc_acm class instance. More...
 
#define APP_USBD_CDC_ACM_DATA_SPECIFIC_DEC   app_usbd_cdc_acm_ctx_t ctx;
 Specific class data for cdc_acm class. More...
 
#define APP_USBD_CDC_ACM_DSC_CONFIG(interface_number,...)
 CDC ACM class descriptors config macro. More...
 
#define APP_USBD_CDC_ACM_GLOBAL_DEF_INTERNAL(instance_name,user_ev_handler,comm_ifc,data_ifc,comm_ein,data_ein,data_eout,cdc_protocol)
 Global definition of app_usbd_cdc_acm_t class. More...
 

Typedefs

typedef void(* app_usbd_cdc_acm_user_ev_handler_t )(app_usbd_class_inst_t const *p_inst, enum app_usbd_cdc_acm_user_event_e event)
 User event handler. More...
 

Functions

 APP_USBD_CLASS_FORWARD (app_usbd_cdc_acm)
 Forward declaration of type defined by APP_USBD_CLASS_TYPEDEF in cdc_acm class.
 

Variables

const app_usbd_class_methods_t app_usbd_cdc_acm_class_methods
 Public cdc_acm class interface.
 

Detailed Description

nRF52840 only: Internals of the USB ACM class implementation.

Macro Definition Documentation

#define APP_USBD_CDC_ACM_CONFIG (   iface_comm,
  epin_comm,
  iface_data,
  epin_data,
  epout_data 
)
Value:
((iface_comm, epin_comm), \
(iface_data, epin_data, epout_data))

CDC ACM class configuration macro.

Used by APP_USBD_CDC_ACM_GLOBAL_DEF

Parameters
iface_commInterface number of cdc_acm control.
epin_commCOMM subclass IN endpoint.
iface_dataInterface number of cdc_acm DATA.
epin_dataDATA subclass IN endpoint.
epout_dataDATA subclass OUT endpoint.
#define APP_USBD_CDC_ACM_DATA_SPECIFIC_DEC   app_usbd_cdc_acm_ctx_t ctx;

Specific class data for cdc_acm class.

app_usbd_cdc_acm_ctx_t

#define APP_USBD_CDC_ACM_DSC_CONFIG (   interface_number,
  ... 
)
Value:
{ \
APP_USBD_CDC_ACM_INTERFACE_DSC(interface_number, \
0, \
0, \
APP_USBD_CDC_ACM_SUBCLASS_CDC_ACMCONTROL) \
}

CDC ACM class descriptors config macro.

Parameters
interface_numberInterface number.
...Extracted endpoint list.
#define APP_USBD_CDC_ACM_GLOBAL_DEF_INTERNAL (   instance_name,
  user_ev_handler,
  comm_ifc,
  data_ifc,
  comm_ein,
  data_ein,
  data_eout,
  cdc_protocol 
)
Value:
static uint8_t CONCAT_2(instance_name, _ep) = { \
(APP_USBD_EXTRACT_INTERVAL_FLAG(comm_ein) ? APP_USBD_EXTRACT_INTERVAL_VALUE(comm_ein) \
APP_USBD_CLASS_INST_GLOBAL_DEF( \
instance_name, \
app_usbd_cdc_acm, \
APP_USBD_CDC_ACM_CONFIG(comm_ifc, comm_ein, data_ifc, data_ein, data_eout), \
(APP_USBD_CDC_ACM_INST_CONFIG(user_ev_handler, \
comm_ifc, \
comm_ein, \
data_ifc, \
data_ein, \
data_eout, \
cdc_protocol, \
&CONCAT_2(instance_name, _ep))) \
)

Global definition of app_usbd_cdc_acm_t class.

Parameters
instance_nameName of global instance.
user_ev_handlerUser event handler.
comm_ifcInterface number of cdc_acm control.
data_ifcInterface number of cdc_acm DATA.
comm_einCOMM subclass IN endpoint.
data_einDATA subclass IN endpoint.
data_eoutDATA subclass OUT endpoint.
cdc_protocolCDC protocol app_usbd_cdc_comm_protocol_t
#define APP_USBD_CDC_ACM_INST_CONFIG (   user_event_handler,
  comm_ifc,
  comm_ein,
  data_ifc,
  data_ein,
  data_eout,
  cdc_protocol,
  ep_list 
)
Value:
.inst = { \
.user_ev_handler = user_event_handler, \
.comm_interface = comm_ifc, \
.comm_epin = comm_ifc, \
.data_interface = data_ifc, \
.data_epin = data_ein, \
.data_epout = data_eout, \
.protocol = cdc_protocol, \
.p_ep_interval = ep_list \
}

Configures cdc_acm class instance.

Parameters
user_event_handlerUser event handler.
comm_ifcInterface number of cdc_acm control.
comm_einCOMM subclass IN endpoint.
data_ifcInterface number of cdc_acm DATA.
data_einDATA subclass IN endpoint.
data_eoutDATA subclass OUT endpoint.
cdc_protocolCDC protocol.
ep_listList of endpoints and intervals
#define APP_USBD_CDC_ACM_INSTANCE_SPECIFIC_DEC   app_usbd_cdc_acm_inst_t inst;

Specific class constant data for cdc_acm class.

app_usbd_cdc_acm_inst_t

Typedef Documentation

typedef void(* app_usbd_cdc_acm_user_ev_handler_t)(app_usbd_class_inst_t const *p_inst, enum app_usbd_cdc_acm_user_event_e event)

User event handler.

Parameters
[in]p_instClass instance.
[in]eventUser event.

Documentation feedback | Developer Zone | Subscribe | Updated