FC2カウンター FPGAの部屋 2018年01月27日
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

@ikwzmさんのUltraZed 向け Debian GNU/Linux の構築をやってみる13(デバイスツリーの入れ替え)

@ikwzmさんのUltraZed 向け Debian GNU/Linux の構築をやってみる12(FPGAのコンフィギュレーション)”の続き。

前回は、Debian を使用して、UltraZed-EG Starter Kit でFPGA のコンフィギュレーション、FPGA のクロック設定、UIO を設定して、アプリケーションソフトを動作させた。今回は、FPGA のコンフィギュレーション、FPGA のクロック設定、UIO を設定を入れ替えてみよう。

今回、参考にするのも、”UltraZed 向け Debian GNU/Linux で FPGA をコンフィギュレーション

最初に私の作ったVivado プロジェクトのビットファイルでコンフィギュレーションを行い、FPGA のクロック設定、UIO を設定してアプリケーションソフトを起動して動作を確認した後で、@ikwzm さんの作ったVivado プロジェクトのビットファイルでコンフィギュレーションを行い、FPGA のクロック設定、UIO を設定してアプリケーションソフトを起動して動作を確認してみようと思う。

さて、FPGA のコンフィギュレーション、FPGA のクロック設定、UIO を設定して、アプリケーションソフトを動作する一連の流れを実行するスクリプトを作成した。もうすでにdtb は作成済みなので、dtc コンパイルは入れていない。
まずは、私のVivado プロジェクトのビットファイルを使用する exe_led_on.sh を貼っておく。

#!/bin/sh

sudo mkdir /config/device-tree/overlays/fpga
sudo cp fpga-load_uzed.dtb /config/device-tree/overlays/fpga/dtbo

sudo mkdir /config/device-tree/overlays/fclk0
sudo cp fclk0-zynqmp.dtb /config/device-tree/overlays/fclk0/dtbo

sudo mkdir /config/device-tree/overlays/uio
sudo cp uio_uzed.dtb /config/device-tree/overlays/uio/dtbo
ls -la /dev/uio*

sudo python3 led_on.py


UltraZed-EG_StKit_Linux_190_180125.png

次に、ikwzm さんのVivado プロジェクトのビットファイルを使用する exe_led_on_org.sh を貼っておく。

#!/bin/sh

sudo mkdir /config/device-tree/overlays/fpga
sudo cp fpga-load.dtb /config/device-tree/overlays/fpga/dtbo

sudo mkdir /config/device-tree/overlays/fclk0
sudo cp fclk0-zynqmp.dtb /config/device-tree/overlays/fclk0/dtbo

sudo mkdir /config/device-tree/overlays/uio
sudo cp uio.dtb /config/device-tree/overlays/uio/dtbo
ls -la /dev/uio*

sudo python3 led_on.py


UltraZed-EG_StKit_Linux_191_180125.png

最後に、”UltraZed 向け Debian GNU/Linux で FPGA をコンフィギュレーション”の”後始末”のDevice Tree Overlay で追加したデバイスツリーを、後から追加した順に削除するスクリプトの rm_dev.sh を貼っておく。

#!/bin/sh

sudo rmdir /config/device-tree/overlays/uio
sudo rmdir /config/device-tree/overlays/fclk0
sudo rmdir /config/device-tree/overlays/fpga


UltraZed-EG_StKit_Linux_192_180125.png

まずは、
./exe_led_on.sh
を実行した。IP ポートのTrea Term ウインドウを示す。
UltraZed-EG_StKit_Linux_184_180125.png

LEDの点滅動作もOKだった。
COMポートのTrea Term ウインドウを示す。
UltraZed-EG_StKit_Linux_185_180125.png

この時の/config/device-tree/overlay は fclk0, fpga, uio の各ディレクトリができている。
UltraZed-EG_StKit_Linux_186_180125.png

初めてデバイスツリーの削除をやるので、rm_dev.sh ではなく、実際にコマンドを打って削除した。
UltraZed-EG_StKit_Linux_187_180125.png

COMポートのTrea Term ウインドウを示す。
UltraZed-EG_StKit_Linux_188_180125.png

/config/device-tree/overlay は fclk0, fpga, uio の各ディレクトリが削除されている。
UltraZed-EG_StKit_Linux_189_180125.png

次に、
./exe_led_on_org.sh
を実行した。
UltraZed-EG_StKit_Linux_193_180125.png

led の点滅動作もOK だった。一度、デバイスツリーを削除してからもう一度、デバイスツリーをロードしても問題なく動作する。

COMポートのTrea Term ウインドウを示す。
UltraZed-EG_StKit_Linux_194_180125.png

/config/device-tree/overlay は fclk0, fpga, uio の各ディレクトリができている。
UltraZed-EG_StKit_Linux_195_180125.png

./rm_dev.sh
を実行した。
UltraZed-EG_StKit_Linux_196_180125.png

COMポートのTrea Term ウインドウを示す。
UltraZed-EG_StKit_Linux_197_180125.png

/config/device-tree/overlay は fclk0, fpga, uio の各ディレクトリが削除されている。
UltraZed-EG_StKit_Linux_198_180125.png

これで一旦ロードしたデバイスツリーを削除して、別のデバイスツリーをロードできることが確認できた。
  1. 2018年01月27日 04:45 |
  2. Linux
  3. | トラックバック:0
  4. | コメント:0