justfile 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. target := "riscv64gc-unknown-none-elf"
  2. mode := "debug"
  3. build-path := "../../target/" + target + "/" + mode + "/"
  4. m-firmware-file := build-path + "rustsbi-qemu"
  5. m-bin-file := build-path + "rustsbi-qemu.bin"
  6. objdump := "riscv64-unknown-elf-objdump"
  7. objcopy := "rust-objcopy --binary-architecture=riscv64"
  8. gdb := "riscv64-unknown-elf-gdb"
  9. threads := "1"
  10. build: firmware
  11. @{{objcopy}} {{m-firmware-file}} --strip-all -O binary {{m-bin-file}}
  12. firmware:
  13. @cargo build --target={{target}}
  14. qemu: build
  15. @qemu-system-riscv64 \
  16. -machine virt \
  17. -nographic \
  18. -bios none \
  19. -device loader,file={{m-bin-file}},addr=0x80000000 \
  20. -smp threads={{threads}}
  21. run: build qemu
  22. asm: build
  23. @{{objdump}} -D {{m-firmware-file}} | less
  24. debug: build
  25. @qemu-system-riscv64 \
  26. -machine virt \
  27. -nographic \
  28. -bios none \
  29. -device loader,file={{m-bin-file}},addr=0x80000000 \
  30. -smp threads={{threads}} \
  31. -gdb tcp::1234 -S
  32. gdb:
  33. @{{gdb}} --eval-command="file {{m-firmware-file}}" --eval-command="target remote localhost:1234"