FC2カウンター FPGAの部屋 Genasys ZU で Adam Taylor さんの”High Performance Imaging”をやってみる
fc2ブログ

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

FPGAの部屋

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

Genasys ZU で Adam Taylor さんの”High Performance Imaging”をやってみる

Genasys ZU を使用して Adam Taylor さんの”High Performance Imaging”をやってみることにした。

Vivado 2019.1 を使用する。 Vivado 2019.2 ではビットファイルを生成する時にDRC エラーが出てしまう。この辺りを対処しないと(たぶん出力する信号を削れば良いと思うのだが)行けないようだ。

まずは Vivado 2019.1 のプロジェクトを git clone した。
git clone https://github.com/ATaylorCEngFIET/Genesys_ZU_MIPI_PCAM.git
genesys_zu_52_200817.png

Vivado 2019.1 を立ち上げて display_port.xpr を読み込んだ。
4 つほど IP をアップグレードするかも知れない?一度やったら IP をアップグレードする必要がないのかも知れない?今回でブログ書くのに 2 回目なのだが、今回は IP のアップグレードが無かった。
プロジェクトを示す。
genesys_zu_53_200817.png

ブロックデザインを開いた。
genesys_zu_54_200817.png

ブロックデザインを見やすいように書き換えた。
genesys_zu_55_200817.png

Address Editor を示す。
genesys_zu_76_200818.png

論理合成、インプリメンテーション、ビットストリームの生成を行った。
Project Summary を示す。なお、タイミングはメットしていないが、クロック間のタイミングが違反しているので、動かしても大丈夫だろう?
genesys_zu_56_200817.png

File メニューから Export -> Export Hardware... を選択した。
Export Hardware ダイアログが開いた。
Include bitstream にチェックを入れて、OKボタンをクリックした。
genesys_zu_57_200817.png

File メニューから Launch SDK を選択した。
Launch SDK ダイアログが開いた。
デフォルトのまま、OKボタンをクリックした。
genesys_zu_58_200817.png

SDK が立ち上がった。(懐かしい。。。)
すでにハードウェア・プラットフォームの design_1_wrapper_hw_platform_0 が存在しているが、今回の Export Hardware により、ハードウェア・プラットフォームの design_1_wrapper_hw_platform_1 が生成された。
genesys_zu_59_200817.png

ハードウェア・プラットフォームの design_1_wrapper_hw_platform_1 を使用して dispport2 アプリケーション・プロジェクトを作成する。
SDK の File メニューから New -> Application Project を選択した。
New Project ダイアログが開いた。
Application Project 画面で Project name: に dispport2 と入力した。Next > ボタンをクリックした。
genesys_zu_60_200817.png

Templates 画面では、Empty Application を選択して、 Finish ボタンをクリックした。
genesys_zu_61_200817.png

dispport2 アプリケーション・プロジェクトが生成された。
dispport アプリケーション・プロジェクトの src の内容を dispport2 アプリケーション・プロジェクトの src にコピーする。
dispport アプリケーション・プロジェクトの src ディレクトリの lscript.ld 以外のファイルをすべて選択して dispport2 アプリケーション・プロジェクトの src にドラック&ドロップした。
genesys_zu_62_200817.png

File Operation ダイアログが表示された。
コピーでOK なので、そのまま OK ボタンをクリックした。
genesys_zu_63_200817.png

ビルドでエラーが表示された。
genesys_zu_64_200817.png

エラー内容を示す。

Invoking: ARM v8 gcc linker
aarch64-none-elf-gcc -Wl,-T -Wl,../src/lscript.ld -L../../dispport2_bsp/psu_cortexa53_0/lib -o "dispport2.elf" ./src/helloworld.o ./src/platform.o ./src/xdpdma_video_example.o ./src/xdppsu_interrupt.o -Wl,--start-group,-lxil,-lgcc,-lc,--end-group
/media/masaaki/Ubuntu_Disk/tools/Xilinx/SDK/2019.1/gnu/aarch64/lin/aarch64-none/bin/../lib/gcc/aarch64-none-elf/8.2.0/../../../../aarch64-none-elf/bin/ld: ./src/helloworld.o: in function `gamma_calc':
makefile:36: recipe for target 'dispport2.elf' failed
/media/masaaki/Ubuntu_Disk/HDL/Genesys_zu/2019.1/Genesys_ZU_MIPI_PCAM/display_port.xpr/display_port/display_port.sdk/dispport2/Debug/../src/helloworld.c:260: undefined reference to `pow'
collect2: error: ld returned 1 exit status
make: *** [dispport2.elf] Error 1

21:20:07 Build Finished (took 840ms)


pow リファレンスが無いということらしい。
genesys_zu_65_200817.png

検索したところ、”AR# 52971 14.4 - SDK - sin、cos、tan 関数を含むアプリケーションをSDK の ARM コンパイラでコンパイルするとエラーになる”が引っかかった。これによると、

演算 (math) の -m オプションを C/C++ Build 設定のライブラリに次のように指定する必要があります。

とのことだった。

SDK の Project Explorer で dispport2 を選択して、右クリックし、右クリックメニューから Properties を選択する。
Properties for dispport2 ダイアログが開く。
C/C++ Build の Settings を開いて、ARM v8 gcc linker -> Libraries を選択して、Libraries (-l) の Add... ボタンをクリックする。
genesys_zu_66_200817.png

Enter Value ダイアログが開く。
m を入力する。OKボタンをクリックする。
genesys_zu_67_200817.png

Libraries (-l) に m が入力された。
OKボタンをクリックする。
genesys_zu_68_200817.png

ビルドが成功して、elf ファイルができた。
genesys_zu_69_200817.png

SDK の Xilinx メニューから Program FPGA を選択する。
Program FPGA ダイアログが開く。
Program ボタンをクリックした。
genesys_zu_70_200818.png

FPGA のコンフィグレーションが成功した。

SDK の Project Explorer で dispport2 を選択して、Run As ボタンをクリックした。
genesys_zu_71_200818.png

Run As ダイアログが表示された。
Launch on Hardware (System Debugger) のまま、OKボタンをクリックした。
genesys_zu_72_200818.png

dispport2 アプリケーションが起動した。
genesys_zu_73_200818.png

カメラの画像が Display Port に表示された。成功だ。
Genesys ZU ボードを撮影している。
genesys_zu_74_200818.jpg

現在の Genesys ZU ボードの様子を示す。
コンフィグレーション・ケーブルとして、JTAG-HS1 が接続されている。MIPI A に PCam 5C が接続されている。
genesys_zu_75_200818.jpg
  1. 2020年08月18日 05:00 |
  2. Genesys_ZU
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/4977-2315a76a
この記事にトラックバックする(FC2ブログユーザー)