aboutsummaryrefslogtreecommitdiffstats
path: root/Bootloaders/MassStorage/BootloaderMassStorage.c
diff options
context:
space:
mode:
Diffstat (limited to 'Bootloaders/MassStorage/BootloaderMassStorage.c')
-rw-r--r--Bootloaders/MassStorage/BootloaderMassStorage.c22
1 files changed, 19 insertions, 3 deletions
diff --git a/Bootloaders/MassStorage/BootloaderMassStorage.c b/Bootloaders/MassStorage/BootloaderMassStorage.c
index 7adeaced7..a5e953a5b 100644
--- a/Bootloaders/MassStorage/BootloaderMassStorage.c
+++ b/Bootloaders/MassStorage/BootloaderMassStorage.c
@@ -61,6 +61,25 @@ USB_ClassInfo_MS_Device_t Disk_MS_Interface =
};
+void Application_Jump_Check(void)
+{
+ bool JumpToApplication = false;
+
+ #if (BOARD == BOARD_LEONARDO)
+ /* Enable pull-up on the IO13 pin so we can use it to select the mode */
+ PORTC |= (1 << 7);
+ Delay_MS(10);
+ JumpToApplication |= ((PINC & (1 << 7)) != 0);
+ PORTC &= ~(1 << 7);
+ #endif
+
+ if (JumpToApplication)
+ {
+ // cppcheck-suppress constStatement
+ ((void (*)(void))0x0000)();
+ }
+}
+
/** Main program entry point. This routine configures the hardware required by the application, then
* enters a loop to run the application tasks in sequence.
*/
@@ -85,9 +104,6 @@ static void SetupHardware(void)
MCUSR &= ~(1 << WDRF);
wdt_disable();
- /* Disable clock division */
- clock_prescale_set(clock_div_1);
-
/* Relocate the interrupt vector table to the bootloader section */
MCUCR = (1 << IVCE);
MCUCR = (1 << IVSEL);