/** * @brief Low level USB driver initialization. * * @notapi */ void usb_lld_init(void) { /* Driver initialization.*/ #if STM32_USB_USE_OTG1 usbObjectInit(&USBD1); USBD1.wait = NULL; USBD1.otg = OTG_FS; USBD1.otgparams = &fsparams; #if defined(_CHIBIOS_RT_) USBD1.tr = NULL; /* Filling the thread working area here because the function @p chThdCreateI() does not do it.*/ #if CH_DBG_FILL_THREADS { void *wsp = USBD1.wa_pump; _thread_memfill((uint8_t *)wsp, (uint8_t *)wsp + sizeof(thread_t), CH_DBG_THREAD_FILL_VALUE); _thread_memfill((uint8_t *)wsp + sizeof(thread_t), (uint8_t *)wsp + sizeof(USBD1.wa_pump) - sizeof(thread_t), CH_DBG_STACK_FILL_VALUE); } #endif /* CH_DBG_FILL_THREADS */ #endif /* defined(_CHIBIOS_RT_) */ #endif #if STM32_USB_USE_OTG2 usbObjectInit(&USBD2); USBD2.wait = NULL; USBD2.otg = OTG_HS; USBD2.otgparams = &hsparams; #if defined(_CHIBIOS_RT_) USBD2.tr = NULL; /* Filling the thread working area here because the function @p chThdCreateI() does not do it.*/ #if CH_DBG_FILL_THREADS { void *wsp = USBD2.wa_pump; _thread_memfill((uint8_t *)wsp, (uint8_t *)wsp + sizeof(thread_t), CH_DBG_THREAD_FILL_VALUE); _thread_memfill((uint8_t *)wsp + sizeof(thread_t), (uint8_t *)wsp + sizeof(USBD2.wa_pump) - sizeof(thread_t), CH_DBG_STACK_FILL_VALUE); } #endif /* CH_DBG_FILL_THREADS */ #endif /* defined(_CHIBIOS_RT_) */ #endif }
/** * @brief Low level USB driver initialization. * * @notapi */ void usb_lld_init(void) { #if PLATFORM_USB_USE_USB1 /* Driver initialization.*/ usbObjectInit(&USBD1); #endif /* PLATFORM_USB_USE_USB1 */ }
/** * @brief Low level USB driver initialization. * * @notapi */ void usb_lld_init(void) { #if AVR_USB_USE_USB1 == TRUE /* Driver initialization.*/ usbObjectInit(&USBD1); /* Start and lock the USB 48MHz PLL (takes ~100ms) */ usb_pll_on(); while (!usb_pll_is_locked()) {} #endif }
/** * @brief Low level USB driver initialization. * * @notapi */ void usb_lld_init(void) { /* Driver initialization.*/ usbObjectInit(&USBD1); }