raspberry3_bare/Makefile

51 lines
1.4 KiB
Makefile
Raw Normal View History

2022-03-14 20:27:46 +01:00
# Used to generated .d file that deal with header dependencies
CPPFLAGS = -MMD
2022-03-14 07:46:32 +01:00
CROSS=aarch64-linux-gnu-
CC=$(CROSS)gcc
LD=$(CROSS)ld
CFLAGS=-Wall -Wextra -ffreestanding -march=armv8-a+crc -mcpu=cortex-a53
2022-03-15 20:56:42 +01:00
DEBUG_FLAGS += -g -Og -DDEBUG -fno-omit-frame-pointer -fno-inline
2022-03-14 07:46:32 +01:00
LDSCRIPT=rpi3.ld
TTY?=/dev/ttyUSB0
2022-03-14 07:46:32 +01:00
2022-03-14 20:27:46 +01:00
gasmsrc=$(wildcard *.S)
gasmobj=$(gasmsrc:%.S=%.o)
csrc=$(wildcard *.c)
cobj=$(csrc:%.c=%.o)
deps=$(csrc:%.c=%.d) $(gasmsrc:%.S=%.d)
2022-03-14 07:46:32 +01:00
2022-03-15 20:56:42 +01:00
KERNEL=kernel.bin
all:$(KERNEL)
2022-03-14 07:46:32 +01:00
2022-03-18 00:30:59 +01:00
kernel.elf: $(cobj) $(gasmobj) font_psf.o $(LDSCRIPT)
$(LD) $(LDFLAGS) -o $@ $(gasmobj) $(cobj) font_psf.o -T$(LDSCRIPT) -Map kernel.map
2022-03-14 07:46:32 +01:00
2022-03-21 21:50:42 +01:00
$(KERNEL) kernel.sym &: kernel.elf
$(CROSS)objcopy -O binary $< $(KERNEL)
$(CROSS)objcopy --only-keep-debug $< kernel.sym
2022-03-14 07:46:32 +01:00
2022-03-18 00:30:59 +01:00
font_psf.o: font.psf
$(LD) -r -b binary -o font_psf.o font.psf
2022-03-14 07:46:32 +01:00
clean:
rm -rf $(cobj) $(gasmobj) $(deps) font_psf.o *.sym *.bin *.elf *.map
2022-03-14 07:46:32 +01:00
2022-03-15 20:56:42 +01:00
run: $(KERNEL)
2022-03-15 23:09:55 +01:00
qemu-system-aarch64 -machine raspi3b -kernel $< -serial stdio
2022-03-14 07:46:32 +01:00
update_serial:
$(eval skip := $(shell $(CROSS)objdump -t kernel.elf | grep __ld_kernel_begin | cut -d " " -f 1))
$(eval skip := $(shell printf "%d" $$((0x$(skip)- 0x80000))))
./boot_client/boot_send.py -d $(TTY) -b 115200 -k kernel.bin -i -s $(skip)
2022-03-15 20:56:42 +01:00
debug: CFLAGS += $(DEBUG_FLAGS)
debug: CXXFLAGS += $(DEBUG_FLAGS)
debug:$(KERNEL)
aarch64-linux-gnu-gdb -q -x debug.gdb
2022-03-14 20:27:46 +01:00
ifneq ($(MAKECMDGOALS),clean)
-include $(deps)
endif