diff options
| author | tslil <tslil@posteo.de> | 2021-01-16 14:52:56 -0500 |
|---|---|---|
| committer | tslil <tslil@posteo.de> | 2026-08-28 19:37:41 +0100 |
| commit | 2ad167622077b875a3d4157d27690a575c9248af (patch) | |
| tree | 37beb7087d2d8cb4f5a70e8eba02bed68370a288 /Makefile | |
| parent | 50b9955b040005e489127a11cf9c1648438a6266 (diff) | |
Starting work on MCU port
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 47 |
1 files changed, 44 insertions, 3 deletions
@@ -1,4 +1,7 @@ IDIR=include + +# ------------------------------------------------------------------- +# Computer stuff TPDIR=3rd-party DEFINES=-DDETERMINISTIC CFLAGS=-O3 -Wall -Wextra -std=c99 -D_DEFAULT_SOURCE $(DEFINES) -I$(IDIR) -I$(TPDIR) @@ -11,6 +14,27 @@ PROG=ctaklm STAT=pptdb SIZE=size +# ------------------------------------------------------------------- +# MCU stuff +MCU=atmega32 +F_CPU=20000000UL +ACC=avr-gcc +ACFLAGS=-Os -Wall -fpack-struct -fshort-enums -funsigned-bitfields -funsigned-char -I$(IDIR) +AOBJCOPY=avr-objcopy +AOBJSIZE=avr-size + +AVRDUDE=avrdude +ADFLAGS=-c usbasp -p t24 + +TARGET=mcu +AHEX=$(TARGET).hex +ASRC=src/$(TARGET).c $(wildcard include/*.c) +AOBJ=$(patsubst %.c, %.o, $(ASRC)) +AASM=$(patsubst %.c, %.s, $(ASRC)) + +# ------------------------------------------------------------------- +# Targets + %.o: %.c cc -c $< -o $@ $(CFLAGS) @@ -21,8 +45,25 @@ $(PROG): src/$(PROG).o $(OBJS) $(STAT): src/$(STAT).o $(OBJS) $(CC) $(CFLAGS) src/$(STAT).o $(OBJS) -o $(STAT) +avr: $(AHEX) $(AASM) ASUMMARY upload + +$(AHEX): $(AOBJ) + $(AOBJCOPY) -S -j .text -j .data -O ihex $< $@ + +$(AOBJ): $(ASRC) + $(ACC) $(ACFLAGS) -DF_CPU=$(F_CPU) -mmcu=$(MCU) $(ASRC) -o $@ + +%.s: %.c + $(ACC) -S $(ACFLAGS) -DF_CPU=$(F_CPU) -mmcu=$(MCU) $< -o $@ + +ASUMMARY: $(AOBJ) + @echo ---------------------------------------------------------------------- + @$(AOBJSIZE) $(AOBJ) $(AHEX) + +upload: $(TARGET).hex + $(AVRDUDE) $(ADFLAGS) -U flash:w:$< + clean: - rm -f $(PROG) - rm -f $(STAT) + rm -f $(PROG) $(STAT) $(OBJS) + rm -f $(AOBJ) $(AHEX) $(AASM) rm -f src/*.o - rm -f $(OBJS) |
