added the makefile for building the program

This commit is contained in:
jakeg00dwin 2023-12-09 09:14:48 -08:00
parent f4d1ec92c7
commit bf4636d994
1 changed files with 60 additions and 0 deletions

60
makefile Normal file
View File

@ -0,0 +1,60 @@
# Author: Jake Goodwin
# DATE: 2023-12-07
# Descripion: A simple makefile for building and flashing hex files
# Makefile for ATtiny13A
# Compiler
CC = avr-gcc
#Default cpu frequency is 9.8Mhz, 4.8 gives us less power consumption
#F_CPU = 4800000UL
F_CPU = 9800000UL
MCU = attiny13a
# Flags
CFLAGS = -g -Os -mmcu=$(MCU) -DF_CPU=$(F_CPU)
LDFLAGS = -Wl,-Map,$(TARGET).map
# Source files
SRC = main.c
# Object files
OBJ = $(SRC:.c=.o)
# Target HEX file
TARGET = main
# Flashing options
AVRDUDE = avrdude
AVRDUDE_PROGRAMMER = -c usbasp
BUADRATE = -B 125kHz
AVRDUDE_PORT = -P /dev/ttyUSB0
AVRDUDE_MCU = -p $(MCU)
# Compile and generate HEX file
all: $(TARGET).hex
$(TARGET).hex: $(TARGET).elf
avr-objcopy -j .text -j .data -O ihex $< $@
$(TARGET).elf: $(OBJ)
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
size: $(TARGET).o
avr-size --mcu=$(MCU) -t ./$(TARGET).o
flash_defualt_fuses:
$(AVRDUDE) $(AVRDUDE_PROGRAMMER) $(AVRDUDE_PORT) $(AVRDUDE_MCU) $(BUADRATE) -U lfuse:w:0x6A:m -U hfuse:w:0xFF:m -U lock:w:0xFF:m
flash_slow_fuse:
$(AVRDUDE) $(AVRDUDE_PROGRAMMER) $(AVRDUDE_PORT) $(AVRDUDE_MCU) $(BUADRATE) -U lfuse:w:0x69:m -U hfuse:w:0xFF:m -U lock:w:0xFF:m
flash: $(TARGET).hex
$(AVRDUDE) $(AVRDUDE_PROGRAMMER) $(AVRDUDE_PORT) $(AVRDUDE_MCU) $(BUADRATE) -U flash:w:$(TARGET).hex:i
clean:
rm -f $(OBJ) $(TARGET).elf $(TARGET).hex $(TARGET).map
.PHONY: all clean