Files @ 988bab1cb593
Branch filter:

Location: therm/Makefile - annotation

Ethan Zonca
Got things mostly compiling, disabled SPI and USB for now because of RAM overflow
287a302c9d20
970a161634a0
970a161634a0
970a161634a0
970a161634a0
970a161634a0
970a161634a0
3dd364248179
3dd364248179
3dd364248179
3dd364248179
3dd364248179
988bab1cb593
988bab1cb593
988bab1cb593
3dd364248179
970a161634a0
970a161634a0
3dd364248179
970a161634a0
3dd364248179
3dd364248179
3dd364248179
3dd364248179
3dd364248179
3dd364248179
3dd364248179
3dd364248179
3dd364248179
3dd364248179
3dd364248179
3dd364248179
970a161634a0
970a161634a0
970a161634a0
988bab1cb593
988bab1cb593
988bab1cb593
988bab1cb593
988bab1cb593
988bab1cb593
970a161634a0
970a161634a0
988bab1cb593
970a161634a0
970a161634a0
970a161634a0
1c5909c633fa
109bc69daf49
49b0586d1fdf
49b0586d1fdf
41c563eb0a68
91fbdc7bc1b8
970a161634a0
988bab1cb593
988bab1cb593
988bab1cb593
988bab1cb593
988bab1cb593
988bab1cb593
988bab1cb593
970a161634a0
970a161634a0
988bab1cb593
988bab1cb593
988bab1cb593
988bab1cb593
988bab1cb593
988bab1cb593
988bab1cb593
988bab1cb593
988bab1cb593
988bab1cb593
988bab1cb593
988bab1cb593
988bab1cb593
988bab1cb593
988bab1cb593
970a161634a0
970a161634a0
988bab1cb593
988bab1cb593
988bab1cb593
988bab1cb593
970a161634a0
970a161634a0
555930ccae9f
970a161634a0
970a161634a0
555930ccae9f
555930ccae9f
970a161634a0
970a161634a0
5bb33b7045ec
5bb33b7045ec
89dc4e02c836
5bb33b7045ec
5bb33b7045ec
5bb33b7045ec
970a161634a0
970a161634a0
970a161634a0
970a161634a0
970a161634a0
970a161634a0
970a161634a0
970a161634a0
970a161634a0
970a161634a0
970a161634a0
970a161634a0
970a161634a0
970a161634a0
970a161634a0
970a161634a0
970a161634a0
970a161634a0
970a161634a0
970a161634a0
676f49902c7d
970a161634a0
970a161634a0
970a161634a0
970a161634a0
970a161634a0
970a161634a0
970a161634a0
970a161634a0
970a161634a0
970a161634a0
970a161634a0
970a161634a0
970a161634a0
970a161634a0
676f49902c7d
676f49902c7d
676f49902c7d
676f49902c7d
676f49902c7d
676f49902c7d
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 "../..")
LIBDIR:=libraries

HAL_LIB:=$(LIBDIR)/STM32F0xx_HAL_Driver
USB_LIB:=$(LIBDIR)/STM32_USB_Device_Library

STARTUP:=$(LIBDIR)/CMSIS/Device/ST/STM32F0xx/Source/Templates/gcc

SYSTEMDIR:=$(LIBDIR)/CMSIS/Device/ST/STM32F0xx/Source/Templates # Houses system_STM32f0xx.c

LINKER_SCRIPT:=$(CURDIR)/stm32-flash.ld

# Local libs
INCLUDE=-I$(CURDIR)

# CMSIS
INCLUDE+=-I$(LIBDIR)/CMSIS/Include
INCLUDE+=-I$(LIBDIR)/CMSIS/Device/ST/STM32F0xx/Include

# USB
INCLUDE+=-I$(USB_LIB)/Class/CDC
INCLUDE+=-I$(USB_LIB)/Core

# HAL
INCLUDE+=-I$(HAL_LIB)/Inc


# vpath is used so object files are written to the current directory instead
# of the same directory as their source files
vpath %.c $(HAL_LIB)/Src \
          $(USB_LIB) \
          $(USB_LIB)/Class/CDC \
          $(USB_LIB)/Core \
	  $(SYSTEMDIR)

vpath %.s $(STARTUP)

ASRC=$(STARTUP)/startup_stm32f042x6.s

# Project Source Files
SRC=main.c
SRC+=ssd1306.c
SRC+=eeprom_min.c
SRC+=gpio.c
SRC+=spi.c
SRC+=clock.c
SRC+=stringhelpers.c

SRC+=stm32f0xx_it.c
SRC+=stm32f0xx_hal_msp.c

SRC+=usb_device.c
SRC+=usbd_cdc_if.c
SRC+=usbd_conf.c
SRC+=usbd_desc.c

# Standard Peripheral Source Files
SRC+=system_stm32f0xx.c

SRC+=stm32f0xx_hal.c
SRC+=stm32f0xx_hal_spi.c
SRC+=stm32f0xx_hal_pcd.c
SRC+=stm32f0xx_hal_pcd_ex.c
SRC+=stm32f0xx_hal_cortex.c
SRC+=stm32f0xx_hal_dma.c
SRC+=stm32f0xx_hal_flash.c
SRC+=stm32f0xx_hal_flash_ex.c
SRC+=stm32f0xx_hal_gpio.c
SRC+=stm32f0xx_hal_pwr.c
SRC+=stm32f0xx_hal_pwr_ex.c
SRC+=stm32f0xx_hal_rcc.c
SRC+=stm32f0xx_hal_rcc_ex.c

# USB Source Files
SRC+=usbd_cdc.c
SRC+=usbd_core.c
SRC+=usbd_ctlreq.c
SRC+=usbd_ioreq.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