diff options
author | Paul Selkirk <paul@psgd.org> | 2016-04-11 14:44:44 -0400 |
---|---|---|
committer | Paul Selkirk <paul@psgd.org> | 2016-04-11 14:44:44 -0400 |
commit | 79b1ba7104dba52dbfacf11a07305702889f440b (patch) | |
tree | 75a08fdc6e3af427e953f319b3fdb0f9dcfdf80e | |
parent | d5669dac8c7ab2fbf6bd3c7faed7ce050c94ee1a (diff) |
Reorganize Makefile and directory structure, because it's messy, and it's about to get messier.
-rw-r--r-- | .gitmodules | 4 | ||||
-rw-r--r-- | Drivers/Makefile | 14 | ||||
-rw-r--r-- | Makefile | 92 | ||||
m--------- | libraries/libhal (renamed from libhal) | 0 | ||||
m--------- | libraries/thirdparty/libtfm (renamed from thirdparty/libtfm) | 0 | ||||
-rw-r--r-- | projects/board-test/Makefile | 18 | ||||
-rw-r--r-- | projects/board-test/fmc-perf.c (renamed from self-test/fmc-perf.c) | 0 | ||||
-rw-r--r-- | projects/board-test/fmc-test.c (renamed from self-test/fmc-test.c) | 0 | ||||
-rw-r--r-- | projects/board-test/led-test.c (renamed from self-test/led-test.c) | 0 | ||||
-rw-r--r-- | projects/board-test/short-test.c (renamed from self-test/short-test.c) | 0 | ||||
-rw-r--r-- | projects/board-test/uart-test.c (renamed from self-test/uart-test.c) | 0 | ||||
-rw-r--r-- | projects/libhal-test/Makefile | 33 | ||||
-rw-r--r-- | projects/libhal-test/gettimeofday.c (renamed from gettimeofday.c) | 0 | ||||
-rw-r--r-- | projects/libhal-test/main.c (renamed from main.c) | 0 | ||||
-rw-r--r-- | projects/libhal-test/printf.c (renamed from printf.c) | 0 |
15 files changed, 88 insertions, 73 deletions
diff --git a/.gitmodules b/.gitmodules index 20b8eb8..5960557 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,7 +1,7 @@ [submodule "libhal"] - path = libhal + path = libraries/libhal url = git@git.cryptech.is:sw/libhal.git branch = rpc [submodule "thirdparty/libtfm"] - path = thirdparty/libtfm + path = libraries/thirdparty/libtfm url = git@git.cryptech.is:sw/thirdparty/libtfm.git diff --git a/Drivers/Makefile b/Drivers/Makefile index 29aae70..b179341 100644 --- a/Drivers/Makefile +++ b/Drivers/Makefile @@ -5,15 +5,6 @@ AR=arm-none-eabi-ar vpath %.c STM32F4xx_HAL_Driver/Src -# Default STDPERIPH_SETTINGS to settings suitable for STM32F429BIT6 (dev-bridge rev01) -#STDPERIPH_SETTINGS ?= -DUSE_STDPERIPH_DRIVER -DSTM32F4XX -DSTM32F429xx - -#CFLAGS += -ggdb -O2 -Wall -Wextra -Warray-bounds -#CFLAGS += -mcpu=cortex-m4 -mthumb -mlittle-endian -mthumb-interwork -#CFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16 -#CFLAGS += -ICMSIS/Include -ICMSIS/Device/ST/STM32F4xx/Include -ISTM32F4xx_HAL_Driver/Inc -#CFLAGS += $(STDPERIPH_SETTINGS) - SRCS = stm32f4xx_hal.c stm32f4xx_hal_msp_template.c \ stm32f4xx_hal_adc.c stm32f4xx_hal_nand.c \ stm32f4xx_hal_adc_ex.c stm32f4xx_hal_nor.c \ @@ -50,13 +41,8 @@ SRCS = stm32f4xx_hal.c stm32f4xx_hal_msp_template.c \ OBJS = $(SRCS:.c=.o) -.PHONY: libstmf4.a - all: libstmf4.a -%.o : %.c - $(CC) $(CFLAGS) -c -o $@ $^ - libstmf4.a: $(OBJS) $(AR) -r $@ $(OBJS) @@ -27,33 +27,25 @@ # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# "stm32-native" projects -SELF-TESTS = fmc-test led-test short-test uart-test fmc-perf -vpath %.c self-test - -# apps originally written for unix-like environment -#LIBHAL-TESTS = cores test-bus test-trng test-hash test-aes-key-wrap test-pbkdf2 test-ecdsa test-rsa -#LIBHAL-TESTS = cores test-hash test-rpc_hash -LIBHAL-TESTS = test-rpc_server -vpath %.c libhal/tests libhal/utils - # absolute path, because we're going to be passing -I cflags to sub-makes -TOPLEVEL = $(shell pwd) +export TOPLEVEL = $(shell pwd) # Location of the Libraries folder from the STM32F0xx Standard Peripheral Library STD_PERIPH_LIB = $(TOPLEVEL)/Drivers +export LIBS = $(STD_PERIPH_LIB)/libstmf4.a # linker script -LDSCRIPT = $(TOPLEVEL)/Device/ldscripts/stm32f429bitx.ld +export LDSCRIPT = $(TOPLEVEL)/Device/ldscripts/stm32f429bitx.ld # board-specific objects, to link into every project -BOARD_OBJS = stm32f4xx_hal_msp.o stm32f4xx_it.o stm-fmc.o stm-init.o stm-uart.o \ - Device/startup_stm32f429xx.o Device/system_stm32f4xx.o - -# a few objects for libhal/test projects -LIBC_OBJS = syscalls.o printf.o gettimeofday.o - -LIBS = $(STD_PERIPH_LIB)/libstmf4.a libhal/libhal.a thirdparty/libtfm/libtfm.a +export BOARD_OBJS = $(TOPLEVEL)/stm32f4xx_hal_msp.o \ + $(TOPLEVEL)/stm32f4xx_it.o \ + $(TOPLEVEL)/stm-fmc.o \ + $(TOPLEVEL)/stm-init.o \ + $(TOPLEVEL)/stm-uart.o \ + $(TOPLEVEL)/syscalls.o \ + $(TOPLEVEL)/Device/startup_stm32f429xx.o \ + $(TOPLEVEL)/Device/system_stm32f4xx.o # cross-building tools PREFIX=arm-none-eabi- @@ -69,68 +61,54 @@ CFLAGS = -ggdb -O2 -Wall -Warray-bounds #-Wextra CFLAGS += -mcpu=cortex-m4 -mthumb -mlittle-endian -mthumb-interwork CFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16 CFLAGS += -DUSE_STDPERIPH_DRIVER -DSTM32F4XX -DSTM32F429xx +CFLAGS += -D__CORTEX_M4 -DTARGET_STM -DTARGET_STM32F4 -DTARGET_STM32F429ZI -DTOOLCHAIN_GCC -D__FPU_PRESENT=1 CFLAGS += -ffunction-sections -fdata-sections -Wl,--gc-sections CFLAGS += -std=c99 -CFLAGS += -I $(TOPLEVEL) -I $(STD_PERIPH_LIB) +CFLAGS += -I $(TOPLEVEL) +CFLAGS += -I $(STD_PERIPH_LIB) CFLAGS += -I $(STD_PERIPH_LIB)/CMSIS/Device/ST/STM32F4xx/Include CFLAGS += -I $(STD_PERIPH_LIB)/CMSIS/Include CFLAGS += -I $(STD_PERIPH_LIB)/STM32F4xx_HAL_Driver/Inc -CFLAGS += -I libhal export CFLAGS -#all: lib self-test libhal-tests -all: lib libhal-tests +all: board-test libhal-test init: git submodule update --init --recursive -lib: $(LIBS) - $(STD_PERIPH_LIB)/libstmf4.a: $(MAKE) -C $(STD_PERIPH_LIB) -thirdparty/libtfm/libtfm.a: - $(MAKE) -C thirdparty/libtfm PREFIX=$(PREFIX) +board-test: $(BOARD_OBJS) $(LIBS) + $(MAKE) -C projects/board-test -libhal/libhal.a: thirdparty/libtfm/libtfm.a - $(MAKE) -C libhal IO_BUS=fmc RPC_SERVER=yes RPC_TRANSPORT=serial KS=volatile libhal.a -# $(MAKE) -C libhal RPC_CLIENT=local IO_BUS=fmc KS=volatile libhal.a +LIBS_DIR = $(TOPLEVEL)/libraries -self-test: $(SELF-TESTS:=.elf) +export LIBTFM_DIR = $(LIBS_DIR)/thirdparty/libtfm -%.elf: %.o $(BOARD_OBJS) $(STD_PERIPH_LIB)/libstmf4.a - $(CC) $(CFLAGS) $^ -o $@ -T$(LDSCRIPT) -g -Wl,-Map=$*.map - $(OBJCOPY) -O ihex $*.elf $*.hex - $(OBJCOPY) -O binary $*.elf $*.bin - $(OBJDUMP) -St $*.elf >$*.lst - $(SIZE) $*.elf +$(LIBTFM_DIR)/libtfm.a: + $(MAKE) -C $(LIBTFM_DIR) PREFIX=$(PREFIX) -libhal-tests: $(LIBHAL-TESTS:=.bin) +export LIBHAL_DIR = $(LIBS_DIR)/libhal -# .mo extension for files with main() that need to be wrapped as __main() -%.mo: %.c - $(CC) -c $(CFLAGS) -Dmain=__main -o $@ $< +$(LIBHAL_DIR)/libhal.a: $(LIBTFM_DIR)/libtfm.a +# $(MAKE) -C $(LIBHAL_DIR) RPC_CLIENT=local IO_BUS=fmc KS=volatile libhal.a + $(MAKE) -C $(LIBHAL_DIR) IO_BUS=fmc RPC_SERVER=yes RPC_TRANSPORT=serial KS=volatile libhal.a -%.bin: %.mo main.o $(BOARD_OBJS) $(LIBC_OBJS) $(LIBS) - $(CC) $(CFLAGS) $^ -o $*.elf -T$(LDSCRIPT) -g -Wl,-Map=$*.map - $(OBJCOPY) -O ihex $*.elf $*.hex - $(OBJCOPY) -O binary $*.elf $*.bin - $(OBJDUMP) -St $*.elf >$*.lst - $(SIZE) $*.elf +libhal-test: $(BOARD_OBJS) $(LIBS) $(LIBHAL_DIR)/libhal.a + $(MAKE) -C projects/libhal-test # don't automatically delete objects, to avoid a lot of unnecessary rebuilding -.SECONDARY: $(BOARD_OBJS) $(LIBC_OBJS) +.SECONDARY: $(BOARD_OBJS) + +.PHONY: board-test libhal-test clean: - find ./ -name '*~' | xargs rm -f - rm -f $(BOARD_OBJS) $(LIBC_OBJS) *.o *.mo - rm -f *.elf - rm -f *.hex - rm -f *.bin - rm -f *.map - rm -f *.lst + rm -f $(BOARD_OBJS) + $(MAKE) -C projects/board-test clean + $(MAKE) -C projects/libhal-test clean distclean: clean $(MAKE) -C $(STD_PERIPH_LIB) clean - $(MAKE) -C thirdparty/libtfm clean - $(MAKE) -C libhal clean + $(MAKE) -C $(LIBHAL_DIR) clean + $(MAKE) -C $(LIBTFM_DIR) clean diff --git a/libhal b/libraries/libhal -Subproject 60cce0124f2fc3eddca03ed3950da9238247a61 +Subproject 60cce0124f2fc3eddca03ed3950da9238247a61 diff --git a/thirdparty/libtfm b/libraries/thirdparty/libtfm -Subproject e2eab1093a134e5a655d1ccad23a31b2b8252c6 +Subproject e2eab1093a134e5a655d1ccad23a31b2b8252c6 diff --git a/projects/board-test/Makefile b/projects/board-test/Makefile new file mode 100644 index 0000000..21f24c9 --- /dev/null +++ b/projects/board-test/Makefile @@ -0,0 +1,18 @@ +TEST = led-test short-test uart-test fmc-test fmc-perf + +all: $(TEST:=.elf) + +%.elf: %.o $(BOARD_OBJS) $(LIBS) + $(CC) $(CFLAGS) $^ -o $@ -T$(LDSCRIPT) -g -Wl,-Map=$*.map + $(OBJCOPY) -O ihex $*.elf $*.hex + $(OBJCOPY) -O binary $*.elf $*.bin + $(OBJDUMP) -St $*.elf >$*.lst + $(SIZE) $*.elf + +clean: + rm -f *.o + rm -f *.elf + rm -f *.hex + rm -f *.bin + rm -f *.map + rm -f *.lst diff --git a/self-test/fmc-perf.c b/projects/board-test/fmc-perf.c index 0c753a7..0c753a7 100644 --- a/self-test/fmc-perf.c +++ b/projects/board-test/fmc-perf.c diff --git a/self-test/fmc-test.c b/projects/board-test/fmc-test.c index cf17087..cf17087 100644 --- a/self-test/fmc-test.c +++ b/projects/board-test/fmc-test.c diff --git a/self-test/led-test.c b/projects/board-test/led-test.c index 5e4401f..5e4401f 100644 --- a/self-test/led-test.c +++ b/projects/board-test/led-test.c diff --git a/self-test/short-test.c b/projects/board-test/short-test.c index 27b8e7a..27b8e7a 100644 --- a/self-test/short-test.c +++ b/projects/board-test/short-test.c diff --git a/self-test/uart-test.c b/projects/board-test/uart-test.c index 8fe7795..8fe7795 100644 --- a/self-test/uart-test.c +++ b/projects/board-test/uart-test.c diff --git a/projects/libhal-test/Makefile b/projects/libhal-test/Makefile new file mode 100644 index 0000000..b0def35 --- /dev/null +++ b/projects/libhal-test/Makefile @@ -0,0 +1,33 @@ +TEST = cores test-bus test-trng test-hash test-aes-key-wrap test-pbkdf2 test-ecdsa test-rsa +#TEST += test-rpc_hash test-rpc_pkey test-rpc_get_version test-rpc_get_random +TEST += test-rpc_server + +CFLAGS += -I $(LIBHAL_DIR) +LIBC_OBJS = printf.o gettimeofday.o +LIBS += $(LIBHAL_DIR)/libhal.a $(LIBTFM_DIR)/libtfm.a + +all: $(TEST:=.elf) + +vpath %.c $(LIBHAL_DIR)/tests $(LIBHAL_DIR)/utils + +# .mo extension for files with main() that need to be wrapped as __main() +%.mo: %.c + $(CC) -c $(CFLAGS) -Dmain=__main -o $@ $< + +%.elf: %.mo main.o $(BOARD_OBJS) $(LIBC_OBJS) $(LIBS) + $(CC) $(CFLAGS) $^ -o $*.elf -T$(LDSCRIPT) -g -Wl,-Map=$*.map + $(OBJCOPY) -O ihex $*.elf $*.hex + $(OBJCOPY) -O binary $*.elf $*.bin + $(OBJDUMP) -St $*.elf >$*.lst + $(SIZE) $*.elf + +# don't automatically delete objects, to avoid a lot of unnecessary rebuilding +.SECONDARY: $(BOARD_OBJS) $(LIBC_OBJS) + +clean: + rm -f *.o *.mo + rm -f *.elf + rm -f *.hex + rm -f *.bin + rm -f *.map + rm -f *.lst diff --git a/gettimeofday.c b/projects/libhal-test/gettimeofday.c index b13485d..b13485d 100644 --- a/gettimeofday.c +++ b/projects/libhal-test/gettimeofday.c diff --git a/main.c b/projects/libhal-test/main.c index 2776750..2776750 100644 --- a/main.c +++ b/projects/libhal-test/main.c diff --git a/printf.c b/projects/libhal-test/printf.c index 5a15d12..5a15d12 100644 --- a/printf.c +++ b/projects/libhal-test/printf.c |