diff --git a/hardware/arduino/boards.txt b/hardware/arduino/boards.txt index 8ce7cc98d70..3521d1513ef 100644 --- a/hardware/arduino/boards.txt +++ b/hardware/arduino/boards.txt @@ -474,3 +474,21 @@ atmega8.build.mcu=atmega8 atmega8.build.f_cpu=16000000L atmega8.build.core=arduino atmega8.build.variant=standard + +############################################################## + +adafruit32u4.name=Adafruit Atmega32u4 +adafruit32u4.upload.protocol=avr109 +adafruit32u4.upload.maximum_size=28672 +adafruit32u4.upload.speed=1200 +adafruit32u4.bootloader.low_fuses=0xfc +adafruit32u4.bootloader.high_fuses=0xd0 +adafruit32u4.bootloader.extended_fuses=0xc3 +adafruit32u4.bootloader.path=diskloader +adafruit32u4.bootloader.file=DiskLoader-Leonardo.hex +adafruit32u4.bootloader.unlock_bits=0x3F +adafruit32u4.bootloader.lock_bits=0x2F +adafruit32u4.build.mcu=atmega32u4 +adafruit32u4.build.f_cpu=16000000L +adafruit32u4.build.core=arduino +adafruit32u4.build.variant=leonardo diff --git a/hardware/arduino/cores/arduino/new.cpp b/hardware/arduino/cores/arduino/new.cpp index 0f6d4220ef7..b81031e90b8 100644 --- a/hardware/arduino/cores/arduino/new.cpp +++ b/hardware/arduino/cores/arduino/new.cpp @@ -5,10 +5,20 @@ void * operator new(size_t size) return malloc(size); } +void * operator new[](size_t size) +{ + return malloc(size); +} + void operator delete(void * ptr) { free(ptr); -} +} + +void operator delete[](void * ptr) +{ + free(ptr); +} int __cxa_guard_acquire(__guard *g) {return !*(char *)(g);}; void __cxa_guard_release (__guard *g) {*(char *)g = 1;}; diff --git a/hardware/arduino/cores/arduino/new.h b/hardware/arduino/cores/arduino/new.h index cd940ce8b26..7e03b89a9dc 100644 --- a/hardware/arduino/cores/arduino/new.h +++ b/hardware/arduino/cores/arduino/new.h @@ -8,7 +8,9 @@ #include void * operator new(size_t size); +void * operator new[](size_t size); void operator delete(void * ptr); +void operator delete[](void * ptr); __extension__ typedef int __guard __attribute__((mode (__DI__)));