#makefile, written by guido socher

# CPU Type
MCU=atmega8

# Projektname
NAME=test

# Startadresse des Programms
# 0x0000	-> bei normalem Programmstart
# 0x1C00	-> z.B. AVR Bootloader von 1024 Byte ( Achtung ! Laut Datenblatt Wortadressen !!) 
# 0x1800	-> z.B. AVR Bootloader von 2048 Byte

START_ADR=0x1800


# verwendeter Compiler
CC=avr-gcc
LD=avr-gcc
OBJCOPY=avr-objcopy
# optimize for size:
CFLAGS= -mmcu=$(MCU) -Wall -Wstrict-prototypes -Os -mcall-prologues 
LDFLAGS=-Wl,-Map=$(NAME).map,--cref,--section-start=.flashloader=$(START_ADR) --mmcu=$(MCU)

#-------------------
all: $(NAME).hex
#-------------------
$(NAME).hex : $(NAME).out
	$(OBJCOPY) -R .eeprom -O ihex $(NAME).out $(NAME).hex

$(NAME).out : $(NAME).o
	$(CC) $(CFLAGS) -o $(NAME).out -Wl,-Map,$(NAME).map main.o

$(NAME).o : main.c
	$(CC) $(CFLAGS) -Os -c main.c

# you need to erase first before loading the program.
# load (program) the software into the eeprom:

load: 		$(NAME).hex
		uisp  -dprog=dasa2 -dserial=/dev/ttyS0 -dpart=$(MCU) --erase
		uisp  -dprog=dasa2 -dserial=/dev/ttyS0 -dpart=$(MCU) --upload if=$(NAME).hex

info:		$(NAME).hex
		avr-size $(NAME).out

asm:		$(NAME).hex
		avr-objdump -S $(NAME).out

readfuse:	$(NAME).hex
		uisp -dprog=dasa2 -dpart=$(MCU) -dserial=/dev/ttyS0 --rd_fuses

setquarz_m8:	$(NAME).hex
		uisp -dprog=dasa2 -dpart=$(MCU) -dserial=/dev/ttyS0 --wr_fuse_l=0x3f

clean:		$(NAME).hex
		rm -f *.o *.map *.out

#-------------------
