[Modified] change toolchain to la32r

This commit is contained in:
bLueriVerLHR
2023-07-21 14:26:41 +08:00
parent a755aae99e
commit ff61889138
6 changed files with 33 additions and 71 deletions

3
.gitmodules vendored
View File

@@ -7,3 +7,6 @@
[submodule "lasoft/la32r-nemu"] [submodule "lasoft/la32r-nemu"]
path = lasoft/la32r-nemu path = lasoft/la32r-nemu
url = https://gitee.com/wwt_panache/la32r-nemu url = https://gitee.com/wwt_panache/la32r-nemu
[submodule "la32r-toolchains"]
path = la32r-toolchains
url = https://gitee.com/loongson-edu/la32r-toolchains

1
la32r-toolchains Submodule

Submodule la32r-toolchains added at c6d7b1ffac

View File

@@ -32,23 +32,7 @@ OBJS = \
# riscv64-unknown-elf- or riscv64-linux-gnu- # riscv64-unknown-elf- or riscv64-linux-gnu-
# perhaps in /opt/riscv/bin # perhaps in /opt/riscv/bin
#TOOLPREFIX = TOOLPREFIX ?=
# Try to infer the correct TOOLPREFIX if not set
ifndef TOOLPREFIX
TOOLPREFIX := $(shell if riscv64-unknown-elf-objdump -i 2>&1 | grep 'elf64-big' >/dev/null 2>&1; \
then echo 'riscv64-unknown-elf-'; \
elif riscv64-linux-gnu-objdump -i 2>&1 | grep 'elf64-big' >/dev/null 2>&1; \
then echo 'riscv64-linux-gnu-'; \
elif riscv64-unknown-linux-gnu-objdump -i 2>&1 | grep 'elf64-big' >/dev/null 2>&1; \
then echo 'riscv64-unknown-linux-gnu-'; \
else echo "***" 1>&2; \
echo "*** Error: Couldn't find a riscv64 version of GCC/binutils." 1>&2; \
echo "*** To turn off this error, run 'gmake TOOLPREFIX= ...'." 1>&2; \
echo "***" 1>&2; exit 1; fi)
endif
QEMU = qemu-system-riscv64
CC = $(TOOLPREFIX)gcc CC = $(TOOLPREFIX)gcc
AS = $(TOOLPREFIX)gas AS = $(TOOLPREFIX)gas
@@ -146,30 +130,5 @@ clean:
$U/usys.S \ $U/usys.S \
$(UPROGS) $(UPROGS)
# try to generate a unique GDB port
GDBPORT = $(shell expr `id -u` % 5000 + 25000)
# QEMU's gdb stub command line changed in 0.11
QEMUGDB = $(shell if $(QEMU) -help | grep -q '^-gdb'; \
then echo "-gdb tcp::$(GDBPORT)"; \
else echo "-s -p $(GDBPORT)"; fi)
ifndef CPUS
CPUS := 3
endif
QEMUOPTS = -machine virt -bios none -kernel $K/kernel -m 128M -smp $(CPUS) -nographic
QEMUOPTS += -global virtio-mmio.force-legacy=false
QEMUOPTS += -drive file=fs.img,if=none,format=raw,id=x0
QEMUOPTS += -device virtio-blk-device,drive=x0,bus=virtio-mmio-bus.0
build: $K/kernel fs.img build: $K/kernel fs.img
qemu: $K/kernel fs.img
$(QEMU) $(QEMUOPTS)
.gdbinit: .gdbinit.tmpl-riscv
sed "s/:1234/:$(GDBPORT)/" < $^ > $@
qemu-gdb: $K/kernel .gdbinit fs.img
@echo "*** Now run 'gdb' in another window." 1>&2
$(QEMU) $(QEMUOPTS) -S $(QEMUGDB)

View File

View File

@@ -51,7 +51,7 @@ start()
w_tp(id); w_tp(id);
// switch to supervisor mode and jump to main(). // switch to supervisor mode and jump to main().
asm volatile("mret"); asm volatile("ertn");
} }
// arrange to receive timer interrupts. // arrange to receive timer interrupts.