256 lines
5.7 KiB
Makefile
256 lines
5.7 KiB
Makefile
|
|
NAME=irena
|
|
SerialNo-DLRENA = 1
|
|
ProductId-DLRENA = 0xd1
|
|
|
|
SerialNo-test = 0
|
|
ProductId-test = 0x01
|
|
SerialNo-esther = 1
|
|
ProductId-esther = 0x01
|
|
SerialNo-thomas = 2
|
|
ProductId-thomas = 0x01
|
|
SerialNo-FRED2 = 3
|
|
ProductId-FRED2 = 0x01
|
|
#SerialNo-HETI = 3
|
|
#ProductId-HETI = 0x01
|
|
#SerialNo-EPTI = 4
|
|
#ProductId-EPTI = 0x01
|
|
SerialNo-ALKE = 5
|
|
ProductId-ALKE = 0x01
|
|
SerialNo-IRENA = 6
|
|
ProductId-IRENA = 0x01
|
|
SerialNo-EVA = 7
|
|
ProductId-EVA = 0x01
|
|
SerialNo-MD3 = 10
|
|
ProductId-MD3 = 0x01
|
|
SerialNo-TANOS = 11
|
|
ProductId-TANOS = 0x01
|
|
SerialNo-CHAOS = 13
|
|
ProductId-CHAOS = 0x01
|
|
|
|
SerialNo-PIRENA = 4
|
|
ProductId-PIRENA = 0x03
|
|
SerialNo-sirena = 1
|
|
ProductId-sirena = 0x04
|
|
SerialNo-CE4 = 2
|
|
ProductId-CE4 = 0x04
|
|
SerialNo-icucore = 2
|
|
ProductId-icucore = 0x04
|
|
SerialNo-VARENA = x
|
|
ProductId-VARENA = 0x02
|
|
SerialNo-SARENA = 2
|
|
ProductId-SARENA = 0x02
|
|
SerialNo-TARENA = $(SerialNo-SARENA)
|
|
ProductId-TARENA = 0x02
|
|
SerialNo-IARENA = 1
|
|
ProductId-IARENA = 0x02
|
|
SerialNo-HARENA = 3
|
|
ProductId-HARENA = 0x02
|
|
SerialNo-AARENA = 4
|
|
ProductId-AARENA = 0x02
|
|
SerialNo-CE4ARENA = 4
|
|
ProductId-CE4ARENA = 0x02
|
|
ProductId-FLYRENA = 0x05
|
|
SerialNo-FLYRENA = 1
|
|
SerialNo-CCD = 1
|
|
ProductId-CCD = 0x0c
|
|
ProductId-ERENA = 0x06
|
|
SerialNo-ERENA = 1
|
|
ProductId-Flo = 0x04
|
|
SerialNo-Flo = 7
|
|
|
|
ProductId-GPS = 0x08
|
|
SerialNo-GPS = 1
|
|
ProductId-FLOW = 0x08
|
|
SerialNo-FLOW = 2
|
|
ProductId-SpW = 0x09
|
|
SerialNo-SpW = 1
|
|
|
|
ProductId-NMRENA = 0x0a
|
|
SerialNo-NMRENA = 1
|
|
ProductId-NMRENAv2 = 0x0b
|
|
SerialNo-NMRENAv2 = 8
|
|
ProductId-MCS = 0x0b
|
|
SerialNo-MCS = 9
|
|
ProductId-NMRENA10 = 0x0c
|
|
SerialNo-NMRENA10 = 13
|
|
|
|
#sirena:
|
|
ProductId-Torsten = 0x04
|
|
SerialNo-Torsten = 6
|
|
|
|
ifneq ($(SerialNo-$(BOX)),)
|
|
SerialNo = $(SerialNo-$(BOX))
|
|
ProductId = $(ProductId-$(BOX))
|
|
REVISION:= $(shell env SerialNo=$(SerialNo) ProductId=$(ProductId) ./update_revision.sh)
|
|
endif
|
|
prod_rev := $(shell awk <revision.h ' \
|
|
/SerialNumber/{S=$$3};\
|
|
/ProductId/{P=$$3};\
|
|
/Revision/{R=$$3};\
|
|
END{print P "_" S "_" R}\
|
|
')
|
|
|
|
ARCH=arm-none-eabi
|
|
GCC=4.3.5
|
|
gnuarm=/usr/local/gnuarm
|
|
gnuarmgcc=$(gnuarm)
|
|
|
|
ifdef DEBIAN
|
|
GCC:=$(shell ls /usr/bin/arm-none-eabi-gcc-*.*.*|sed s,/usr/bin/arm-none-eabi-gcc-,,)
|
|
gnuarmgcc=/usr
|
|
endif
|
|
|
|
export PATH:=$(gnuarmgcc)/bin:$(PATH)
|
|
|
|
CPUA= -mlittle-endian -mcpu=arm7tdmi
|
|
CPUC= $(CPUA) -msoft-float -mno-thumb-interwork -mpoke-function-name
|
|
DEBUGFORMAT=-g -gdwarf-2
|
|
|
|
WARN = -Wall -Wextra -Wno-char-subscripts -Wno-unused -Wno-pointer-sign \
|
|
-Wno-parentheses -Wno-missing-field-initializers \
|
|
$(WWARN)
|
|
BUILTIN = --no-builtin-snprintf -fno-builtin-printf
|
|
|
|
CC=$(ARCH)-gcc-$(GCC) -std=gnu99 -O3 $(CPUC) $(WARN) $(BUILTIN)
|
|
DEFINES= -DDLRENA_SSP
|
|
CFLAGS=-I./include $(DEFINES)
|
|
|
|
AS=$(ARCH)-as $(DEBUGFORMAT) $(CPUA)
|
|
|
|
LD=$(ARCH)-ld -EL
|
|
LOADLIBES=-L$(gnuarm)/$(ARCH)/lib -lc -L$(gnuarmgcc)/lib/gcc/$(ARCH)/$(GCC) -lgcc
|
|
OBJCOPY=$(ARCH)-objcopy
|
|
|
|
default: $(NAME).hex $(NAME).bin
|
|
|
|
OBJS = crt.o $(patsubst %,%.o,$(sources))
|
|
|
|
objs: $(OBJS)
|
|
|
|
%.s: %.c
|
|
$(CC) -fverbose-asm -S $(CFLAGS) $<
|
|
|
|
%.o: %.c
|
|
$(CC) -MMD $(DEBUGFORMAT) -c $(CFLAGS) $<
|
|
|
|
-include *.d
|
|
|
|
clean:
|
|
rm -vf *.o *.a *.d *.map
|
|
|
|
|
|
dosfs_test: dosfs.c file.c dosfs_test.c
|
|
gcc -g -o $@ -I./include -DDOSFS_TEST $^
|
|
|
|
|
|
sources = irena mainloop parser message isr crc \
|
|
script file dosfs flash microsd spi ssp altera \
|
|
usb controlpipe usbconfig dma stream \
|
|
enc28j60 net udp \
|
|
expression variables display \
|
|
pressure gpio ltc2656 ads8688 timer \
|
|
adc rtc \
|
|
plugin \
|
|
nomalloc strtol uart uart1 base85
|
|
|
|
$(NAME).rom: lpc2148-rom.ld $(OBJS)
|
|
$(LD) -T$< -Map=$@.map --cref -o $@ $(OBJS) $(LOADLIBES)
|
|
cp $@.map $@_${prod_rev}.map
|
|
|
|
%.hex: %.rom
|
|
$(OBJCOPY) -O ihex $< $@
|
|
|
|
%.bin: %.rom
|
|
$(OBJCOPY) -O binary $< $@
|
|
|
|
|
|
PLUGIN=plugin
|
|
|
|
%.ram: $(NAME).rom %.o
|
|
$(LD) -Tlpc2148-plugin.ld -Map=$@.map --cref -o $@ -R $^ $(LOADLIBES)
|
|
|
|
%.hex: %.ram
|
|
$(OBJCOPY) -O ihex $< $@
|
|
|
|
%.bin: %.ram
|
|
$(OBJCOPY) -O binary $< $@
|
|
|
|
LPC21ISP=lpc21isp
|
|
TTY=/dev/ttyUSB1
|
|
BURNOPTS = -term
|
|
burn: $(NAME).hex $(NAME).rom
|
|
$(LPC21ISP) -control $(BURNOPTS) $< $(TTY) 38400 12000
|
|
|
|
FLASH=flash
|
|
|
|
flashfiles:= $(shell find $(FLASH)/ -type f)
|
|
|
|
FATNAME_flash=IRENA
|
|
FATNAME_flash_IRENA=IRENA48
|
|
FATNAME_flash_irena=IRENA
|
|
FATNAME_flash_MD3=MD3IRENA
|
|
FATNAME_flash_sirena=SIRENA
|
|
FATNAME_flash_sirena_ce4=SICE4
|
|
FATNAME_flash_sirenaspw=SISPW
|
|
FATNAME_flash_icucore=ICUCORE
|
|
FATNAME_flash_ccdrena=CCDRENA
|
|
FATNAME_flash_esther=ESTHER
|
|
FATNAME_flash_esther32=ESTHER32
|
|
FATNAME_flash_zugspitze=ZUGSPITZE
|
|
FATNAME_flash_thomas=THOMAS
|
|
FATNAME_flash_fred2=FRED2
|
|
FATNAME_flash_heti=HETI
|
|
FATNAME_flash_ept=EPT
|
|
FATNAME_flash_varena=VARENA
|
|
FATNAME_flash_iarena=IARENA
|
|
FATNAME_flash_darena=DARENA
|
|
FATNAME_flash_sarena=SARENA
|
|
FATNAME_flash_tarena=TARENA
|
|
FATNAME_flash_lauri=PIRENA
|
|
FATNAME_flash_pirena=PIRENA
|
|
FATNAME_flash_i128=I128
|
|
FATNAME_flash_aarena=ADCTEST
|
|
FATNAME_flash_flyrena=FLYRENA
|
|
FATNAME_flash_erena=ERENA
|
|
FATNAME_flash_adam=ADAM-EVA
|
|
FATNAME_flash_gps=uIRENA
|
|
FATNAME_flash_SpW=SPWIRE
|
|
FATNAME_flash_CE4ARENA=CE4ARENA
|
|
FATNAME_flash_NMirena=NMIRENA
|
|
FATNAME_flash_NMRENA=NMRENA
|
|
FATNAME_flash_NMHERTZ=NMHERTZ
|
|
FATNAME_flash_NM_MCS=NM_MCS
|
|
FATNAME_flash_MUSTANG=MUSTANG
|
|
FATNAME_flash_BGOT=IRENABGOT
|
|
FATNAME_flash_torsten=TORSTEN
|
|
FATNAME_flash_alke=ALKE
|
|
FATNAME_flash_TANOS=TANOS
|
|
FATNAME_flash_CHAOS=CHAOS
|
|
FATNAME_flash_µM=IRENAuM
|
|
FATNAME_flash_NMAHEPAM=NMAHEPAM
|
|
FATNAME=$(FATNAME_$(FLASH))
|
|
|
|
FATSIZE_flash_pirena=1M
|
|
FATSIZE_flash_darena=1M
|
|
FATSIZE_flash_erena=1M
|
|
FATSIZE_flash_iarena=1M
|
|
FATSIZE_flash_µM=2M
|
|
FATNAME_flash_HARENA=HARENA
|
|
FATSIZE_flash_HARENA=1M
|
|
|
|
FATSIZE=$(FATSIZE_$(FLASH))
|
|
ifeq ($(FATSIZE_$(FLASH)),)
|
|
FATSIZE=2M
|
|
endif
|
|
|
|
MKDOSFS=/sbin/mkdosfs
|
|
MAXLINE=126
|
|
$(FLASH).fat: $(flashfiles)
|
|
[ -z "`cut -b $(MAXLINE)- $(FLASH)/*.RC | grep -v '^$$'`" ]
|
|
dd if=/dev/zero bs=$(FATSIZE) count=1 | tr '\0' '\377' >$@
|
|
$(MKDOSFS) -n "$(FATNAME)" -s 8 -r 112 -v $@
|
|
mcopy -i $@ -spmv $(FLASH)/[A-Z0-9]*.*[A-Z0-9] ::/
|
|
|
|
flash_%.fat: flash_%
|
|
$(MAKE) FLASH=flash_$* $@
|