From e52cf0e4203bd6dda76c2544b0479548f465a0c7 Mon Sep 17 00:00:00 2001 From: Zach Eveland Date: Thu, 8 Sep 2011 19:31:18 -0400 Subject: fixed bug where sketches over 28k caused subsequent auto-reset-and-upload attempts to fail. fixed bug in reboot routine, changed fuses to select 1024-word bootloader size, disabled hardware boot enable. --- boards.txt | 6 +++--- cores/arduino/CDC.cpp | 10 +--------- 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 -- cgit v1.2.3-18-g5258