/* * Handles the USB driver global events. */ static void usb_event(USBDriver *usbp, usbevent_t event) { uint8_t ep; switch (event) { case USB_EVENT_RESET: return; case USB_EVENT_ADDRESS: return; case USB_EVENT_CONFIGURED: chSysLockFromIsr(); for (ep = 1; ep < 10; ep++) { // Make sure the endpoint are initialized from 1 to 9 if (ep == CDC1_NOTIFICATION_EPADDR) usbInitEndpointI(usbp, CDC1_NOTIFICATION_EPADDR, &cdc1_ep_int_config); if (ep == CDC1_TX_EPADDR) usbInitEndpointI(usbp, CDC1_TX_EPADDR, &cdc1_ep_in_config); if (ep == CDC1_RX_EPADDR) usbInitEndpointI(usbp, CDC1_RX_EPADDR, &cdc1_ep_out_config); if (ep == CDC2_NOTIFICATION_EPADDR) usbInitEndpointI(usbp, CDC2_NOTIFICATION_EPADDR, &cdc2_ep_int_config); if (ep == CDC2_TX_EPADDR) usbInitEndpointI(usbp, CDC2_TX_EPADDR, &cdc2_ep_in_config); if (ep == CDC2_RX_EPADDR) usbInitEndpointI(usbp, CDC2_RX_EPADDR, &cdc2_ep_out_config); #if HAL_USE_MSD if (ep == MASS_STORAGE_IN_EPADDR) usbInitEndpointI(usbp, MASS_STORAGE_IN_EPADDR, &ms_ep_in_config); if (ep == MASS_STORAGE_OUT_EPADDR) usbInitEndpointI(usbp, MASS_STORAGE_OUT_EPADDR, &ms_ep_out_config); #endif } /* Resetting the state of the CDC subsystem.*/ sduConfigureHookI(usbp); #if HAL_USE_MSD msdConfigureHookI(usbp); #endif chSysUnlockFromIsr(); return; case USB_EVENT_SUSPEND: #if HAL_USE_MSD msdSuspendHookI(usbp); #endif return; case USB_EVENT_WAKEUP: return; case USB_EVENT_STALLED: return; } return; }
/* Handles global events of the USB driver */ static void usbEvent(USBDriver* usbp, usbevent_t event) { switch (event) { case USB_EVENT_CONFIGURED: chSysLockFromIsr(); // usbInitEndpointI(usbp, USB_MS_DATA_EP, &ep_data_config); msdConfigureHookI(&UMSD1); chSysUnlockFromIsr(); break; case USB_EVENT_RESET: case USB_EVENT_ADDRESS: case USB_EVENT_SUSPEND: case USB_EVENT_WAKEUP: case USB_EVENT_STALLED: default: break; } }
/* Handles global events of the USB driver */ static void usbEvent(USBDriver* usbp, usbevent_t event) { (void) usbp; switch (event) { case USB_EVENT_CONFIGURED: chSysLockFromIsr(); msdConfigureHookI(&UMSD1); chSysUnlockFromIsr(); break; case USB_EVENT_RESET: case USB_EVENT_ADDRESS: case USB_EVENT_SUSPEND: case USB_EVENT_WAKEUP: case USB_EVENT_STALLED: default: break; } }