tornado-os/justfile

63 lines
2.1 KiB
Makefile

target := "riscv64imac-unknown-none-elf"
mode := "debug"
user-mode := "debug"
build-path := "target/" + target + "/" + mode + "/"
app-path := "target/" + target + "/" + user-mode + "/"
bootloader-bin := "SBI/rustsbi-qemu.bin"
kernel-elf := build-path + "tornado-kernel"
kernel-bin := build-path + "tornado-kernel.bin"
shared-elf := "target/" + target + "/" + mode + "/" + "shared-scheduler"
shared-bin := "target/" + target + "/" + mode + "/" + "shared-scheduler.bin"
objdump := "riscv64-linux-gnu-objdump"
gdb := "riscv64-unknown-elf-gdb.exe"
# gdb := "/mnt/d/riscv-binutils-gdb/build_riscv/gdb/gdb"
size := "rust-size"
threads := "1"
build:
@just -f "tornado-kernel/justfile" build
build-user app:
@just -f "tornado-user/justfile" build {{app}}
build-shared:
@just -f "shared-scheduler/justfile" build
qemu app: build build-shared (build-user app)
@qemu-system-riscv64 \
-machine virt \
-nographic \
-bios none \
-device loader,file={{bootloader-bin}},addr=0x80000000 \
-device loader,file={{kernel-bin}},addr=0x80200000 \
-device loader,file={{shared-bin}},addr=0x86000000 \
-device loader,file={{app-path}}{{app}}.bin,addr=0x87000000 \
-smp threads={{threads}} \
asm: build
@{{objdump}} -D {{kernel-elf}} | less
asm-shared: build-shared
@{{objdump}} -D {{shared-elf}} | less
size: build
@{{size}} -A -x {{kernel-elf}}
@{{size}} -A -x {{shared-elf}}
debug app: build build-shared (build-user app)
@qemu-system-riscv64 \
-machine virt \
-nographic \
-bios none \
-device loader,file={{bootloader-bin}},addr=0x80000000 \
-device loader,file={{kernel-bin}},addr=0x80200000 \
-device loader,file={{shared-bin}},addr=0x86000000 \
-device loader,file={{app-path}}{{app}}.bin,addr=0x87000000 \
-smp threads={{threads}} \
-gdb tcp::1234 -S \
gdb:
@{{gdb}} --eval-command="file {{kernel-elf}}" --eval-command="target remote localhost:1234"