FPGA開発日記

FPGAというより、コンピュータアーキテクチャかもね! カテゴリ別記事インデックス https://sites.google.com/site/fpgadevelopindex/

Zephyr-RISCVはFreedom E310プラットフォーム(Arty FPGA)をサポートしている

f:id:msyksphinz:20170325154038p:plain

前回少し紹介したZephyr-OSは、実行プラットフォームとしてQEMUだけでなく、Arty FPGA上で動作するFreedom E310もサポートしている。

ただし、OpenOCDによる接続が必要なため、ArtyFPGAに少し配線を追加しないといけないようだ。 手持ちにデバッグ用のケーブルがないので、実機で確かめることはできないが、とりあえず調査してみよう。

msyksphinz.hatenablog.com

Zephyr-OSのRISC-V向けビルド

基本的に以下のgithubにあげてあるREADME.mdが全てだ。

github.com

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で実行できるだろうか。

f:id:msyksphinz:20170404233258p:plain

できなかった。これはシリアルコンソールのレートがあっていないだけのようにも思える。試しにいろいろ変更してみたが上手く行かなかった。 fe310を使うにあたり、drivers/serial/uart_fe310.cのボーレートを利用するようなので、HiFive1のリファレンスをもとに弄ってみたが上手く行かなかった。

UARTの部分にオシロスコープを当てられれば良いのだが、それっぽいピンが無い。ちょっと難しそうだなあ。