summaryrefslogtreecommitdiff
path: root/os/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'os/Makefile')
-rw-r--r--os/Makefile93
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