アプリとサービスのすすめ

アプリやIT系のサービスを中心に書いていきます。たまに副業やビジネス関係の情報なども気ままにつづります

Vitis IDEでultra96向けplatform作成と、ultra96v2で動作確認するまで【avnet,hardware】VitisPlatform作りpart4

今回は

Vitisプラットフォーム(Vitis IDE)でultra96向けプラットフォームを作成

ultra96v2で実際に動作確認する

ところまでやってみたいと思う。

本家サイトのラストの部分まで。


今回のpart4でこの部分ができる。
f:id:trafalbad:20200404110016p:plain


目次
1.ultra96向けプラットフォームの作成
2.テストアプリケーションの作成
3.ultra96v2のSDカードにコピー
4.wifiを接続後にultra96v2で動作確認
5.次にやりたいこと




1.ultra96向けプラットフォームの作成

# vitis起動
cd /home/[user]/ultra96base/pfm
vitis -workspace wksp1


  • [Create platform project]からプラッフォフォーム作成

  • プラッフォフォーム名(今回は[ultra96base])を入力。
    f:id:trafalbad:20200404110625p:plain


    XSAファイルから作成するので、[Create from hardware specification (XSA)] => [Next]


  • Vivadoで作成した、XSAファイルを指定
  • Operating system は Linux

    Processorpsu_cortexa53

    足りないファイルは追加していくので、ビックリマークは赤いままでOK、[Finish]をクリック。
    f:id:trafalbad:20200404111101j:plain


    ファイル一覧に

    linux

    ・zynqmp_fsbl

    ・zynqmp_pmufw

    があることを確認。



  • [linux on psu_cortexa53]を選択
  • Bifファイルは 「linux.bif」

    Boot ComponentDirectoryは「bootディレクトリー」

    Linux imageのDirectoryは 「bootディレクトリー」

    Sysrootディレクトリーには、「sysroots/aarch64-xilinx-linux

    をそれぞれ指定。
    f:id:trafalbad:20200404110822j:plain





  • 下図のトンカチアイコンをクリックして、ビルド

  • インデックスファイルを作っているらしく、時間がかかる。


    少し待つとビルドがおわり、コンソールに[Bulid Finished]が表示される。
    f:id:trafalbad:20200404110738j:plain

    exportフォルダーにプラットフォームのデータ[ultra96base.xpfm]が作成されてる。

    # 確認
    $ ls /home/[host-name]/ultra96base/pfm/wksp1/ultra96base/export/ultra96base
    hw  sw  ultra96base.xpfm
    


    これでultra96向けのプラットフォームができた。






    2.テストアプリケーションの作成

    ultra96v2用のファイルを作成してく。

  • Vitis IDEのメニューから File→New→Application Projectを選択して、
    プロジェクトネーム(今回は「alternative_xsa」)を適当に入れて[Next]をクリック
  • f:id:trafalbad:20200404110554j:plain



    プラットフォームを選択できるので、[ultra96base]を選択して、Nextをクリック。
    f:id:trafalbad:20200404111209p:plain



  • 次はsysroot等を聞いてくるので、デフォルトで[Next]
  • その後、ultra96v2で試す用のExampleファイルを作成。

    今回は[Hello World]しかないので、Exampleとして取り込んでダウンロード。


  • 上のトンカチアイコンから、ハードウェアの[Debug]を選択してビルド

  • ビルド後、SDcardのハードウェアフォルダ(Debug)の中に必要なファイルが作成される。

    # Debugフォルダが出来てるか確認
    $ ls
    Debug  _ide  alternative_xsa.prj  src
    





    3.ultra96v2のSDカードにコピー

    ここでVitis IDEの操作は終わり。


    後はultra96v2のSDカードにコピーしていく。
    ultra96v2付属のSDカード
    f:id:trafalbad:20200404110110j:plain



    マウントフォルダのパス

    ・ホストOS側「Volumes/BUFFALO/mount」

    ・ゲストOS側「/media/sf_mount」


    Debugファルダ内のファイルを外付けHDDのマウントファルダ(Volumes/BUFFALO/mount)にコピーする。
    それからGUIでultra96v2のSDカードのFAT領域(/Volumes/boot/boot)に移動。

    # 外吹けHDDマウントフォルダにbootファルダを作成
    $ sudo mkdir /media/sf_mount/boot
    
    # マウントフォルダにコピー
    $ sudo cp -r /home/[host-name]/ultra96base/pfm/wksp1/alternative_xsa/Debug/* /media/sf_mount/boot
    

    コピーした後、GUIでSDカード内に移動。




    次に、Petalinuxで作ったrootfs.tar.gzをSDカードのEXTフォルダー(/Volumes/boot/rootfs)に入れる。
    その後、GUIでultra96v2のSDカードのEXTフォルダー(/Volumes/boot/rootfs)に移動。

    # マウントフォルダにrootfsファルダを作成
    $ sudo mkdir /media/sf_mount/rootfs
    
    # Petalinuxで作ったrootfs.tar.gzをrootfsファルダにコピー
    $ sudo cp /home/[host-name]/ultra96base/petalinux/images/linux/rootfs.tar.gz /media/sf_mount/rootfs/
    
    # ホストOS側で解凍してSDカードのEXTフォルダーにコピー
    $ sudo tar xzvf /Volumes/BUFFALO/mount/rootfs.tar.gz -C /Volumes/boot/rootfs
    

    同じくコピーした後、GUIでSDカード内に移動






    4.wifiを接続後にultra96v2で動作確認

    ultra96v2で動作確認のため、まずPCと


    ultra96v2を接続
    f:id:trafalbad:20200404110133j:plain

    ultra96v2の接続・ログイン記事はこちらを参照
    trafalbad.hatenadiary.jp



    # sshでログイン
    $ ssh -l root 192.168.2.1
    $ cd /run/media/mmcblk0p1 && export XILINX_XRT=/usr
    $ cd boot 
    
    # 動作確認
    $ ./alternative_xsa.elf vadd.xclbin
    >>>
    Hello World
    

    f:id:trafalbad:20200404110259p:plain


    動作してるのが確認できた!





    5.次にやりたいこと

    part1~4でultra96v2の動作の全体像のこの領域ができた。
    f:id:trafalbad:20200404110044p:plain




    次は

    ・実際にultra96v2で学習済みAIを動かす(Vitis AIの作成とか)

    ・リアルに論理回路をいじったりするガチなところまで触れる

    PYNQの構築

    とかもっとガチのAI部分まで触れてみたい。その前にこの低スペックPCを買い換えなきゃな。


    f:id:trafalbad:20200404111717j:plain



    追記:メモ


    一回作ったプロジェクトまたは、bspファイルから作成したプロジェクトで、回路デザインのプログラマロジック(PL)回路を変更する際の、変更手順を簡単にまとめ。



    プログラマロジックの回路変更手順

    1.vivadoでPL回路変更
    2.BitStream生成
    3.Export Hardware
    4.petalinux-config
    5.petalinux-build
    6.petalinux-package


    f:id:trafalbad:20200407104154j:plain


    参考サイト回路情報のエクスポート




    参考サイト



    How to create Ultra96v2 Linux-based Platform in Xilinx Vitis 2019.2