diff --git a/Makefile b/Makefile index e63e3ff5dafc0e486a996090c279854ef69d844f..86d8dcab183902462161a90826058a74070ec6b0 100644 --- a/Makefile +++ b/Makefile @@ -16,7 +16,7 @@ OD=arm-none-eabi-objdump else # CLANG -CC=clang +CC=clang LD=llvm-link CC-native=arm-none-eabi-gcc #LD-native=arm-none-eabi-ld @@ -46,29 +46,30 @@ OOCDFLAGS = -f interface/stlink-v2-1.cfg -f stm32f4x.cfg # STM32F401 ifeq "$(MAKECMDGOALS)" "rel" -DEFS = -DSTM32F40XX -DHSE_VALUE=8000000 -DTRACE -DOS_USE_TRACE_ITM +DEFS = -DSTM32F40XX -DSTM32F401xE -DHSE_VALUE=8000000 -DTRACE -DOS_USE_TRACE_ITM else ifeq "$(MAKECMDGOALS)" "wcet" -DEFS = -DSTM32F40XX -DHSE_VALUE=8000000 -DTRACE -DOS_USE_TRACE_ITM -DKLEE_WCET +DEFS = -DSTM32F40XX -DSTM32F401xE -DHSE_VALUE=8000000 -DTRACE -DOS_USE_TRACE_ITM -DKLEE_WCET else -DEFS = -DSTM32F40XX -DHSE_VALUE=8000000 -DKLEE +DEFS = -DSTM32F40XX -DSTM32F401xE -DHSE_VALUE=8000000 -DKLEE endif # Definitions #ifeq "$(MAKECMDGOALS)" "debug" -#DEFS = -DnoUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -DOS_USE_TRACE_ITM -DDEBUG -DxOS_USE_SEMIHOSTING -DTRACE -DxOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F746xx #else +#DEFS = -DnoUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -DOS_USE_TRACE_ITM -DDEBUG -DxOS_USE_SEMIHOSTING -DTRACE -DxOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F746xx #DEFS = -DnoUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -DxOS_USE_SEMIHOSTING -DxOS_USE_TRACE_SEMIHOSTING_DEBUG -DSTM32F746xx #endif # Optimize for size #OPTIMIZE = -Os # No optimization at all -OPTIMIZE = -O0 +OPTIMIZE = -O0 -Xclang -disable-O0-optnone #INCSEARCH = include #SRCIGNORE =! -iname 'tiny_printf.c' #INCLUDES := $(shell find $(INCSEARCH) -name '*.h' -exec dirname {} \; | uniq) INCLUDES = -I"include" \ + -I"/usr/arm-none-eabi/include" \ -I"system" \ -I"system/include/cmsis" \ -I"system/include/cmsis/stm32f4-hal" @@ -78,6 +79,7 @@ INCLUDES = -I"include" \ #-I"Libraries/Device/STM32F4xx/Include" MCU = cortex-m4 +TARGETTRIPLE = armv7m-none-eabi ifeq "$(MAKECMDGOALS)" "gcc" # GCC @@ -89,14 +91,14 @@ else # Start of the CLANG block # CLANG -CLANGMCFLAGS =-target arm-none-eabi -fno-integrated-as +CLANGMCFLAGS =-target $(TARGETTRIPLE) # -fno-integrated-as # MCU Specific flags MCFLAGS = -mcpu=$(MCU) -mlittle-endian -mthumb -ffreestanding \ -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fshort-enums \ -g3 -std=gnu11 -Wall -Wextra # For creating object file from LLVM IR -LLCFLAGS = -mtriple=arm-none-eabi -march=thumb -mcpu=$(MCU) -filetype=obj -float-abi=hard +LLCFLAGS = -mtriple=$(TARGETTRIPLE) -march=thumb -mcpu=$(MCU) -filetype=obj -float-abi=hard # Assembler flags ASFLAGS = -mcpu=$(MCU) -mlittle-endian -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard @@ -108,7 +110,7 @@ LDFLAGS = --specs=nosys.specs -Wl,-T "ldscripts/flash.ld" -nostartfiles -Wl,-no # Not used: #--specs=nano.specs --specs=nosys.specs -lc -lnosys -CLANGLDFLAGS = -flto -target arm-none-eabi -mfloat-abi=hard # -save-temps=obj +CLANGLDFLAGS = -flto -target $(TARGETTRIPLE) -mfloat-abi=hard # -save-temps=obj #or if you want .bc in objects -save-temps=obj # Build the compile command