diff --git a/arm/bootloader.ld b/arm/bootloader.ld index a0fab94..341e1ad 100644 --- a/arm/bootloader.ld +++ b/arm/bootloader.ld @@ -7,7 +7,7 @@ SECTIONS { .text : { - KEEP(vector_table.o(.vector_table)) + KEEP(*(.vector_table)) *(.text*) *(.rodata*) diff --git a/arm/makefile b/arm/makefile index 95a86da..d56afef 100644 --- a/arm/makefile +++ b/arm/makefile @@ -7,12 +7,13 @@ 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 +CFLAGS = -march=armv6-m -g -ffunction-sections -fdata-sections -Os -Werror -Wall -flto +CXXFLAGS = $(CFLAGS) -std=c++20 -fno-exceptions -fcoroutines +CPPFLAGS = -MD -MP LDFLAGS = -march=armv6-m \ -g --specs=nano.specs --specs=nosys.specs \ - -Wl,--gc-sections -O2 \ - -Wl,--print-memory-usage + -Wl,--gc-sections -Os \ + -Wl,--print-memory-usage -flto sources += hal/lib/common/xil_assert.c includes += -Ihal/lib/common @@ -23,17 +24,18 @@ includes += -Ihal/uart bootloader_objects = uart.o bootloader.o vector_table.o $(sources:.c=.o) app_objects = app_init.o main.o -CFLAGS += $(includes) +CPPFLAGS += $(includes) all: bootloader.elf app.bin %.bin: %.elf $(OBJCOPY) -O binary $< $@ -bootloader.elf: $(bootloader_objects) - $(LD) -Wl,-Tbootloader.ld $(LDFLAGS) -o $@ $^ +bootloader.elf: $(bootloader_objects) bootloader.ld + $(LD) -Wl,-Tbootloader.ld $(LDFLAGS) -o $@ $(bootloader_objects) -app.elf: $(app_objects) +app.elf: $(app_objects) app.ld + $(LD) -Wl,-Tapp.ld $(LDFLAGS) -o $@ $(app_objects) %.elf: $(LD) -Wl,-Tapp.ld $(LDFLAGS) -o $@ $^