55 lines
1.2 KiB
Makefile
55 lines
1.2 KiB
Makefile
|
# ch32v003
|
||
|
TARGET?= ch32v003
|
||
|
TOOL ?= gcc
|
||
|
|
||
|
PRJ = example
|
||
|
|
||
|
VPATH = . ./$(TARGET) ./common
|
||
|
BLD = ./build/
|
||
|
DFLAGS = -d
|
||
|
LFLAGS = -g
|
||
|
LDLIBS =
|
||
|
BFLAGS = --strip-unneeded
|
||
|
|
||
|
CFLAGS = -MMD -Wall -ggdb -fno-exceptions -ffunction-sections -fdata-sections
|
||
|
CFLAGS+= -I. -I./$(TARGET) -I./common -I/usr/include/newlib -DUSE_HSE=1
|
||
|
DEL = rm -f
|
||
|
|
||
|
# zdrojaky
|
||
|
OBJS = main.o i2cmaster.o usart.o print.o
|
||
|
|
||
|
include $(TARGET)/$(TOOL).mk
|
||
|
BOBJS = $(addprefix $(BLD),$(OBJS))
|
||
|
|
||
|
all: $(BLD) $(PRJ).elf
|
||
|
# ... atd.
|
||
|
-include $(BLD)*.d
|
||
|
# linker
|
||
|
$(PRJ).elf: $(BOBJS)
|
||
|
-@echo [LD $(TOOL),$(TARGET)] $@
|
||
|
@$(LD) $(LFLAGS) -o $(PRJ).elf $(BOBJS) $(LDLIBS)
|
||
|
-@echo "size:"
|
||
|
@$(SIZE) $(PRJ).elf
|
||
|
-@echo "listing:"
|
||
|
$(DUMP) $(DFLAGS) $(PRJ).elf > $(PRJ).lst
|
||
|
-@echo "OK."
|
||
|
$(COPY) $(BFLAGS) -O binary $(PRJ).elf $(PRJ).bin
|
||
|
$(COPY) $(BFLAGS) -O ihex $(PRJ).elf $(PRJ).hex
|
||
|
# preloz co je potreba
|
||
|
$(BLD)%.o: %.c
|
||
|
-@echo [CC $(TOOL),$(TARGET)] $@
|
||
|
@$(CC) -c $(CFLAGS) $< -o $@
|
||
|
$(BLD)%.o: %.cpp
|
||
|
-@echo [CX $(TOOL),$(TARGET)] $@
|
||
|
@$(CXX) -std=c++17 -fno-rtti -c $(CFLAGS) $< -o $@
|
||
|
$(BLD):
|
||
|
mkdir $(BLD)
|
||
|
sin.c: sin.py
|
||
|
./sin.py
|
||
|
flash: $(PRJ).elf
|
||
|
minichlink -w $(PRJ).bin flash -b
|
||
|
# vycisti
|
||
|
clean:
|
||
|
$(DEL) $(BLD)* *.lst *.bin *.hex *.elf *.map *~
|
||
|
.PHONY: all clean
|