1. WSL の準備
-
Windows で WSL2 + Ubuntu をインストール
wsl --install
-
Ubuntu ターミナルを開きます
2. 必要なパッケージのインストール
sudo apt update
sudo apt install git make autoconf automake libmpc-dev libmpfr-dev libgmp-dev \
gawk build-essential bison flex texinfo gperf libtool patchutils \
bc zlib1g-dev curl
-
ビルドや GitHub 取得に必要なツールです
3. GitHub から RISC-V GCC の取得
-
RISC-V の公式リポジトリをクローン
git clone --recursive https://github.com/riscv/riscv-gnu-toolchain
cd riscv-gnu-toolchain
-
デフォルトでは 64bit Linux 用 が取得されます
-
PicoRV32 などの組込み向けには
--with-arch=rv32im --with-abi=ilp32を指定してビルドします
4. GCC のビルド(RV32IM)
mkdir build
cd build
../configure --prefix=$HOME/riscv32-elf --with-arch=rv32im --with-abi=ilp32
make -j$(nproc)
make install
-
$HOME/riscv32-elfにインストールされます -
-j$(nproc)は CPU コア数に応じて並列ビルド
5. PATH を設定
-
~/.bashrcに追記:
export PATH=$HOME/riscv32-elf/bin:$PATH
-
反映:
source ~/.bashrc
-
動作確認:
riscv32-unknown-elf-gcc --version
-
バージョンが表示されれば成功
6. コンパイルの例
# C プログラム
riscv32-unknown-elf-gcc -O2 -march=rv32im -mabi=ilp32 main.c -o main.elf
# HEX に変換(FPGA ROM用)
riscv32-unknown-elf-objcopy -O ihex main.elf main.hex
-
これで FPGA の
$readmemh("main.hex", mem)で読み込める形式になります
ポイント
-
WSL 上では Windows のパスではなく Linux パス を使うこと
-
例:
C:\riscv32-elfではなく/home/username/riscv32-elf/bin
-
-
~/.bashrcに PATH を追加することで常時使える -
source ~/.bashrcで反映されます
💡 この方法で WSL 上で GitHub から取得した RISC-V GCC を正しく PATH に通して、C → ELF → HEX まで自動化 できます