前回少し紹介したZephyr-OSは、実行プラットフォームとしてQEMUだけでなく、Arty FPGA上で動作するFreedom E310もサポートしている。
ただし、OpenOCDによる接続が必要なため、ArtyFPGAに少し配線を追加しないといけないようだ。 手持ちにデバッグ用のケーブルがないので、実機で確かめることはできないが、とりあえず調査してみよう。
Zephyr-OSのRISC-V向けビルド
基本的に以下のgithubにあげてあるREADME.md
が全てだ。
qemu-riscv32, riscv-gnu-toolchainなどをちゃんとインストールしておくこと。
Zephy-SDKをインストールしておく。これが何に使われるのかはよく分かっていない。 ただし、QEMUでシミュレーションするときに必要になるようだ。
$ sudo ./zephyr-sdk-0.9-setup.run [sudo] password for msyksphinz: Verifying archive integrity... All good. Uncompressing SDK for Zephyr 100% Enter target directory for SDK (default: /opt/zephyr-sdk/): Installing SDK to /opt/zephyr-sdk Creating directory /opt/zephyr-sdk Success [*] Installing x86 tools... [*] Installing arm tools... [*] Installing arc tools... [*] Installing iamcu tools... [*] Installing nios2 tools... [*] Installing xtensa tools... [*] Installing riscv32 tools... [*] Installing additional host tools... Success installing SDK. SDK is ready to be used.
make BOARD=arty_fe310
でArtyFPGA用のバイナリをビルドできる。試しにHifive1で実行できるだろうか。
できなかった。これはシリアルコンソールのレートがあっていないだけのようにも思える。試しにいろいろ変更してみたが上手く行かなかった。
fe310を使うにあたり、drivers/serial/uart_fe310.c
のボーレートを利用するようなので、HiFive1のリファレンスをもとに弄ってみたが上手く行かなかった。
UARTの部分にオシロスコープを当てられれば良いのだが、それっぽいピンが無い。ちょっと難しそうだなあ。