AppConfigHeaders: Switch DualRole and low level Host mode demos to use LUFAConfig...
[pub/USBasp.git] / Bootloaders / DFU / BootloaderDFU.h
index 1c1ebba..46b70c0 100644 (file)
@@ -1,13 +1,13 @@
 /*
              LUFA Library
 /*
              LUFA Library
-     Copyright (C) Dean Camera, 2011.
+     Copyright (C) Dean Camera, 2012.
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
 */
 
 /*
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
 */
 
 /*
-  Copyright 2011  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+  Copyright 2012  Dean Camera (dean [at] fourwalledcubicle [dot] com)
 
   Permission to use, copy, modify, distribute, and sell this
   software and its documentation for any purpose is hereby granted
 
   Permission to use, copy, modify, distribute, and sell this
   software and its documentation for any purpose is hereby granted
                #include <stdbool.h>
 
                #include "Descriptors.h"
                #include <stdbool.h>
 
                #include "Descriptors.h"
+               #include "BootloaderAPI.h"
 
                #include <LUFA/Drivers/USB/USB.h>
 
                #include <LUFA/Drivers/USB/USB.h>
+               #include <LUFA/Drivers/Board/LEDs.h>
 
        /* Macros: */
                /** Configuration define. Define this token to true to case the bootloader to reject all memory commands
 
        /* Macros: */
                /** Configuration define. Define this token to true to case the bootloader to reject all memory commands
@@ -64,6 +66,9 @@
 
                /** Minor bootloader version number. */
                #define BOOTLOADER_VERSION_REV   0
 
                /** Minor bootloader version number. */
                #define BOOTLOADER_VERSION_REV   0
+               
+               /** Magic bootloader key to unlock forced application start mode. */
+               #define MAGIC_BOOT_KEY            0xDC42CACA
 
                /** Complete bootloader version number expressed as a packed byte, constructed from the
                 *  two individual bootloader version macros.
 
                /** Complete bootloader version number expressed as a packed byte, constructed from the
                 *  two individual bootloader version macros.
                /** Type define for a structure containing a complete DFU command issued by the host. */
                typedef struct
                {
                /** Type define for a structure containing a complete DFU command issued by the host. */
                typedef struct
                {
-                       uint8_t  Command; /**< Single byte command to perform, one of the COMMAND_* macro values */
+                       uint8_t  Command; /**< Single byte command to perform, one of the \c COMMAND_* macro values */
                        uint8_t  Data[5]; /**< Command parameters */
                        uint16_t DataSize; /**< Size of the command parameters */
                } DFU_Command_t;
                        uint8_t  Data[5]; /**< Command parameters */
                        uint16_t DataSize; /**< Size of the command parameters */
                } DFU_Command_t;
                };
 
        /* Function Prototypes: */
                };
 
        /* Function Prototypes: */
-               void SetupHardware(void);
-               void ResetHardware(void);
+               static void SetupHardware(void);
+               static void ResetHardware(void);
 
                void EVENT_USB_Device_ControlRequest(void);
 
 
                void EVENT_USB_Device_ControlRequest(void);
 
                        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
 
 
 #endif