Add debug target

This commit is contained in:
Mathieu Maret 2022-03-15 20:56:42 +01:00
parent 757c27c8a6
commit 4dc88ed87c
2 changed files with 14 additions and 4 deletions

View File

@ -4,6 +4,7 @@ CROSS=aarch64-linux-gnu-
CC=$(CROSS)gcc CC=$(CROSS)gcc
LD=$(CROSS)ld LD=$(CROSS)ld
CFLAGS=-Wall -Wextra -ffreestanding -march=armv8-a+crc -mcpu=cortex-a53 CFLAGS=-Wall -Wextra -ffreestanding -march=armv8-a+crc -mcpu=cortex-a53
DEBUG_FLAGS += -g -Og -DDEBUG -fno-omit-frame-pointer -fno-inline
LDSCRIPT=rpi3.ld LDSCRIPT=rpi3.ld
OBJS=crt0.o uart.o hello.o OBJS=crt0.o uart.o hello.o
@ -13,20 +14,26 @@ csrc=$(wildcard *.c)
cobj=$(csrc:%.c=%.o) cobj=$(csrc:%.c=%.o)
deps=$(csrc:%.c=%.d) $(gasmsrc:%.S=%.d) deps=$(csrc:%.c=%.d) $(gasmsrc:%.S=%.d)
all:kernel.bin KERNEL=kernel.bin
all:$(KERNEL)
kernel.elf: $(cobj) $(gasmobj) $(LDSCRIPT) kernel.elf: $(cobj) $(gasmobj) $(LDSCRIPT)
$(LD) $(LDFLAGS) -o $@ $(cobj) $(gasmobj) -T$(LDSCRIPT) -Map kernel.map $(LD) $(LDFLAGS) -o $@ $(gasmobj) $(cobj) -T$(LDSCRIPT) -Map kernel.map
kernel.bin: kernel.elf $(KERNEL): kernel.elf
$(CROSS)objcopy -O binary $< $@ $(CROSS)objcopy -O binary $< $@
clean: clean:
rm -rf $(cobj) $(gasmobj) $(deps) *.bin *.elf *.map rm -rf $(cobj) $(gasmobj) $(deps) *.bin *.elf *.map
run: kernel.bin run: $(KERNEL)
qemu-system-aarch64 -machine raspi3b -kernel $< qemu-system-aarch64 -machine raspi3b -kernel $<
debug: CFLAGS += $(DEBUG_FLAGS)
debug: CXXFLAGS += $(DEBUG_FLAGS)
debug:$(KERNEL)
aarch64-linux-gnu-gdb -q -x debug.gdb
ifneq ($(MAKECMDGOALS),clean) ifneq ($(MAKECMDGOALS),clean)

3
debug.gdb Normal file
View File

@ -0,0 +1,3 @@
#add-symbol-file kernel.map
file kernel.elf
target remote | qemu-system-aarch64 -machine raspi3b -S -gdb stdio -kernel kernel.bin