31 lines
958 B
Makefile
31 lines
958 B
Makefile
|
# Use clang / llvm toolchain
|
||
|
CC = clang
|
||
|
CXX = clang++
|
||
|
# linker je vlastně ld.lld
|
||
|
LD = clang++
|
||
|
# Zde kvůli jednoduchosti použijeme arm-none-eabi-g++ jako linker.
|
||
|
# Clang nemá některé ABI funkce, toolchain je v zásadě kompatibilní,
|
||
|
# takže než to hledat někde po webu, raději použijeme rovnou libc.
|
||
|
# Bez složité matematiky jde použít ld.lld nebo přidat libaeabi-cortexm0.a
|
||
|
# LD = arm-none-eabi-g++
|
||
|
SIZE = llvm-size
|
||
|
DUMP = llvm-objdump
|
||
|
COPY = llvm-objcopy
|
||
|
|
||
|
CCPU = -mcpu=cortex-m0
|
||
|
MCPU = -mthumb $(CCPU)
|
||
|
TRIP = thumbv6-none-eabi
|
||
|
CFLAGS+= -Oz -flto
|
||
|
#CFLAGS+= -Wno-deprecated-volatile
|
||
|
CFLAGS+= --target=$(TRIP) $(MCPU)
|
||
|
LFLAGS+= --target=$(TRIP)
|
||
|
#LFLAGS+= $(MCPU)
|
||
|
#LFLAGS+= -nostartfiles
|
||
|
LFLAGS+= -nostdlib -lto-O3
|
||
|
LFLAGS+= -Wl,--Map=$(@:%.elf=%.map),--gc-sections
|
||
|
LDLIBS+= -L./stm32f051 -T script.ld
|
||
|
LDLIBS+= -L/usr/lib/gcc/arm-none-eabi/9.2.1/thumb/v6-m/nofp -lgcc
|
||
|
DFLAGS+= --triple=$(TRIP) $(CCPU)
|
||
|
OBJS += startup.o system.o gpio.o
|
||
|
|