Clean up DOXYGEN and SOURCES build system modules - use non-recursively evaluated...
[pub/USBasp.git] / Bootloaders / DFU / BootloaderDFU.h
index 0c34c2c..ffd330d 100644 (file)
@@ -1,13 +1,13 @@
 /*
              LUFA Library
-     Copyright (C) Dean Camera, 2011.
+     Copyright (C) Dean Camera, 2012.
 
   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
 
                #include "Descriptors.h"
                #include "BootloaderAPI.h"
+               #include "Config/AppConfig.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
-                *  until a memory erase has been performed. When used in conjunction with the lockbits of the AVR, this
-                *  can protect the AVR's firmware from being dumped from a secured AVR. When false, memory operations are
-                *  allowed at any time.
-                */
-               #define SECURE_MODE              false
-
                /** 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            0xDC42CACA
 
                /** 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
                {
-                       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;
                };
 
        /* Function Prototypes: */
-               void SetupHardware(void);
-               void ResetHardware(void);
+               static void SetupHardware(void);
+               static void ResetHardware(void);
 
                void EVENT_USB_Device_ControlRequest(void);
 
                        static void ProcessWriteCommand(void);
                        static void ProcessReadCommand(void);
                #endif
+               
+               void Application_Jump_Check(void) ATTR_INIT_SECTION(3);
 
 #endif