altos/micropeak: Create a script to load firmware.
authorKeith Packard <keithp@keithp.com>
Mon, 16 Jun 2014 22:59:09 +0000 (15:59 -0700)
committerKeith Packard <keithp@keithp.com>
Mon, 16 Jun 2014 22:59:09 +0000 (15:59 -0700)
The micropeak-load script flashes micropeak with firmware from
whatever directory it is sitting in. A 'publish' target in the source
directory copies the script and hex to ~/altusmetrumllc/Binaries

Signed-off-by: Keith Packard <keithp@keithp.com>
src/micropeak/Makefile

index 6ae3d0be2acb08611b2119bfe611d3b7d659f02d..ac00f635e77d5d23a581b520a207a0ef4b024a4d 100644 (file)
@@ -8,8 +8,15 @@ vpath make-altitude-pa ../util
 
 include ../avr/Makefile.defs
 
 
 include ../avr/Makefile.defs
 
+PROGNAME=micropeak-v0.1
+PROG=$(PROGNAME)-$(VERSION).elf
+HEX=$(PROGNAME)-$(VERSION).ihx
+
+SCRIPT=micropeak-load
+
 PUBLISH_DIR=$(HOME)/altusmetrumllc/Binaries
 PUBLISH_DIR=$(HOME)/altusmetrumllc/Binaries
-PUBLISH_FILE=$(PUBLISH_DIR)/$(PROG)-$(VERSION).hex
+PUBLISH_HEX=$(PUBLISH_DIR)/$(HEX)
+PUBLISH_SCRIPT=$(PUBLISH_DIR)/$(SCRIPT)
 
 MCU=attiny85
 DUDECPUTYPE=t85
 
 MCU=attiny85
 DUDECPUTYPE=t85
@@ -55,8 +62,6 @@ CFLAGS += -g -mmcu=$(MCU) -Wall -Wstrict-prototypes -O2 -mcall-prologues -DATTIN
 
 NICKLE=nickle
 
 
 NICKLE=nickle
 
-PROG=micropeak-v0.1
-
 SRC=$(ALTOS_SRC)
 OBJ=$(SRC:.c=.o)
 
 SRC=$(ALTOS_SRC)
 OBJ=$(SRC:.c=.o)
 
@@ -68,7 +73,7 @@ endif
 # Otherwise, print the full command line.
 quiet ?= $($1)
 
 # Otherwise, print the full command line.
 quiet ?= $($1)
 
-all: $(PROG) $(PROG).hex
+all: $(PROG) $(HEX) micropeak-load
 
 CHECK=sh ../util/check-avr-mem
 
 
 CHECK=sh ../util/check-avr-mem
 
@@ -76,16 +81,16 @@ $(PROG): Makefile $(OBJ)
        $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ)
        $(call quiet,CHECK) $(PROG) || ($(RM) -f $(PROG); exit 1)
 
        $(call quiet,CC) $(LDFLAGS) $(CFLAGS) -o $(PROG) $(OBJ)
        $(call quiet,CHECK) $(PROG) || ($(RM) -f $(PROG); exit 1)
 
-$(PROG).hex: $(PROG)
+$(HEX): $(PROG)
        avr-size $(PROG)
        $(OBJCOPY) -R .eeprom -O ihex $(PROG) $@
 
 
        avr-size $(PROG)
        $(OBJCOPY) -R .eeprom -O ihex $(PROG) $@
 
 
-load: $(PROG).hex
-       $(LOADCMD) $(LOADARG)$(PROG).hex
+load: $(HEX)
+       $(LOADCMD) $(LOADARG)$(HEX)
 
 
-load-slow: $(PROG).hex
-       $(LOADCMD) $(LOADSLOW) $(LOADARG)$(PROG).hex
+load-slow: $(HEX)
+       $(LOADCMD) $(LOADSLOW) $(LOADARG)$(HEX)
 
 ao_product.h: ao-make-product.5c ../Version
        $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
 
 ao_product.h: ao-make-product.5c ../Version
        $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@
@@ -98,22 +103,30 @@ ao_product.o: ao_product.c ao_product.h
 distclean:     clean
 
 clean:
 distclean:     clean
 
 clean:
-       rm -f *.o $(PROG) $(PROG).hex
+       rm -f *.o $(PROG) $(HEX) $(SCRIPT)
        rm -f ao_product.h
 
        rm -f ao_product.h
 
+publish: $(PUBLISH_HEX) $(PUBLISH_SCRIPT)
 
 
-publish: $(PROG).hex
-       cp -a $(PROG).hex $(PUBLISH_FILE)
+$(PUBLISH_HEX): $(HEX)
+       cp -a $(HEX) $@
+
+$(PUBLISH_SCRIPT): $(SCRIPT)
+       cp -a $(SCRIPT) $@
 
 load-product:
 
 load-product:
-       $(LOADCMD) $(LOADARG)$(PUBLISH_FILE)
+       ./$(SCRIPT) fast
 
 load-product-slow:
 
 load-product-slow:
-       $(LOADCMD) $(LOADSLOW) $(LOADARG)$(PUBLISH_FILE)
+       ./$(SCRIPT) slow
 
 ../altitude-pa.h: make-altitude-pa
        nickle $< > $@
 
 
 ../altitude-pa.h: make-altitude-pa
        nickle $< > $@
 
+$(SCRIPT): $(SCRIPT).tmpl Makefile ../Version
+       sed -e 's/%HEX%/$(HEX)/' -e 's/%LOADCMD%/$(LOADCMD)/' -e 's/%LOADARG%/$(LOADARG)/' -e 's/%LOADSLOW%/$(LOADSLOW)/' $(SCRIPT).tmpl > $@ || (rm $@ && exit 1)
+       chmod +x $@
+
 install:
 
 uninstall:
 install:
 
 uninstall: