Go to the documentation of this file.
25 #ifndef HAL_SERIAL_USB_H
26 #define HAL_SERIAL_USB_H
28 #if (HAL_USE_SERIAL_USB == TRUE) || defined(__DOXYGEN__)
51 #if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__)
52 #define SERIAL_USB_BUFFERS_SIZE 256
59 #if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__)
60 #define SERIAL_USB_BUFFERS_NUMBER 2
68 #if HAL_USE_USB == FALSE
69 #error "Serial over USB Driver requires HAL_USE_USB"
119 #define _serial_usb_driver_data \
120 _base_asynchronous_channel_data \
124 input_buffers_queue_t ibqueue; \
126 output_buffers_queue_t obqueue; \
128 uint8_t ib[BQ_BUFFER_SIZE(SERIAL_USB_BUFFERS_NUMBER, \
129 SERIAL_USB_BUFFERS_SIZE)]; \
131 uint8_t ob[BQ_BUFFER_SIZE(SERIAL_USB_BUFFERS_NUMBER, \
132 SERIAL_USB_BUFFERS_SIZE)]; \
135 const SerialUSBConfig *config;
140 #define _serial_usb_driver_methods \
141 _base_asynchronous_channel_methods
usbep_t bulk_in
Bulk IN endpoint used for outgoing data transfer.
Structure representing an USB driver.
#define _serial_usb_driver_data
SerialDriver specific data.
void sduInit(void)
Serial Driver initialization.
bool sduRequestsHook(USBDriver *usbp)
Default requests hook.
void sduDataTransmitted(USBDriver *usbp, usbep_t ep)
Default data transmitted callback.
void sduInterruptTransmitted(USBDriver *usbp, usbep_t ep)
Default data received callback.
void sduSOFHookI(SerialUSBDriver *sdup)
SOF handler.
void sduWakeupHookI(SerialUSBDriver *sdup)
USB device wakeup handler.
void sduConfigureHookI(SerialUSBDriver *sdup)
USB device configured handler.
usbep_t bulk_out
Bulk OUT endpoint used for incoming data transfer.
void sduDataReceived(USBDriver *usbp, usbep_t ep)
Default data received callback.
sdustate_t
Driver state machine possible states.
USB CDC macros and structures.
void sduObjectInit(SerialUSBDriver *sdup)
Initializes a generic full duplex driver object.
#define _serial_usb_driver_methods
SerialUSBDriver specific methods.
void sduStart(SerialUSBDriver *sdup, const SerialUSBConfig *config)
Configures and starts the driver.
usbep_t int_in
Interrupt IN endpoint used for notifications.
const struct SerialUSBDriverVMT * vmt
Virtual Methods Table.
SerialDriver virtual methods table.
USBDriver * usbp
USB driver to use.
msg_t sduControl(USBDriver *usbp, unsigned int operation, void *arg)
Control operation on a serial USB port.
void sduSuspendHookI(SerialUSBDriver *sdup)
USB device suspend handler.
Full duplex serial driver class.
uint8_t usbep_t
Type of an endpoint identifier.
void sduStop(SerialUSBDriver *sdup)
Stops the driver.
Serial over USB Driver configuration structure.