Slight changes to TeensyHID bootloader to ensure it builds under the 2KB boundary.
authorDean Camera <dean@fourwalledcubicle.com>
Tue, 21 Jul 2009 13:51:34 +0000 (13:51 +0000)
committerDean Camera <dean@fourwalledcubicle.com>
Tue, 21 Jul 2009 13:51:34 +0000 (13:51 +0000)
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.

Bootloaders/TeensyHID/TeensyHID.c
Bootloaders/TeensyHID/TeensyHID.h
LUFA/Drivers/USB/LowLevel/LowLevel.c
LUFA/Drivers/USB/LowLevel/LowLevel.h

index eed7097..67dded5 100644 (file)
@@ -54,9 +54,6 @@ int main(void)
        \r
        while (RunBootloader)\r
          USB_USBTask();\r
-       \r
-       /* Reset all configured hardware to their default states for the user app */\r
-       ResetHardware();\r
 \r
        /* Wait 100ms to give the host time to register the disconnection */\r
        _delay_ms(100);\r
@@ -85,13 +82,6 @@ void SetupHardware(void)
        USB_Init();\r
 }\r
 \r
-/** Resets all configured hardware required for the bootloader back to their original states. */\r
-void ResetHardware(void)\r
-{\r
-       /* Shut down the USB subsystem */\r
-       USB_ShutDown();\r
-}\r
-\r
 /** Event handler for the USB_ConfigurationChanged event. This configures the device's endpoints ready\r
  *  to relay data to and from the attached USB host.\r
  */\r
index b7d4d6b..484fb6b 100644 (file)
@@ -63,7 +63,6 @@
                \r
        /* Function Prototypes: */\r
                void SetupHardware(void);\r
-               void ResetHardware(void);\r
 \r
                void EVENT_USB_ConfigurationChanged(void);\r
                void EVENT_USB_UnhandledControlPacket(void);\r
index cd7fa89..41d9e10 100644 (file)
@@ -54,8 +54,6 @@ void USB_Init(
                #endif\r
                )\r
 {\r
-       USB_ShutDown();\r
-\r
        #if defined(USB_CAN_BE_BOTH)\r
        USB_CurrentMode = Mode;\r
        #endif\r
@@ -120,29 +118,9 @@ void USB_ShutDown(void)
          EVENT_USB_Disconnect();\r
        #endif\r
 \r
+       USB_ResetInterface();\r
        USB_Detach();\r
-\r
-       USB_INT_DisableAllInterrupts();\r
-       USB_INT_ClearAllInterrupts();\r
-\r
-       USB_IsInitialized = false;\r
-\r
-       #if defined(USB_CAN_BE_HOST)\r
-       USB_HostState = HOST_STATE_Unattached;\r
-       #endif\r
-\r
-       #if defined(USB_CAN_BE_DEVICE)\r
-       USB_DeviceState = DEVICE_STATE_Unattached;\r
-       USB_ConfigurationNumber  = 0;\r
-       USB_RemoteWakeupEnabled  = false;\r
-       USB_CurrentlySelfPowered = false;\r
-       #endif\r
-\r
-       #if defined(CAN_BE_BOTH)\r
-       USB_CurrentMode = USB_MODE_NONE;\r
-       #endif\r
-\r
-       USB_Interface_Disable();\r
+       USB_Controller_Disable();\r
        USB_PLL_Off();\r
        \r
        #if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)\r
@@ -152,6 +130,12 @@ void USB_ShutDown(void)
        #if defined(USB_CAN_BE_BOTH)\r
        UHWCON &= ~(1 << UIDE);\r
        #endif\r
+\r
+       USB_IsInitialized = false;\r
+\r
+       #if defined(CAN_BE_BOTH)\r
+       USB_CurrentMode = USB_MODE_NONE;\r
+       #endif\r
 }\r
 \r
 void USB_ResetInterface(void)\r
@@ -180,7 +164,7 @@ void USB_ResetInterface(void)
                while (!(USB_PLL_IsReady()));\r
        }\r
        \r
-       USB_Interface_Reset();\r
+       USB_Controller_Reset();\r
        \r
        #if defined(USB_CAN_BE_BOTH)\r
        if (UHWCON & (1 << UIDE))\r
index df1fa0b..ca2fc7b 100644 (file)
                        #define USB_CLK_Freeze()           MACROS{ USBCON  |=  (1 << FRZCLK);               }MACROE\r
                        #define USB_CLK_Unfreeze()         MACROS{ USBCON  &= ~(1 << FRZCLK);               }MACROE\r
 \r
-                       #define USB_Interface_Enable()     MACROS{ USBCON  |=  (1 << USBE);                 }MACROE\r
-                       #define USB_Interface_Disable()    MACROS{ USBCON  &= ~(1 << USBE);                 }MACROE\r
-                       #define USB_Interface_Reset()      MACROS{ uint8_t Temp = USBCON; USBCON = (Temp & ~(1 << USBE)); \\r
+                       #define USB_Controller_Enable()    MACROS{ USBCON  |=  (1 << USBE);                 }MACROE\r
+                       #define USB_Controller_Disable()   MACROS{ USBCON  &= ~(1 << USBE);                 }MACROE\r
+                       #define USB_Controller_Reset()     MACROS{ uint8_t Temp = USBCON; USBCON = (Temp & ~(1 << USBE)); \\r
                                                                   USBCON = (Temp | (1 << USBE));           }MACROE\r
        \r
                /* Inline Functions: */\r