aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--boards.txt6
-rw-r--r--cores/arduino/CDC.cpp10
2 files changed, 4 insertions, 12 deletions
diff --git a/boards.txt b/boards.txt
index 10a74f1..87ca07d 100644
--- a/boards.txt
+++ b/boards.txt
@@ -5,12 +5,12 @@ leonardo.upload.protocol=arduino
leonardo.upload.maximum_size=30720
leonardo.upload.speed=1200
leonardo.bootloader.low_fuses=0xde
-leonardo.bootloader.high_fuses=0xd8
-leonardo.bootloader.extended_fuses=0xf3
+leonardo.bootloader.high_fuses=0xda
+leonardo.bootloader.extended_fuses=0xcb
leonardo.bootloader.path=diskloader
leonardo.bootloader.file=DiskLoader.hex
leonardo.bootloader.unlock_bits=0x3F
-leonardo.bootloader.lock_bits=0x0F
+leonardo.bootloader.lock_bits=0x2F
leonardo.build.mcu=atmega32u4
leonardo.build.f_cpu=16000000L
leonardo.build.core=arduino
diff --git a/cores/arduino/CDC.cpp b/cores/arduino/CDC.cpp
index 5059cec..14a0eae 100644
--- a/cores/arduino/CDC.cpp
+++ b/cores/arduino/CDC.cpp
@@ -23,19 +23,11 @@
#if defined(USBCON)
#ifdef CDC_ENABLED
-// TODO: Should really use the wdt here
-// Not currently working for a non-obvious reason
-
-typedef void (*AppPtr_t)(void) __attribute__ ((noreturn));
-AppPtr_t Bootloader = (AppPtr_t)(30*1024);
-
void Reboot()
{
USB.detach();
cli();
- Bootloader();
- //wdt_enable(WDTO_15MS);
- //while(1); // reboot
+ asm volatile("jmp 0x7800"); // jump to bootloader - DiskLoader takes up last 2 kB
}
typedef struct