diff options
Diffstat (limited to 'boiler-monster/stm32/app/Makefile')
-rw-r--r-- | boiler-monster/stm32/app/Makefile | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/boiler-monster/stm32/app/Makefile b/boiler-monster/stm32/app/Makefile new file mode 100644 index 0000000..23b4a74 --- /dev/null +++ b/boiler-monster/stm32/app/Makefile @@ -0,0 +1,113 @@ +## +## This file is part of the libopencm3 project. +## +## Copyright (C) 2009 Uwe Hermann <uwe@hermann-uwe.de> +## +## This library is free software: you can redistribute it and/or modify +## it under the terms of the GNU Lesser General Public License as published by +## the Free Software Foundation, either version 3 of the License, or +## (at your option) any later version. +## +## This library is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU Lesser General Public License for more details. +## +## You should have received a copy of the GNU Lesser General Public License +## along with this library. If not, see <http://www.gnu.org/licenses/>. +## + +CPROTO=cproto +PROG=boiler + +CSRCS=main.c ot.c ot_phy_rx.c ot_phy_tx.c led.c ticker.c usart.c ring.c stdio.c util.c commit.c cmd.c pic.c 1wire.c temp.c ds1820.c pressure.c adc.c +HSRCS=pins.h project.h ring.h + +EXTRACLEANS=*.orig scmversion commit.h + +TARGET=boiler-monster + +V=1 +default: ${PROG}.fw.bin + rsync -vaP ${PROG}.fw.bin ${TARGET}:/tmp/boiler.fw + ssh ${TARGET} /etc/stm32/startup /tmp/boiler.fw + + +install: ${PROG}.fw.bin + rsync -vaP ${PROG}.fw.bin ${TARGET}:/etc/stm32/boiler.fw + + +128k_of_ff.bin: + dd if=/dev/zero bs=128k count=1 | tr '\0' '\377' > $@ + + +${PROG}.fw.bin:${PROG}.bin 128k_of_ff.bin + cat ${PROG}.bin 128k_of_ff.bin | dd of=$@ bs=128k iflag=fullblock count=1 + + +program: ${PROG}.elf + echo halt | nc -t localhost 4444 + echo flash write_image erase ${PWD}/$< 0x2000 | nc -t localhost 4444 + echo reset halt | nc -t localhost 4444 + RV=$$(arm-none-eabi-objdump --disassemble=reset_handler $< | awk '/^0/ { print "0x"$$1 }') && \ + echo resume $${RV} | nc -t localhost 4444 && \ + echo reset vector at $${RV} + +run:${PROG}.run + +%.run: %.hex + RV=$$(arm-none-eabi-objdump --disassemble=reset_handler $(*).elf | awk '/^0/ { print "0x"$$1 }') && \ + $(Q)$(OOCD) -f $(OOCD_INTERFACE) \ + -f $(OOCD_BOARD) \ + -c "init" -c "reset init" \ + -c "flash write_image erase $(*).hex" \ + -c "reset halt" \ + -c "resume $${RV}" \ + -c "shutdown" $(NULL) && \ + echo reset_handler is at $${RV} + + + + +BINARY = ${PROG} +OBJS = ${CSRCS:%.c=%.o} + +include ../Makefile.include + +CFLAGS+=-Wno-redundant-decls -Wno-unused-parameter -DDEBUG + +INCLUDES += -I.. + +protos: + echo -n > prototypes.h + ${CPROTO} $(INCLUDES) $(DEFINES) -e -v ${CSRCS} > prototypes.h.tmp + mv -f prototypes.h.tmp prototypes.h + +server: + $(OOCD) -f $(OOCD_INTERFACE) \ + -f $(OOCD_BOARD) + +debug: ${PROG}.elf + ${PREFIX}-gdb -x gdb.script ${PROG}.elf + +tidy: + astyle -A3 -s2 --attach-extern-c -L -c -w -Y -m0 -f -p -H -U -k3 -xj -xd ${CSRCS} ${HSRCS} + +HEAD_REF = $(shell git rev-parse --verify --short HEAD) +SCM_DIRTY = $(shell if ! git diff-index --quiet HEAD --; then echo "+dirty"; fi) +SCMVERSION = ${HEAD_REF}${SCM_DIRTY} + +scmversion: + echo -n ${SCMVERSION} > $@ + +.PHONY: scmversion + +commit.o: commit.h + +commit.h: scmversion + echo -n '#define COMMIT_ID "' > $@ + echo -n `cat scmversion` >> $@ + echo '"' >> $@ + + + |