## ## 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=clockv2 LDSCRIPT = ${PROG}.ld V=1 default: ${PROG}.elf CSRCS=led.c ticker.c ring.c usart.c stdio.c lwip_glue.c steth.c msf.c abs.c pll.c main.c time_fn.c ntp.c dcf77.c util.c stats.c gps.c hexdump.c bits.c max7219.c report.c sysclk.c cdcacm.c usb.c dfu.c adc.c dummy_kb.c ref.c ptp.c HSRCS= events.h gps.h project.h ring.h steth.h time_fn.h ubx.h LWIP=lwip/lwip-1.4.1 LWIP_PATH=.. VPATH=${LWIP_PATH} LWIP_API=#${LWIP}/src/api/err.c ${LWIP}/src/api/netdb.c ${LWIP}/src/api/api_msg.c ${LWIP}/src/api/tcpip.c ${LWIP}/src/api/sockets.c ${LWIP}/src/api/api_lib.c ${LWIP}/src/api/netbuf.c ${LWIP}/src/api/netifapi.c LWIP_CORE=${LWIP}/src/core/memp.c ${LWIP}/src/core/sys.c ${LWIP}/src/core/init.c ${LWIP}/src/core/pbuf.c ${LWIP}/src/core/dhcp.c ${LWIP}/src/core/ipv4/ip_addr.c ${LWIP}/src/core/ipv4/ip.c ${LWIP}/src/core/ipv4/ip_frag.c ${LWIP}/src/core/ipv4/inet.c ${LWIP}/src/core/ipv4/autoip.c ${LWIP}/src/core/ipv4/icmp.c ${LWIP}/src/core/ipv4/inet_chksum.c ${LWIP}/src/core/timers.c ${LWIP}/src/core/def.c ${LWIP}/src/core/netif.c ${LWIP}/src/netif/etharp.c ${LWIP}/src/core/raw.c ${LWIP}/src/core/mem.c ${LWIP}/src/core/udp.c DEFINES=# #${LWIP}/src/core/tcp.c ${LWIP}/src/core/tcp_out.c #${LWIP}/src/core/tcp_in.c # ${LWIP}/src/core/snmp/asn1_enc.c ${LWIP}/src/core/snmp/msg_in.c ${LWIP}/src/core/snmp/mib_structs.c ${LWIP}/src/core/snmp/mib2.c ${LWIP}/src/core/snmp/asn1_dec.c ${LWIP}/src/core/snmp/msg_out.c ${LWIP}/src/core/ipv6/icmp6.c ${LWIP}/src/core/ipv6/ip6.c ${LWIP}/src/core/ipv6/ip6_addr.c ${LWIP}/src/core/ipv6/inet6.c # ${LWIP}/src/core/dns.c ${LWIP}/src/core/stats.c ${LWIP}/src/core/ipv4/igmp.c LWIP_INC=${LWIP_PATH}/${LWIP} LWIP_LOCAL=${LWIP_PATH}/lwip/lwip-local LWIP_CSRCS=${LWIP_API} ${LWIP_CORE} EXTRA_CLEAN=${LWIP} BINARY = ${PROG} MYOBJS = ${CSRCS:%.c=%.o} LWIP_OBJS = ${LWIP_CSRCS:%.c=%.o} objs:${OBJS} ${MYOBJS}: project.h prototypes.h ${LWIP_OBJS}: lwip/lwipopts.h OBJS=${MYOBJS} ${LWIP_OBJS} include ../Makefile.include CFLAGS+=-Wno-redundant-decls -Wno-unused-parameter CPPFLAGS += -I.. -I. -I../libopencm3-local -Ilwip -I${LWIP_PATH}/${LWIP}/src/include -I${LWIP_PATH}/${LWIP}/src/include/ipv4 -I${LWIP_LOCAL}/port/stm32f4x7 LDLIBS+= -lm fish: ${OBJS} echo ${OBJS} #HOST=clock-lnx #HOST=10.32.91.140 HOST=tick reset: $(Q)$(OOCD) -f ../oocd/interface/$(OOCD_INTERFACE).cfg \ -f ../oocd/board/$(OOCD_BOARD).cfg \ -c "init" -c "reset run" \ -c shutdown fl: ${PROG}.hex ssh ${HOST} flash_stm32 < ${PROG}.hex %.bin: %.elf $(Q)$(OBJCOPY) -Obinary $(*).elf $(*).bin %.dfu:%.bin ../tools/dfuse-pack.py -D 0x483:0xff03 -b 0x08004000:$< $@ dfu:${PROG}.bin dfu-util -R -a 0 -d 0483:ff03,0483:df11 -s 0x08004000:leave -D $< program: ${PROG}.hex scp $< ${HOST}:/tmp/img.hex echo init | nc -t ${HOST} 4444 echo reset init | nc -t ${HOST} 4444 echo flash write_image erase /tmp/img.hex | nc -t ${HOST} 4444 echo reset run | nc -t ${HOST} 4444 ds: $(Q)$(OOCD) -f ../oocd/interface/$(OOCD_INTERFACE).cfg \ -f ../oocd/board/$(OOCD_BOARD).cfg debug: ${PROG}.elf ${PREFIX}-gdb -x gdb.script ${PROG}.elf # openocd protos: ${CSRCS} echo -n > prototypes.h ${CPROTO} -E "${CPP} $(CPPFLAGS)" -e -v ${CSRCS} > prototypes.h.tmp mv -f prototypes.h.tmp prototypes.h almanac.txt: wget -O $@ 'https://navcen.uscg.gov/?pageName=currentAlmanac&format=yuma' almanac.h:alamanc.txt parse_alamanc.pl ./parse_alamanc.pl < almanac.txt > $@ || /bin/rm -f $@ almanac.alp: almanac almanac: wget -O almanac.alp http://alp.u-blox.com/current_7d.alp EXTRA_CLEAN=${OBJS} ${LWIP_OBJS:%.o=%.d} almanac.c tidy: astyle -A3 -s2 --attach-extern-c -L -c -w -Y -m0 -f -p -H -U -k3 -xj -xd ${CSRCS} ${HSRCS} slog: sympathy -d /dev/ttyUSB7 -b 38400 -L ../log -w 132x59 -s