|
|
@@ -1,25 +1,48 @@ |
|
|
|
ARMCC?= arm-none-eabi-gcc |
|
|
|
ARMOBJDUMP?= arm-none-eabi-objdump |
|
|
|
ARMTARGET?= -mcpu=cortex-m3 -mthumb -DSTROBE_SINGLE_THREAD=1 |
|
|
|
|
|
|
|
CFLAGS = -Istrobe |
|
|
|
PROG = lora.irr |
|
|
|
PROGEXT = .elf |
|
|
|
|
|
|
|
SRCS = main.c |
|
|
|
SRCS+= strobe_rng_init.c |
|
|
|
|
|
|
|
CFLAGS+= -DNDEBUG |
|
|
|
|
|
|
|
SRCS = \ |
|
|
|
strobe/strobe.c strobe/x25519.c |
|
|
|
# Strobe |
|
|
|
.PATH: $(.CURDIR)/strobe |
|
|
|
CFLAGS = -I$(.CURDIR)/strobe |
|
|
|
SRCS+= strobe.c \ |
|
|
|
x25519.c |
|
|
|
|
|
|
|
# Microcontroller |
|
|
|
STM32=$(.CURDIR)/stm32 |
|
|
|
.PATH: $(STM32)/l151ccux |
|
|
|
LINKER_SCRIPT=$(STM32)/l151ccux/STM32L151CCUX_FLASH.ld |
|
|
|
SRCS+= startup_stm32l151ccux.s \ |
|
|
|
system_stm32l1xx.c |
|
|
|
|
|
|
|
CFLAGS+= -I$(STM32) |
|
|
|
CFLAGS+= -I$(STM32)/l151ccux |
|
|
|
CFLAGS+= -DSTM32L151xC |
|
|
|
|
|
|
|
.OBJDIR = build |
|
|
|
OBJS = $(SRCS:C/.c$/.o/) |
|
|
|
|
|
|
|
.PHONY: all |
|
|
|
all: $(BUILDDIR)/strobe.o $(BUILDDIR)/x25519.o |
|
|
|
all: $(PROG)$(PROGEXT) $(PROG).list |
|
|
|
|
|
|
|
$(PROG)$(PROGEXT): $(OBJS) |
|
|
|
$(ARMCC) $(ARMTARGET) -o $@ $(.ALLSRC) -T$(LINKER_SCRIPT) --specs=nosys.specs -Wl,--gc-sections -static --specs=nano.specs -Wl,--start-group -lc -lm -Wl,--end-group |
|
|
|
|
|
|
|
$(PROG).list: $(PROG)$(PROGEXT) |
|
|
|
$(ARMOBJDUMP) -h -S $(.ALLSRC) > $@ |
|
|
|
|
|
|
|
.PHONY: runtests |
|
|
|
runtests: |
|
|
|
ls *.py | entr sh -c 'python -m coverage run -m unittest lora && coverage report --omit=p/\* -m -i' |
|
|
|
|
|
|
|
$(BUILDDIR): |
|
|
|
mkdir -p $@ |
|
|
|
|
|
|
|
$(BUILDDIR)/%.o : %.c |
|
|
|
.c.o: |
|
|
|
$(ARMCC) $(ARMTARGET) $(CFLAGS) -c $< -o $@ |
|
|
|
|
|
|
|
STROBE_REPO = https://git.code.sf.net/p/strobe/code |
|
|
|