RISCV toolchain with linux ABI === ## 前言 描述如何使用 RISC-V toolchain with Linux ABI。涵蓋範圍從安裝到如何執行程式。 ## 安裝 這個部份我們都是從原始碼開始建置。 1. 設定`install`路徑 ``` export RISCV=/where/you/want/place/binary ``` 2. Build`RISC-V gnu toolchain` ``` git clone --recursive https://github.com/riscv/riscv-gnu-toolchain cd riscv-gnu-toolchain mkdir build_linux cd build_linux ../configure --prefix=$RISCV make linux -j4 && make install ``` 3. Build `RISC-V PK` ``` git clone https://github.com/riscv/riscv-pk cd riscv-pk mkdir build cd build ../configure PATH=$RISCV/bin:$PATH --host=riscv64-unknown-linux-gnu --prefix=$RISCV make -j4 && make install ``` 4. Build `RISC-V fesvr` ``` git clone https://github.com/riscv/riscv-fesvr cd riscv-fesvr mkdir build cd build ../configure --prefix=$RISCV make -j4 && make install ``` 5. Build `RISC-V Spike` ``` git clone https://github.com/riscv/riscv-isa-sim cd riscv-isa-sim mkdir build cd build ../configure --prefix=$RISCV make -j4 make install ``` ## 使用 > 備註,如果是用60我編的toolchain的話,需要將lib加入進LD_LIBRARY_PATH,因為server的gcc太舊我沒有辦法用它編譯最新的spike 路徑我放在 `/nfs/piyochen/rvv/risc-v/bin` 1. 首先利用`riscv64-unknown-linux-gnu-gcc`編譯程式,並且使用`static linking` ``` // Save as check.c // This program will check the glibc version #include <stdio.h> #include <stdlib.h> #include <gnu/libc-version.h> int main(int argc, char *argv[]) { printf("GNU libc version: %s\n", gnu_get_libc_version()); exit(EXIT_SUCCESS); } ``` ``` $RISCV/bin/riscv64-unknown-linux-gnu-gcc -static check.c ``` 2. 利用 `Spike` 與 `pk` 執行它 ``` $RISCV/bin/spike $RISCV/riscv66-unknown-linux-gnu/bin/pk a.out ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up