From b3decd1f430918ba585b53808d51ba3fabc7b4f2 Mon Sep 17 00:00:00 2001 From: Bernhard Nebel Date: Sun, 24 May 2026 15:31:03 +0200 Subject: [PATCH] debug extension ready for PR --- boards.txt | 1 + platform.txt | 41 +++++++++++++++++++++++++++++++++++++---- programmers.txt | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 87 insertions(+), 4 deletions(-) diff --git a/boards.txt b/boards.txt index 504c40af..041704cd 100644 --- a/boards.txt +++ b/boards.txt @@ -3,6 +3,7 @@ ############################################################## uno2018.name=Arduino UNO WiFi Rev2 +uno2018.programmer.default=medbg uno2018.vid.0=0x03eb uno2018.pid.0=0x2145 diff --git a/platform.txt b/platform.txt index 50992217..c1773543 100644 --- a/platform.txt +++ b/platform.txt @@ -11,6 +11,11 @@ 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 + compiler.warning_flags=-w compiler.warning_flags.none=-w compiler.warning_flags.default= @@ -20,12 +25,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 -Wl,--section-start={build.text_section_start} +compiler.c.flags=-c {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 -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 -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 {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 @@ -144,3 +149,31 @@ tools.arduino_ota.upload.pattern="{tools.arduino_ota.cmd}" -address {upload.port # - 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.runToEntryPoint=main +debug.svd_file={debug.toolchain.path}/pyavrocd-util/svd/{build.mcu}.svd \ No newline at end of file diff --git a/programmers.txt b/programmers.txt index 70af3a0a..e012251e 100644 --- a/programmers.txt +++ b/programmers.txt @@ -5,3 +5,52 @@ medbg.program.protocol=xplainedmini_updi medbg.program.tool=avrdude medbg.program.tool.default=avrdude medbg.program.extra_params=-Pusb + +cusiositynano.name=Curiosity Nano +cusiositynano.communication=usb +cusiositynano.protocol=pkobn_updi +cusiositynano.program.protocol=pkobn_updi +cusiositynano.program.tool=avrdude +cusiositynano.program.extra_params= + +pickit5_updi.name=PICkit5 UPDI +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= + +pickit4_updi.name=PICkit4 UPDI +pickit4_updi.communication=usb +pickit4_updi.protocol=pickit4_updi +pickit4_updi.program.protocol=pickit4_updi +pickit4_updi.program.tool=avrdude +pickit4_updi.program.extra_params= + +snap_updi.name=MPLAB SNAP UPDI +snap_updi.communication=usb +snap_updi.protocol=snap_updi +snap_updi.program.protocol=snap_updi +snap_updi.program.tool=avrdude +snap_updi.program.extra_params= + +atmelice_updi.name=Atmel-ICE UPDI +atmelice_updi.communication=usb +atmelice_updi.protocol=atmelice_updi +atmelice_updi.program.protocol=atmelice_updi +atmelice_updi.program.tool=avrdude +atmelice_updi.program.extra_params= + +jtagice3_updi.name=JTAGICE3 UPDI +jtagice3_updi.communication=usb +jtagice3_updi.protocol=jtag3updi +jtagice3_updi.program.protocol=jtag3updi +jtagice3_updi.program.tool=avrdude +jtagice3_updi.program.extra_params= + +atmel_powerdebugger_updi.name=Power Debugger UPDI +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=