summaryrefslogtreecommitdiffstats
path: root/boiler-monster/stm32/app/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'boiler-monster/stm32/app/Makefile')
-rw-r--r--boiler-monster/stm32/app/Makefile113
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 '"' >> $@
+
+
+