diff options
-rw-r--r-- | boards.txt | 6 | ||||
-rw-r--r-- | cores/arduino/CDC.cpp | 10 |
2 files changed, 4 insertions, 12 deletions
@@ -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 |