7#include "UsbDeviceCdcCom.h"
10#define USB_WRITE_TIMEOUT 10000
13#define USB_FIFO_BUFFER_SIZE (BLOCKING_FACTOR + 30)
18 uint8_t
buffer[USB_FIFO_BUFFER_SIZE];
20 input_queue_t fifoRxQueue;
34 for (
int i = 0; i < u32ReceviedSize; i++) {
35 if (iqPutI(&
usbBuf.fifoRxQueue, *pu8Data++) != Q_OK) {
42 if (threadrx != NULL) {
43 osalThreadResumeI(&threadrx, MSG_OK);
47 osalSysUnlockFromISR();
51static msg_t
_putt(
void *ip, uint8_t b, sysinterval_t timeout) {
54 UsbDeviceCdcCom_SendByte(b);
57static size_t _writet(
void *ip,
const uint8_t *bp,
size_t n, sysinterval_t timeout) {
60 UsbDeviceCdcCom_SendBuffer((uint8_t *)bp, n);
63static msg_t
_put(
void *ip, uint8_t b) {
65 UsbDeviceCdcCom_SendByte(b);
68static size_t _write(
void *ip,
const uint8_t *bp,
size_t n) {
69 return _writet(ip, bp, n, USB_WRITE_TIMEOUT);
71static size_t _readt(
void *ip, uint8_t *bp,
size_t n, sysinterval_t timeout) {
74 return (
size_t)iqReadTimeout(&
usbBuf.fifoRxQueue, bp, n, timeout);
87static msg_t
_gett(
void *ip, sysinterval_t timeout) {
92 if (
_readt(ip, &b, 1, timeout) == 1)
96static msg_t
_get(
void *ip) {
97 return _gett(ip, USB_WRITE_TIMEOUT);
99static size_t _read(
void *ip, uint8_t *bp,
size_t n) {
101 return _readt(ip, bp, n, USB_WRITE_TIMEOUT);
103static msg_t
_ctl(
void *ip,
unsigned int operation,
void *arg) {
144 SetPinFunc_INT31_0(0u);
static bool write(void *, uint32_t, const uint8_t *, uint32_t)
static bool read(void *instance, uint32_t startblk, uint8_t *buffer, uint32_t)
static size_t _writet(void *ip, const uint8_t *bp, size_t n, sysinterval_t timeout)
static void onUsbDataReceived(uint8_t *pu8Data, uint32_t u32ReceviedSize)
static msg_t _get(void *ip)
static msg_t _gett(void *ip, sysinterval_t timeout)
static msg_t _ctl(void *ip, unsigned int operation, void *arg)
static msg_t _put(void *ip, uint8_t b)
static size_t _write(void *ip, const uint8_t *bp, size_t n)
static msg_t _putt(void *ip, uint8_t b, sysinterval_t timeout)
static bool isUsbSerialInitialized
static size_t _readt(void *ip, uint8_t *bp, size_t n, sysinterval_t timeout)
static void usb_VBus_handler(uint8_t channel)
static size_t _read(void *ip, uint8_t *bp, size_t n)
bool is_usb_serial_ready()
void usb_serial_start(void)
Main function of PDL.
static bool isUsbSerialInitStarted
static const struct BaseChannelVMT usbChannelVmt
static BigBufferHandle buffer
void UsbConfig_UsbInit(void)
Initialize USB.
void UsbConfig_SwitchMode(void)
Switch USB mode (dummy if USB is disabled)