#NAME=aout.elf.a43
NAME=aout.elf

.SUFFIXES: .bdf

CPU    = msp430f449

CFLAGS=-mmcu=$(CPU) -g -Os -Wall -Wunused
ASFLAGS=-mmcu=$(CPU) -x assembler-with-cpp -Wa,-gstabs
LDFLAGS=-mmcu=$(CPU) -Wl,-Map=$(TARGET).map

# RAM is 0x0200 to 0x09ff
# Flash is 0x1100 to 0xFFE0   (interupt vectors are 0xFFE0 to 0xFFFF)
# Text segment starts at 0x1100  and goes to about 0x5bb2

LDFLAGS+=-Wl,--section-start -Wl,.configsectiona=0xfc00    
LDFLAGS+=-Wl,--section-start -Wl,.configsectionb=0xfa00
LDFLAGS+=-Wl,--section-start -Wl,.sourcesection=0x9000

CC=msp430-gcc

all: ${NAME}

${NAME}: test.o usart.o cli.o lamps.o adc.o panel.o osc.o amp.o configuration.o src.elf
	msp430-gcc -mmcu=${CPU} ${LDFLAGS} -o $@ $>
	msp430-objcopy -O ihex $@ $@.a43
	msp430-objdump -DS aout.elf >${NAME}.lst

clean:
	rm -f ${NAME} ${NAME}.a43 ${NAME}.lst ${NAME}.ini *.o *elf aout.elf.lst  src.tgz 

flash: aout.elf.a43
	msp430-jtag.py --lpt=/dev/ppi0 -R 2048 -e -p -r -w aout.elf.a43 

# If using the MSP430 demo board, this will power the CPU off the 
# jtag interface.
power:
	msp430-jtag.py --lpt=/dev/ppi0 -R 2048 -r -w


# The tar is overwritten because it makes flashing take longer, for a debug cycle.
src.elf: 
	tar -cf - *.[ch] Makefile | gzip -9 > src.tgz
	#echo "debug version" > src.tgz
	msp430-objcopy -I binary -O elf32-msp430 --rename-section .data=.sourcesection,alloc,load,readonly,data,contents src.tgz src.elf

osc.o: energycontrol.c i2c.c
amp.o: energycontrol.c i2c.c
