From d634b31ad3928708160d373e10556bd65ed7e4ca Mon Sep 17 00:00:00 2001 From: Bernhard Nebel Date: Wed, 20 May 2026 10:16:49 +0200 Subject: [PATCH] v2.7.0 --- megaavr/platform.txt | 45 ++++++++++++++++++++++++++++++++++++----- megaavr/programmers.txt | 36 +++++++++++++++++++++++++++++---- 2 files changed, 72 insertions(+), 9 deletions(-) diff --git a/megaavr/platform.txt b/megaavr/platform.txt index 4743a49b..6605995c 100644 --- a/megaavr/platform.txt +++ b/megaavr/platform.txt @@ -16,7 +16,7 @@ version={versionnum.major}.{versionnum.minor}.{versionnum.patch}{versionnum.post # Stupid workaround # # for IDE bug # ##################### -version=2.6.11 +version=2.7.0 build.versiondefines=-DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} -DMEGATINYCORE="{version}" -DMEGATINYCORE_MAJOR={versionnum.major}UL -DMEGATINYCORE_MINOR={versionnum.minor}UL -DMEGATINYCORE_PATCH={versionnum.patch}UL -DMEGATINYCORE_RELEASED={versionnum.released} @@ -26,6 +26,14 @@ build.optiondefines=-DF_CPU={build.f_cpu} -DCLOCK_SOURCE={build.clocksource} -DT # AVR compile variables # ######################### +# Optimization flags for debugging +# -mrelax does not work with debugging since debug line information +# is completely garbeled. Therefore include {build.mrelax} only under +# release flags (or better not at all) +compiler.optimization_flags=-Os -ggdb3 -DNDEBUG +compiler.optimization_flags.release=-Os -ggdb3 -DNDEBUG +compiler.optimization_flags.debug=-Og -ggdb3 -DDEBUG + compiler.warning_flags=-Wall compiler.warning_flags.none=-Wall compiler.warning_flags.default=-Wall @@ -35,12 +43,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 {build.mrelax} -Werror=implicit-function-declaration -Wundef -compiler.c.elf.flags={compiler.warning_flags} -Os -g -flto -fuse-linker-plugin -Wl,--gc-sections -Wl,--section-start={build.text_section_start} {build.mrelax} +compiler.c.flags=-c {compiler.optimization_flags} {compiler.warning_flags} -std=gnu11 -ffunction-sections -fdata-sections -MMD -flto -fno-fat-lto-objects -Werror=implicit-function-declaration -Wundef +compiler.c.elf.flags={compiler.warning_flags} {compiler.optimization_flags} -flto -fuse-linker-plugin -Wl,--gc-sections -Wl,--section-start={build.text_section_start} 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 -flto -MMD compiler.cpp.cmd=avr-g++ -compiler.cpp.flags=-c -g -Os {compiler.warning_flags} -std=gnu++17 -fpermissive -Wno-sized-deallocation -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto {build.mrelax} +compiler.cpp.flags=-c {compiler.optimization_flags} {compiler.warning_flags} -std=gnu++17 -fpermissive -Wno-sized-deallocation -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto compiler.ar.cmd=avr-gcc-ar compiler.ar.flags=rcs compiler.objcopy.cmd=avr-objcopy @@ -240,3 +248,30 @@ tools.serialupdi.bootloader.pattern="{cmd}" -u "{runtime.platform.path}/tools/pr # bootloader being erased but no sketches working) tools.serialupdi.program.pattern={upload.prog_interlock}"{cmd}" -u "{runtime.platform.path}/tools/prog.py" -t {protocol} {program.extra_params} -d {build.mcu}{upload.workaround} --fuses 0:{bootloader.WDTCFG} 2:{bootloader.OSCCFG} 6:{bootloader.SYSCFG1} 7:{bootloader.APPEND} 8:{bootloader.BOOTEND} "-f{build.path}/{build.project_name}.hex" -a write {program.verbose} + +# 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.runToEntryPoint=main +debug.svd_file={debug.toolchain.path}/pyavrocd-util/svd/{build.mcu}.svd \ No newline at end of file diff --git a/megaavr/programmers.txt b/megaavr/programmers.txt index cdc7aa20..1002a7ff 100644 --- a/megaavr/programmers.txt +++ b/megaavr/programmers.txt @@ -76,23 +76,51 @@ medbg.program.protocol=xplainedmini_updi medbg.program.tool=avrdude medbg.program.extra_params=-Pusb -atmelice_updi.name=Atmel-ICE +atmelice_updi.name=Atmel-ICE (UPDI mode) atmelice_updi.communication=usb atmelice_updi.protocol=atmelice_updi -atmelice_updi.program.protocol=jtagice3_updi +atmelice_updi.program.protocol=atmelice_updi atmelice_updi.program.tool=avrdude atmelice_updi.program.extra_params=-Pusb pickit4_updi.name=PICkit4 (UPDI mode) pickit4_updi.communication=usb pickit4_updi.protocol=pickit4_updi -pickit4_updi.program.protocol=jtagice3_updi +pickit4_updi.program.protocol=pickit4_updi pickit4_updi.program.tool=avrdude pickit4_updi.program.extra_params=-Pusb snap_updi.name=MPLAB SNAP (UPDI mode) snap_updi.communication=usb snap_updi.protocol=snap_updi -snap_updi.program.protocol=jtagice3_updi +snap_updi.program.protocol=snap_updi snap_updi.program.tool=avrdude snap_updi.program.extra_params=-Pusb + +jtagice3_updi.name=JTAGICE3 (UPDI mode) +jtagice3_updi.communication=usb +jtagice3_updi.protocol=jtag3updi +jtagice3_updi.program.protocol=jtag3updi +jtagice3_updi.program.tool=avrdude +jtagice3_updi.program.extra_params= + +pickit5_updi.name=PICkit5 (UPDI mode) +pickit5_updi.communication=usb +pickit5_updi.protocol=pickit5_updi +pickit5_updi.program.protocol=pickit5_updi +pickit5_updi.program.tool=avrdude +pickit5_updi.program.extra_params= + +pickit_basic_updi.name=PICkit Basic (UPDI mode) +pickit_basic_updi.communication=usb +pickit_basic_updi.protocol=pickit_basic_updi +pickit_basic_updi.program.protocol=pickit_basic_updi +pickit_basic_updi.program.tool=avrdude +pickit_basic_updi.program.extra_params= + +atmel_powerdebugger_updi.name=Power Debugger (UPDI mode) +atmel_powerdebugger_updi.communication=usb +atmel_powerdebugger_updi.protocol=powerdebugger_updi +atmel_powerdebugger_updi.program.protocol=powerdebugger_updi +atmel_powerdebugger_updi.program.tool=avrdude +atmel_powerdebugger_updi.program.extra_params=