Update Mass Storage bootloader so that it can support devices with only 4KB bootloade...
[pub/USBasp.git] / Bootloaders / MassStorage / BootloaderMassStorage.c
index 7adeace..a5e953a 100644 (file)
@@ -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.
  */
 /** 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();
 
        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);
        /* Relocate the interrupt vector table to the bootloader section */
        MCUCR = (1 << IVCE);
        MCUCR = (1 << IVSEL);