From b014926833f2018d6307c50bcd5aa5950a73d8bb Mon Sep 17 00:00:00 2001 From: Rihards Skuja Date: Fri, 24 Nov 2017 17:24:12 +0200 Subject: [PATCH] Add debugging support with simavr --- Makefile | 6 +++++- include/debug.h | 16 ++++++++++++++++ src/main.c | 4 ++++ 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 include/debug.h diff --git a/Makefile b/Makefile index 907e8c6..33686aa 100644 --- a/Makefile +++ b/Makefile @@ -42,9 +42,11 @@ CTUNING = -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums #CEXTRA = -Wa,-adhlns=$(<:.c=.lst) CFLAGS = $(CDEBUG) $(CDEFS) $(CINCS) -O$(OPT) $(CWARN) $(CSTANDARD) $(CEXTRA) - #ASFLAGS = -Wa,-adhlns=$(<:.S=.lst),-gstabs +ifeq ($(BUILD),debug) + CFLAGS += -DDEBUG +endif #Additional libraries. @@ -140,6 +142,8 @@ program: $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).eep $(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM) +debug: + make "BUILD=debug" # Convert ELF to COFF for use in debugging / simulating in AVR Studio or VMLAB. diff --git a/include/debug.h b/include/debug.h new file mode 100644 index 0000000..aa7197a --- /dev/null +++ b/include/debug.h @@ -0,0 +1,16 @@ +#ifndef DEBUG_H +#define DEBUG_H + +#include +#include "/usr/include/simavr/avr/avr_mcu_section.h" +AVR_MCU(F_CPU, "atmega328p"); +const struct avr_mmcu_vcd_trace_t _mytrace[] _MMCU_ = { + { AVR_MCU_VCD_SYMBOL("DDRB"), .what = (void *) &DDRB, }, + { AVR_MCU_VCD_SYMBOL("DDRD"), .what = (void *) &DDRD, }, + { AVR_MCU_VCD_SYMBOL("PORTD"), .what = (void *) &PORTD, }, + { AVR_MCU_VCD_SYMBOL("TCCR0B"), .what = (void *) &TCCR0B, }, + { AVR_MCU_VCD_SYMBOL("TCCR0A"), .what = (void *) &TCCR0A, }, + { AVR_MCU_VCD_SYMBOL("OCR0A"), .what = (void*)&OCR0A, }, +}; + +#endif /* DEBUG_H */ diff --git a/src/main.c b/src/main.c index f6eec79..f9466e7 100644 --- a/src/main.c +++ b/src/main.c @@ -5,6 +5,10 @@ #include "main.h" #include "io.h" +#ifdef DEBUG +#include "debug.h" +#endif /* DEBUG */ + void initIO() { DDRD |= (1 << LED_1);