moving inl6proto to separate makefile, adding fast unclean build option
for final inl6 version. Must call "make stm6clean" for a clean build, default is fast & dirty. Other hardware always builds clean.
This commit is contained in:
parent
3e2bcea7e8
commit
3488a64fe2
|
|
@ -50,6 +50,7 @@ STARTUP_DEFS=-D__STARTUP_CLEAR_BSS -D__START=main -D__NO_SYSTEM_INIT
|
||||||
LDSCRIPTS=-L. -L$(BASE)/include_stm -T nokeep.ld
|
LDSCRIPTS=-L. -L$(BASE)/include_stm -T nokeep.ld
|
||||||
LFLAGS=$(USE_NANO) $(USE_NOHOST) $(LDSCRIPTS) $(GC) $(MAP)
|
LFLAGS=$(USE_NANO) $(USE_NOHOST) $(LDSCRIPTS) $(GC) $(MAP)
|
||||||
|
|
||||||
|
#TODO fix DF_CPU, now runs at 48Mhz
|
||||||
DEFINE+=\
|
DEFINE+=\
|
||||||
-DSTM32F070x6 \
|
-DSTM32F070x6 \
|
||||||
-DF_CPU=16000000 \
|
-DF_CPU=16000000 \
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,109 @@
|
||||||
|
|
||||||
|
#Build directory
|
||||||
|
BUILD = build_stm
|
||||||
|
|
||||||
|
#project name
|
||||||
|
#doesn't need to be associated with any file names
|
||||||
|
PROJ = inlretro_stm
|
||||||
|
|
||||||
|
|
||||||
|
# Selecting Core
|
||||||
|
CORTEX_M=0
|
||||||
|
|
||||||
|
# Use newlib-nano. To disable it, specify USE_NANO=
|
||||||
|
#USE_NANO=--specs=nano.specs
|
||||||
|
USE_NANO=
|
||||||
|
|
||||||
|
# Use seimhosting or not
|
||||||
|
USE_SEMIHOST=--specs=rdimon.specs
|
||||||
|
USE_NOHOST=--specs=nosys.specs
|
||||||
|
|
||||||
|
CORE=CM$(CORTEX_M)
|
||||||
|
BASE=.
|
||||||
|
|
||||||
|
# Compiler & Linker
|
||||||
|
CC=arm-none-eabi-gcc
|
||||||
|
ASM=arm-none-eabi-as
|
||||||
|
CXX=arm-none-eabi-g++
|
||||||
|
OBJCOPY=arm-none-eabi-objcopy
|
||||||
|
SIZE=arm-none-eabi-size
|
||||||
|
|
||||||
|
# Options for specific architecture
|
||||||
|
ARCH_FLAGS=-mthumb -mcpu=cortex-m$(CORTEX_M)
|
||||||
|
|
||||||
|
# Startup code
|
||||||
|
STARTUP=$(BASE)/include_stm/startup_ARM$(CORE).S
|
||||||
|
|
||||||
|
# -Os -flto -ffunction-sections -fdata-sections to compile for code size
|
||||||
|
CFLAGS=$(ARCH_FLAGS) $(STARTUP_DEFS) -Os -flto -ffunction-sections -fdata-sections -g
|
||||||
|
#CFLAGS=$(ARCH_FLAGS) $(STARTUP_DEFS) -flto -ffunction-sections -fdata-sections -g
|
||||||
|
CXXFLAGS=$(CFLAGS)
|
||||||
|
|
||||||
|
# Link for code size
|
||||||
|
GC=-Wl,--gc-sections
|
||||||
|
|
||||||
|
# Create map file
|
||||||
|
MAP=-Wl,-Map=$(BUILD)/$(PROJ).map
|
||||||
|
|
||||||
|
STARTUP_DEFS=-D__STARTUP_CLEAR_BSS -D__START=main -D__NO_SYSTEM_INIT
|
||||||
|
|
||||||
|
LDSCRIPTS=-L. -L$(BASE)/include_stm -T nokeep.ld
|
||||||
|
LFLAGS=$(USE_NANO) $(USE_NOHOST) $(LDSCRIPTS) $(GC) $(MAP)
|
||||||
|
|
||||||
|
DEFINE+=\
|
||||||
|
-DSTM32F070x6 \
|
||||||
|
-DF_CPU=16000000 \
|
||||||
|
-DSTM_CORE \
|
||||||
|
-DSTM_INL6_PROTO #inlretro 6connector prototype
|
||||||
|
# -DSTM_INL6 #inlretro 6connector
|
||||||
|
# -DSTM_ADAPTER #stm32 to kazzo adapter board
|
||||||
|
# -DSTM32F072x8 \ #64KB version of all packages (LQFP-48,64,100)
|
||||||
|
# -DSTM32F070xB \ #128KB version of both packages (LQFP-48,64)
|
||||||
|
# -DSTM32F070x6 \ #32KB version of both packages (TSSOP-20,LQFP-48)
|
||||||
|
# -DF_CPU=8000000
|
||||||
|
INCLUDE=-I ./include_stm
|
||||||
|
CFLAGS+= $(DEFINE) $(INCLUDE)
|
||||||
|
|
||||||
|
SOURCES=$(wildcard source/*.c source_stm_only/*.c)
|
||||||
|
OBJECTS=$(patsubst %.c,%.o,$(SOURCES))
|
||||||
|
|
||||||
|
ASM_SRC=$(wildcard source/asm_stm/*.s)
|
||||||
|
|
||||||
|
#all: dir shared $(BUILD)/$(PROJ).axf $(BUILD)/$(PROJ).elf $(BUILD)/$(PROJ).hex $(BUILD)/$(PROJ).bin size
|
||||||
|
all: dir shared $(BUILD)/$(PROJ).elf $(BUILD)/$(PROJ).hex $(BUILD)/$(PROJ).bin size
|
||||||
|
|
||||||
|
#build axf file output (basically elf with DWARF debug info)
|
||||||
|
# $@ is shortcut for the target, $^ is shortcut for prereqs
|
||||||
|
# TARGET: PREREQS
|
||||||
|
|
||||||
|
$(BUILD)/$(PROJ).axf: $(STARTUP) $(OBJECTS)
|
||||||
|
$(CC) $^ $(ASM_SRC) $(CFLAGS) $(LFLAGS) -o $@
|
||||||
|
|
||||||
|
$(BUILD)/$(PROJ).elf: $(STARTUP) $(OBJECTS)
|
||||||
|
$(CC) $^ $(ASM_SRC) $(CFLAGS) $(LFLAGS) -o $@
|
||||||
|
|
||||||
|
$(BUILD)/$(PROJ).hex: $(BUILD)/$(PROJ).elf
|
||||||
|
$(OBJCOPY) -O ihex $^ $@
|
||||||
|
|
||||||
|
$(BUILD)/$(PROJ).bin: $(BUILD)/$(PROJ).elf
|
||||||
|
$(OBJCOPY) -O binary $^ $@
|
||||||
|
|
||||||
|
dir:
|
||||||
|
mkdir -p $(BUILD)
|
||||||
|
|
||||||
|
#copy shared .h files which are used in host and firmware
|
||||||
|
shared:
|
||||||
|
cp -r ../shared/* source/
|
||||||
|
|
||||||
|
size: $(BUILD)/$(PROJ).elf
|
||||||
|
$(SIZE) -t $^
|
||||||
|
|
||||||
|
program: all
|
||||||
|
ST-LINK_CLI.exe -c -P $(BUILD)\$(PROJ).hex 0x08000000 -Rst
|
||||||
|
|
||||||
|
disassm: all
|
||||||
|
arm-none-eabi-objdump $(BUILD)\$(PROJ).elf -d -g
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -rf $(BUILD)
|
||||||
|
rm -f $(OBJECTS)
|
||||||
|
|
@ -8,6 +8,10 @@ all:
|
||||||
avr:
|
avr:
|
||||||
make -f Make_avr clean program
|
make -f Make_avr clean program
|
||||||
stm6:
|
stm6:
|
||||||
|
make -f Make_stm_inl6 program
|
||||||
|
stm6clean:
|
||||||
make -f Make_stm_inl6 clean program
|
make -f Make_stm_inl6 clean program
|
||||||
|
stm6p:
|
||||||
|
make -f Make_stm_inl6p clean program
|
||||||
stmad:
|
stmad:
|
||||||
make -f Make_stm_adapter clean program
|
make -f Make_stm_adapter clean program
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue