#
#le contenu de la memoire flash et de l'eeprom sont visibles
#avec la commande uisp --download --segment=xxxx
#
#le format de sortie est le S record format de motorola
#decrit dans le reperoire DOC ATMEL sformat.txt
#
#Attention, la fonction --erase efface la flash et l'eeprom
#
#exemple pour lire la flash
#uisp -dprog=dapa -dlpt=/dev/parport0 --download --segment=flash -dpart=atmega32 -dno-poll > contenu.txt
#
#
#
#
#pour lire et programmer les fusibles (ici horloge externe 16 MHz)
#uisp -dprog=dapa -dlpt=/dev/parport0 --rd_fuses
#uisp -dlpt=/dev/parport0 -dprog=dapa --wr_fuse_l=0xff
#uisp -dlpt=/dev/parport0 -dprog=dapa --wr_fuse_h=0xc9


#DEFINITIONS POUR LA COMPILATION
CC			=	avr-gcc
CFLAGS		=	-g -Os -Wall -mcall-prologues -mmcu=atmega32
OBJ2HEX		=	avr-objcopy 
UISP		=	uisp 

LIB0		=	-lm

LIB			=	$(LIB0)  
PATHLIB		=	/home/phil/ETUDES_TUBES/MU_TRACER/PRGM/LIB/lib/

TARGET		=	dummy_12ax7_v04



#charge le fichier hexa dans la memoire flash du microcontroleur
program : $(TARGET).hex
	
	#effacement memoire flash
	$(UISP) -dprog=dapa -dlpt=/dev/parport0 --erase -dpart=atmega32 -dno-poll

	#ecriture memoire flash
	$(UISP) -dprog=dapa -dlpt=/dev/parport0 --upload -dpart=atmega32  -dno-poll\
		if=$(TARGET).hex -v=2


#transforme l'objet en fichier hexadecimal
$(TARGET).hex : $(TARGET).obj

	$(OBJ2HEX) -R .eeprom -O ihex $(TARGET).obj $(TARGET).hex




#compile le source pour former le point o
$(TARGET).obj : $(TARGET).c $(TARGET).h

	$(CC) $(CFLAGS) $(TARGET).c $(TARGET).h $(LIB)  -L $(PATHLIB) -o $(TARGET).obj



assembleur:
	rm -f desassemble.txt
	avr-objdump -h -S $(TARGET).obj >> desassemble.txt


clean :
	rm -f *.hex *.obj *~ *.o


tar :
	rm -f $(TARGET).tar
	tar cvf $(TARGET).tar *
	chown phil $(TARGET).tar
	chgrp phil $(TARGET).tar

gaz:
	clear
	make clean
	make program
	make assembleur
