Files @ a477ff27aff8
Branch filter:

Location: Jabel/Software/hoverboard-firmware-hack_modified20190825/Makefile - annotation

Fantawams
Updated Software repo
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
cb671fb9ee11
######################################
# target
######################################
TARGET = hover

######################################
# building variables
######################################
# debug build?
DEBUG = 1
# optimization
OPT = -Og

# Build path
BUILD_DIR = build

######################################
# source
######################################
# C sources
C_SOURCES =  \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c \
Src/system_stm32f1xx.c \
Src/setup.c \
Src/control.c \
Src/main.c \
Src/bldc.c \
Src/comms.c \
Src/stm32f1xx_it.c \

# ASM sources
ASM_SOURCES =  \
startup_stm32f103xe.s

#######################################
# binaries
#######################################
PREFIX = arm-none-eabi-
CC = $(PREFIX)gcc
AS = $(PREFIX)gcc -x assembler-with-cpp
CP = $(PREFIX)objcopy
AR = $(PREFIX)ar
SZ = $(PREFIX)size
HEX = $(CP) -O ihex
BIN = $(CP) -O binary -S

#######################################
# CFLAGS
#######################################
# cpu
CPU = -mcpu=cortex-m3

# fpu
# NONE for Cortex-M0/M0+/M3

# float-abi


# mcu
MCU = $(CPU) -mthumb $(FPU) $(FLOAT-ABI)

# macros for gcc
# AS defines
AS_DEFS =

# C defines
C_DEFS =  \
-DUSE_HAL_DRIVER \
-DSTM32F103xE


# AS includes
AS_INCLUDES =

# C includes
C_INCLUDES =  \
-IInc \
-IDrivers/STM32F1xx_HAL_Driver/Inc \
-IDrivers/STM32F1xx_HAL_Driver/Inc/Legacy \
-IDrivers/CMSIS/Device/ST/STM32F1xx/Include \
-IDrivers/CMSIS/Include


# compile gcc flags
ASFLAGS = $(MCU) $(AS_DEFS) $(AS_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections

CFLAGS = $(MCU) $(C_DEFS) $(C_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections -std=gnu11

ifeq ($(DEBUG), 1)
CFLAGS += -g -gdwarf-2
endif


# Generate dependency information
CFLAGS += -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)"


#######################################
# LDFLAGS
#######################################
# link script
LDSCRIPT = STM32F103RCTx_FLASH.ld

# libraries
LIBS = -lc -lm -lnosys
LIBDIR =
LDFLAGS = $(MCU) -specs=nano.specs -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections

# default action: build all
all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin


#######################################
# build the application
#######################################
# list of objects
OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o)))
vpath %.c $(sort $(dir $(C_SOURCES)))
# list of ASM program objects
OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.s=.o)))
vpath %.s $(sort $(dir $(ASM_SOURCES)))

$(BUILD_DIR)/%.o: %.c Inc/config.h Makefile | $(BUILD_DIR)
	$(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@

$(BUILD_DIR)/%.o: %.s Inc/config.h Makefile | $(BUILD_DIR)
	$(AS) -c $(CFLAGS) $< -o $@

$(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile
	$(CC) $(OBJECTS) $(LDFLAGS) -o $@
	$(SZ) $@

$(BUILD_DIR)/%.hex: $(BUILD_DIR)/%.elf | $(BUILD_DIR)
	$(HEX) $< $@

$(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.elf | $(BUILD_DIR)
	$(BIN) $< $@

$(BUILD_DIR):
	mkdir -p $@

format:
	find Src/ Inc/ -iname '*.h' -o -iname '*.c' | xargs clang-format -i
#######################################
# clean up
#######################################
clean:
	-rm -fR .dep $(BUILD_DIR)

flash:
	st-flash --reset write $(BUILD_DIR)/$(TARGET).bin 0x8000000

unlock:
	openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg -c init -c "reset halt" -c "stm32f1x unlock 0"

#######################################
# dependencies
#######################################
-include $(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*)

# *** EOF ***