Feat: lab 3 w/o adv 2

This commit is contained in:
2025-03-26 15:30:57 +08:00
parent 98327b148a
commit e2ebb6cc34
25 changed files with 618 additions and 113 deletions

39
userprog/Makefile Normal file
View File

@@ -0,0 +1,39 @@
MAKE := make
MAKEFLAGS += -j 8
ARCH := aarch64
GNU := $(ARCH)-linux-gnu
CC := $(GNU)-gcc
CCFLAGS += -Wall -Wextra -O0 \
-nostdinc -nostdlib -nostartfiles -nodefaultlibs \
-Wno-unused-parameter -Wno-unused-value -Wno-main -g
LD := $(GNU)-ld
LDFLAGS += -g -nostdlib -no-pie
OBJCOPY := $(GNU)-objcopy
LD_SCRIPT := linker.ld
SRCS := $(shell find . -name '*.[cS]')
OBJS := $(SRCS:%=%.o)
.PHONY: all
all: userprog
userprog: userprog.elf
$(OBJCOPY) -O binary $< $@
userprog.elf: $(LD_SCRIPT) $(OBJS)
$(LD) -o $@ -T $(LD_SCRIPT) $(OBJS) $(LDFLAGS)
%.S.o: %.S
mkdir -p $(dir $@)
$(CC) -c $< -o $@ $(CCFLAGS)
%.c.o: %.c
mkdir -p $(dir $@)
$(CC) -c $< -o $@ $(CCFLAGS)
clean:
-rm $(OBJS) userprog userprog.elf