1
0
Fork 0
nrf51-cryptolib/template/Makefile.posix

92 lines
2.9 KiB
Makefile
Raw Normal View History

2016-06-01 15:07:50 -04:00
# Set toolchain path if arm-none-eabi- binaries are not in user path
#TOOLCHAIN_PATH ?=
TERMINAL ?= gnome-terminal -e
FLASH_START_ADDRESS = $(shell $(OBJDUMP) -h $(ELF) -j .text | grep .text | awk '{print $$4}')
ifdef SEGGER_SERIAL
JLINKEXE_OPTION = -SelectEmuBySn $(SEGGER_SERIAL)
JLINKGDBSERVER_OPTION = -select USB=$(SEGGER_SERIAL)
endif
MAKE_BUILD_FOLDER = mkdir -p $(OUTPUT_PATH)
JLINK = -JLinkExe $(JLINK_OPTIONS) $(JLINKEXE_OPTION)
JLINKGDBSERVER = JLinkGDBServer $(JLINK_OPTIONS) $(JLINKGDBSERVER_OPTION)
SOFTDEVICE_OUTPUT = $(OUTPUT_PATH)$(notdir $(SOFTDEVICE))
clean:
rm -rf $(OUTPUT_PATH)
rm -f *.jlink
rm -f JLink.log
rm -f .gdbinit
rm -f bulk-program/*.hex
flash: all flash.jlink
$(JLINK) flash.jlink
flash.jlink:
printf "r\nloadbin $(BIN) $(FLASH_START_ADDRESS)\nr\ng\nexit\n" > flash.jlink
flash-softdevice: erase-all flash-softdevice.jlink
ifndef SOFTDEVICE
$(error "You need to set the SOFTDEVICE command-line parameter to a path (without spaces) to the softdevice hex-file")
endif
$(OBJCOPY) -Iihex -Obinary $(SOFTDEVICE) $(SOFTDEVICE_OUTPUT:.hex=.bin)
$(JLINK) flash-softdevice.jlink
flash-softdevice.jlink:
# Write to NVMC to enable write. Write mainpart, write UICR. Assumes device is erased.
printf "w4 4001e504 1\nloadbin \"$(SOFTDEVICE_OUTPUT:.hex=.bin)\" 0\nr\ng\nexit\n" > flash-softdevice.jlink
recover: recover.jlink erase-all.jlink pin-reset.jlink
$(JLINK) recover.jlink
$(JLINK) erase-all.jlink
$(JLINK) pin-reset.jlink
recover.jlink:
printf "si 0\nt0\nsleep 1\ntck1\nsleep 1\nt1\nsleep 2\nt0\nsleep 2\nt1\nsleep 2\nt0\nsleep 2\nt1\nsleep 2\nt0\nsleep 2\nt1\nsleep 2\nt0\nsleep 2\nt1\nsleep 2\nt0\nsleep 2\nt1\nsleep 2\nt0\nsleep 2\nt1\nsleep 2\ntck0\nsleep 100\nsi 1\nr\nexit\n" > recover.jlink
pin-reset.jlink:
printf "w4 40000544 1\nr\nexit\n" > pin-reset.jlink
pin-reset: pin-reset.jlink
$(JLINK) pin-reset.jlink
reset: reset.jlink
$(JLINK) reset.jlink
reset.jlink:
printf "r\ng\nexit\n" > reset.jlink
erase-all: erase-all.jlink
$(JLINK) erase-all.jlink
erase-all.jlink:
# Write to NVMC to enable erase, do erase all, wait for completion. reset
printf "w4 4001e504 2\nw4 4001e50c 1\nsleep 100\nr\nexit\n" > erase-all.jlink
startdebug: debug-gdbinit
$(TERMINAL) "$(JLINKGDBSERVER) -port $(GDB_PORT_NUMBER)"
sleep 1
$(TERMINAL) "$(GDB) $(ELF)"
debug-gdbinit:
printf "target remote localhost:$(GDB_PORT_NUMBER)\nbreak main\n" > .gdbinit
.PHONY: flash flash-softdevice erase-all startdebug
TEST_CFLAGS=-std=gnu99 -g -Wall -Werror -I.. -DHOST_BUILD -Os
2016-06-07 12:42:08 -04:00
2016-06-01 15:07:50 -04:00
test:
2016-06-07 12:51:42 -04:00
$(HOST_CC) $(TEST_CFLAGS) -lcrypto block.c aes.c cmac.c tests/test_cmac.c -o tests/test_cmac
2016-06-01 15:07:50 -04:00
./tests/test_cmac
2016-06-07 12:51:42 -04:00
$(HOST_CC) $(TEST_CFLAGS) -lcrypto block.c aes.c ctr.c tests/test_ctr.c -o tests/test_ctr
./tests/test_ctr
2016-06-07 12:51:42 -04:00
$(HOST_CC) $(TEST_CFLAGS) -lcrypto block.c aes.c ctr.c cmac.c eax.c tests/test_eax.c -o tests/test_eax
./tests/test_eax
$(HOST_CC) $(TEST_CFLAGS) -lcrypto block.c aes.c cmac.c ckdf.c tests/test_ckdf.c -o tests/test_ckdf
./tests/test_ckdf