From bed305a55613facf65087e1262cfa0fbe60a8abb Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Wed, 6 Mar 2013 12:49:41 +0100 Subject: [PATCH] Added auto-generation for 'build.board' value in boards.txt. See #1305. --- app/src/processing/app/debug/TargetBoard.java | 15 ++ hardware/arduino/avr/boards.txt | 173 +++++++++--------- hardware/arduino/avr/platform.txt | 4 +- hardware/arduino/sam/boards.txt | 68 +++---- hardware/arduino/sam/platform.txt | 4 +- 5 files changed, 140 insertions(+), 124 deletions(-) diff --git a/app/src/processing/app/debug/TargetBoard.java b/app/src/processing/app/debug/TargetBoard.java index 2a5f21dd4..721b69613 100644 --- a/app/src/processing/app/debug/TargetBoard.java +++ b/app/src/processing/app/debug/TargetBoard.java @@ -1,5 +1,8 @@ package processing.app.debug; +import static processing.app.I18n._; +import static processing.app.I18n.format; + import java.util.LinkedHashMap; import java.util.Map; import java.util.Set; @@ -28,6 +31,18 @@ public class TargetBoard { PreferencesMap menus = prefs.firstLevelMap().get("menu"); if (menus != null) menuOptions = menus.firstLevelMap(); + + // Auto generate build.board if not set + if (!prefs.containsKey("build.board")) { + String board = containerPlatform.getId() + "_" + id; + board = board.toUpperCase(); + prefs.put("build.board", board); + System.out + .println(format( + _("Board {0}:{1}:{2} doesn''t define a ''build.board'' preference. Auto-set to: {3}"), + containerPlatform.getContainerPackage().getId(), + containerPlatform.getId(), id, board)); + } } /** diff --git a/hardware/arduino/avr/boards.txt b/hardware/arduino/avr/boards.txt index ee5a19579..de767f510 100644 --- a/hardware/arduino/avr/boards.txt +++ b/hardware/arduino/avr/boards.txt @@ -20,52 +20,52 @@ uno.bootloader.file=optiboot/optiboot_atmega328.hex uno.build.mcu=atmega328p uno.build.f_cpu=16000000L -uno.build.board=ARDUINO_UNO +uno.build.board=AVR_UNO uno.build.core=arduino uno.build.variant=standard ############################################################## -atmega328diecimila.name=Arduino Duemilanove or Diecimila +duemilanove.name=Arduino Duemilanove or Diecimila -atmega328diecimila.upload.tool=avrdude -atmega328diecimila.upload.protocol=arduino +duemilanove.upload.tool=avrdude +duemilanove.upload.protocol=arduino -atmega328diecimila.bootloader.tool=avrdude -atmega328diecimila.bootloader.low_fuses=0xFF -atmega328diecimila.bootloader.unlock_bits=0x3F -atmega328diecimila.bootloader.lock_bits=0x0F +duemilanove.bootloader.tool=avrdude +duemilanove.bootloader.low_fuses=0xFF +duemilanove.bootloader.unlock_bits=0x3F +duemilanove.bootloader.lock_bits=0x0F -atmega328diecimila.build.f_cpu=16000000L -atmega328diecimila.build.board=ARDUINO_DUEMILANOVE -atmega328diecimila.build.core=arduino -atmega328diecimila.build.variant=standard +duemilanove.build.f_cpu=16000000L +duemilanove.build.board=AVR_DUEMILANOVE +duemilanove.build.core=arduino +duemilanove.build.variant=standard ## Arduino Duemilanove or Diecimila w/ ATmega328 ## --------------------------------------------- -atmega328diecimila.menu.cpu.atmega328=ATmega328 +duemilanove.menu.cpu.atmega328=ATmega328 -atmega328diecimila.menu.cpu.atmega328.upload.maximum_size=30720 -atmega328diecimila.menu.cpu.atmega328.upload.speed=57600 +duemilanove.menu.cpu.atmega328.upload.maximum_size=30720 +duemilanove.menu.cpu.atmega328.upload.speed=57600 -atmega328diecimila.menu.cpu.atmega328.bootloader.high_fuses=0xDA -atmega328diecimila.menu.cpu.atmega328.bootloader.extended_fuses=0x05 -atmega328diecimila.menu.cpu.atmega328.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex +duemilanove.menu.cpu.atmega328.bootloader.high_fuses=0xDA +duemilanove.menu.cpu.atmega328.bootloader.extended_fuses=0x05 +duemilanove.menu.cpu.atmega328.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex -atmega328diecimila.menu.cpu.atmega328.build.mcu=atmega328p +duemilanove.menu.cpu.atmega328.build.mcu=atmega328p ## Arduino Duemilanove or Diecimila w/ ATmega168 ## --------------------------------------------- -atmega328diecimila.menu.cpu.atmega168=ATmega168 +duemilanove.menu.cpu.atmega168=ATmega168 -atmega328diecimila.menu.cpu.atmega168.upload.maximum_size=14336 -atmega328diecimila.menu.cpu.atmega168.upload.speed=19200 +duemilanove.menu.cpu.atmega168.upload.maximum_size=14336 +duemilanove.menu.cpu.atmega168.upload.speed=19200 -atmega328diecimila.menu.cpu.atmega168.bootloader.high_fuses=0xdd -atmega328diecimila.menu.cpu.atmega168.bootloader.extended_fuses=0x00 -atmega328diecimila.menu.cpu.atmega168.bootloader.file=atmega/ATmegaBOOT_168_diecimila.hex +duemilanove.menu.cpu.atmega168.bootloader.high_fuses=0xdd +duemilanove.menu.cpu.atmega168.bootloader.extended_fuses=0x00 +duemilanove.menu.cpu.atmega168.bootloader.file=atmega/ATmegaBOOT_168_diecimila.hex -atmega328diecimila.menu.cpu.atmega168.build.mcu=atmega168 +duemilanove.menu.cpu.atmega168.build.mcu=atmega168 ############################################################## @@ -79,7 +79,7 @@ nano.bootloader.unlock_bits=0x3F nano.bootloader.lock_bits=0x0F nano.build.f_cpu=16000000L -nano.build.board=ARDUINO_NANO +nano.build.board=AVR_NANO nano.build.core=arduino nano.build.variant=eightanaloginputs @@ -131,7 +131,7 @@ mega2560.bootloader.lock_bits=0x0F mega2560.build.mcu=atmega2560 mega2560.build.f_cpu=16000000L -mega2560.build.board=ARDUINO_MEGA2560 +mega2560.build.board=AVR_MEGA2560 mega2560.build.core=arduino mega2560.build.variant=mega @@ -155,7 +155,7 @@ mega.bootloader.lock_bits=0x0F mega.build.mcu=atmega1280 mega.build.f_cpu=16000000L -mega.build.board=ARDUINO_MEGA +mega.build.board=AVR_MEGA mega.build.core=arduino mega.build.variant=mega @@ -182,7 +182,7 @@ leonardo.build.mcu=atmega32u4 leonardo.build.f_cpu=16000000L leonardo.build.vid=0x2341 leonardo.build.pid=0x8036 -leonardo.build.board=ARDUINO_LEONARDO +leonardo.build.board=AVR_LEONARDO leonardo.build.core=arduino leonardo.build.variant=leonardo leonardo.build.extra_flags=-DUSB_VID={build.vid} -DUSB_PID={build.pid} @@ -210,7 +210,7 @@ micro.build.mcu=atmega32u4 micro.build.f_cpu=16000000L micro.build.vid=0x2341 micro.build.pid=0x8037 -micro.build.board=ARDUINO_MICRO +micro.build.board=AVR_MICRO micro.build.core=arduino micro.build.variant=micro micro.build.extra_flags=-DUSB_VID={build.vid} -DUSB_PID={build.pid} @@ -238,7 +238,7 @@ esplora.build.mcu=atmega32u4 esplora.build.f_cpu=16000000L esplora.build.vid=0x2341 esplora.build.pid=0x803c -esplora.build.board=ARDUINO_ESPLORA +esplora.build.board=AVR_ESPLORA esplora.build.core=arduino esplora.build.variant=leonardo esplora.build.extra_flags=-DUSB_VID={build.vid} -DUSB_PID={build.pid} @@ -256,7 +256,7 @@ mini.bootloader.unlock_bits=0x3F mini.bootloader.lock_bits=0x0F mini.build.f_cpu=16000000L -mini.build.board=ARDUINO_MINI +mini.build.board=AVR_MINI mini.build.core=arduino mini.build.variant=eightanaloginputs @@ -306,7 +306,7 @@ ethernet.bootloader.lock_bits=0x0F ethernet.build.variant=standard ethernet.build.mcu=atmega328p ethernet.build.f_cpu=16000000L -ethernet.build.board=ARDUINO_ETHERNET +ethernet.build.board=AVR_ETHERNET ethernet.build.core=arduino ############################################################## @@ -328,7 +328,7 @@ fio.bootloader.lock_bits=0x0F fio.build.mcu=atmega328p fio.build.f_cpu=8000000L -fio.build.board=ARDUINO_FIO +fio.build.board=AVR_FIO fio.build.core=arduino fio.build.variant=eightanaloginputs @@ -347,7 +347,7 @@ bt.bootloader.unlock_bits=0x3F bt.bootloader.lock_bits=0x0F bt.build.f_cpu=16000000L -bt.build.board=ARDUINO_BT +bt.build.board=AVR_BT bt.build.core=arduino bt.build.variant=eightanaloginputs @@ -375,32 +375,32 @@ bt.menu.cpu.atmega168.build.mcu=atmega168 ############################################################## -LilyPadUSB.name=LilyPad Arduino USB +lilypad_usb.name=LilyPad Arduino USB -LilyPadUSB.upload.tool=avrdude -LilyPadUSB.upload.protocol=avr109 -LilyPadUSB.upload.maximum_size=28672 -LilyPadUSB.upload.speed=57600 -LilyPadUSB.upload.disable_flushing=true -LilyPadUSB.upload.use_1200bps_touch=true -LilyPadUSB.upload.wait_for_upload_port=true +lilypad_usb.upload.tool=avrdude +lilypad_usb.upload.protocol=avr109 +lilypad_usb.upload.maximum_size=28672 +lilypad_usb.upload.speed=57600 +lilypad_usb.upload.disable_flushing=true +lilypad_usb.upload.use_1200bps_touch=true +lilypad_usb.upload.wait_for_upload_port=true -LilyPadUSB.bootloader.tool=avrdude -LilyPadUSB.bootloader.low_fuses=0xff -LilyPadUSB.bootloader.high_fuses=0xd8 -LilyPadUSB.bootloader.extended_fuses=0xce -LilyPadUSB.bootloader.file=caterina-LilyPadUSB/Caterina-LilyPadUSB.hex -LilyPadUSB.bootloader.unlock_bits=0x3F -LilyPadUSB.bootloader.lock_bits=0x2F +lilypad_usb.bootloader.tool=avrdude +lilypad_usb.bootloader.low_fuses=0xff +lilypad_usb.bootloader.high_fuses=0xd8 +lilypad_usb.bootloader.extended_fuses=0xce +lilypad_usb.bootloader.file=caterina-LilyPadUSB/Caterina-LilyPadUSB.hex +lilypad_usb.bootloader.unlock_bits=0x3F +lilypad_usb.bootloader.lock_bits=0x2F -LilyPadUSB.build.mcu=atmega32u4 -LilyPadUSB.build.f_cpu=8000000L -LilyPadUSB.build.vid=0x1B4F -LilyPadUSB.build.pid=0x9208 -LilyPadUSB.build.board=ARDUINO_LILYPAD_USB -LilyPadUSB.build.core=arduino -LilyPadUSB.build.variant=leonardo -LilyPadUSB.build.extra_flags=-DUSB_VID={build.vid} -DUSB_PID={build.pid} +lilypad_usb.build.mcu=atmega32u4 +lilypad_usb.build.f_cpu=8000000L +lilypad_usb.build.vid=0x1B4F +lilypad_usb.build.pid=0x9208 +lilypad_usb.build.board=AVR_LILYPAD_USB +lilypad_usb.build.core=arduino +lilypad_usb.build.variant=leonardo +lilypad_usb.build.extra_flags=-DUSB_VID={build.vid} -DUSB_PID={build.pid} ############################################################## @@ -414,7 +414,7 @@ lilypad.bootloader.unlock_bits=0x3F lilypad.bootloader.lock_bits=0x0F lilypad.build.f_cpu=8000000L -lilypad.build.board=ARDUINO_LILYPAD +lilypad.build.board=AVR_LILYPAD lilypad.build.core=arduino lilypad.build.variant=standard @@ -457,7 +457,7 @@ pro.bootloader.tool=avrdude pro.bootloader.unlock_bits=0x3F pro.bootloader.lock_bits=0x0F -pro.build.board=ARDUINO_PRO +pro.build.board=AVR_PRO pro.build.core=arduino pro.build.variant=standard @@ -523,43 +523,44 @@ pro.menu.cpu.8MHzatmega168.build.f_cpu=8000000L ############################################################## -atmegang.name=Arduino NG or older +ng.name=Arduino NG or older -atmegang.upload.tool=avrdude -atmegang.upload.protocol=arduino -atmegang.upload.speed=19200 +ng.upload.tool=avrdude +ng.upload.protocol=arduino +ng.upload.speed=19200 -atmegang.bootloader.tool=avrdude -atmegang.bootloader.unlock_bits=0x3F -atmegang.bootloader.lock_bits=0x0F +ng.bootloader.tool=avrdude +ng.bootloader.unlock_bits=0x3F +ng.bootloader.lock_bits=0x0F -atmegang.build.mcu=atmegang -atmegang.build.f_cpu=16000000L -atmegang.build.board=ARDUINO_NG -atmegang.build.core=arduino -atmegang.build.variant=standard +ng.build.mcu=atmegang +ng.build.f_cpu=16000000L +ng.build.board=AVR_NG +ng.build.core=arduino +ng.build.variant=standard ## Arduino NG or older w/ ATmega168 ## -------------------------------- -atmegang.menu.cpu.atmega168=ATmega168 +ng.menu.cpu.atmega168=ATmega168 -atmegang.menu.cpu.atmega168.upload.maximum_size=14336 +ng.menu.cpu.atmega168.upload.maximum_size=14336 -atmegang.menu.cpu.atmega168.bootloader.low_fuses=0xff -atmegang.menu.cpu.atmega168.bootloader.high_fuses=0xdd -atmegang.menu.cpu.atmega168.bootloader.extended_fuses=0x00 -atmegang.menu.cpu.atmega168.bootloader.file=atmega/ATmegaBOOT_168_ng.hex +ng.menu.cpu.atmega168.bootloader.low_fuses=0xff +ng.menu.cpu.atmega168.bootloader.high_fuses=0xdd +ng.menu.cpu.atmega168.bootloader.extended_fuses=0x00 +ng.menu.cpu.atmega168.bootloader.file=atmega/ATmegaBOOT_168_ng.hex -atmegang.menu.cpu.atmega168.build.mcu=atmega168 +ng.menu.cpu.atmega168.build.mcu=atmega168 ## Arduino NG or older w/ ATmega8 ## ------------------------------ -atmegang.menu.cpu.atmega8=ATmega8 +ng.menu.cpu.atmega8=ATmega8 -atmegang.menu.cpu.atmega8.upload.maximum_size=7168 +ng.menu.cpu.atmega8.upload.maximum_size=7168 -atmegang.menu.cpu.atmega8.bootloader.low_fuses=0xdf -atmegang.menu.cpu.atmega8.bootloader.high_fuses=0xca -atmegang.menu.cpu.atmega8.bootloader.file=atmega8/ATmegaBOOT-prod-firmware-2009-11-07.hex +ng.menu.cpu.atmega8.bootloader.low_fuses=0xdf +ng.menu.cpu.atmega8.bootloader.high_fuses=0xca +ng.menu.cpu.atmega8.bootloader.file=atmega8/ATmegaBOOT-prod-firmware-2009-11-07.hex + +ng.menu.cpu.atmega8.build.mcu=atmega8 -atmegang.menu.cpu.atmega8.build.mcu=atmega8 diff --git a/hardware/arduino/avr/platform.txt b/hardware/arduino/avr/platform.txt index a6cd314c1..53c31620c 100644 --- a/hardware/arduino/avr/platform.txt +++ b/hardware/arduino/avr/platform.txt @@ -27,10 +27,10 @@ build.extra_flags= # -------------------- ## Compile c files -recipe.c.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.c.flags} -mmcu={build.mcu} -DF_CPU={build.f_cpu} -D{software}={runtime.ide.version} -D{build.board} -DARDUINO_ARCH_{build.arch} {build.extra_flags} {includes} "{source_file}" -o "{object_file}" +recipe.c.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.c.flags} -mmcu={build.mcu} -DF_CPU={build.f_cpu} -D{software}={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {build.extra_flags} {includes} "{source_file}" -o "{object_file}" ## Compile c++ files -recipe.cpp.o.pattern="{compiler.path}{compiler.cpp.cmd}" {compiler.cpp.flags} -mmcu={build.mcu} -DF_CPU={build.f_cpu} -D{software}={runtime.ide.version} -D{build.board} -DARDUINO_ARCH_{build.arch} {build.extra_flags} {includes} "{source_file}" -o "{object_file}" +recipe.cpp.o.pattern="{compiler.path}{compiler.cpp.cmd}" {compiler.cpp.flags} -mmcu={build.mcu} -DF_CPU={build.f_cpu} -D{software}={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {build.extra_flags} {includes} "{source_file}" -o "{object_file}" ## Create archives recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} "{build.path}/{archive_file}" "{object_file}" diff --git a/hardware/arduino/sam/boards.txt b/hardware/arduino/sam/boards.txt index d3629e596..437941d70 100644 --- a/hardware/arduino/sam/boards.txt +++ b/hardware/arduino/sam/boards.txt @@ -1,37 +1,37 @@ -arduino_due_x_dbg.name=Arduino Due (Programming Port) -arduino_due_x_dbg.upload.tool=bossac -arduino_due_x_dbg.upload.protocol=sam-ba -arduino_due_x_dbg.upload.maximum_size=524288 -arduino_due_x_dbg.upload.use_1200bps_touch=true -arduino_due_x_dbg.upload.wait_for_upload_port=false -arduino_due_x_dbg.upload.native_usb=false -arduino_due_x_dbg.build.mcu=cortex-m3 -arduino_due_x_dbg.build.f_cpu=84000000L -arduino_due_x_dbg.build.board=ARDUINO_DUE -arduino_due_x_dbg.build.core=arduino -arduino_due_x_dbg.build.extra_flags=-D__SAM3X8E__ -mthumb -DUSB_PID={build.pid} -DUSB_VID={build.vid} -DUSBCON -arduino_due_x_dbg.build.ldscript=linker_scripts/gcc/flash.ld -arduino_due_x_dbg.build.variant=arduino_due_x -arduino_due_x_dbg.build.variant_system_lib=libsam_sam3x8e_gcc_rel.a -arduino_due_x_dbg.build.vid=0x2341 -arduino_due_x_dbg.build.pid=0x003e +due_prgport.name=Arduino Due (Programming Port) +due_prgport.upload.tool=bossac +due_prgport.upload.protocol=sam-ba +due_prgport.upload.maximum_size=524288 +due_prgport.upload.use_1200bps_touch=true +due_prgport.upload.wait_for_upload_port=false +due_prgport.upload.native_usb=false +due_prgport.build.mcu=cortex-m3 +due_prgport.build.f_cpu=84000000L +due_prgport.build.board=SAM_DUE +due_prgport.build.core=arduino +due_prgport.build.extra_flags=-D__SAM3X8E__ -mthumb -DUSB_PID={build.pid} -DUSB_VID={build.vid} -DUSBCON +due_prgport.build.ldscript=linker_scripts/gcc/flash.ld +due_prgport.build.variant=arduino_due_x +due_prgport.build.variant_system_lib=libsam_sam3x8e_gcc_rel.a +due_prgport.build.vid=0x2341 +due_prgport.build.pid=0x003e -arduino_due_x.name=Arduino Due (Native USB Port) -arduino_due_x.upload.tool=bossac -arduino_due_x.upload.protocol=sam-ba -arduino_due_x.upload.maximum_size=524288 -arduino_due_x.upload.use_1200bps_touch=true -arduino_due_x.upload.wait_for_upload_port=true -arduino_due_x.upload.native_usb=true -arduino_due_x.build.mcu=cortex-m3 -arduino_due_x.build.f_cpu=84000000L -arduino_due_x.build.board=ARDUINO_DUE -arduino_due_x.build.core=arduino -arduino_due_x.build.extra_flags=-D__SAM3X8E__ -mthumb -DUSB_PID={build.pid} -DUSB_VID={build.vid} -DUSBCON -arduino_due_x.build.ldscript=linker_scripts/gcc/flash.ld -arduino_due_x.build.variant=arduino_due_x -arduino_due_x.build.variant_system_lib=libsam_sam3x8e_gcc_rel.a -arduino_due_x.build.vid=0x2341 -arduino_due_x.build.pid=0x003e +due.name=Arduino Due (Native USB Port) +due.upload.tool=bossac +due.upload.protocol=sam-ba +due.upload.maximum_size=524288 +due.upload.use_1200bps_touch=true +due.upload.wait_for_upload_port=true +due.upload.native_usb=true +due.build.mcu=cortex-m3 +due.build.f_cpu=84000000L +due.build.board=SAM_DUE +due.build.core=arduino +due.build.extra_flags=-D__SAM3X8E__ -mthumb -DUSB_PID={build.pid} -DUSB_VID={build.vid} -DUSBCON +due.build.ldscript=linker_scripts/gcc/flash.ld +due.build.variant=arduino_due_x +due.build.variant_system_lib=libsam_sam3x8e_gcc_rel.a +due.build.vid=0x2341 +due.build.pid=0x003e diff --git a/hardware/arduino/sam/platform.txt b/hardware/arduino/sam/platform.txt index 3594610ea..f64309a23 100644 --- a/hardware/arduino/sam/platform.txt +++ b/hardware/arduino/sam/platform.txt @@ -30,10 +30,10 @@ compiler.libsam.c.flags="-I{build.system.path}/libsam" "-I{build.system.path}/CM # --------------------- ## Compile c files -recipe.c.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.c.flags} -mcpu={build.mcu} -DF_CPU={build.f_cpu} -D{software}={runtime.ide.version} -D{build.board} -DARDUINO_ARCH_{build.arch} {build.extra_flags} {compiler.libsam.c.flags} {includes} "{source_file}" -o "{object_file}" +recipe.c.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.c.flags} -mcpu={build.mcu} -DF_CPU={build.f_cpu} -D{software}={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {build.extra_flags} {compiler.libsam.c.flags} {includes} "{source_file}" -o "{object_file}" ## Compile c++ files -recipe.cpp.o.pattern="{compiler.path}{compiler.cpp.cmd}" {compiler.cpp.flags} -mcpu={build.mcu} -DF_CPU={build.f_cpu} -D{software}={runtime.ide.version} -D{build.board} -DARDUINO_ARCH_{build.arch} {build.extra_flags} {compiler.libsam.c.flags} {includes} "{source_file}" -o "{object_file}" +recipe.cpp.o.pattern="{compiler.path}{compiler.cpp.cmd}" {compiler.cpp.flags} -mcpu={build.mcu} -DF_CPU={build.f_cpu} -D{software}={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {build.extra_flags} {compiler.libsam.c.flags} {includes} "{source_file}" -o "{object_file}" ## Create archives recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} "{build.path}/{archive_file}" "{object_file}"