From f3885c4b23b0e13d7fe9ef4674a07e746acca320 Mon Sep 17 00:00:00 2001 From: Bobby Bingham Date: Sun, 19 Jul 2015 17:17:06 -0500 Subject: build bootloaders from code This adds the infrastructure for building from source the bootloaders which will go into the application initial program, in the boot sector. As a simple test case, it includes a simple bootloader which merely jumpts to the code address specified in the AIP, with the stack address specified there. --- Makefile | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index af28deb..de590e8 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,10 @@ CFLAGS = -Os -pipe -std=c99 -D_POSIX_C_SOURCE=200809L LDFLAGS = +BOOTSRCS = $(sort $(wildcard boot/*.c)) +BOOTELFS = $(patsubst %.c,%.elf,$(BOOTSRCS)) +BOOTBINS = $(patsubst boot/%.c,share/%.boot,$(BOOTSRCS)) + SRCS = $(sort $(wildcard src/*.c)) DATA = $(sort $(wildcard src/*.bin)) OBJS = $(SRCS:.c=.o) $(DATA:.bin=.o) @@ -8,17 +12,22 @@ BINS = bin/satmkboot .PHONY: all clean -all: $(BINS) +all: $(BINS) $(BOOTBINS) clean: - rm -f $(BINS) - rm -f $(OBJS) + rm -f $(BINS) $(OBJS) $(BOOTBINS) $(BOOTELFS) bin/satmkboot: \ src/satmkboot.o \ src/securitycode.o \ src/symbols.o +share/%.boot: boot/%.elf + saturn-objcopy -O binary $< $@ + +%.elf: %.c boot/ldscript + saturn-gcc -nostdlib -T boot/ldscript $(CFLAGS) $< -o $@ + %.c: %.bin tools/bin2c $< > $@ -- cgit v1.2.3