add usbd init and deinit event macro
This commit is contained in:
@@ -85,6 +85,28 @@ static int msc_storage_class_interface_request_handler(struct usb_setup_packet *
|
|||||||
void msc_storage_notify_handler(uint8_t event, void *arg)
|
void msc_storage_notify_handler(uint8_t event, void *arg)
|
||||||
{
|
{
|
||||||
switch (event) {
|
switch (event) {
|
||||||
|
case USBD_EVENT_INIT:
|
||||||
|
#ifdef CONFIG_USBDEV_MSC_THREAD
|
||||||
|
g_usbd_msc.usbd_msc_mq = usb_osal_mq_create(1);
|
||||||
|
if (g_usbd_msc.usbd_msc_mq == NULL) {
|
||||||
|
USB_LOG_ERR("No memory to alloc for g_usbd_msc.usbd_msc_mq\r\n");
|
||||||
|
}
|
||||||
|
g_usbd_msc.usbd_msc_thread = usb_osal_thread_create("usbd_msc", CONFIG_USBDEV_MSC_STACKSIZE, CONFIG_USBDEV_MSC_PRIO, usbdev_msc_thread, NULL);
|
||||||
|
if (g_usbd_msc.usbd_msc_thread == NULL) {
|
||||||
|
USB_LOG_ERR("No memory to alloc for g_usbd_msc.usbd_msc_thread\r\n");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
case USBD_EVENT_DEINIT:
|
||||||
|
#ifdef CONFIG_USBDEV_MSC_THREAD
|
||||||
|
if (g_usbd_msc.usbd_msc_mq) {
|
||||||
|
usb_osal_mq_delete(g_usbd_msc.usbd_msc_mq);
|
||||||
|
}
|
||||||
|
if (g_usbd_msc.usbd_msc_thread) {
|
||||||
|
usb_osal_thread_delete(g_usbd_msc.usbd_msc_thread);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
case USBD_EVENT_RESET:
|
case USBD_EVENT_RESET:
|
||||||
usbd_msc_reset();
|
usbd_msc_reset();
|
||||||
break;
|
break;
|
||||||
@@ -888,16 +910,6 @@ struct usbd_interface *usbd_msc_init_intf(struct usbd_interface *intf, const uin
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_USBDEV_MSC_THREAD
|
|
||||||
g_usbd_msc.usbd_msc_mq = usb_osal_mq_create(1);
|
|
||||||
if (g_usbd_msc.usbd_msc_mq == NULL) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
g_usbd_msc.usbd_msc_thread = usb_osal_thread_create("usbd_msc", CONFIG_USBDEV_MSC_STACKSIZE, CONFIG_USBDEV_MSC_PRIO, usbdev_msc_thread, NULL);
|
|
||||||
if (g_usbd_msc.usbd_msc_thread == NULL) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
return intf;
|
return intf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1202,19 +1202,28 @@ bool usb_device_is_configured(void)
|
|||||||
|
|
||||||
int usbd_initialize(void)
|
int usbd_initialize(void)
|
||||||
{
|
{
|
||||||
return usb_dc_init();
|
int ret;
|
||||||
|
|
||||||
|
ret = usb_dc_init();
|
||||||
|
usbd_class_event_notify_handler(USBD_EVENT_INIT, NULL);
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int usbd_deinitialize(void)
|
int usbd_deinitialize(void)
|
||||||
{
|
{
|
||||||
g_usbd_core.intf_offset = 0;
|
g_usbd_core.intf_offset = 0;
|
||||||
usb_dc_deinit();
|
usb_dc_deinit();
|
||||||
|
usbd_class_event_notify_handler(USBD_EVENT_DEINIT, NULL);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
__WEAK void usbd_event_handler(uint8_t event)
|
__WEAK void usbd_event_handler(uint8_t event)
|
||||||
{
|
{
|
||||||
switch (event) {
|
switch (event) {
|
||||||
|
case USBD_EVENT_INIT:
|
||||||
|
break;
|
||||||
|
case USBD_EVENT_DEINIT:
|
||||||
|
break;
|
||||||
case USBD_EVENT_RESET:
|
case USBD_EVENT_RESET:
|
||||||
break;
|
break;
|
||||||
case USBD_EVENT_CONNECTED:
|
case USBD_EVENT_CONNECTED:
|
||||||
|
|||||||
@@ -38,6 +38,8 @@ enum usbd_event_type {
|
|||||||
USBD_EVENT_SET_INTERFACE, /** USB interface selected */
|
USBD_EVENT_SET_INTERFACE, /** USB interface selected */
|
||||||
USBD_EVENT_SET_REMOTE_WAKEUP, /** USB set remote wakeup */
|
USBD_EVENT_SET_REMOTE_WAKEUP, /** USB set remote wakeup */
|
||||||
USBD_EVENT_CLR_REMOTE_WAKEUP, /** USB clear remote wakeup */
|
USBD_EVENT_CLR_REMOTE_WAKEUP, /** USB clear remote wakeup */
|
||||||
|
USBD_EVENT_INIT, /** USB init done when call usbd_initialize */
|
||||||
|
USBD_EVENT_DEINIT, /** USB deinit done when call usbd_deinitialize */
|
||||||
USBD_EVENT_UNKNOWN
|
USBD_EVENT_UNKNOWN
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user