Advertisement
Guest User

Ubuntu 20.04で32bitRISC-V RV32IMAC ilp32、Newlibのツールチェインをビルドする方法

a guest
Dec 19th, 2020
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.90 KB | None | 0 0
  1. Ubuntu 20.04のGDBとQEMUで32bitのRISC-Vのデバッグができるように
  2. RISC-V RV32IMAC ilp32 Newlibのツールチェインをビルドします
  3. Ubuntu Server 20.04を入れたRaspberry Pi 4でも可能です
  4. ビルドするのに13GBくらいのディスクスペースが必要なようです
  5.  
  6.  
  7. 1.aptでビルドに必要なソフトウェアを入れる
  8. sudo apt-get install autoconf automake autotools-dev curl python3 libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev
  9.  
  10.  
  11. 2.作業用ディレクトリ作成
  12. mkdir ~/riscv/
  13. cd ~/riscv
  14.  
  15.  
  16. 3.ツールチェインのダウンロード(6.65GBのディスクスペースが必要なようです)
  17. git clone https://github.com/riscv/riscv-gnu-toolchain
  18. cd riscv-gnu-toolchain
  19. git submodule update --init --recursive
  20.  
  21. 複数のABIのツールチェインを構築する場合は
  22. ダウンロードしたファイルのバックアップを取って置いてください
  23. 再度ダウンロードする手間が省けます
  24.  
  25. 4.NewlibのRV32IMAC、ilp32のRISC-V tool-chainのビルド
  26.  
  27. cd ~/riscv/riscv-gnu-toolchain
  28.  
  29. ./configure --prefix=/opt/riscv/riscv-rv32imac-ilp32-newlib --with-arch=rv32imac --with-abi=ilp32 --enable-multilib
  30. sudo make
  31.  
  32.  
  33. 5.パスの設定
  34. ~/.profileの最後の行に下記を追加する
  35.  
  36. export PATH="$PATH:/opt/riscv/riscv-rv32imac-ilp32-newlib/bin"
  37.  
  38.  
  39. 複数のRISC-Vツールチェインを切り替えて使う場合はこれはやらずに毎回手動でexportでPATHに登録する方がいいです
  40.  
  41.  
  42.  
  43. 6.ログアウトせずに即時に使いたい場合はコマンドラインで下記を実行
  44.  
  45. export PATH="$PATH:/opt/riscv/riscv-rv32imac-ilp32-newlib/bin"
  46.  
  47.  
  48. 複数のRISC-Vツールチェインを切り替えて使う場合はこの方法を毎回実行する方がいいです
  49. sourceコマンドのスクリプトを書くと便利です
  50.  
  51.  
  52.  
  53. よく使われそうな組み合わせ
  54. NewlibのRV32IMC、ilp32のRISC-V tool-chainのビルド方法(ESP32-C3がRV32IMCの模様)
  55.  
  56. ./configure --prefix=/opt/riscv/riscv-rv32imc-ilp32-newlib --with-arch=rv32imc --with-abi=ilp32 --enable-multilib
  57. sudo make
  58.  
  59. NewlibのRV32IMAC、ilp32のRISC-V tool-chainのビルド方法(ワンチップマイコン向けの多くの32bitRISC-Vコアがこれ)
  60.  
  61. ./configure --prefix=/opt/riscv/riscv-rv32imac-ilp32-newlib --with-arch=rv32imac --with-abi=ilp32 --enable-multilib
  62. sudo make
  63.  
  64. NewlibのRV32IMAFC、ilp32fのRISC-V tool-chainのビルド方法(単精度のFPU内蔵)
  65.  
  66. ./configure --prefix=/opt/riscv/riscv-rv32imafc-ilp32f-newlib --with-arch=rv32imafc --with-abi=ilp32f --enable-multilib
  67. sudo make
  68.  
  69. NewlibのRV32GC、ilp32dのRISC-V tool-chainのビルド方法(単精度、倍精度のFPU内蔵)
  70.  
  71. ./configure --prefix=/opt/riscv/riscv-rv32gc-ilp32d-newlib --with-arch=rv32imafdc --with-abi=ilp32d --enable-multilib
  72. sudo make
  73.  
  74. NewlibのRV64IMAFC、lp64fのRISC-V toolchainのビルド方法(単精度のFPU内蔵 Kendryte K210のSDKがこれ)
  75.  
  76. ./configure --prefix=/opt/riscv/riscv-rv64imafc-lp64-newlib --with-arch=rv64imafc --with-abi=lp64f --enable-multilib
  77. sudo make
  78.  
  79. NewlibのRV64GC、lp64dのRISC-V toolchainのビルド方法(単精度、倍精度のFPU内蔵)
  80.  
  81. ./configure --prefix=/opt/riscv/riscv-rv64gc-lp64-newlib --with-arch=rv64imafdc --with-abi=lp64d --enable-multilib
  82. sudo make
  83.  
  84. RV32GC、ilp32dのlinux toolchainのビルド方法(単精度、倍精度のFPU内蔵)
  85.  
  86. ./configure --prefix=/opt/riscv/riscv-rv32gc-ilp32d --with-arch=rv32gc --with-abi=ilp32d --enable-multilib
  87. sudo make linux
  88.  
  89. RV64GC、lp64dのlinux toolchainのビルド方法(単精度、倍精度のFPU内蔵 rv64gcのABIがlp64dのはaptで入れられるので自分でビルドする必要はありません)
  90.  
  91. ./configure --prefix=/opt/riscv/riscv-rv64gc-lp64d --with-arch=rv64imafdc --with-abi=lp64d --enable-multilib
  92. sudo make linux
  93.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement