use usbd_event_handler instead of usbd_configure_done_callback

This commit is contained in:
sakimisu
2023-06-21 21:26:25 +08:00
parent 822cd9d679
commit 340fa4e024
23 changed files with 512 additions and 74 deletions

View File

@@ -1301,7 +1301,6 @@ __WEAK void usbd_event_handler(uint8_t event)
case USBD_EVENT_SUSPEND: case USBD_EVENT_SUSPEND:
break; break;
case USBD_EVENT_CONFIGURED: case USBD_EVENT_CONFIGURED:
usbd_configure_done_callback();
break; break;
case USBD_EVENT_SET_REMOTE_WAKEUP: case USBD_EVENT_SET_REMOTE_WAKEUP:
break; break;

View File

@@ -88,7 +88,6 @@ void usbd_add_interface(struct usbd_interface *intf);
void usbd_add_endpoint(struct usbd_endpoint *ep); void usbd_add_endpoint(struct usbd_endpoint *ep);
bool usb_device_is_configured(void); bool usb_device_is_configured(void);
void usbd_configure_done_callback(void);
int usbd_initialize(void); int usbd_initialize(void);
int usbd_deinitialize(void); int usbd_deinitialize(void);

View File

@@ -145,19 +145,40 @@ const uint8_t audio_v1_descriptor[] = {
0x00 0x00
}; };
void usbd_configure_done_callback(void)
{
/* no out ep, do nothing */
}
volatile bool tx_flag = 0; volatile bool tx_flag = 0;
volatile bool ep_tx_busy_flag = false; volatile bool ep_tx_busy_flag = false;
void usbd_event_handler(uint8_t event)
{
switch (event) {
case USBD_EVENT_RESET:
break;
case USBD_EVENT_CONNECTED:
break;
case USBD_EVENT_DISCONNECTED:
break;
case USBD_EVENT_RESUME:
break;
case USBD_EVENT_SUSPEND:
break;
case USBD_EVENT_CONFIGURED:
break;
case USBD_EVENT_SET_REMOTE_WAKEUP:
break;
case USBD_EVENT_CLR_REMOTE_WAKEUP:
break;
default:
break;
}
}
void usbd_audio_open(uint8_t intf) void usbd_audio_open(uint8_t intf)
{ {
tx_flag = 1; tx_flag = 1;
USB_LOG_RAW("OPEN\r\n"); USB_LOG_RAW("OPEN\r\n");
} }
void usbd_audio_close(uint8_t intf) void usbd_audio_close(uint8_t intf)
{ {
USB_LOG_RAW("CLOSE\r\n"); USB_LOG_RAW("CLOSE\r\n");

View File

@@ -145,6 +145,32 @@ USB_NOCACHE_RAM_SECTION USB_MEM_ALIGNX uint8_t write_buffer[AUDIO_IN_PACKET];
volatile bool tx_flag = 0; volatile bool tx_flag = 0;
volatile bool rx_flag = 0; volatile bool rx_flag = 0;
volatile bool ep_tx_busy_flag = false;
void usbd_event_handler(uint8_t event)
{
switch (event) {
case USBD_EVENT_RESET:
break;
case USBD_EVENT_CONNECTED:
break;
case USBD_EVENT_DISCONNECTED:
break;
case USBD_EVENT_RESUME:
break;
case USBD_EVENT_SUSPEND:
break;
case USBD_EVENT_CONFIGURED:
break;
case USBD_EVENT_SET_REMOTE_WAKEUP:
break;
case USBD_EVENT_CLR_REMOTE_WAKEUP:
break;
default:
break;
}
}
void usbd_audio_open(uint8_t intf) void usbd_audio_open(uint8_t intf)
{ {
@@ -158,6 +184,7 @@ void usbd_audio_open(uint8_t intf)
printf("OPEN2\r\n"); printf("OPEN2\r\n");
} }
} }
void usbd_audio_close(uint8_t intf) void usbd_audio_close(uint8_t intf)
{ {
if (intf == 1) { if (intf == 1) {
@@ -169,12 +196,6 @@ void usbd_audio_close(uint8_t intf)
} }
} }
volatile bool ep_tx_busy_flag = false;
void usbd_configure_done_callback(void)
{
}
void usbd_audio_out_callback(uint8_t ep, uint32_t nbytes) void usbd_audio_out_callback(uint8_t ep, uint32_t nbytes)
{ {
USB_LOG_RAW("actual out len:%d\r\n", nbytes); USB_LOG_RAW("actual out len:%d\r\n", nbytes);

View File

@@ -159,11 +159,37 @@ static const uint8_t mic_default_sampling_freq_table[] = {
volatile bool tx_flag = 0; volatile bool tx_flag = 0;
void usbd_event_handler(uint8_t event)
{
switch (event) {
case USBD_EVENT_RESET:
break;
case USBD_EVENT_CONNECTED:
break;
case USBD_EVENT_DISCONNECTED:
break;
case USBD_EVENT_RESUME:
break;
case USBD_EVENT_SUSPEND:
break;
case USBD_EVENT_CONFIGURED:
break;
case USBD_EVENT_SET_REMOTE_WAKEUP:
break;
case USBD_EVENT_CLR_REMOTE_WAKEUP:
break;
default:
break;
}
}
void usbd_audio_open(uint8_t intf) void usbd_audio_open(uint8_t intf)
{ {
tx_flag = 1; tx_flag = 1;
USB_LOG_RAW("OPEN\r\n"); USB_LOG_RAW("OPEN\r\n");
} }
void usbd_audio_close(uint8_t intf) void usbd_audio_close(uint8_t intf)
{ {
USB_LOG_RAW("CLOSE\r\n"); USB_LOG_RAW("CLOSE\r\n");
@@ -177,11 +203,6 @@ void usbd_audio_get_sampling_freq_table(uint8_t ep, uint8_t **sampling_freq_tabl
} }
} }
void usbd_configure_done_callback(void)
{
/* no out ep, do nothing */
}
void usbd_audio_iso_in_callback(uint8_t ep, uint32_t nbytes) void usbd_audio_iso_in_callback(uint8_t ep, uint32_t nbytes)
{ {
} }

View File

@@ -229,6 +229,31 @@ USB_NOCACHE_RAM_SECTION USB_MEM_ALIGNX uint8_t write_buffer[AUDIO_IN_PACKET];
volatile bool tx_flag = 0; volatile bool tx_flag = 0;
volatile bool rx_flag = 0; volatile bool rx_flag = 0;
void usbd_event_handler(uint8_t event)
{
switch (event) {
case USBD_EVENT_RESET:
break;
case USBD_EVENT_CONNECTED:
break;
case USBD_EVENT_DISCONNECTED:
break;
case USBD_EVENT_RESUME:
break;
case USBD_EVENT_SUSPEND:
break;
case USBD_EVENT_CONFIGURED:
break;
case USBD_EVENT_SET_REMOTE_WAKEUP:
break;
case USBD_EVENT_CLR_REMOTE_WAKEUP:
break;
default:
break;
}
}
void usbd_audio_open(uint8_t intf) void usbd_audio_open(uint8_t intf)
{ {
if (intf == 1) { if (intf == 1) {
@@ -241,6 +266,7 @@ void usbd_audio_open(uint8_t intf)
USB_LOG_RAW("OPEN2\r\n"); USB_LOG_RAW("OPEN2\r\n");
} }
} }
void usbd_audio_close(uint8_t intf) void usbd_audio_close(uint8_t intf)
{ {
if (intf == 1) { if (intf == 1) {
@@ -276,10 +302,6 @@ void usbd_audio_set_sampling_freq(uint8_t ep, uint32_t sampling_freq)
} }
} }
void usbd_configure_done_callback(void)
{
}
void usbd_audio_iso_out_callback(uint8_t ep, uint32_t nbytes) void usbd_audio_iso_out_callback(uint8_t ep, uint32_t nbytes)
{ {
USB_LOG_RAW("actual out len:%d\r\n", nbytes); USB_LOG_RAW("actual out len:%d\r\n", nbytes);

View File

@@ -173,6 +173,31 @@ USB_NOCACHE_RAM_SECTION USB_MEM_ALIGNX uint8_t read_buffer[AUDIO_OUT_PACKET];
volatile bool rx_flag = 0; volatile bool rx_flag = 0;
void usbd_event_handler(uint8_t event)
{
switch (event) {
case USBD_EVENT_RESET:
break;
case USBD_EVENT_CONNECTED:
break;
case USBD_EVENT_DISCONNECTED:
break;
case USBD_EVENT_RESUME:
break;
case USBD_EVENT_SUSPEND:
break;
case USBD_EVENT_CONFIGURED:
break;
case USBD_EVENT_SET_REMOTE_WAKEUP:
break;
case USBD_EVENT_CLR_REMOTE_WAKEUP:
break;
default:
break;
}
}
void usbd_audio_open(uint8_t intf) void usbd_audio_open(uint8_t intf)
{ {
rx_flag = 1; rx_flag = 1;
@@ -180,6 +205,7 @@ void usbd_audio_open(uint8_t intf)
usbd_ep_start_read(AUDIO_OUT_EP, read_buffer, AUDIO_OUT_PACKET); usbd_ep_start_read(AUDIO_OUT_EP, read_buffer, AUDIO_OUT_PACKET);
USB_LOG_RAW("OPEN\r\n"); USB_LOG_RAW("OPEN\r\n");
} }
void usbd_audio_close(uint8_t intf) void usbd_audio_close(uint8_t intf)
{ {
USB_LOG_RAW("CLOSE\r\n"); USB_LOG_RAW("CLOSE\r\n");
@@ -193,10 +219,6 @@ void usbd_audio_get_sampling_freq_table(uint8_t ep, uint8_t **sampling_freq_tabl
} }
} }
void usbd_configure_done_callback(void)
{
}
void usbd_audio_iso_out_callback(uint8_t ep, uint32_t nbytes) void usbd_audio_iso_out_callback(uint8_t ep, uint32_t nbytes)
{ {
USB_LOG_RAW("actual out len:%d\r\n", nbytes); USB_LOG_RAW("actual out len:%d\r\n", nbytes);

View File

@@ -238,10 +238,31 @@ volatile bool ep_tx_busy_flag = false;
#define CDC_MAX_MPS 64 #define CDC_MAX_MPS 64
#endif #endif
void usbd_configure_done_callback(void) void usbd_event_handler(uint8_t event)
{ {
/* setup first out ep read transfer */ switch (event) {
usbd_ep_start_read(CDC_OUT_EP, read_buffer, 2048); case USBD_EVENT_RESET:
break;
case USBD_EVENT_CONNECTED:
break;
case USBD_EVENT_DISCONNECTED:
break;
case USBD_EVENT_RESUME:
break;
case USBD_EVENT_SUSPEND:
break;
case USBD_EVENT_CONFIGURED:
/* setup first out ep read transfer */
usbd_ep_start_read(CDC_OUT_EP, read_buffer, 2048);
break;
case USBD_EVENT_SET_REMOTE_WAKEUP:
break;
case USBD_EVENT_CLR_REMOTE_WAKEUP:
break;
default:
break;
}
} }
void usbd_cdc_acm_bulk_out(uint8_t ep, uint32_t nbytes) void usbd_cdc_acm_bulk_out(uint8_t ep, uint32_t nbytes)

View File

@@ -121,10 +121,31 @@ volatile bool ep_tx_busy_flag = false;
#define CDC_MAX_MPS 64 #define CDC_MAX_MPS 64
#endif #endif
void usbd_configure_done_callback(void) void usbd_event_handler(uint8_t event)
{ {
/* setup first out ep read transfer */ switch (event) {
usbd_ep_start_read(CDC_OUT_EP, read_buffer, 2048); case USBD_EVENT_RESET:
break;
case USBD_EVENT_CONNECTED:
break;
case USBD_EVENT_DISCONNECTED:
break;
case USBD_EVENT_RESUME:
break;
case USBD_EVENT_SUSPEND:
break;
case USBD_EVENT_CONFIGURED:
/* setup first out ep read transfer */
usbd_ep_start_read(CDC_OUT_EP, read_buffer, 2048);
break;
case USBD_EVENT_SET_REMOTE_WAKEUP:
break;
case USBD_EVENT_CLR_REMOTE_WAKEUP:
break;
default:
break;
}
} }
void usbd_cdc_acm_bulk_out(uint8_t ep, uint32_t nbytes) void usbd_cdc_acm_bulk_out(uint8_t ep, uint32_t nbytes)

View File

@@ -125,13 +125,34 @@ volatile bool ep_tx_busy_flag = false;
#define CDC_MAX_MPS 64 #define CDC_MAX_MPS 64
#endif #endif
void usbd_configure_done_callback(void) void usbd_event_handler(uint8_t event)
{ {
/* setup first out ep read transfer */ switch (event) {
usbd_ep_start_read(CDC_OUT_EP, read_buffer, 2048); case USBD_EVENT_RESET:
usbd_ep_start_read(CDC_OUT_EP2, read_buffer, 2048); break;
usbd_ep_start_read(CDC_OUT_EP3, read_buffer, 2048); case USBD_EVENT_CONNECTED:
usbd_ep_start_read(CDC_OUT_EP4, read_buffer, 2048); break;
case USBD_EVENT_DISCONNECTED:
break;
case USBD_EVENT_RESUME:
break;
case USBD_EVENT_SUSPEND:
break;
case USBD_EVENT_CONFIGURED:
/* setup first out ep read transfer */
usbd_ep_start_read(CDC_OUT_EP, read_buffer, 2048);
usbd_ep_start_read(CDC_OUT_EP2, read_buffer, 2048);
usbd_ep_start_read(CDC_OUT_EP3, read_buffer, 2048);
usbd_ep_start_read(CDC_OUT_EP4, read_buffer, 2048);
break;
case USBD_EVENT_SET_REMOTE_WAKEUP:
break;
case USBD_EVENT_CLR_REMOTE_WAKEUP:
break;
default:
break;
}
} }
void usbd_cdc_acm_bulk_out(uint8_t ep, uint32_t nbytes) void usbd_cdc_acm_bulk_out(uint8_t ep, uint32_t nbytes)

View File

@@ -110,10 +110,31 @@ volatile bool ep_tx_busy_flag = false;
#define CDC_MAX_MPS 64 #define CDC_MAX_MPS 64
#endif #endif
void usbd_configure_done_callback(void) void usbd_event_handler(uint8_t event)
{ {
/* setup first out ep read transfer */ switch (event) {
usbd_ep_start_read(CDC_OUT_EP, read_buffer, 2048); case USBD_EVENT_RESET:
break;
case USBD_EVENT_CONNECTED:
break;
case USBD_EVENT_DISCONNECTED:
break;
case USBD_EVENT_RESUME:
break;
case USBD_EVENT_SUSPEND:
break;
case USBD_EVENT_CONFIGURED:
/* setup first out ep read transfer */
usbd_ep_start_read(CDC_OUT_EP, read_buffer, 2048);
break;
case USBD_EVENT_SET_REMOTE_WAKEUP:
break;
case USBD_EVENT_CLR_REMOTE_WAKEUP:
break;
default:
break;
}
} }
void usbd_cdc_acm_bulk_out(uint8_t ep, uint32_t nbytes) void usbd_cdc_acm_bulk_out(uint8_t ep, uint32_t nbytes)

View File

@@ -110,11 +110,6 @@ const uint8_t mac[6] = { 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff };
struct eth_device rndis_dev; struct eth_device rndis_dev;
void usbd_configure_done_callback(void)
{
eth_device_linkchange(&rndis_dev, RT_TRUE);
}
static rt_err_t rt_usbd_rndis_control(rt_device_t dev, int cmd, void *args) static rt_err_t rt_usbd_rndis_control(rt_device_t dev, int cmd, void *args)
{ {
switch (cmd) { switch (cmd) {
@@ -161,10 +156,6 @@ void rt_usbd_rndis_init(void)
eth_device_linkchange(&rndis_dev, RT_FALSE); eth_device_linkchange(&rndis_dev, RT_FALSE);
} }
#else #else
void usbd_configure_done_callback(void)
{
}
#include "lwip/err.h" #include "lwip/err.h"
#include "lwip/netif.h" #include "lwip/netif.h"
#include "netif/ethernet.h" #include "netif/ethernet.h"
@@ -260,6 +251,34 @@ void rndis_input_poll(void)
} }
#endif /* RT_USING_LWIP */ #endif /* RT_USING_LWIP */
void usbd_event_handler(uint8_t event)
{
switch (event) {
case USBD_EVENT_RESET:
break;
case USBD_EVENT_CONNECTED:
break;
case USBD_EVENT_DISCONNECTED:
break;
case USBD_EVENT_RESUME:
break;
case USBD_EVENT_SUSPEND:
break;
case USBD_EVENT_CONFIGURED:
#ifdef RT_USING_LWIP
eth_device_linkchange(&rndis_dev, RT_TRUE);
#endif
break;
case USBD_EVENT_SET_REMOTE_WAKEUP:
break;
case USBD_EVENT_CLR_REMOTE_WAKEUP:
break;
default:
break;
}
}
struct usbd_interface intf0; struct usbd_interface intf0;
struct usbd_interface intf1; struct usbd_interface intf1;

View File

@@ -192,11 +192,32 @@ USB_NOCACHE_RAM_SECTION USB_MEM_ALIGNX uint8_t USB_Response[DAP_PACKET_SIZE];
volatile bool ep_tx_busy_flag = false; volatile bool ep_tx_busy_flag = false;
void usbd_configure_done_callback(void) void usbd_event_handler(uint8_t event)
{ {
/* setup first out ep read transfer */ switch (event) {
usbd_ep_start_read(CDC_OUT_EP, cdc_read_buffer, CDC_MAX_MPS); case USBD_EVENT_RESET:
usbd_ep_start_read(DAP_OUT_EP, USB_Request, DAP_PACKET_SIZE); break;
case USBD_EVENT_CONNECTED:
break;
case USBD_EVENT_DISCONNECTED:
break;
case USBD_EVENT_RESUME:
break;
case USBD_EVENT_SUSPEND:
break;
case USBD_EVENT_CONFIGURED:
/* setup first out ep read transfer */
usbd_ep_start_read(CDC_OUT_EP, cdc_read_buffer, CDC_MAX_MPS);
usbd_ep_start_read(DAP_OUT_EP, USB_Request, DAP_PACKET_SIZE);
break;
case USBD_EVENT_SET_REMOTE_WAKEUP:
break;
case USBD_EVENT_CLR_REMOTE_WAKEUP:
break;
default:
break;
}
} }
void usbd_cdc_acm_bulk_out(uint8_t ep, uint32_t nbytes) void usbd_cdc_acm_bulk_out(uint8_t ep, uint32_t nbytes)

View File

@@ -137,9 +137,29 @@ const uint8_t dfu_flash_descriptor[] = {
0x00 0x00
}; };
void usbd_configure_done_callback(void) void usbd_event_handler(uint8_t event)
{ {
/* no out ep, do nothing */ switch (event) {
case USBD_EVENT_RESET:
break;
case USBD_EVENT_CONNECTED:
break;
case USBD_EVENT_DISCONNECTED:
break;
case USBD_EVENT_RESUME:
break;
case USBD_EVENT_SUSPEND:
break;
case USBD_EVENT_CONFIGURED:
break;
case USBD_EVENT_SET_REMOTE_WAKEUP:
break;
case USBD_EVENT_CLR_REMOTE_WAKEUP:
break;
default:
break;
}
} }
struct usbd_interface intf0; struct usbd_interface intf0;

View File

@@ -167,10 +167,31 @@ USB_NOCACHE_RAM_SECTION USB_MEM_ALIGNX uint8_t write_buffer[64];
/*!< hid state ! Data can be sent only when state is idle */ /*!< hid state ! Data can be sent only when state is idle */
static volatile uint8_t custom_state = HID_STATE_IDLE; static volatile uint8_t custom_state = HID_STATE_IDLE;
void usbd_configure_done_callback(void) void usbd_event_handler(uint8_t event)
{ {
/* setup first out ep read transfer */ switch (event) {
usbd_ep_start_read(HIDRAW_OUT_EP, read_buffer, 64); case USBD_EVENT_RESET:
break;
case USBD_EVENT_CONNECTED:
break;
case USBD_EVENT_DISCONNECTED:
break;
case USBD_EVENT_RESUME:
break;
case USBD_EVENT_SUSPEND:
break;
case USBD_EVENT_CONFIGURED:
/* setup first out ep read transfer */
usbd_ep_start_read(HIDRAW_OUT_EP, read_buffer, 64);
break;
case USBD_EVENT_SET_REMOTE_WAKEUP:
break;
case USBD_EVENT_CLR_REMOTE_WAKEUP:
break;
default:
break;
}
} }
static void usbd_hid_custom_in_callback(uint8_t ep, uint32_t nbytes) static void usbd_hid_custom_in_callback(uint8_t ep, uint32_t nbytes)

View File

@@ -172,9 +172,29 @@ static const uint8_t hid_keyboard_report_desc[HID_KEYBOARD_REPORT_DESC_SIZE] = {
0xc0 // END_COLLECTION 0xc0 // END_COLLECTION
}; };
void usbd_configure_done_callback(void) void usbd_event_handler(uint8_t event)
{ {
/* no out ep, do nothing */ switch (event) {
case USBD_EVENT_RESET:
break;
case USBD_EVENT_CONNECTED:
break;
case USBD_EVENT_DISCONNECTED:
break;
case USBD_EVENT_RESUME:
break;
case USBD_EVENT_SUSPEND:
break;
case USBD_EVENT_CONFIGURED:
break;
case USBD_EVENT_SET_REMOTE_WAKEUP:
break;
case USBD_EVENT_CLR_REMOTE_WAKEUP:
break;
default:
break;
}
} }
#define HID_STATE_IDLE 0 #define HID_STATE_IDLE 0

View File

@@ -194,9 +194,29 @@ static USB_NOCACHE_RAM_SECTION USB_MEM_ALIGNX struct hid_mouse mouse_cfg;
/*!< hid state ! Data can be sent only when state is idle */ /*!< hid state ! Data can be sent only when state is idle */
static volatile uint8_t hid_state = HID_STATE_IDLE; static volatile uint8_t hid_state = HID_STATE_IDLE;
void usbd_configure_done_callback(void) void usbd_event_handler(uint8_t event)
{ {
/* no out ep, do nothing */ switch (event) {
case USBD_EVENT_RESET:
break;
case USBD_EVENT_CONNECTED:
break;
case USBD_EVENT_DISCONNECTED:
break;
case USBD_EVENT_RESUME:
break;
case USBD_EVENT_SUSPEND:
break;
case USBD_EVENT_CONFIGURED:
break;
case USBD_EVENT_SET_REMOTE_WAKEUP:
break;
case USBD_EVENT_CLR_REMOTE_WAKEUP:
break;
default:
break;
}
} }
/* function ------------------------------------------------------------------*/ /* function ------------------------------------------------------------------*/

View File

@@ -146,6 +146,31 @@ const uint8_t midi_descriptor[] = {
0x00 0x00
}; };
void usbd_event_handler(uint8_t event)
{
switch (event) {
case USBD_EVENT_RESET:
break;
case USBD_EVENT_CONNECTED:
break;
case USBD_EVENT_DISCONNECTED:
break;
case USBD_EVENT_RESUME:
break;
case USBD_EVENT_SUSPEND:
break;
case USBD_EVENT_CONFIGURED:
break;
case USBD_EVENT_SET_REMOTE_WAKEUP:
break;
case USBD_EVENT_CLR_REMOTE_WAKEUP:
break;
default:
break;
}
}
void usbd_midi_bulk_out(uint8_t ep, uint32_t nbytes) void usbd_midi_bulk_out(uint8_t ep, uint32_t nbytes)
{ {
} }

View File

@@ -95,9 +95,29 @@ const uint8_t msc_ram_descriptor[] = {
0x00 0x00
}; };
void usbd_configure_done_callback(void) void usbd_event_handler(uint8_t event)
{ {
/* do nothing */ switch (event) {
case USBD_EVENT_RESET:
break;
case USBD_EVENT_CONNECTED:
break;
case USBD_EVENT_DISCONNECTED:
break;
case USBD_EVENT_RESUME:
break;
case USBD_EVENT_SUSPEND:
break;
case USBD_EVENT_CONFIGURED:
break;
case USBD_EVENT_SET_REMOTE_WAKEUP:
break;
case USBD_EVENT_CLR_REMOTE_WAKEUP:
break;
default:
break;
}
} }
#define BLOCK_SIZE 512 #define BLOCK_SIZE 512

View File

@@ -151,8 +151,29 @@ const uint8_t bos_descriptor[] = {
0x0a, 0x10, 0x03, 0x00, 0x0f, 0x00, 0x01, 0x01, 0xf4, 0x01 0x0a, 0x10, 0x03, 0x00, 0x0f, 0x00, 0x01, 0x01, 0xf4, 0x01
}; };
void usbd_configure_done_callback(void) void usbd_event_handler(uint8_t event)
{ {
switch (event) {
case USBD_EVENT_RESET:
break;
case USBD_EVENT_CONNECTED:
break;
case USBD_EVENT_DISCONNECTED:
break;
case USBD_EVENT_RESUME:
break;
case USBD_EVENT_SUSPEND:
break;
case USBD_EVENT_CONFIGURED:
break;
case USBD_EVENT_SET_REMOTE_WAKEUP:
break;
case USBD_EVENT_CLR_REMOTE_WAKEUP:
break;
default:
break;
}
} }
struct usbd_interface intf0; struct usbd_interface intf0;

View File

@@ -101,10 +101,31 @@ static const uint8_t printer_descriptor[] = {
USB_NOCACHE_RAM_SECTION USB_MEM_ALIGNX uint8_t read_buffer[PRINTER_OUT_EP_SIZE]; USB_NOCACHE_RAM_SECTION USB_MEM_ALIGNX uint8_t read_buffer[PRINTER_OUT_EP_SIZE];
USB_NOCACHE_RAM_SECTION USB_MEM_ALIGNX uint8_t write_buffer[PRINTER_IN_EP_SIZE]; USB_NOCACHE_RAM_SECTION USB_MEM_ALIGNX uint8_t write_buffer[PRINTER_IN_EP_SIZE];
void usbd_configure_done_callback(void) void usbd_event_handler(uint8_t event)
{ {
/* setup first out ep read transfer */ switch (event) {
usbd_ep_start_read(PRINTER_OUT_EP, read_buffer, PRINTER_OUT_EP_SIZE); case USBD_EVENT_RESET:
break;
case USBD_EVENT_CONNECTED:
break;
case USBD_EVENT_DISCONNECTED:
break;
case USBD_EVENT_RESUME:
break;
case USBD_EVENT_SUSPEND:
break;
case USBD_EVENT_CONFIGURED:
/* setup first out ep read transfer */
usbd_ep_start_read(PRINTER_OUT_EP, read_buffer, PRINTER_OUT_EP_SIZE);
break;
case USBD_EVENT_SET_REMOTE_WAKEUP:
break;
case USBD_EVENT_CLR_REMOTE_WAKEUP:
break;
default:
break;
}
} }
void usbd_printer_bulk_out(uint8_t ep, uint32_t nbytes) void usbd_printer_bulk_out(uint8_t ep, uint32_t nbytes)

View File

@@ -141,9 +141,29 @@ const uint8_t video_descriptor[] = {
0x00 0x00
}; };
void usbd_configure_done_callback(void) void usbd_event_handler(uint8_t event)
{ {
/* no out ep, so do nothing */ switch (event) {
case USBD_EVENT_RESET:
break;
case USBD_EVENT_CONNECTED:
break;
case USBD_EVENT_DISCONNECTED:
break;
case USBD_EVENT_RESUME:
break;
case USBD_EVENT_SUSPEND:
break;
case USBD_EVENT_CONFIGURED:
break;
case USBD_EVENT_SET_REMOTE_WAKEUP:
break;
case USBD_EVENT_CLR_REMOTE_WAKEUP:
break;
default:
break;
}
} }
volatile bool tx_flag = 0; volatile bool tx_flag = 0;

View File

@@ -187,10 +187,31 @@ USB_NOCACHE_RAM_SECTION USB_MEM_ALIGNX uint8_t write_buffer[2048];
volatile bool ep_tx_busy_flag = false; volatile bool ep_tx_busy_flag = false;
void usbd_configure_done_callback(void) void usbd_event_handler(uint8_t event)
{ {
/* setup first out ep read transfer */ switch (event) {
usbd_ep_start_read(WINUSB_OUT_EP, read_buffer, 2048); case USBD_EVENT_RESET:
break;
case USBD_EVENT_CONNECTED:
break;
case USBD_EVENT_DISCONNECTED:
break;
case USBD_EVENT_RESUME:
break;
case USBD_EVENT_SUSPEND:
break;
case USBD_EVENT_CONFIGURED:
/* setup first out ep read transfer */
usbd_ep_start_read(WINUSB_OUT_EP, read_buffer, 2048);
break;
case USBD_EVENT_SET_REMOTE_WAKEUP:
break;
case USBD_EVENT_CLR_REMOTE_WAKEUP:
break;
default:
break;
}
} }
void usbd_winusb_out(uint8_t ep, uint32_t nbytes) void usbd_winusb_out(uint8_t ep, uint32_t nbytes)