Commit 7a5d0459 authored by Dean Camera's avatar Dean Camera
Browse files

Slight changes to TeensyHID bootloader to ensure it builds under the 2KB boundary.

Changed USB_Init() and USB_Shutdown() so that they are no longer dependant on oneanother for possible code savings when the interface is never explicitly shut down.
parent e071f389
......@@ -54,9 +54,6 @@ int main(void)
while (RunBootloader)
USB_USBTask();
/* Reset all configured hardware to their default states for the user app */
ResetHardware();
/* Wait 100ms to give the host time to register the disconnection */
_delay_ms(100);
......@@ -85,13 +82,6 @@ void SetupHardware(void)
USB_Init();
}
/** Resets all configured hardware required for the bootloader back to their original states. */
void ResetHardware(void)
{
/* Shut down the USB subsystem */
USB_ShutDown();
}
/** Event handler for the USB_ConfigurationChanged event. This configures the device's endpoints ready
* to relay data to and from the attached USB host.
*/
......
......@@ -63,7 +63,6 @@
/* Function Prototypes: */
void SetupHardware(void);
void ResetHardware(void);
void EVENT_USB_ConfigurationChanged(void);
void EVENT_USB_UnhandledControlPacket(void);
......
......@@ -54,8 +54,6 @@ void USB_Init(
#endif
)
{
USB_ShutDown();
#if defined(USB_CAN_BE_BOTH)
USB_CurrentMode = Mode;
#endif
......@@ -120,29 +118,9 @@ void USB_ShutDown(void)
EVENT_USB_Disconnect();
#endif
USB_ResetInterface();
USB_Detach();
USB_INT_DisableAllInterrupts();
USB_INT_ClearAllInterrupts();
USB_IsInitialized = false;
#if defined(USB_CAN_BE_HOST)
USB_HostState = HOST_STATE_Unattached;
#endif
#if defined(USB_CAN_BE_DEVICE)
USB_DeviceState = DEVICE_STATE_Unattached;
USB_ConfigurationNumber = 0;
USB_RemoteWakeupEnabled = false;
USB_CurrentlySelfPowered = false;
#endif
#if defined(CAN_BE_BOTH)
USB_CurrentMode = USB_MODE_NONE;
#endif
USB_Interface_Disable();
USB_Controller_Disable();
USB_PLL_Off();
#if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)
......@@ -152,6 +130,12 @@ void USB_ShutDown(void)
#if defined(USB_CAN_BE_BOTH)
UHWCON &= ~(1 << UIDE);
#endif
USB_IsInitialized = false;
#if defined(CAN_BE_BOTH)
USB_CurrentMode = USB_MODE_NONE;
#endif
}
void USB_ResetInterface(void)
......@@ -180,7 +164,7 @@ void USB_ResetInterface(void)
while (!(USB_PLL_IsReady()));
}
USB_Interface_Reset();
USB_Controller_Reset();
#if defined(USB_CAN_BE_BOTH)
if (UHWCON & (1 << UIDE))
......
......@@ -334,9 +334,9 @@
#define USB_CLK_Freeze() MACROS{ USBCON |= (1 << FRZCLK); }MACROE
#define USB_CLK_Unfreeze() MACROS{ USBCON &= ~(1 << FRZCLK); }MACROE
#define USB_Interface_Enable() MACROS{ USBCON |= (1 << USBE); }MACROE
#define USB_Interface_Disable() MACROS{ USBCON &= ~(1 << USBE); }MACROE
#define USB_Interface_Reset() MACROS{ uint8_t Temp = USBCON; USBCON = (Temp & ~(1 << USBE)); \
#define USB_Controller_Enable() MACROS{ USBCON |= (1 << USBE); }MACROE
#define USB_Controller_Disable() MACROS{ USBCON &= ~(1 << USBE); }MACROE
#define USB_Controller_Reset() MACROS{ uint8_t Temp = USBCON; USBCON = (Temp & ~(1 << USBE)); \
USBCON = (Temp | (1 << USBE)); }MACROE
/* Inline Functions: */
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment