## ## This file is part of the libopencm3 project. ## ## Copyright (C) 2009 Uwe Hermann ## ## 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 . ## 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 '"' >> $@