2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Arria 10 SoC のベアメタル開発におけるハマりポイント

Posted at

はじめに

Arria 10 SoC を使用して Linux ではなく OSレス(ベアメタル)で ARM の評価がしたい、もしくは触ってみたけどよくわからんって人向けにとりあえずサンプルのソフトウェアを動かすところまでを紹介します。
使ったツールは v18.0 です。

提供されているサンプルを動かしてみよう

ではさっそく DS-5 を利用して提供されているサンプルを動かしてみましょう。
サンプルはツールのインストール・ディレクトリ(C:\intelFPGA\18.0\embedded\examples\software)とか
ここ(リンク)とかにあります。

ここでは Altera-SoCFPGA-HardwareLib-Timer-A10-GNU.tar.gz を動かしてみましょう。
DS-5 のインポートメニューで上記を取り込んで実行してみます。

なんかエラーが出る。

ERROR(CMD127): そのようなファイルまたはディレクトリはありません: <PATH>\Altera-SoCFPGA-HardwareLib-Timer-A10-GNU\debug-hosted.ds

エラーを見ると debug-hosted.ds が無いと言っているがプロジェクトには存在している。単純にファイルを開こうとしてもダメでどうやら権限に問題がある模様。 Makefike.inc を見てみると debug-a10.ds を使用しているだけだったのでこっちを使うことに。

気を取り直してもう一度実行。先ほどのエラーは出なくなったが今度は別のエラーが。

ERROR(CMD360): #(<PATH>\Altera-SoCFPGA-HardwareLib-Timer-A10-GNU\debug-a10.ds):36 次の実行中: wait 30s
! 停止したタイムアウトを待機しています
ERROR(CMD656): スクリプトの実行中にエラーが発生したため、スクリプト <PATH>\Altera-SoCFPGA-HardwareLib-Timer-A10-GNU\debug-a10.ds の完了に失敗しました

サンプルなのに動かない。なぜ? 
というわけで、そもそもの仕組みの理解から始めることになりました。トホホ。

SDRAM コントローラは FPGA 側にある

色々調べてみると原因はここにありました。Arria 10 SoC は SDRAM コントローラが FPGA 側にいるので ARM だけ動かす場合にも FPGA をコンフィグしてあげる必要があるとのこと。

このためツールのインストールディレクトリに格納されている sof ファイルを使うことにしました。
対象のファイルはこれです。
C:\intelFPGA\18.0\embedded\examples\hardware\a10_soc_devkit_ghrd\output_files\ghrd_10as066n2.sof

Quartus を立ち上げるのが面倒なので Embedded_Command_Shell から以下のコマンドでコンフィグします。

$ nios2-configure-sof ghrd_10as066n2.sof

再び DS-5 のサンプルプロジェクトを動かしてみる

さて、ようやくこれで準備が整いました。
が、動かない。と思ってボードをよく見るとなんと DDR が実装されていませんでした。灯台下暗し。

再々度 DS-5 のサンプルプロジェクトを動かしてみる

DDR カード実装後、サンプルを実行してみると。(FPGA をコンフィグすることをお忘れなく)

ds5.png

はい。この通り動きました。これでようやくソフトウェアの開発が始められます。
今回ハマったおかげで Early Release IO という機能があることもわかりました。こちらについては別途機会があれば紹介します。

この記事が皆さんのお役に立てたのであれば幸いです。

#おまけ
clean するとエラーが。

make: *** [Makefile.inc:135: clean] Error 127

rm コマンドがこうなっているようなので

RM := cs-rm -rf

いつものコマンドに変更

RM := rm -rf

無事エラーがなくなりましたとさ。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?