FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

yuki-sato.comの「LinuxからFPGAを使ってみる」をやってみる (ZedBoard版 #8)

前回までで独自にビルドしたハードウェアを使ってLinuxを立ち上げることに成功した。

次に、ZedBoardに付属しているLEDを制御する。LEDを制御するためのハードウェアは、myLEDというIPとして実装し、あらかじめPL部に組み込んである。

devmem2を使えるようにするための環境

LEDを制御するためのデバイスドライバを開発する前に、devmem2を利用してメモリアドレスにマッピングしたLEDが利用できることを確かめる。

  • devmem2

armadillo.atmark-techno.com

devmem2を利用すれば、任意の物理アドレスに対してメモリの読み書きを実行することができる。

参考にしたのは以下の記事だ。

qiita.com

上記の記事ではdevmem2をapt-getにて取得しているのだが、なぜか私のデザインではEthernetに接続することができない。

仕方がないので、あらかじめdevmem2が入っているLinaroのパッケージを代わりにダウンロードして展開し、起動させることにした。

Linaro Releases

上記のページから、linaro-vivid-developer-20151215-714.tar.gzをダウンロードしてSDカードのパーティション2に展開する。

sudo mount /dev/sdb2 /mnt/ZED_ROOTFS/
wget https://releases.linaro.org/ubuntu/images/developer/latest/linaro-vivid-developer-20151215-714.tar.gz
sudo tar --strip-components=1 -C /mnt/ZED_ROOTFS/ -xzpf linaro-vivid-developer-20151215-714.tar.gz
umount /mnt/ZED_ROOTFS

これでSDカードをZedBoardに指して起動すると、devmem2のあらかじめインストールされているUbuntuを起動することができた。

devmem2を使ってLEDにアクセスする

myLEDのIPは、ZedBoardのPL部内で、以下のアドレスにマッピングされている。

f:id:msyksphinz:20170530011406p:plain

したがって、以下のようにアクセスすればよかろう。

devmem2 0x43c00000 b 0x0f

f:id:msyksphinz:20170530012406p:plain

LEDが点灯した!うまく制御できているようだ。

f:id:msyksphinz:20170530012742p:plain

関連記事

msyksphinz.hatenablog.com

msyksphinz.hatenablog.com

msyksphinz.hatenablog.com

msyksphinz.hatenablog.com

msyksphinz.hatenablog.com

msyksphinz.hatenablog.com

msyksphinz.hatenablog.com