# 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