Add checks to the bootloaders so that they will give a user-friendly compile error...
authorDean Camera <dean@fourwalledcubicle.com>
Sat, 6 Apr 2013 14:34:57 +0000 (14:34 +0000)
committerDean Camera <dean@fourwalledcubicle.com>
Sat, 6 Apr 2013 14:34:57 +0000 (14:34 +0000)
Bootloaders/CDC/BootloaderCDC.h
Bootloaders/DFU/BootloaderDFU.h
Bootloaders/HID/BootloaderHID.h
Bootloaders/MassStorage/BootloaderMassStorage.h
Bootloaders/Printer/BootloaderPrinter.h

index b5d5e0b..76d579d 100644 (file)
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Board/LEDs.h>
 
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Board/LEDs.h>
 
+       /* Preprocessor Checks: */
+               #if !defined(__OPTIMIZE_SIZE__)
+                       #error This bootloader requires that it be compiled for size, not speed for it to fit into the target device.
+               #endif
+
        /* Macros: */
                /** Version major of the CDC bootloader. */
                #define BOOTLOADER_VERSION_MAJOR     0x01
        /* Macros: */
                /** Version major of the CDC bootloader. */
                #define BOOTLOADER_VERSION_MAJOR     0x01
index 5223e47..5379023 100644 (file)
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Board/LEDs.h>
 
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Board/LEDs.h>
 
+       /* Preprocessor Checks: */
+               #if !defined(__OPTIMIZE_SIZE__)
+                       #error This bootloader requires that it be compiled for size, not speed for it to fit into the target device.
+               #endif
+
        /* Macros: */
                /** Major bootloader version number. */
                #define BOOTLOADER_VERSION_MINOR 2
 
                /** Minor bootloader version number. */
                #define BOOTLOADER_VERSION_REV   0
        /* Macros: */
                /** Major bootloader version number. */
                #define BOOTLOADER_VERSION_MINOR 2
 
                /** Minor bootloader version number. */
                #define BOOTLOADER_VERSION_REV   0
-               
+
                /** Magic bootloader key to unlock forced application start mode. */
                #define MAGIC_BOOT_KEY            0xDC42
 
                /** Magic bootloader key to unlock forced application start mode. */
                #define MAGIC_BOOT_KEY            0xDC42
 
                        static void ProcessWriteCommand(void);
                        static void ProcessReadCommand(void);
                #endif
                        static void ProcessWriteCommand(void);
                        static void ProcessReadCommand(void);
                #endif
-               
+
                void Application_Jump_Check(void) ATTR_INIT_SECTION(3);
 
 #endif
                void Application_Jump_Check(void) ATTR_INIT_SECTION(3);
 
 #endif
index 306f3ef..e63b19d 100644 (file)
 
                #include <LUFA/Drivers/USB/USB.h>
 
 
                #include <LUFA/Drivers/USB/USB.h>
 
+       /* Preprocessor Checks: */
+               #if !defined(__OPTIMIZE_SIZE__)
+                       #error This bootloader requires that it be compiled for size, not speed for it to fit into the target device.
+               #endif
+
        /* Macros: */
                /** Bootloader special address to start the user application */
                #define COMMAND_STARTAPPLICATION   0xFFFF
 
                /** Magic bootloader key to unlock forced application start mode. */
                #define MAGIC_BOOT_KEY             0xDC42
        /* Macros: */
                /** Bootloader special address to start the user application */
                #define COMMAND_STARTAPPLICATION   0xFFFF
 
                /** Magic bootloader key to unlock forced application start mode. */
                #define MAGIC_BOOT_KEY             0xDC42
-               
+
        /* Function Prototypes: */
                static void SetupHardware(void);
 
                void Application_Jump_Check(void) ATTR_INIT_SECTION(3);
        /* Function Prototypes: */
                static void SetupHardware(void);
 
                void Application_Jump_Check(void) ATTR_INIT_SECTION(3);
-               
+
                void EVENT_USB_Device_ConfigurationChanged(void);
                void EVENT_USB_Device_UnhandledControlRequest(void);
 
                void EVENT_USB_Device_ConfigurationChanged(void);
                void EVENT_USB_Device_UnhandledControlRequest(void);
 
index 05b0eed..5e90739 100644 (file)
                #include <LUFA/Drivers/Board/LEDs.h>
                #include <LUFA/Drivers/USB/USB.h>
 
                #include <LUFA/Drivers/Board/LEDs.h>
                #include <LUFA/Drivers/USB/USB.h>
 
+       /* Preprocessor Checks: */
+               #if !defined(__OPTIMIZE_SIZE__)
+                       #error This bootloader requires that it be compiled for size, not speed for it to fit into the target device.
+               #endif
+
        /* Macros: */
                /** LED mask for the library LED driver, to indicate that the USB interface is not ready. */
                #define LEDMASK_USB_NOTREADY      LEDS_LED1
        /* Macros: */
                /** LED mask for the library LED driver, to indicate that the USB interface is not ready. */
                #define LEDMASK_USB_NOTREADY      LEDS_LED1
index 4995cdc..22104c5 100644 (file)
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Board/LEDs.h>
 
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Board/LEDs.h>
 
+       /* Preprocessor Checks: */
+               #if !defined(__OPTIMIZE_SIZE__)
+                       #error This bootloader requires that it be compiled for size, not speed for it to fit into the target device.
+               #endif
+
        /* Macros: */
                /** LED mask for the library LED driver, to indicate that the USB interface is not ready. */
                #define LEDMASK_USB_NOTREADY       LEDS_LED1
        /* Macros: */
                /** LED mask for the library LED driver, to indicate that the USB interface is not ready. */
                #define LEDMASK_USB_NOTREADY       LEDS_LED1