mirror of
https://github.com/kmc7468/cs420.git
synced 2025-12-12 21:18:45 +00:00
HW8 (3)
This commit is contained in:
10
bench/debug-bench.sh
Executable file
10
bench/debug-bench.sh
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
GDB_PORT=8888
|
||||
|
||||
make clean
|
||||
make bench
|
||||
|
||||
qemu-riscv64-static -L /usr/riscv64-linux-gnu -g "$GDB_PORT" bench &
|
||||
echo "Ready!"
|
||||
wait
|
||||
1737
src/asmgen/mod.rs
1737
src/asmgen/mod.rs
File diff suppressed because it is too large
Load Diff
23
test-asmgen.sh
Executable file
23
test-asmgen.sh
Executable file
@@ -0,0 +1,23 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 사용법 확인
|
||||
if [ "$#" -ne 1 ]; then
|
||||
echo "Usage: $0 <path-to-c-file>"
|
||||
echo "Example: $0 examples/c/unary.c"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
INPUT_C_FILE="$1"
|
||||
OUTPUT_S_FILE="hello.S"
|
||||
OUTPUT_BIN="hello"
|
||||
GDB_PORT=8888
|
||||
|
||||
# 1단계: Rust 바이너리 빌드 및 어셈블리 생성
|
||||
cargo run --features=build-bin -- "$INPUT_C_FILE" > "$OUTPUT_S_FILE"
|
||||
|
||||
# 2단계: 리눅스용 RISC-V 정적 바이너리 생성
|
||||
riscv64-linux-gnu-gcc -static "$OUTPUT_S_FILE" -o "$OUTPUT_BIN"
|
||||
|
||||
# 3단계: QEMU로 RISC-V 바이너리 실행
|
||||
qemu-riscv64-static "$OUTPUT_BIN"
|
||||
echo $?
|
||||
Reference in New Issue
Block a user