Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
96 changes: 92 additions & 4 deletions boards.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# See: https://arduino.github.io/arduino-cli/latest/platform-specification/

menu.cpu=Processor
menu.jtag=JTAG pins

##############################################################

Expand Down Expand Up @@ -36,6 +37,12 @@ yun.upload.disable_flushing=true
yun.upload.use_1200bps_touch=true
yun.upload.wait_for_upload_port=true

# JTAG pins
yun.menu.jtag.disabled=JTAG disabled
yun.menu.jtag.disabled.bootloader.high_fuses=0xd8
yun.menu.jtag.enabled=JTAG enabled
yun.menu.jtag.enabled.bootloader.high_fuses=0x98

yun.bootloader.tool=avrdude
yun.bootloader.tool.default=avrdude
yun.bootloader.low_fuses=0xff
Expand Down Expand Up @@ -289,6 +296,12 @@ mega.upload.tool.default=avrdude
mega.upload.tool.network=arduino_ota
mega.upload.maximum_data_size=8192

# JTAG pins
mega.menu.jtag.disabled=JTAG disabled
mega.menu.jtag.disabled.bootloader.high_fuses_part=d
mega.menu.jtag.enabled=JTAG enabled
mega.menu.jtag.enabled.bootloader.high_fuses_part=9

mega.bootloader.tool=avrdude
mega.bootloader.tool.default=avrdude
mega.bootloader.low_fuses=0xFF
Expand Down Expand Up @@ -361,6 +374,12 @@ megaADK.upload.maximum_size=253952
megaADK.upload.maximum_data_size=8192
megaADK.upload.speed=115200

# JTAG pins
megaADK.menu.jtag.disabled=JTAG disabled
megaADK.menu.jtag.disabled.bootloader.high_fuses=0xd8
megaADK.menu.jtag.enabled=JTAG enabled
megaADK.menu.jtag.enabled.bootloader.high_fuses=0x98

megaADK.bootloader.tool=avrdude
megaADK.bootloader.tool.default=avrdude
megaADK.bootloader.low_fuses=0xFF
Expand Down Expand Up @@ -408,6 +427,12 @@ leonardo.upload.disable_flushing=true
leonardo.upload.use_1200bps_touch=true
leonardo.upload.wait_for_upload_port=true

# JTAG pins
leonardo.menu.jtag.disabled=JTAG disabled
leonardo.menu.jtag.disabled.bootloader.high_fuses=0xd8
leonardo.menu.jtag.enabled=JTAG enabled
leonardo.menu.jtag.enabled.bootloader.high_fuses=0x98

leonardo.bootloader.tool=avrdude
leonardo.bootloader.tool.default=avrdude
leonardo.bootloader.low_fuses=0xff
Expand Down Expand Up @@ -451,6 +476,12 @@ leonardoeth.upload.disable_flushing=true
leonardoeth.upload.use_1200bps_touch=true
leonardoeth.upload.wait_for_upload_port=true

# JTAG pins
leonardoeth.menu.jtag.disabled=JTAG disabled
leonardoeth.menu.jtag.disabled.bootloader.high_fuses=0xd8
leonardoeth.menu.jtag.enabled=JTAG enabled
leonardoeth.menu.jtag.enabled.bootloader.high_fuses=0x98

leonardoeth.bootloader.tool=avrdude
leonardoeth.bootloader.tool.default=avrdude
leonardoeth.bootloader.low_fuses=0xff
Expand Down Expand Up @@ -511,6 +542,12 @@ micro.upload.disable_flushing=true
micro.upload.use_1200bps_touch=true
micro.upload.wait_for_upload_port=true

# JTAG pins
micro.menu.jtag.disabled=JTAG disabled
micro.menu.jtag.disabled.bootloader.high_fuses=0xd8
micro.menu.jtag.enabled=JTAG enabled
micro.menu.jtag.enabled.bootloader.high_fuses=0x98

micro.bootloader.tool=avrdude
micro.bootloader.tool.default=avrdude
micro.bootloader.low_fuses=0xff
Expand Down Expand Up @@ -562,6 +599,12 @@ esplora.upload.disable_flushing=true
esplora.upload.use_1200bps_touch=true
esplora.upload.wait_for_upload_port=true

# JTAG pins
esplora.menu.jtag.disabled=JTAG disabled
esplora.menu.jtag.disabled.bootloader.high_fuses=0xd8
esplora.menu.jtag.enabled=JTAG enabled
esplora.menu.jtag.enabled.bootloader.high_fuses=0x98

esplora.bootloader.tool=avrdude
esplora.bootloader.tool.default=avrdude
esplora.bootloader.low_fuses=0xff
Expand Down Expand Up @@ -761,6 +804,12 @@ LilyPadUSB.upload.disable_flushing=true
LilyPadUSB.upload.use_1200bps_touch=true
LilyPadUSB.upload.wait_for_upload_port=true

# JTAG pins
LilyPadUSB.menu.jtag.disabled=JTAG disabled
LilyPadUSB.menu.jtag.disabled.bootloader.high_fuses=0xd8
LilyPadUSB.menu.jtag.enabled=JTAG enabled
LilyPadUSB.menu.jtag.enabled.bootloader.high_fuses=0x98

LilyPadUSB.bootloader.tool=avrdude
LilyPadUSB.bootloader.tool.default=avrdude
LilyPadUSB.bootloader.low_fuses=0xff
Expand Down Expand Up @@ -844,8 +893,8 @@ pro.upload.protocol=arduino

pro.bootloader.tool=avrdude
pro.bootloader.tool.default=avrdude
pro.bootloader.unlock_bits=0x3F
pro.bootloader.lock_bits=0x0F
pro.bootloader.unlock_bits=0xFF
pro.bootloader.lock_bits=0xCF

pro.build.board=AVR_PRO
pro.build.core=arduino
Expand Down Expand Up @@ -929,8 +978,8 @@ atmegang.upload.speed=19200

atmegang.bootloader.tool=avrdude
atmegang.bootloader.tool.default=avrdude
atmegang.bootloader.unlock_bits=0x3F
atmegang.bootloader.lock_bits=0x0F
atmegang.bootloader.unlock_bits=0xFF
atmegang.bootloader.lock_bits=0xCF

atmegang.build.mcu=atmegang
atmegang.build.f_cpu=16000000L
Expand Down Expand Up @@ -998,6 +1047,12 @@ robotControl.upload.disable_flushing=true
robotControl.upload.use_1200bps_touch=true
robotControl.upload.wait_for_upload_port=true

# JTAG pins
robotControl.menu.jtag.disabled=JTAG disabled
robotControl.menu.jtag.disabled.bootloader.high_fuses=0xd8
robotControl.menu.jtag.enabled=JTAG enabled
robotControl.menu.jtag.enabled.bootloader.high_fuses=0x98

robotControl.bootloader.tool=avrdude
robotControl.bootloader.tool.default=avrdude
robotControl.bootloader.low_fuses=0xff
Expand Down Expand Up @@ -1049,6 +1104,12 @@ robotMotor.upload.disable_flushing=true
robotMotor.upload.use_1200bps_touch=true
robotMotor.upload.wait_for_upload_port=true

# JTAG pins
robotMotor.menu.jtag.disabled=JTAG disabled
robotMotor.menu.jtag.disabled.bootloader.high_fuses=0xd8
robotMotor.menu.jtag.enabled=JTAG enabled
robotMotor.menu.jtag.enabled.bootloader.high_fuses=0x98

robotMotor.bootloader.tool=avrdude
robotMotor.bootloader.tool.default=avrdude
robotMotor.bootloader.low_fuses=0xff
Expand Down Expand Up @@ -1135,6 +1196,13 @@ circuitplay32u4cat.upload_port.0.vid=0x239A
circuitplay32u4cat.upload_port.0.pid=0x8011
circuitplay32u4cat.upload_port.1.board=circuitplay32u4cat

# JTAG pins
circuitplay32u4cat.menu.jtag.disabled=JTAG disabled
circuitplay32u4cat.menu.jtag.disabled.bootloader.high_fuses=0xd8
circuitplay32u4cat.menu.jtag.enabled=JTAG enabled
circuitplay32u4cat.menu.jtag.enabled.bootloader.high_fuses=0x98


##############################################################

yunmini.name=Arduino Yún Mini
Expand All @@ -1161,6 +1229,13 @@ yunmini.upload.disable_flushing=true
yunmini.upload.use_1200bps_touch=true
yunmini.upload.wait_for_upload_port=true

# JTAG pins
yunmini.menu.jtag.disabled=JTAG disabled
yunmini.menu.jtag.disabled.bootloader.high_fuses=0xd8
yunmini.menu.jtag.enabled=JTAG enabled
yunmini.menu.jtag.enabled.bootloader.high_fuses=0x98


yunmini.bootloader.tool=avrdude
yunmini.bootloader.tool.default=avrdude
yunmini.bootloader.low_fuses=0xff
Expand Down Expand Up @@ -1206,6 +1281,13 @@ chiwawa.upload.disable_flushing=true
chiwawa.upload.use_1200bps_touch=true
chiwawa.upload.wait_for_upload_port=true

# JTAG pins
chiwawa.menu.jtag.disabled=JTAG disabled
chiwawa.menu.jtag.disabled.bootloader.high_fuses=0xd8
chiwawa.menu.jtag.enabled=JTAG enabled
chiwawa.menu.jtag.enabled.bootloader.high_fuses=0x98


chiwawa.bootloader.tool=avrdude
chiwawa.bootloader.tool.default=avrdude
chiwawa.bootloader.low_fuses=0xff
Expand Down Expand Up @@ -1251,6 +1333,12 @@ one.upload.disable_flushing=true
one.upload.use_1200bps_touch=true
one.upload.wait_for_upload_port=true

# JTAG pins
one.menu.jtag.disabled=JTAG disabled
one.menu.jtag.disabled.bootloader.high_fuses=0xd8
one.menu.jtag.enabled=JTAG enabled
one.menu.jtag.enabled.bootloader.high_fuses=0x98

one.bootloader.tool=avrdude
one.bootloader.tool.default=avrdude
one.bootloader.low_fuses=0xff
Expand Down
43 changes: 39 additions & 4 deletions platform.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,12 @@ version=1.8.8
# AVR compile variables
# ---------------------

# Optimization flags for debugging
compiler.optimization_flags=-Os-ggdb3 -DNDEBUG -flto
compiler.optimization_flags.release=-Os -ggdb3 -DNDEBUG -flto
compiler.optimization_flags.debug=-Og -ggdb3 -DDEBUG -fno-lto

# Warnings
compiler.warning_flags=-w
compiler.warning_flags.none=-w
compiler.warning_flags.default=
Expand All @@ -20,12 +26,12 @@ compiler.warning_flags.all=-Wall -Wextra
# Default "compiler.path" is correct, change only if you want to override the initial value
compiler.path={runtime.tools.avr-gcc.path}/bin/
compiler.c.cmd=avr-gcc
compiler.c.flags=-c -g -Os {compiler.warning_flags} -std=gnu11 -ffunction-sections -fdata-sections -MMD -flto -fno-fat-lto-objects
compiler.c.elf.flags={compiler.warning_flags} -Os -g -flto -fuse-linker-plugin -Wl,--gc-sections
compiler.c.flags=-c -g {compiler.optimization_flags} {compiler.warning_flags} -std=gnu11 -ffunction-sections -fdata-sections -MMD -fno-fat-lto-objects
compiler.c.elf.flags={compiler.warning_flags} {compiler.optimization_flags} -fuse-linker-plugin -Wl,--gc-sections
compiler.c.elf.cmd=avr-gcc
compiler.S.flags=-c -g -x assembler-with-cpp -flto -MMD
compiler.S.flags=-c {compiler.optimization_flags} -x assembler-with-cpp -MMD
compiler.cpp.cmd=avr-g++
compiler.cpp.flags=-c -g -Os {compiler.warning_flags} -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto
compiler.cpp.flags=-c -g {compiler.optimization_flags} {compiler.warning_flags} -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD
compiler.ar.cmd=avr-gcc-ar
compiler.ar.flags=rcs
compiler.objcopy.cmd=avr-objcopy
Expand Down Expand Up @@ -140,3 +146,32 @@ tools.arduino_ota.upload.pattern="{cmd}" -address {upload.port.address} -port {u
# - from numeric vendor ID, set to Unknown otherwise
build.usb_manufacturer="Unknown"
build.usb_flags=-DUSB_VID={build.vid} -DUSB_PID={build.pid} '-DUSB_MANUFACTURER={build.usb_manufacturer}' '-DUSB_PRODUCT={build.usb_product}'

# Debugger configuration (general options)
# ----------------------------------------
debug.executable={build.path}/{build.project_name}.elf
debug.toolchain=gcc
debug.toolchain.path={runtime.tools.avrocd-tools.path}

debug.server=openocd
debug.server.openocd.path={debug.toolchain.path}/pyavrocd
#next doesn't matter, but should be specified so that cortex-debug is happy
debug.server.openocd.script=nix
debug.cortex-debug.custom.gdbPath={debug.toolchain.path}/avr-gdb
debug.cortex-debug.custom.overrideGDBServerStartedRegex=Listening on port \d+ for gdb connection
debug.cortex-debug.custom.objdumpPath={runtime.tools.avr-gcc.path}/bin/avr-objdump
debug.cortex-debug.custom.serverArgs.0=-s
debug.cortex-debug.custom.serverArgs.1=nop
debug.cortex-debug.custom.serverArgs.2=--device
debug.cortex-debug.custom.serverArgs.3={build.mcu}
debug.cortex-debug.custom.serverArgs.4=--manage
debug.cortex-debug.custom.serverArgs.5=all
debug.cortex-debug.custom.serverArgs.6=--F_CPU
debug.cortex-debug.custom.serverArgs.7={build.f_cpu}
debug.cortex-debug.custom.serverArgs.8=--elf-file
debug.cortex-debug.custom.serverArgs.9={debug.executable}
debug.cortex-debug.custom.serverArgs.10=--prog-clock
debug.cortex-debug.custom.serverArgs.11=2000
debug.cortex-debug.custom.preLaunchCommands.0=monitor debugwire enable
debug.cortex-debug.custom.runToEntryPoint=main
debug.svd_file={debug.toolchain.path}/pyavrocd-util/svd/{build.mcu}.svd
96 changes: 74 additions & 22 deletions programmers.txt
Original file line number Diff line number Diff line change
Expand Up @@ -102,29 +102,81 @@ stk500.program.tool=avrdude
stk500.program.tool.default=avrdude
stk500.program.extra_params=-P{serial.port}

jtag3isp.name=Atmel JTAGICE3 (ISP mode)
jtag3isp.communication=usb
jtag3isp.protocol=jtag3isp
jtag3isp.program.protocol=jtag3isp
jtag3isp.program.tool=avrdude
jtag3isp.program.tool.default=avrdude
jtag3isp.program.extra_params=

jtag3.name=Atmel JTAGICE3 (JTAG mode)
jtag3.communication=usb
jtag3.protocol=jtag3
jtag3.program.protocol=jtag3
jtag3.program.tool=avrdude
jtag3.program.tool.default=avrdude
# Set a bitclock of 0.1us (the fastest supported value). This should
# work regardless of the crystal used, since JTAG doesn't use the MCU
# clock but dictates its own clock.
jtag3.program.extra_params=-B0.1

atmel_ice.name=Atmel-ICE (AVR)
atmel_ice.name=Atmel-ICE (AVR) ISP
atmel_ice.communication=usb
atmel_ice.protocol=atmelice_isp
atmel_ice.program.protocol=atmelice_isp
atmel_ice.program.tool=avrdude
atmel_ice.program.tool.default=avrdude
atmel_ice.program.extra_params=-Pusb
atmel_ice.program.extra_params=

atmel_icej.name=Atmel-ICE (AVR) JTAG
atmel_icej.communication=usb
atmel_icej.protocol=atmelice_jtag
atmel_icej.program.protocol=atmelice_jtag
atmel_icej.program.tool=avrdude
atmel_icej.program.extra_params=

atmel_powerdebugger.name=Power Debugger (AVR) ISP
atmel_powerdebugger.communication=usb
atmel_powerdebugger.protocol=powerdebugger_isp
atmel_powerdebugger.program.protocol=powerdebugger_isp
atmel_powerdebugger.program.tool=avrdude
atmel_powerdebugger.program.extra_params=

atmel_powerdebuggerj.name=Power Debugger (AVR) JTAG
atmel_powerdebuggerj.communication=usb
atmel_powerdebuggerj.protocol=powerdebugger_jtag
atmel_powerdebuggerj.program.protocol=powerdebugger_jtag
atmel_powerdebuggerj.program.tool=avrdude
atmel_powerdebuggerj.program.extra_params=

atmel_jtagice3.name=JTAGICE3 ISP
atmel_jtagice3.communication=usb
atmel_jtagice3.protocol=jtag3isp
atmel_jtagice3.program.protocol=jtag3isp
atmel_jtagice3.program.tool=avrdude
atmel_jtagice3.program.extra_params=

atmel_jtagice3j.name=JTAGICE3 JTAG
atmel_jtagice3j.communication=usb
atmel_jtagice3j.protocol=jtag3
atmel_jtagice3j.program.protocol=jtag3
atmel_jtagice3j.program.tool=avrdude
atmel_jtagice3j.program.extra_params=
atmel_jtagice3j.program.extra_params=-B0.1

pickit4_isp.name=PICkit4 ISP
pickit4_isp.communication=usb
pickit4_isp.protocol=pickit4_isp
pickit4_isp.program.protocol=pickit4_isp
pickit4_isp.program.tool=avrdude
pickit4_isp.program.extra_params=

pickit4_jtag.name=PICkit4 JTAG
pickit4_jtag.communication=usb
pickit4_jtag.protocol=pickit4_jtag
pickit4_jtag.program.protocol=pickit4_jtag
pickit4_jtag.program.tool=avrdude
pickit4_jtag.program.extra_params=

snap_isp.name=MPLAB SNAP ISP
snap_isp.communication=usb
snap_isp.protocol=snap_isp
snap_isp.program.protocol=snap_isp
snap_isp.program.tool=avrdude
snap_isp.program.extra_params=

snap_jtag.name=MPLAB SNAP JTAG
snap_jtag.communication=usb
snap_jtag.protocol=snap_jtag
snap_jtag.program.protocol=snap_jtag
snap_jtag.program.tool=avrdude
snap_jtag.program.extra_params=

simavr.name=Simulator (simavr)
simavr.debug.cortex-debug.custom.serverArgs.1={debug.toolchain.path}/bin/simavr
simavr.protocol=This_is_not_a_programmer_but_only_a_flag_to_use_the_simulator_when_debugging
simavr.upload.protocol=This_is_not_a_programmer_but_only_a_flag_to_use_the_simulator_when_debugging
simavr.program.protocol=This_is_not_a_programmer_but_only_a_flag_to_use_the_simulator_when_debugging
simavr.program.tool=avrdude
simavr.program.extra_params=
Loading