From a4d899844e6ae5ef0967cae8fc02da562e4ccc1f Mon Sep 17 00:00:00 2001 From: Damjan Adamic Date: Sun, 11 Dec 2016 16:28:23 +0100 Subject: [PATCH] Re #4125: New functions usbStart() and usbStop() to make USB code cleaner --- radio/src/main_arm.cpp | 4 ++-- radio/src/targets/common/arm/stm32/usb_driver.c | 9 ++++++++- radio/src/targets/horus/board.cpp | 1 - radio/src/targets/horus/board.h | 3 ++- radio/src/targets/taranis/board.cpp | 1 - radio/src/targets/taranis/board.h | 3 ++- radio/src/targets/taranis/bootloader/boot.cpp | 5 ++--- 7 files changed, 16 insertions(+), 10 deletions(-) diff --git a/radio/src/main_arm.cpp b/radio/src/main_arm.cpp index 13c656806..f371c05c5 100644 --- a/radio/src/main_arm.cpp +++ b/radio/src/main_arm.cpp @@ -31,7 +31,7 @@ void handleUsbConnection() if (!usbStarted && usbPlugged()) { usbStarted = true; - usbInit(); + usbStart(); #if defined(USB_MASS_STORAGE) opentxClose(false); usbPluggedIn(); @@ -39,7 +39,7 @@ void handleUsbConnection() } if (usbStarted && !usbPlugged()) { usbStarted = false; - usbDeInit(); + usbStop(); #if defined(USB_MASS_STORAGE) && !defined(EEPROM) opentxResume(); #endif diff --git a/radio/src/targets/common/arm/stm32/usb_driver.c b/radio/src/targets/common/arm/stm32/usb_driver.c index 2a406e375..026071fa7 100644 --- a/radio/src/targets/common/arm/stm32/usb_driver.c +++ b/radio/src/targets/common/arm/stm32/usb_driver.c @@ -20,6 +20,7 @@ #include "board.h" #include "usb_dcd_int.h" +#include "usb_bsp.h" #include "debug.h" int usbPlugged(void) @@ -52,6 +53,12 @@ void OTG_FS_IRQHandler(void) } void usbInit(void) +{ + // Initialize hardware + USB_OTG_BSP_Init(&USB_OTG_dev); +} + +void usbStart(void) { #if defined(USB_JOYSTICK) // initialize USB as HID device @@ -65,7 +72,7 @@ void usbInit(void) #endif } -void usbDeInit(void) +void usbStop(void) { USBD_DeInit(&USB_OTG_dev); } diff --git a/radio/src/targets/horus/board.cpp b/radio/src/targets/horus/board.cpp index f9b4b2acb..10b7b2adc 100644 --- a/radio/src/targets/horus/board.cpp +++ b/radio/src/targets/horus/board.cpp @@ -175,7 +175,6 @@ void boardInit() init2MhzTimer(); init1msTimer(); usbInit(); - usbDeInit(); hapticInit(); bluetoothInit(BLUETOOTH_FACTORY_BAUDRATE); gpsInit(GPS_USART_BAUDRATE); diff --git a/radio/src/targets/horus/board.h b/radio/src/targets/horus/board.h index 441c48c43..6fc3afeb5 100644 --- a/radio/src/targets/horus/board.h +++ b/radio/src/targets/horus/board.h @@ -376,7 +376,8 @@ void backlightEnable(uint8_t dutyCycle); // USB driver int usbPlugged(void); void usbInit(void); -void usbDeInit(void); +void usbStart(void); +void usbStop(void); void usbSerialPutc(uint8_t c); #define USB_NAME "FrSky Horus" #define USB_MANUFACTURER 'F', 'r', 'S', 'k', 'y', ' ', ' ', ' ' /* 8 bytes */ diff --git a/radio/src/targets/taranis/board.cpp b/radio/src/targets/taranis/board.cpp index d26d78cbb..6f3ebab90 100644 --- a/radio/src/targets/taranis/board.cpp +++ b/radio/src/targets/taranis/board.cpp @@ -138,7 +138,6 @@ void boardInit() __enable_irq(); i2cInit(); usbInit(); - usbDeInit(); #if defined(DEBUG) && !defined(PCBX7D) serial2Init(0, 0); // default serial mode (None if DEBUG not defined) diff --git a/radio/src/targets/taranis/board.h b/radio/src/targets/taranis/board.h index 9b862813f..ccdcbdcdb 100644 --- a/radio/src/targets/taranis/board.h +++ b/radio/src/targets/taranis/board.h @@ -426,7 +426,8 @@ uint8_t isBacklightEnabled(void); // USB driver int usbPlugged(void); void usbInit(void); -void usbDeInit(void); +void usbStart(void); +void usbStop(void); void usbSerialPutc(uint8_t c); #define USB_NAME "FrSky Taranis" #define USB_MANUFACTURER 'F', 'r', 'S', 'k', 'y', ' ', ' ', ' ' /* 8 bytes */ diff --git a/radio/src/targets/taranis/bootloader/boot.cpp b/radio/src/targets/taranis/bootloader/boot.cpp index 1979139e0..56df122f5 100644 --- a/radio/src/targets/taranis/bootloader/boot.cpp +++ b/radio/src/targets/taranis/bootloader/boot.cpp @@ -361,7 +361,6 @@ int main() // SD card detect pin sdInit(); usbInit(); - usbDeInit(); #endif for (;;) { @@ -384,7 +383,7 @@ int main() unlocked = 1; unlockFlash(); } - usbInit(); + usbStart(); usbPluggedIn(); } } @@ -419,7 +418,7 @@ int main() lcdDrawTextAlignedLeft(4*FH, STR_USB_CONNECTED); if (usbPlugged() == 0) { vpos = 0; - usbDeInit(); + usbStop(); if (unlocked) { lockFlash(); unlocked = 0;