4 CC = $(TARGET)-gcc # compiler
5 AR = $(TARGET)-ar # for building static libs
6 OBJCOPY = $(TARGET)-objcopy # to strip debug symbols
8 CFLAGS_MCU = -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16
10 .SUFFIXES : .c .o .dbg .bin
13 $(OBJCOPY) -O binary $< $@
16 -Icmsis/CMSIS/Core/Include \
17 -Icmsis/CMSIS/Driver/Include \
18 -Icmsis/CMSIS/RTOS2/Include \
19 -Icmsis-driver-validation/Include
21 CFLAGS_CMSIS_DFP = -DCMSIS_device_header='"stm32f4xx.h"' \
23 -Icmsis-dfp-stm32f4/Include
25 CFLAGS = -std=c99 -pedantic -Wall -Wextra -g3 -gdwarf-3 -ggdb -O0 \
26 --specs=picolibc.specs $(CFLAGS_MCU) \
27 $(CFLAGS_CMSIS) $(CFLAGS_CMSIS_DFP)
32 -Wl,--print-memory-usage
34 LDLIBS = -lcmsis-driver-validate -lcmsis-driver
36 all : demo_gpio.bin cmsis-validate.bin
38 demo_gpio.dbg : demo_gpio.c libcmsis-driver.a gcc_arm.ld
39 $(CC) $(CFLAGS) demo_gpio.c $(LDFLAGS) -o $@ $(LDLIBS)
41 libcmsis-driver.a : gpio.o sram_vtor.o debounce.o system_stm32f4xx.o
44 ## Tests ###################################################
46 CFLAGS += -DRTE_CMSIS_DV_GPIO -DRTE_CMSIS_DV_PACK_VER='"3.1.0"' -DRTE_CMSIS_RTOS2
48 VALIDATION_OBJS = DV_Framework.o DV_Report.o DV_GPIO.o cmsis_dv.o
50 $(VALIDATION_OBJS) : DV_GPIO_Config.h Makefile
52 libcmsis-driver-validate.a : $(VALIDATION_OBJS)
55 cmsis-validate.dbg : cmsis-validate.c libcmsis-driver.a libcmsis-driver-validate.a gcc_arm.ld
56 $(CC) $(CFLAGS) cmsis-validate.c $(LDFLAGS) -o $@ $(LDLIBS)
58 # our debug binary, which depends on three things
60 VPATH = cmsis-dfp-stm32f4/Source/Templates:cmsis-driver-validation/Source:freertos:freertos/portable/GCC/ARM_CM4F
63 ## utilities ###############################################
67 rm -f *.[ao] *.dbg *.bin