synth/arm/makefile
Paul Mathieu b8b0d94065 arm: working bootloader, example app
'make' will produce two outputs:
- bootloader.elf to be loaded into the bitstream
- app.bin to be loaded through the programmer

Loading app.bin is as simple as:
- reset the board
- `python3 prog.py app.bin`
2022-05-10 11:20:02 -07:00

45 lines
1008 B
Makefile

CC = arm-none-eabi-gcc
LD = arm-none-eabi-gcc
CXX = arm-none-eabi-g++
OBJCOPY = arm-none-eabi-objcopy
linker_script = bootloader.ld
includes =
sources =
CFLAGS = -march=armv6-m -g -ffunction-sections -fdata-sections -O2 -Werror -Wall
CXXFLAGS = $(CFLAGS) -std=c++20 -fno-exceptions
LDFLAGS = -march=armv6-m \
-g --specs=nano.specs --specs=nosys.specs \
-Wl,--gc-sections -O2 \
-Wl,--print-memory-usage
sources += hal/lib/common/xil_assert.c
includes += -Ihal/lib/common
sources += hal/uart/xuartlite.c hal/uart/xuartlite_stats.c
includes += -Ihal/uart
bootloader_objects = uart.o bootloader.o vector_table.o $(sources:.c=.o)
app_objects = app_init.o main.o
CFLAGS += $(includes)
all: bootloader.elf app.bin
%.bin: %.elf
$(OBJCOPY) -O binary $< $@
bootloader.elf: $(bootloader_objects)
$(LD) -Wl,-Tbootloader.ld $(LDFLAGS) -o $@ $^
app.elf: $(app_objects)
%.elf:
$(LD) -Wl,-Tapp.ld $(LDFLAGS) -o $@ $^
.PHONY: clean
clean:
rm -rf *.elf *.bin $(app_objects) $(bootloader_objects)