Files
@ de42eee9f86f
Branch filter:
Location: therm/Makefile
de42eee9f86f
3.2 KiB
text/x-makefile
Add cube generated init and usb files
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 |
TARGET:=therm
TOOLCHAIN_PATH:=/usr/bin
TOOLCHAIN_PREFIX:=arm-none-eabi
OPTLVL:=3 # Optimization level, can be [0, 1, 2, 3, s].
#PROJECT_NAME:=$(notdir $(lastword $(CURDIR)))
TOP:=$(shell readlink -f "../..")
STMLIB:=libraries
OLEDDRV:=oleddrv
USBDRV:=USB
STD_PERIPH:=$(STMLIB)/STM32F0xx_StdPeriph_Driver
STARTUP:=$(STMLIB)/CMSIS/Device/ST/STM32F0xx/Source/Templates/gcc_ride7
LINKER_SCRIPT:=$(CURDIR)/stm32-flash.ld
#LINKER_SCRIPT:=$(CURDIR)/../stm32_flash.ld
INCLUDE=-I$(CURDIR)
INCLUDE+=-I$(STMLIB)/CMSIS/Include
INCLUDE+=-I$(STMLIB)/CMSIS/Device/ST/STM32F0xx/Include
INCLUDE+=-I$(STD_PERIPH)/inc
INCLUDE+=-I$(STMLIB)/$(OLEDDRV)
INCLUDE+=-I$(STMLIB)/$(USBDRV)
# vpath is used so object files are written to the current directory instead
# of the same directory as their source files
vpath %.c $(DISCOVERY) $(STD_PERIPH)/src \
$(STMLIB)/USB \
$(STMLIB)/STM32_USB-FS_Device_Library/Class/hid/src \
$(STMLIB)/STM32_USB-FS_Device_Library/Core/src
vpath %.s $(STARTUP)
ASRC=startup_stm32f042.s
# Project Source Files
SRC=main.c
SRC+=stm32f0xx_it.c
SRC+=system_stm32f0xx.c
SRC+=ssd1306.c
SRC+=eeprom_min.c
SRC+=gpio.c
SRC+=spi.c
SRC+=stringhelpers.c
# Discovery Source Files
#SRC+=stm32f4_discovery_lis302dl.c
#SRC+=stm32f4_discovery.c
#SRC+=stm32f4_discovery_audio_codec.c
# Standard Peripheral Source Files
SRC+=stm32f0xx_syscfg.c
SRC+=misc.c
SRC+=stm32f0xx_adc.c
SRC+=stm32f0xx_dac.c
SRC+=stm32f0xx_dma.c
SRC+=stm32f0xx_exti.c
SRC+=stm32f0xx_flash.c
SRC+=stm32f0xx_gpio.c
SRC+=stm32f0xx_i2c.c
SRC+=stm32f0xx_rcc.c
SRC+=stm32f0xx_spi.c
SRC+=stm32f0xx_tim.c
# USB Source Files
SRC+=usb_core.c
SRC+=usb_init.c
SRC+=usb_int.c
SRC+=usb_mem.c
SRC+=usb_regs.c
SRC+=usb_sil.c
SRC+=hw_config.c
SRC+=usb_desc.c
SRC+=usb_endp.c
SRC+=usb_istr.c
SRC+=usb_prop.c
SRC+=usb_pwr.c
CDEFS=-DUSE_STDPERIPH_DRIVER
CDEFS+=-DSTM32F0XX
CDEFS+=-DMANGUSTA_DISCOVERY
#CDEFS+=-DUSE_USB_OTG_FS
# EMZ FIXME
CDEFS+=-DHSE_VALUE=8000000
#EMZ Optimized:
MCUFLAGS=-mcpu=cortex-m3 -mthumb -ffunction-sections -fdata-sections -mfloat-abi=soft
# Default: MCUFLAGS=-mcpu=cortex-m3 -mthumb -ffunction-sections -fdata-sections
#MCUFLAGS=-mcpu=cortex-m4 -mthumb -mlittle-endian -mfpu=fpa -mfloat-abi=hard -mthumb-interwork
#MCUFLAGS=-mcpu=cortex-m4 -mfpu=vfpv4-sp-d16 -mfloat-abi=hard
COMMONFLAGS=-O$(OPTLVL) -g -Wall
CFLAGS=$(COMMONFLAGS) $(MCUFLAGS) $(INCLUDE) $(CDEFS)
LDLIBS=
LDFLAGS=$(COMMONFLAGS) -fno-exceptions -ffunction-sections -fdata-sections \
-nostartfiles -Wl,--gc-sections,-T$(LINKER_SCRIPT)
#####
#####
OBJ = $(SRC:%.c=%.o) $(ASRC:%.s=%.o)
CC=$(TOOLCHAIN_PATH)/$(TOOLCHAIN_PREFIX)-gcc
LD=$(TOOLCHAIN_PATH)/$(TOOLCHAIN_PREFIX)-gcc
OBJCOPY=$(TOOLCHAIN_PATH)/$(TOOLCHAIN_PREFIX)-objcopy
AS=$(TOOLCHAIN_PATH)/$(TOOLCHAIN_PREFIX)-as
AR=$(TOOLCHAIN_PATH)/$(TOOLCHAIN_PREFIX)-ar
GDB=$(TOOLCHAIN_PATH)/$(TOOLCHAIN_PREFIX)-gdb
SIZE=$(TOOLCHAIN_PATH)/$(TOOLCHAIN_PREFIX)-size
all: $(OBJ)
$(CC) -o $(TARGET).elf $(LDFLAGS) $(OBJ) $(LDLIBS)
$(OBJCOPY) -O ihex $(TARGET).elf $(TARGET).hex
$(OBJCOPY) -O binary $(TARGET).elf $(TARGET).bin
.PHONY: clean
clean:
rm -f $(OBJ)
rm -f $(TARGET).elf
rm -f $(TARGET).hex
rm -f $(TARGET).bin
# Display size
size: $(TARGET).elf
@echo Invoking: ARM GNU Print Size
$(SIZE) --format=berkeley $<
@echo
|