diff options
Diffstat (limited to 'os/Makefile')
| -rw-r--r-- | os/Makefile | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/os/Makefile b/os/Makefile new file mode 100644 index 00000000..3ef6135d --- /dev/null +++ b/os/Makefile @@ -0,0 +1,93 @@ +DEBUG = 1 +REVISION = $(shell git rev-list HEAD --count) +DIRTY = $(shell git diff-index --quiet HEAD; echo $$?) +ifeq ($(DIRTY),1) + SUFFIX = "-rc" +else + SUFFIX = "" +endif + +PROJECT = test +TARGET = $(PROJECT).elf +CROSS_COMPILE=~/zephyr-sdk-0.17.1/arm-zephyr-eabi/bin/arm-zephyr-eabi- +CC = $(CROSS_COMPILE)gcc +LD = $(CROSS_COMPILE)gcc +GDB = $(CROSS_COMPILE)gdb +OBJCOPY = $(CROSS_COMPILE)objcopy +OBJDUMP = $(CROSS_COMPILE)objdump +SIZE = $(CROSS_COMPILE)size + +SOURCES = main.c +SOURCES+= arch/aarch32/armv7e_m/stm32f769/init.c +SOURCES+= arch/aarch32/armv7e_m/stm32f7/system_stm32f7xx.c +SOURCES+= drivers/clock/stm32f769_clock_control.c +SOURCES+= drivers/pinctrl/stm32f769_pinctrl.c +SOURCES+= drivers/gpio/stm32f769_gpio.c +SOURCES+= drivers/memory/stm32f7_mpu.c +SOURCES+= drivers/uart/stm32f7_uart.c + +LDFLAGS = -nostartfiles -nostdlib -nodefaultlibs -lgcc +LDFLAGS+= -Wl,-Map=$(PROJECT).map,--gc-sections +LDFLAGS+= -Tarch/aarch32/armv7e_m/stm32f769/link.ld -mfloat-abi=hard -mfpu=fpv5-sp-d16 -march=armv8-m.main+dsp +#LDFLAGS += -flto +#LDFLAGS += -Tld/spifi.ld -march=rv32imc_zicsr_zifencei + +CFLAGS = -Wall -Wextra -std=gnu99 -funsigned-char -funsigned-bitfields +CFLAGS+= -mfloat-abi=hard -mfpu=fpv5-sp-d16 -march=armv8-m.main+dsp +ifneq ($(DEBUG),1) +#CFLAGS += -flto -O2 +else +#CFLAGS += -flto -O2 +CFLAGS+= -ggdb3 +endif +CFLAGS+= -fshort-enums -ffunction-sections -fdata-sections -fno-delete-null-pointer-checks +CFLAGS+= -fno-builtin +CFLAGS+= -I./ + +# CFLAGS += -DEN_I2C1 +# CFLAGS += -DEN_I2C0 +# CFLAGS += -DEN_USART1 +# CFLAGS += -DEN_EEPROM +#CFLAGS += -DIRQ_TRACE +#CFLAGS += -DEN_TSENS +#CFLAGS += -DCOMPACT + +ASSOURCES = arch/aarch32/armv7e_m/stm32f7/startup_stm32f769xx.s + +ASFLAGS = $(COMMON) +ASFLAGS += $(CFLAGS) +ASFLAGS += -x assembler-with-cpp + +OBJECTS = $(SOURCES:.c=.o) +ASOBJECTS = $(ASSOURCES:.s=.o) + +DEPS=$(patsubst %.o, %.o.d, $(notdir $(OBJECTS))) +DEPS+=$(patsubst %.o, %.o.d, $(notdir $(ASOBJECTS))) + +all: $(TARGET) $(PROJECT).bin $(PROJECT).lss size + +$(PROJECT).bin: $(TARGET) + $(OBJCOPY) -O binary $< $@ + cp $(PROJECT).bin $(PROJECT)-$(REVISION)-$(BOARD)$(SUFFIX).bin + +$(PROJECT).lss: $(TARGET) + $(OBJDUMP) -h -S $< > $@ + +$(TARGET): $(OBJECTS) $(ASOBJECTS) + $(LD) $(LDFLAGS) $(OBJECTS) $(ASOBJECTS) -o $@ + +$(OBJECTS): %.o: %.c + $(CC) $(CFLAGS) -c $< -o $@ + +$(ASOBJECTS): %.o: %.s + $(CC) $(ASFLAGS) -c $< -o $@ + +.PHONY: size +size: ${TARGET} + @echo + @$(SIZE) ${TARGET} + +## Clean target +.PHONY: clean +clean: + rm $(OBJECTS) $(ASOBJECTS) $(PROJECT).bin $(PROJECT).elf $(PROJECT).map $(PROJECT).lss $(DEPS) *.bin *.elf *.map *.lss |
