Zynq UltraScale+ MPSoC:
エ ンベデ ッ ド
デザイ ン
チ ュ ー ト リ アル
効果的な エ ンベデ ッ ド
システム構築を
サポー ト するハンデ ィ
ガイ ド
UG1209 (v2017.1) 2017 年 7 月 28 日この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資料に
よっては英語版の更新に対応していないものがあります。日本語版は参考用としてご使用の上、最新情報につきまし
ては、必ず最新英語版をご参照ください。
次の表に、 こ の文書の改訂履歴を示 し ます。 日付 バージ ョ ン 改訂内容 2017 年 7 月 28 日 2017.1 • 「PetaLinux を使用 し た設定の変更 と Linux イ メ ージの構築」 にザ イ リ ン ク ス ア ンサー 69248 への参照を追加。 2017 年 7 月 14 日 2017.1 • 第 5 章の 「ブー ト およ びコ ン フ ィ ギ ュ レーシ ョ ン」 に USB ブー ト を追加。 • 第 5 章の 「セキ ュ ア ブー ト シーケ ン ス」 の説明お よ び手順を詳細に記述。 • Vivado® Design Suite 2017.1 を用いた検証
• プ ロ ダ ク シ ョ ン シ リ コ ン を使用 し て ZCU102 Rev1 ボー ド で手順お よ びデザ イ ン フ ァ イ ルを テ ス ト
改訂履歴 . . . 2
第 1 章: は じ めに
こ のガ イ ド について . . . 5 Zynq UltraScale+ デバ イ ス が提供す る シ ン グル チ ッ プ ソ リ ュ ーシ ョ ン . . . 6 Vivado ツールでデザ イ ン プ ロ セ ス を加速. . . 9 最初に必要なセ ッ ト ア ッ プ . . . 10第 2 章: Zynq UltraScale+ MPSoC プ ロ セ ッ シ ング システムのコ ン フ ィ ギ ュ レーシ ョ ン
Zynq UltraScale+ シ ス テ ム の コ ン フ ィ ギ ュ レーシ ョ ン . . . 13サンプル プ ロ ジ ェ ク ト : Zynq UltraScale+ MPSoC の新規エンベデ ッ ド プ ロ ジ ェ ク ト を作成する . . . 14
サンプル プ ロ ジ ェ ク ト : ARM Cortex-A53 か ら Hello World アプ リ ケーシ ョ ン を実行する . . . 24
サンプルプ ロ ジ ェ ク ト : ARM Cortex-R5 か ら Hello World アプ リ ケーシ ョ ン を実行する . . . 27
その他の情報 . . . 30
第 3 章: PS サブ システム向けのソ フ ト ウ ェ ア構築
Zynq UltraScale+ のプ ロ セ ッ シ ン グ ユニ ッ ト . . . 32 サンプル プ ロ ジ ェ ク ト : SDK でベア メ タ ル アプ リ ケーシ ョ ン プ ロ ジ ェ ク ト を作成する . . . 33 サンプル プ ロ ジ ェ ク ト : PetaLinux を使用 し て Linux イ メ ージ を作成する . . . 42第 4 章: SDK を使用 し たデバ ッ グ
Xilinx System Debugger. . . 48SDK を使用 し て ソ フ ト ウ ェ ア をデバ ッ グす る . . . 50
ザ イ リ ン ク ス ソ フ ト ウ ェ ア コ マン ド ラ イ ン ツール (XSCT) を使用 し てデバ ッ グする . . . 52
第 5 章: ブー ト および コ ン フ ィ ギ ュ レーシ ョ ン
シ ス テ ム ソ フ ト ウ ェ ア . . . 60APU の Linux と RPU のベア メ タ ル . . . 61
SD ブー ト のブー ト シーケ ン ス . . . 62 QSPI ブー ト モー ド のブー ト シーケ ン ス . . . 71 JTAG を用いた QSPI ブー ト モー ド のブー ト シーケ ン ス . . . 82 USB ブー ト モー ド のブー ト シーケ ン ス . . . 85 セキ ュ ア ブー ト シーケ ン ス . . . 91
第 6 章: システム デザイ ン例
サンプル デザ イ ン 1: GPIO、 タ イ マー、 お よび割 り 込みを使用する . . . 114 サンプル デザ イ ン 2: グ ラ フ ィ ッ ク スおよ びデ ィ ス プ レ イ ポー ト ベース のサブシ ス テ ムのセ ッ ト ア ッ プ例 . . 133付録 A: セキ ュ ア ブー ト での問題のデバ ッ グ
PUF 登録が実行 さ れてい る か ど う か を判断す る . . . 139 ブー ト イ メ ージで使用 さ れ る ブー ト ヘ ッ ダー値を テ ス ト する . . . 139ソ リ ュ ーシ ョ ン セン ター . . . 140
Xilinx Documentation Navigator お よ びデザ イ ン ハブ . . . 140
Xilinx Documentation Navigator . . . 141
こ のチ ュ ー ト リ アルのデザ イ ン フ ァ イ ル . . . 141
ザ イ リ ン ク ス リ ソ ース . . . 141
ト レーニ ン グ リ ソ ース . . . 142
は じ めに
こ のガ イ ド について
こ のガ イ ド では、Zynq® UltraScale+™ MPSoC を使用する ザ イ リ ン ク ス Vivado® Design Suite フ ロ ーについて説明 し ま す。 サンプル プ ロ ジ ェ ク ト は、 ザ イ リ ン ク ス の ZCU102 Rev1 評価ボー ド を タ ーゲ ッ ト と し てい ます。 使用 し た ツー ルのバージ ョ ンは、 2017.1 の Vivado およびザ イ リ ン ク ス ソ フ ト ウ ェ ア開発キ ッ ト (SDK) です。
注記: SDK を Vivado Design Suite の一部 と し て イ ン ス ト ールする には、 イ ン ス ト ー ラ ーに SDK を含め る よ う 選択する
必要があ り ます。8 ページの 「ザ イ リ ン ク ス の ソ フ ト ウ ェ ア開発キ ッ ト 」 を参照 し て く だ さ い。 こ のガ イ ド のサンプル プ ロ ジ ェ ク ト は、64 ビ ッ ト の Windows 7 オペレーテ ィ ン グ シ ス テ ムで実行する ザ イ リ ン ク ス ツール、 お よ び 64 ビ ッ ト の Linux オペレーテ ィ ン グ シ ス テ ムで実行する PetaLinux を使用 し て作成 さ れています。 ほかの Windows イ ン ス ト ールで別バージ ョ ンのツールを実行 し た場合、 結果が異な る こ と があ り ます。 サンプル プ ロ ジ ェ ク ト は、 エンベデ ッ ド デザ イ ンの次の項目について紹介する こ と に重点を置いています。 注記: チ ュー ト リ アルで説明 さ れてい る、 ハー ド ウ ェ ア上で Linux をブー ト する各手順は、 2017.1 リ リ ース の PetaLinux ツールに固有の も のです。 PetaLinux ツールは、 こ のガ イ ド の Linux 部分の演習を行 う ために、 Linux ホ ス
ト マシ ンに イ ン ス ト ールする必要があ り ます。
• 第 2 章 「Zynq UltraScale+ MPSoC プ ロ セ ッ シ ン グ シ ス テ ムの コ ン フ ィ ギ ュ レーシ ョ ン」 では、 Zynq UltraScale+ MPSoC プ ロ セ ッ シ ン グ シ ス テ ム (PS) を用いた シ ス テ ム の作成、 お よ び ARM® Cortex®-A53 と Cortex-R5 プ ロ セ ッ サ上での簡単な Hello World アプ リ ケーシ ョ ンの実行について説明 し ます。 こ の章では、 簡単なデザ イ ン を 例 と し て使用 し 、 ハー ド ウ ェ アお よ び ソ フ ト ウ ェ ア ツールの概要を説明 し ます。 • 第 3 章 「PS サブシ ス テ ム向けの ソ フ ト ウ ェ ア構築」 では、 アプ リ ケーシ ョ ン プ ロ セ ッ シ ン グ ユニ ッ ト (APU)、 リ アル タ イ ム プ ロ セ ッ シ ン グ ユニ ッ ト (RPU)、 プ ラ ッ ト フ ォーム管理ユニ ッ ト (PMU) な ど、 プ ロ セ ッ シ ン グ シ ス テ ム内のプ ロ セ ッ シ ン グ ブ ロ ッ ク に応 じ て ソ フ ト ウ ェ ア を設定およ び構築する手順を説明 し ます。 • 第 4 章 「SDK を使用 し たデバ ッ グ」 では、 ザ イ リ ン ク ス の ソ フ ト ウ ェ ア開発キ ッ ト (SDK) のデバ ッ グ機能を使 用 し た ソ フ ト ウ ェ アのデバ ッ グについて説明 し ます。 こ の章では、 前のデザ イ ン を使用 し て ソ フ ト ウ ェ ア ベア メ タ ル (OS な し ) を実行 し 、 デバ ッ グ方法を示 し ます。 ま た、 Zynq UltraScale+ MPSoC のデバ ッ グ コ ン フ ィ ギ ュ レーシ ョ ンについて も 説明 し ます。 • 第 5 章 「ブー ト およ びコ ン フ ィ ギ ュ レーシ ョ ン」 では、 Zynq UltraScale+ シ ス テ ム用にブー ト イ メ ージ を構成 し て作成す る こ と を目的 と し た コ ン ポーネ ン ト の統合について説明 し ます。 こ の章の主旨は、 ブー ト ロ ーダーを 統合お よ び ロ ー ド す る 方法を理解す る こ と です。 • 第 6 章 「シ ス テ ム デザ イ ン例」 では、第 3 章で設定 し た ソ フ ト ウ ェ ア ブ ロ ッ ク を使用 し て Zynq UltraScale+ シ ス テ ム を ど の よ う に構築で き る かを紹介 し ます。 • 付録 B 「その他の リ ソ ースお よび法的通知」 では、 こ のガ イ ド に関連す る その他の資料への リ ン ク を提供 し ま す。
サン プル プ ロ ジ ェ ク ト
ツールを習得す る ための最良の方法は、 それを使用 し てみ る こ と です。 そのため、 こ のガ イ ド では説明に従っ て ツールを操作す る 機会が設け ら れてい ます。 サンプル プ ロ ジ ェ ク ト のセ ク シ ョ ンでは、 サンプル プ ロ ジ ェ ク ト の仕 様のほかに背景で何が起 こ っ てい る かについて も 説明 し てい ます。 各章お よ びサンプル プ ロ ジ ェ ク ト は、 エンベ デ ッ ド デザ イ ンの さ ま ざ ま な側面を紹介する こ と を目的に し てい ます。 サンプル プ ロ ジ ェ ク ト を通 し て、 各項目の 学習を完了 し て次に進む形で フ ロ ー全体が説明 さ れます。その他の資料
その他の資料一覧は、付録 B 「その他の リ ソ ースお よび法的通知」 に記載 さ れてい ます。Zynq UltraScale+ デバイ スが提供する シ ン グル チ ッ プ
ソ リ ュ ーシ ョ ン
次世代の Zynq デバ イ ス であ る Zynq UltraScale+ MPSoC は、 タ ス ク ご と に最適なエン ジ ン を使用する と い う 考えの基 で設計 さ れてい ます。 Zynq UltraScale+ は、 多用途のプ ロ セ ッ シ ン グ シ ス テ ム (PS) と 柔軟性およ び性能の高いプ ロ グ ラ マグル ロ ジ ッ ク (PL) をすべて 1 つのシ ス テ ム オン チ ッ プ (SoC) に搭載 し た ソ リ ューシ ョ ンです。Zynq UltraScale+ MPSoC PS ブ ロ ッ ク は、 次のエ ン ジ ン で構成 さ れてい ます。
• ク ワ ッ ド コ ア ARM Cortex-A53 ベース のアプ リ ケーシ ョ ン プ ロ セ ッ シ ン グ ユニ ッ ト (APU)
• デ ュ アル コ ア ARM Cortex-R5 ベース の リ アル タ イ ム プ ロ セ ッ シ ン グ ユニ ッ ト (RPU)
• ARM Mali-400 MP2 ベース のグ ラ フ ィ ッ ク ス プ ロ セ ッ シ ン グ ユニ ッ ト (GPU)
• 専用のプ ラ ッ ト ロ ーム管理ユニ ッ ト (PMU) と コ ン フ ィ ギ ュ レーシ ョ ン セキ ュ リ テ ィ ユニ ッ ト (CSU)
プ ロ グ ラ マブル ロ ジ ッ ク には、 プ ロ グ ラ マブル ロ ジ ッ ク セルに加え、 次に示す高性能ペ リ フ ェ ラ ル も 統合 さ れてい ます。 • PCI Express 用統合ブ ロ ッ ク • Interlaken 用統合ブ ロ ッ ク • 100G Ethernet 用統合ブ ロ ッ ク • シ ス テ ム モニ タ ー • ビデオ コーデ ッ ク ユニ ッ ト Zynq UltraScale+ の PS と PL は、 高性能で高帯域幅の さ ま ざ ま な PS-PL イ ン タ ーフ ェ イ ス を使用 し て厳密に ま たは柔 軟に連動 さ せ る こ と がで き ます。
こ の よ う な高度な All Programmable デバ イ ス のデザ イ ン プ ロ セ ス を単純にする ために、 ザ イ リ ン ク スは Vivado Design Suite、 ソ フ ト ウ ェ ア開発キ ッ ト (SDK)、 お よ び Linux 用 PetaLinux ツールを提供 し てい ます。 こ れ ら の ツール は、 FPGA を結合し た SoC デバ イ ス向けのエンベデ ッ ド シ ス テ ム デザ イ ン を容易にする ために必要な も のをすべて 提供 し ます。 こ れ ら の ツールを組み合わせ る こ と で、 ハー ド ウ ェ ア と ソ フ ト ウ ェ アのアプ リ ケーシ ョ ンの設計、 デ バ ッ グ、 コ ー ド の実行が可能にな る ほか、 検証や評価を目的 と し てデザ イ ン を実際のボー ド に移行で き ます。
Vivado Design Suite
ザ イ リ ン ク ス は、 Vivado Design Suite と 総称 さ れ る開発シ ス テ ム ツールを複数提供し てい ます。 Vivado Design Suite のい く つかの Edition がエンベデ ッ ド シ ス テ ム開発に使用で き ます。 こ のガ イ ド では、 System Edition を使用し ます。 次の図に Vivado Design Suite の Edition の機能を示し ます。
その他の Vivado コ ンポーネン ト
Vivado のその他の コ ン ポーネ ン ト は次の と お り です。 • ザ イ リ ン ク ス エンベデ ッ ド プ ロ セ ッ サ用のエンベデ ッ ド / ソ フ ト IP • 資料 • サンプル プ ロ ジ ェ ク トザイ リ ン ク スの ソ フ ト ウ ェ ア開発キ ッ ト
ソ フ ト ウ ェ ア開発キ ッ ト (SDK) は Vivado を補完する統合開発環境で、C/C++ エンベデ ッ ド ソ フ ト ウ ェ ア アプ リ ケー シ ョ ンの作成お よ び検証に使用 し ます。 SDK は Eclipse オープン ソ ース フ レーム ワー ク で構築 さ れてい る ため、 ソ フ ト ウ ェ ア設計者や設計チームに と っ て使い慣れた環境です。X-Ref Target - Figure 1-1
Eclipse 開発環境の詳細は、http://www.eclipse.org を参照 し て く だ さ い。
SDK のその他の コ ン ポーネ ン ト は次の と お り です。
• エンベデ ッ ド ソ フ ト ウ ェ ア開発用の ド ラ イ バーおよ び ラ イ ブ ラ リ
• Zynq UltraScale+ プ ロ セ ッ シ ン グ シ ス テ ム内の ARM Cortex-A53 お よ び ARM Cortex-R5 MPCore プ ロ セ ッ サ を
タ ーゲ ッ ト に し た C/C++ ソ フ ト ウ ェ ア開発用 Linaro GCC コ ンパ イ ラ
PetaLinux ツール
PetaLinux ツール セ ッ ト は、 エ ンベデ ッ ド Linux シ ス テ ム開発キ ッ ト です。 こ の ツールに よ り 多面的な Linux ツール フ ロ ーが提供 さ れ、 Zynq UltraScale+ を含むザ イ リ ン ク ス Zynq デバ イ ス向けの完全な コ ン フ ィ ギ ュ レーシ ョ ン、 ビ ル ド 、 お よ び導入環境が も た ら さ れます。
詳細は、 ザ イ リ ン ク ス の PetaLinux ウ ェ ブ ページ [参照 14] を参照 し て く だ さ い。
PetaLinux ツールのデザ イ ン ハブは、 PetaLinux ツールの情報お よ び資料への リ ン ク を提供 し ます。 詳細は、141 ペー
ジの 「関連デザ イ ン ハブ」 を参照 し て く だ さ い。
Vivado ツールでデザイ ン プ ロ セス を加速
Vivado Design Suite ツールを使用 し てハー ド ウ ェ アにデザ イ ン ソ ース を追加で き ます。 ツールには、 既存のプ ロ ジ ェ ク ト に IP を追加 し た り 、 ク ロ ッ ク や リ セ ッ ト な どのポー ト の接続を作成し た り する プ ロ セ ス を簡単にする IP イ ン テ グ レー タ ーが含まれます。
Vivado ツール と IP イ ン テ グ レー タ ーは、 一連のハー ド ウ ェ ア シ ス テ ム開発を完了 ま でサポー ト し ます。 こ れには、 Zynq UltraScale+ プ ロ セ ッ シ ン グ シ ス テ ム の仕様、 ペ リ フ ェ ラ ル、 お よ び各 コ ン ポーネ ン ト の接続、 な ら びにそれぞ れの詳細な設定が含まれます。
SDK は ソ フ ト ウ ェ ア開発に使用 さ れ、 Vivado Design Suite の一部 と し て利用で き ます。 ま たは、 SDK を イ ン ス ト ール し 、 SDK が ロ ー ド さ れ る マシ ンにほかのザ イ リ ン ク ス ツールが イ ン ス ト ール さ れていな く て も 使用可能です。 SDK は、 ソ フ ト ウ ェ ア アプ リ ケーシ ョ ンのデバ ッ グに も 使用で き ます。
Zynq UltraScale+ プ ロ セ ッ シ ン グ シ ス テ ム (PS) は、 FPGA (プ ロ グ ラ マブル ロ ジ ッ ク (PL)) をプ ロ グ ラ ム し な く て も 、 ブー ト し て動作 さ せ る こ と がで き ます。 ただ し 、 フ ァ ブ リ ッ ク で ソ フ ト IP を使用し た り 、 EMIO を用いて PS ペ リ フ ェ ラ ルを接続す る には、 PL をプ ロ グ ラ ムする必要があ り ます。 PL のプ ロ グ ラ ムには SDK まは Vivado ハー ド ウ ェ ア マネージ ャーを使用で き ます。
エンベデ ッ ド デザ イ ン プ ロ セ ス の詳細は、 『Vivado Design Suite チ ュー ト リ アル: エンベデ ッ ド プ ロ セ ッ サ ハー ド
ウ ェ ア デザ イ ン』 (UG940) [参照 2] を参照 し て く だ さ い。
Zynq UltraScale+ プ ロ セ ッ シ ン グ シ ス テ ム の詳細は、 『Zynq UltraScale+ プ ロ セ ッ シ ン グ シ ス テ ム v1.0 製品ガ イ ド 』
最初に必要なセ ッ ト ア ッ プ
ツールについて詳 し く 説明す る 前に、 ツールが適切に イ ン ス ト ール さ れ、 使用す る 環境が こ のガ イ ド の 「サンプル プ ロ ジ ェ ク ト 」 の記載要件に一致す る かを確認 し ます。
ハー ド ウ ェ ア要件
こ のガ イ ド では、 Zynq UltraScale+ ZCU102 評価ボー ド を タ ーゲ ッ ト と し ています。 こ のチ ュー ト リ アルのサンプル プ ロ ジ ェ ク ト は ZCU102 Rev 1 ボー ド を使用し てテ ス ト さ れてい ます。 こ のガ イ ド を活用する にあた っ て、 評価ボー
ド に同梱 さ れてい る 次を用意 し て く だ さ い。
• ZCU102 Rev1 評価ボー ド
• AC 電源ア ダプ タ ー (12 VDC)
• USB Type-A/Micro ケーブル (UART 通信用)
• USB-Micro JTAG 接続を介す る プ ロ グ ラ ムお よ びデバ ッ グ用の USB Micro ケーブル
• Linux ブー ト 用の SD-MMC フ ラ ッ シ ュ カー ド
• タ ーゲ ッ ト ボー ド と ホ ス ト マシ ンの接続用の イ ーサネ ッ ト ケーブル
• デ ィ ス プ レ イ ポー ト (DP) 機能を備えたモニ タ ー (最小で 1080P の解像度)
• ZCU102 ボー ド か ら のデ ィ ス プ レ イ 出力を DP モニ タ ーへ接続す る ための DP ケーブル
イ ン ス ト ール要件
Vivado Design Suite お よび SDK
2017.1 Vivado HL System Edition ツールが イ ン ス ト ール済みであ る こ と を確認 し て く だ さ い。 ツール バージ ョ ン が最
新であ る か ど う かは、https://japan.xilinx.com/support/download.html にア ク セ ス し て確認で き ます。
Vivado Design Suite お よ び SDK ツールの両方が イ ン ス ト ール さ れてい る こ と を確認 し て く だ さ い。 Vivado Design Suite を イ ン ス ト ールす る 際に、 次の図に示す よ う に [Software Development Kit (SDK)] をオンにす る こ と で、 イ ン ス
ト ールに含め る 必要のあ る オプシ ョ ンの ソ フ ト ウ ェ ア ツール と し て SDK を選択で き ます。 SDK を単独で イ ン ス ト ールす る には、 [Software Development Kit (SDK)] のみをオンに し 、 ほかの ソ フ ト ウ ェ ア製品の選択をオフ に し て イ ン ス ト ー ラ ーを実行 し ます。
Vivado Design Suite と SDK の イ ン ス ト ールの詳細は、 『Vivado Design Suite ユーザー ガ イ ド : リ リ ース ノ ー ト 、 イ ン ス
ト ールお よ び ラ イ セ ン ス』 (UG973: 英語版、 日本語版) [参照 3] を参照 し て く だ さ い。
重要: イ ン ス ト ールに よ って SDK 用のデス ク ト ッ プのシ ョ ー ト カ ッ ト がデフ ォル ト で作成さ れるわけではあ り ませ
ん。 SDK バ イ ナ リ は、 C:\Xilinx\SDK\2017.1\bin\xsdk.bat か ら 起動可能です。
PetaLinux ツール
こ のチ ュ ー ト リ アルの Linux 部分の演習で実行する PetaLinux ツールを イ ン ス ト ール し ます。 PetaLinux ツールは、 次 のいずれかが稼働 し てい る Linux ホ ス ト シ ス テ ムで実行し ます。
• RHEL 7.2/7.3 (64 ビ ッ ト )
• CentOS 7.2/7.3 (64 ビ ッ ト )
• Ubuntu 16.04.1 (64 ビ ッ ト )
• RHEL 6.7/6.8 (64 ビ ッ ト )
注記: RHEL および Cent OS の 6.X の場合、 回避策を用いた制限付き サポー ト と な り ます。 詳細は、 『PetaLinux ツール
資料: リ フ ァ レ ン ス ガ イ ド 』 (UG1144) [参照 7] を参照 し て く だ さ い。
こ の ツールは、 専用 Linux ホ ス ト シ ス テ ム、 ま たは Windows 開発プ ラ ッ ト フ ォーム上で こ れ ら の Linux オペレー テ ィ ン グ シ ス テ ムのいずれかが稼働 し てい る仮想マシ ン を使用で き ます。
PetaLinux ツールを選択 し た シ ス テ ム に イ ン ス ト ールす る には、 次を実行す る 必要があ り ます。
• PetaLinux 2017.1 SDK ツールを、ザ イ リ ン ク ス の ウ ェ ブサ イ トか ら ダ ウ ン ロ ー ド す る
• ZCU102 PetaLinux BSP を 2017.1 のダ ウ ン ロ ー ド ページか ら ダ ウ ン ロ ー ド す る
注記: ES2 シ リ コ ンの場合、 ZCU102-ZU9-ES2 Rev 1.0 BSP はこ こ か らダ ウ ン ロ ー ド し ます。
X-Ref Target - Figure 1-2
• ワー ク ス テーシ ョ ン ま たは仮想マシ ンに共通のシ ス テ ム パ ッ ケージおよ び ラ イ ブ ラ リ を追加する。 『PetaLinux
ツール資料: リ フ ァ レ ン ス ガ イ ド 』 (UG1144) [参照 7] の 「 イ ン ス ト ール要件」 を参照 し て く だ さ い。
必要な環境
• 4GB RAM (ザ イ リ ン ク ス ツールで推奨 さ れ る 最小サ イ ズ)
• Pentium 4 2GHz CPU ク ロ ッ ク ま たは同等の CPU (少な く と も 4 つの コ ア)
• 100GB のハー ド デ ィ ス ク 空 き 容量
PetaLinux パ ッ ケージの展開
イ ン ス ト ー ラ ーはデフ ォ ル ト では、 現在のデ ィ レ ク ト リ のサブデ ィ レ ク ト リ と し てパ ッ ケージ を イ ン ス ト ール し ま す。 代わ り に、 イ ン ス ト ール パス を指定する こ と も で き ます。 ダ ウ ン ロー ド し た PetaLinux イ ン ス ト ー ラ ーを実行 し ます。 注記: PetaLinux の イ ン ス ト ール パスは短 く し て く だ さ い。 パス が 255 文字を超え る と 、 PetaLinux のビル ド がエ ラ ー にな り ます。 bash> ./petalinux-v2017.1-final-installer.run PetaLinux は、 こ の コ マ ン ド の作業デ ィ レ ク ト リ の直下にあ る petalinux-v2017.1.4-final デ ィ レ ク ト リ に イ ン ス ト ール さ れます。 イ ン ス ト ー ラ ーを ホーム デ ィ レ ク ト リ (/home/user) に置いた場合、 PetaLinux は /home/user/petalinux-v2017.1-final に イ ン ス ト ール さ れ ます。 PetaLinux 環境のセ ッ ト ア ッ プ、 プ ロ ジ ェ ク ト の作成、 お よ びプ ロ ジ ェ ク ト の使用例の詳細は、第 3 章 「PS サブシ ス テ ム向けの ソ フ ト ウ ェ ア構築」 を参照 し て く だ さ い。 PetaLinux の イ ン ス ト ールおよ び使用方法に関する詳細は、 『PetaLinux ツール資料: リ フ ァ レ ン ス ガ イ ド 』 (UG1144) [参照 7] に記載 さ れてい ます。ソ フ ト ウ ェ アの ラ イ セ ン ス
ザ イ リ ン ク ス の ソ フ ト ウ ェ アには FLEXnet ラ イ セン ス が使用 さ れてい ます。 ソ フ ト ウ ェ ア を初めて起動する際、 ラ イ セ ン ス の検証プ ロ セ ス が実行 さ れます。 ラ イ セ ン ス検証で有効な ラ イ セ ン ス が検出 さ れない場合、 ラ イ セ ン ス ウ ィ ザー ド に従っ て ラ イ セ ン ス を取得 し 、 イ ン ス ト ール し た ツールでその ラ イ セ ン ス を使用で き る よ う に し ます。 ソ フ ト ウ ェ アの フル バージ ョ ンが不要な場合は、 評価版 ラ イ セン ス を使用で き ます。 イ ン ス ト ールの手順 と 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : リ リ ース ノ ー ト 、 イ ン ス ト ールおよ び ラ イ セン ス』 (UG973: 英語版、 日本語版)[参照 3] を参照 し て く だ さ い。
チ ュ ー ト リ アルのデザイ ン フ ァ イル
こ のチ ュ ー ト リ アルのデザ イ ン フ ァ イ ルのダ ウ ン ロ ー ド については、141 ページの 「 こ のチ ュ ー ト リ アルのデザ イ
Zynq UltraScale+ MPSoC プ ロ セ ッ シ ング
シ ス テムの コ ン フ ィ ギ ュ レーシ ョ ン
ザ イ リ ン ク ス の Vivado® Design Suite の概要に引き続き、 こ のツールを活用 し て Zynq® UltraScale+™ MPSoC プ ロ セ ッ シ ン グ シ ス テ ム (PS) を使用する エンベデ ッ ド シ ス テ ム を開発する方法を説明し ます。
Zynq UltraScale+ は、 ク ワ ッ ド コ ア ARM® Cortex®-A53 APU、 デ ュ アル コ ア ARM Cortex-R5 RPU、 Mali 400 MP2 GPU、お よ び複数のハー ド IP (Intellectual Property) コ ン ポーネ ン ト な ら びにプ ロ グ ラ マブル ロ ジ ッ ク (PL) で構成 さ れ てい ます。 こ れ ら は次の 2 つの方法で使用で き ます。 • Zynq UltraScale+ PS は、 フ ァ ブ リ ッ ク IP を追加せずに、 ス タ ン ド ア ロ ン モー ド で使用で き ます。 • IP コ ア を フ ァ ブ リ ッ ク で イ ン ス タ ン シエー ト し 、 PS と PL の組み合わせ と し て Zynq UltraScale+ PS に接続で き ます。
Zynq UltraScale+ シ ス テムの コ ン フ ィ ギ ュ レーシ ョ ン
Zynq UltraScale+ シ ス テ ム デザ イ ン の作成には、 ブー ト デバ イ スお よ びペ リ フ ェ ラ ルを適切に選択す る PS の コ ン フ ィ ギ ュ レーシ ョ ンが含まれます。 PS ペ リ フ ェ ラ ル と 利用可能な MIO の接続がデザ イ ン要件を満た し てい る限 り 、 ビ ッ ト ス ト リ ームは必要あ り ません。 こ の章では、 ビ ッ ト ス ト リ ーム を必要 と し ない簡単な PS ベース のデザ イ ンの 作成手順について説明 し ます。サン プル プ ロ ジ ェ ク ト : Zynq UltraScale+ MPSoC の新規
エ ンベデ ッ ド プ ロ ジ ェ ク ト を作成する
こ の例では、 Vivado Design Suite を起動し 、 エンベデ ッ ド プ ロ セ ッ シ ン グ シ ス テ ムのプ ロ ジ ェ ク ト を最上位 と し て作 成 し ます。
デザイ ンの開始
1. Vivado Design Suite を起動 し ます。
2. [Vivado Quick Start] ページで [Create Project] を ク リ ッ ク し 、 New Project ウ ィ ザー ド を開 き ます。
3. 次の表の情報に基づいて、 各 ウ ィ ザー ド 画面で選択操作を実行 し ます。
4. [Finish] を ク リ ッ ク し ます。 New Project ウ ィ ザー ド が閉 じ 、 作成 し たプ ロ ジ ェ ク ト が Vivado デザ イ ン ツールで
開 き ます。
ブ ロ ッ ク デザイ ン プ ロ ジ ェ ク ト の作成
IP イ ン テ グ レー タ ーを使用 し 、 ブ ロ ッ ク デザ イ ン プ ロ ジ ェ ク ト を作成 し ます。
1. Flow Navigator の [IP Integrator] → [Create Block Design] を ク リ ッ ク し ます。
ウ ィ ザー ド 画面 シ ス テム プ ロパテ ィ 設定または使用する コ マ ン ド
Project Name Project name edt_zcu102
Project location C:/edt
Create project subdirectory オン
Project Type デザ イ ンの ソ ース の タ イ プを指定す
る 。 RTL ま たは合成済み EDIF か ら 開 始で き る 。
RTL プ ロ ジ ェ ク ト
[Do not specify sources at this time] オ フ
Add Sources こ の画面では変更 し ない。
Add Constraints こ の画面では変更 し ない。
Default Part Select Boards
Display Name Zynq UltraScale+ ZCU102 Evaluation Board
New Project Summary Project Summary プ ロ ジ ェ ク ト サマ リ を確認する。
X-Ref Target - Figure 2-1
2. [Create Block Design] ダ イ ア ロ グ ボ ッ ク ス で次の よ う に選択 し ます。
3. [OK] を ク リ ッ ク し ます。
こ のデザ イ ンが空であ る こ と を示す メ ッ セージ と 共に、 [Diagram] ウ ィ ン ド ウ が表示 さ れます。 開始する には、 カ タ ロ グか ら IP を追加 し ます。
4. [Add IP] を ク リ ッ ク し ます。
5. [Search] フ ィ ール ド に 「zynq」 と 入力 し て Zynq デバ イ ス IP オプシ ョ ン を検索 し ます。
6. ZYNQ UltraScale+ MPSoC IP を ダブル ク リ ッ ク し 、 ブ ロ ッ ク デザ イ ン に追加 し ます。
次の図に示す よ う に、 Zynq MPSoC プ ロ セ ッ シ ン グ シ ス テ ム IP ブ ロ ッ ク が [Diagram] ウ ィ ン ド ウ に表示 さ れま す。
ウ ィ ザー ド 画面 シス テム プ ロパテ ィ 設定または使用する コ マ ン ド
Create Block Design Design name edt_zcu102
Directory <Local to Project>
Specify source set Design Sources
X-Ref Target - Figure 2-2
Vivado で Zynq UltraScale+ プ ロ セ ッ シ ン グ シス テムを管理する
Zynq MPSoC のプ ロ セ ッ シ ン グ シ ス テ ムがデザ イ ンに追加 さ れたので、 利用可能なオプシ ョ ンの管理を開始で き ます。
1. [Diagram] ウ ィ ン ド ウ で、 ZYNQ UltraScale+ Processing System ブ ロ ッ ク を ダブル ク リ ッ ク し ます。
次の図に示す よ う な [Re-customize IP] ダ イ ア ロ グ ボ ッ ク ス が開き ます。 デフ ォル ト では、 プ ロ セ ッ シ ン グ シ ス テ ムにペ リ フ ェ ラ ルが接続 さ れていない こ と に注意 し て く だ さ い。 2. [Cancel] を ク リ ッ ク す る と 、 デザ イ ンが変更 さ れずに ウ ィ ザー ド が閉 じ ます。 ヒ ン ト: [Diagram] ウ ィ ン ド ウ で、 次の図に示すよ う なデザ イ ン アシ ス タ ン ト が使用可能であ る こ と を示す メ ッ セー ジが表示 さ れます。 デザ イ ン アシ ス タ ン ト が利用可能な場合、 リ ン ク を ク リ ッ ク する と Vivado はデザ イ ンで ス テ ッ プ実行で き る よ う にな り ます。
X-Ref Target - Figure 2-3
図 2-3: [Re-customize IP] ダ イ ア ログ ボ ッ ク ス
X-Ref Target - Figure 2-4
3. ZCU102 ボー ド 用に作成 さ れた テ ン プ レー ト を使用 し ます。 [Run Block Automation] リ ン ク を ク リ ッ ク し ます。 [Run Block Automation] ダ イ ア ロ グ ボ ッ ク ス が開 き ます。
4. [OK] を ク リ ッ ク し てデフ ォ ル ト のプ ロ セ ッ シ ン グ シ ス テ ム オプシ ョ ン を選択 し 、 デフ ォ ル ト の ピ ン接続を作成
し ます。
こ の コ ン フ ィ ギ ュ レーシ ョ ン ウ ィ ザー ド を使用 し て、 ZCU102 のボー ド レ イ ア ウ ト に従っ て一部の MIO (Multiplexed I/O) ピ ン が割 り 当て ら れてい る 複数のペ リ フ ェ ラ ルを プ ロ セ ッ シ ン グ シ ス テ ム で有効に し ます。 た
と えば、 UART0 および UART1 を有効に し ます。 UART の信号が UART を経由 し て USB-UART コ ネ ク タ を介 し 、 ZCU102 ボー ド の USB コ ンバー タ ー チ ッ プへ接続 さ れ ます。
5. こ れを確認す る には、 ブ ロ ッ ク 図上で Zynq UltraScale+ Processing System ブ ロ ッ ク を ダブル ク リ ッ ク し ます。
Zynq UltraScale+ デバ イ ス のブ ロ ッ ク 図で各ペ リ フ ェ ラ ル名の横に表示 さ れ る チ ェ ッ ク マー ク は、 それ ら の I/O ペ リ フ ェ ラ ルがア ク テ ィ ブであ る こ と を示 し ます。
X-Ref Target - Figure 2-5
6. ブ ロ ッ ク 図で、 前の図に示 し た緑色の I/O ペ リ フ ェ ラ ルの う ちの 1 つを ク リ ッ ク し ます。 選択 し たペ リ フ ェ ラ ル に関す る [I/O Configuration] ページが開き ます。
こ のページでは、 低速ペ リ フ ェ ラ ルお よ び高速ペ リ フ ェ ラ ルの設定が可能です。 こ のサンプル プ ロ ジ ェ ク ト で は、 ZCU102 用のボー ド プ リ セ ッ ト を使用し て基本的な接続を有効に し た状態で続け ます。
7. Page Navigator で [PS-PL Configuration] を ク リ ッ ク し ます。
8. [PS-PL Configuration] で、 [PS-PL Interfaces] を展開 し て [Master Interface] を展開表示 し ます。
こ のサンプル プ ロ ジ ェ ク ト では、 PL にデザ イ ンが読み込まれていないため、 PS-PL イ ン タ ーフ ェ イ ス を無効に で き ます。 こ の よ う な場合、 AXI HPM0 FPD マ ス タ ー イ ン タ ーフ ェ イ スおよ び AXI HPM1 FPD マ ス タ ー イ ン タ ーフ ェ イ ス を無効にで き ます。
9. [AXI HPM0 FPD] ド ロ ッ プダ ウ ン リ ス ト か ら [0] を選択 し ます。 同様に、 [AXI HPM1 FPD] に も [0] を設定 し ま
す。
X-Ref Target - Figure 2-6
PS-PL イ ン タ ーフ ェ イ ス は次の図の よ う に設定 し ます。
10. [OK] を ク リ ッ ク し て [Re-customize IP] ダ イ ア ロ グ ボ ッ ク ス閉 じ ます。
デザイ ンおよび接続ポー ト を検証する
次に、 デザ イ ン を検証 し ます。
1. [Diagram] ウ ィ ン ド ウ 内の空白部分を右 ク リ ッ ク し て、 [Validate Design] を ク リ ッ ク し ます。 あ る いは、 F6 キー
を押 し ます。
2. 検証が成功 し 、 デザ イ ンにエ ラ ーや重大な警告がない こ と を示す メ ッ セージ ダ イ ア ロ グ ボ ッ ク ス が表示 さ れま
す。
3. [OK] を ク リ ッ ク し て メ ッ セージ を閉 じ ます。
4. [Block Design] の [Sources] ウ ィ ン ド ウ を ク リ ッ ク し ます。
5. [Hierarchy] を ク リ ッ ク し ます。
6. [Design Sources] の下で [edt_zcu102] を右 ク リ ッ ク し 、 [Create HDL Wrapper] を ク リ ッ ク し ます。
[Create HDL Wrapper] ダ イ ア ロ グ ボ ッ ク ス が開 き ます。 こ のダ イ ア ロ グ ボ ッ ク ス を使用 し て、 プ ロ セ ッ サ サブ シ ス テ ム用の HDL ラ ッ パー フ ァ イ ルを作成し ます。
ヒ ン ト: HDL ラ ッ パーは、 デザ イ ン ツールに必要な最上位エンテ ィ テ ィ です。
7. [Let Vivado manage wrapper and auto-update] を オ ン に し て、 [OK] を ク リ ッ ク し ます。
8. [Block Design] の [Sources] ウ ィ ン ド ウ で、 [Design Sources] の下にあ る [edt_zcu102_wrapper] を展開 し ます。
9. [edt_zcu102_i - edt_zcu102 (edt_zcu102.bd)] と い う 名前の最上位ブ ロ ッ ク 図を右 ク リ ッ ク し 、 [Generate Output
Products] を ク リ ッ ク し ます。
次の [Generate Output Products] ダ イ ア ロ グ ボ ッ ク ス が開き ます。
X-Ref Target - Figure 2-7
注記: Linux ホ ス ト マシ ンで Vivado Design Suite を実行 し てい る場合は、 [Run Settings] の下に追加オプシ ョ ンが表 示 さ れ る こ と があ り ます。 その場合は、 デフ ォ ル ト の設定で継続 し ます。
10. [Generate] を ク リ ッ ク し ます。
こ の手順では、 選択 し た ソ ース に必要なすべての出力フ ァ イ ルを作成 し ます。 た と えば、 IP プ ロ セ ッ サ シ ス テ ムに対す る 制約を手動で作成す る 必要はあ り ません。 [Generate Output Products] が選択 さ れ る と 、 Vivado ツール は、 プ ロ セ ッ サ サブシ ス テ ム用の XDC フ ァ イ ルを自動的に生成 し ます。
11. 次の メ ッ セージが表示 さ れた場合、 [OK] を ク リ ッ ク し ます。 Out-of-context module run was launched for generating output products. 12. [Generate Output Products] の処理が完了 し た ら 、 [OK] を ク リ ッ ク し ます。
X-Ref Target - Figure 2-8
13. [Block Design] の [Sources] ウ ィ ン ド ウ で、 [IP Sources] タ ブ を ク リ ッ ク し ます。 次の図に示す よ う に、 生成 し たば か り の出力フ ァ イ ルが表示 さ れます。
ハー ド ウ ェ ア を SDK へエ ク スポー ト する
こ の例では、 Vivado か ら SDK を起動 し ます。
1. [Vivado] ツールバーで、 [File] → [Export] → [Export Hardware] を ク リ ッ ク し ます。
[Export Hardware] ダ イ ア ロ グ ボ ッ ク ス が開 き ます。 [Export to] フ ィ ール ド はデフ ォ ル ト オプシ ョ ン の [<Local to Project>] の ま ま に し てお き ます。
2. [OK] を ク リ ッ ク し ます。
X-Ref Target - Figure 2-9
図 2-9: [IP Sources] の下に生成 さ れた出力
X-Ref Target - Figure 2-10
ヒ ン ト: ハー ド ウ ェ アは ZIP フ ァ イル (<project wrapper>.hdf) でエ ク スポー ト されます。 SDK が起動する と フ ァ イ ルは自動で解凍 さ れ、 SDK プ ロ ジ ェ ク ト ハー ド ウ ェ ア プ ラ ッ ト フ ォーム フ ォルダーにすべてのフ ァ イ ルが 含ま れます。 3. [File] → [Launch SDK] を ク リ ッ ク し ます。 [Launch SDK] ダ イ ア ロ グ ボ ッ ク ス が開 き ます。 ヒ ン ト: SDK はス タ ン ド ア ロ ン モー ド で起動する こ と も で き、 エ ク スポー ト さ れたハー ド ウ ェ アを使用で き ます。 その場合、 SDK を起動 し 、 エ ク ス ポー ト さ れた新 し い ターゲ ッ ト ハー ド ウ ェ ア を新 し いプ ロ ジ ェ ク ト の作成時にポ イ ン ト し ます。
4. [Exported location] お よ び [Workspace] には、 デフ ォ ル ト 設定を選択 し ます。
5. [OK] を ク リ ッ ク し ます。
SDK が開 き ます。 SDK を起動す る と ハー ド ウ ェ ア記述フ ァ イ ルが自動的に読み込ま れ ます。
次の図に示す よ う に、 [system.hdf] にプ ロ セ ッ シ ン グ シ ス テ ム全体のア ド レ ス マ ッ プが表示 さ れます。
X-Ref Target - Figure 2-11
こ こ ま での結果
Vivado に よ っ て、 ソ フ ト ウ ェ ア開発が行われ る 選択 し た ワ ー ク ス ペース にハー ド ウ ェ ア仕様がエ ク ス ポー ト さ れ ま し た。 [<Local to Project>] を選択し ていれば、 Vivado プ ロ ジ ェ ク ト フ ォ ルダーに新 し い ワー ク スペース が作成 さ れて い ます。 ワー ク スペース名は <project_name>.sdk です。 こ の例では、 ワー ク スペースは、 C:\edt\edt_zcu102\edt_zcu102.sdk と い う 名前で作成 さ れ ます。 Vivado デザ イ ン ツールに よ っ て、 デザ イ ンのハー ド ウ ェ ア プ ラ ッ ト フ ォ ーム仕様 ( こ の例では system.hdf) が SDK にエ ク ス ポー ト さ れ ま し た。 system.hdf のほかに、 次の追加フ ァ イ ルが SDK にエ ク ス ポー ト さ れ ます。 • psu_init.c • psu_init.h • psu_init.tcl • psu_init_gpl.c • psu_init_gpl.h • psu_init.html system.hdf フ ァ イ ルは、 デフ ォ ル ト では SDK の起動時に開かれ ます。 こ の フ ァ イ ルか ら 読み出 さ れ る シ ス テ ム の ア ド レ ス マ ッ プがデフ ォル ト で SDK ウ ィ ン ド ウ に表示 さ れます。
psu_init.c、 psu_init.h、 psu_init_gpl.c、 お よ び psu_init_gpl.h の各フ ァ イ ルには、 Zynq UltraScale_ MPSoC プ ロ セ ッ シ ン グ シ ス テ ム の初期化 コ ー ド のほかに DDR、 ク ロ ッ ク 、 位相 ロ ッ ク ループ (PLL)、 お よ び I/O の 初期化設定が含まれます。 SDK は、 アプ リ ケーシ ョ ンがプ ロ セ ッ シ ン グ シ ス テ ムの最上位で実行可能 と な る よ う に、 こ れ ら の設定をプ ロ セ ッ シ ン グ シ ス テ ムの初期化時に使用 し ます。 プ ロ セ ッ シ ン グ シ ス テ ムの設定の中には ZCU102 評価ボー ド 向けに固定 さ れてい る も のがあ り ます。
X-Ref Target - Figure 2-12
次に実行する こ と
こ れで、 SDK を使用 し てプ ロ ジ ェ ク ト の ソ フ ト ウ ェ ア開発を開始で き ます。 次のセ ク シ ョ ンでは、 ハー ド ウ ェ ア プ ラ ッ ト フ ォーム向けの ソ フ ト ウ ェ ア アプ リ ケーシ ョ ンの作成に役立つ情報を提供 し ます。
サン プル プ ロ ジ ェ ク ト : ARM Cortex-A53 から Hello
World ア プ リ ケーシ ョ ン を実行する
こ の例では、 ザ イ リ ン ク ス SDK のシ ス テ ム デバ ッ ガーを使用 し て、 ボー ド 設定の管理、 ケーブル接続、 PC 経由の ボー ド 接続、 お よ び JTAG モー ド で ARM Cortex-A53 か ら 簡単な hello world ソ フ ト ウ ェ ア アプ リ ケーシ ョ ン を実行す る 各方法について説明 し ます。
1. 電源ケーブルを ボー ド に接続 し ます。
2. USB Micro ケーブルで Windows ホ ス ト マシ ン と タ ーゲ ッ ト ボー ド の J2 USB JTAG コ ネ ク タ を接続 し ます。
3. USB Micro ケーブルで Windows ホ ス ト マシ ン と タ ーゲ ッ ト ボー ド の コ ネ ク タ J83 を接続 し ます。 シ リ アル転送
に USB を使用する際は こ の よ う に接続し ます。
重要: 次の図に示すよ う に、 SW6 ス イ ッ チが JTAG ブー ト モー ド に設定さ れている こ と を確認し ます。
4. 図 2-13 に示すス イ ッ チを使用 し て ZCU102 ボー ド に電源を投入 し ます。
X-Ref Target - Figure 2-13
注記: SDK が既に起動 し てい る場合は、 手順 6 へ進みます。
5. SDK を開 き 、 プ ロ ジ ェ ク ト フ ァ イ ルへの ワ ー ク ス ペース パ ス ( こ の例では、
C:\edt\edt_zcu102\edt_zcu102.sdk) を設定 し ます。
あ る いは、 デフ ォ ル ト の ワー ク スペース を使用 し て SDK を開き、 後でそれを正 し い ワー ク スペース に切 り 替え る こ と も で き ます。 こ の場合、 [File] → [Switch Workspace] を ク リ ッ ク し てか ら 、 ワー ク スペース を選択 し ます。
6. シ ス テ ムで割 り 当て ら れてい る COM ポー ト のシ リ アル通信ユーテ ィ リ テ ィ を開き ます。 SDK では、 チ ュー ト
リ アル全体で使用 さ れ る シ リ アル タ ー ミ ナル ユーテ ィ リ テ ィ が提供 さ れてい ます。 [Window] → [Show View] → [Terminal] を ク リ ッ ク し て こ のユーテ ィ リ テ ィ を開 き ます。
7. [Connect] を ク リ ッ ク し 、 シ リ アル コ ン フ ィ ギ ュ レーシ ョ ン を設定 し て接続 し ます。
8. [Settings] を ク リ ッ ク し て [Terminal Settings] ダ イ ア ロ グ ボ ッ ク ス を開き ます。
X-Ref Target - Figure 2-14
図 2-14: ZCU102 ボー ド の電源ス イ ッ チ
X-Ref Target - Figure 2-15
9. デバ イ ス マネージ ャーでポー ト の詳細を検証 し ます。
UART-0 タ ー ミ ナルは、 Interface-0 の COM ポー ト に対応 し ます。 こ の例では、 UART-0 タ ー ミ ナルがデフ ォ ル ト で設定 さ れてい る ため、 COM ポー ト に対 し て Interface-0 のポー ト を選択 し ます。
次の図に、 Zynq UltraScale+ MPSoC プ ロ セ ッ シ ン グ シ ス テ ム用の標準的な設定を示 し ます。
10. [File] → [New] → [Application Project] を ク リ ッ ク し ます。
11. New Project ウ ィ ザー ド が開 き ます。 次の表の情報に基づいて、 ウ ィ ザー ド 画面で選択操作を実行 し ます。
SDK に よ っ て test_a53 アプ リ ケーシ ョ ン プ ロ ジ ェ ク ト お よ び test_a53_bsp ボー ド サポー ト パ ッ ケージ (BSP) プ ロ ジ ェ ク ト が [Project Explorer] の下に作成 さ れ ます。 こ れ ら の両プ ロ ジ ェ ク ト は自動的に コ ンパ イ ル さ
X-Ref Target - Figure 2-16
図 2-16: [Terminal Settings] ダ イ ア ログ ボ ッ ク ス
ウ ィ ザー ド 画面 シ ス テム プ ロパテ ィ 設定または使用する コ マ ン ド
Application Project Project name test_a53
Use default location オン
Hardware Platform edt_zcu102_wrapper_hw_platform_0
Processor psu_cortexa53_0
OS Platform standalone
Language C
Compiler 64-bit
Hypervisor Guest No
Board Support Package [Create New] を オ ン に し て 「test_a53_bsp」
と 入力す る 。
12. [test_a53] を右 ク リ ッ ク し て [Run as] → [Run Configurations] を ク リ ッ ク し ます。
13. [Xilinx C/C++ application (System Debugger)] を右 ク リ ッ ク し て [New] を ク リ ッ ク し ます。
SDK に よ っ て 「test_a53 Debug」 と い う 名前の新 し い実行 コ ン フ ィ ギ ュ レーシ ョ ン が作成 さ れ ます。 アプ リ ケーシ ョ ンに関連す る コ ン フ ィ ギ ュ レーシ ョ ンは、 起動 コ ン フ ィ ギ ュ レーシ ョ ンの [Main] タ ブに自動入 力 さ れます。 14. [Target Setup] タ ブ を ク リ ッ ク し 、 設定を確認 し ます。 初期化 Tcl フ ァ イ ルへの コ ン フ ィ ギ ュ レーシ ョ ン パス があ る こ と に着目 し て く だ さ い。 こ こ では psu_init.tcl へのパ ス です。 こ の フ ァ イ ルは、 デザ イ ン を SDK にエ ク ス ポー ト し た際にエ ク ス ポー ト さ れ た も ので、 プ ロ セ ッ シ ン グ シ ス テ ムの初期化情報を含みます。 15. [Run] を ク リ ッ ク し ます。
次の図に示す よ う に、 [Terminal 1] のシ リ アル通信ユーテ ィ リ テ ィ に 「Hello World」 と 表示 さ れます。
注記: Zynq UltraScale+ 評価ボー ド で実行する上記 ソ フ ト ウ ェ ア アプ リ ケーシ ョ ン用にビ ッ ト ス ト リ ーム を ダ ウ ン ロ ー ド す る 必要はあ り ませんで し た。 ARM Cortex A53 ク ワ ッ ド コ アは既にプ ロ セ ッ シ ン グ シ ス テ ムに実装 さ れてい ます。 簡単な アプ リ ケーシ ョ ン を実行す る こ と を目的 と し た こ のシ ス テ ムの基本的な初期化は、 デバ イ ス初期化 Tcl ス ク リ プ ト で実行 さ れます。
16. ボー ド の電源を切っ て入れ直 し 、 次のセ ク シ ョ ンの手順用に同 じ 接続 と ボー ド 設定を保持 し ます。
こ こ ま での結果
アプ リ ケーシ ョ ン ソ フ ト ウ ェ アに よ っ て、 「Hello World」 の文字列が PS の UART0 ペ リ フ ェ ラ ルに送信 さ れま し た。 UART0 か ら ホ ス ト マシ ン で動作 し てい る シ リ アル タ ー ミ ナル アプ リ ケーシ ョ ンへ、 Hello World の文字列がバ イ ト ご と に送信 さ れ、 文字列 と し て表示 さ れます。
サン プルプ ロ ジ ェ ク ト : ARM Cortex-R5 から Hello World
ア プ リ ケーシ ョ ン を実行する
こ の例では、 ザ イ リ ン ク ス SDK のシ ス テ ム デバ ッ ガーを使用 し て、 ボー ド 設定の管理、 ケーブル接続、 PC 経由の ボー ド 接続、 お よ び JTAG モー ド で ARM Cortex-R5 か ら 簡単な hello world ソ フ ト ウ ェ ア アプ リ ケーシ ョ ン を実行す る 各方法について説明 し ます。
注記: ボー ド が既にセ ッ ト ア ッ プ さ れてい る場合は、手順 5 へ進み ます。
1. 電源ケーブルを ボー ド に接続 し ます。
2. USB Micro ケーブルで Windows ホ ス ト マシ ン と タ ーゲ ッ ト ボー ド の J2 USB JTAG コ ネ ク タ を接続 し ます。
X-Ref Target - Figure 2-17
3. USB ケーブルで Windows ホ ス ト マシ ン と タ ーゲ ッ ト ボー ド の コ ネ ク タ J83 を接続 し ます。シ リ アル転送に USB を使用す る 際は こ の よ う に接続 し ます。 4. 図 2-14 に示す ス イ ッ チを使用 し て ZCU102 ボー ド に電源を投入 し ます。 重要:図 2-13 に示す と お り に SW6 ス イ ッ チが JTAG ブー ト モー ド に設定 さ れてい る こ と を確認 し ます。 注記: SDK が既に開いてい る場合は、 手順 6 に進みます。 5. SDK を開 き 、 プ ロ ジ ェ ク ト フ ァ イ ルへの ワ ー ク ス ペース パ ス ( こ の例では、 C:\edt\edt_zcu102\edt_zcu102.sdk) を設定 し ます。 あ る いは、 デフ ォ ル ト の ワー ク スペース を使用 し て SDK を開き、 後でそれを正 し い ワー ク スペース に切 り 替え る こ と も で き ます。 こ の場合、 [File] → [Switch Workspace] を ク リ ッ ク し てか ら 、 ワー ク スペース を選択 し ます。
6. シ ス テ ムで割 り 当て ら れてい る COM ポー ト のシ リ アル通信ユーテ ィ リ テ ィ を開き ます。 SDK では、 チ ュー ト
リ アル全体で使用 さ れ る シ リ アル タ ー ミ ナル ユーテ ィ リ テ ィ が提供 さ れてい ます。 [Window] → [Show View] → [Terminal] を ク リ ッ ク し て こ のユーテ ィ リ テ ィ を開 き ます。
7. [Connect] を ク リ ッ ク し 、 シ リ アル コ ン フ ィ ギ ュ レーシ ョ ン を設定 し て接続 し ます。
8. [Settings] を ク リ ッ ク し て [Terminal Settings] ダ イ ア ロ グ ボ ッ ク ス を開き ます。
COM ポー ト の詳細はホ ス ト マシ ン のデバ イ ス マネージ ャ ーに表示 さ れ ます。 UART-0 タ ー ミ ナルは、
Interface-0 の COM ポー ト に対応 し ます。 こ の例では、 UART-0 タ ー ミ ナルがデフ ォ ル ト で設定 さ れてい る ため、 COM ポー ト に対 し て Interface-0 のポー ト を選択 し ます。
次の図に、 Zynq UltraScale+ MPSoC プ ロ セ ッ シ ン グ シ ス テ ム用の標準的な設定を示 し ます。
X-Ref Target - Figure 2-18
9. SDK では、 [Debug] ウ ィ ン ド ウ か ら [C/C++] ウ ィ ン ド ウ に切 り 替え ます。 こ れには、 [Window] → [Open Perspective] → [C/C++] を ク リ ッ ク し ます。 SDK で [C/C++] ウ ィ ン ド ウ が既に表示 さ れてい る 場合は、 こ の手順 を無視 し て く だ さ い。
10. [File] → [New] → [Application Project] を ク リ ッ ク し ます。 New Project ウ ィ ザー ド が開 き ます。
11. 次の表の情報に基づいて、 ウ ィ ザー ド 画面で選択操作を実行 し ます。
SDK に よ っ て hello_world_r5 アプ リ ケーシ ョ ン プ ロ ジ ェ ク ト お よ び hello_world_r5_bsp ボー ド サポー ト パ ッ ケージ (BSP) プ ロ ジ ェ ク ト が [Project Explorer] の下に作成 さ れます。 こ れ ら の両プ ロ ジ ェ ク ト は自動的に コ ンパ イ ル さ れ、 ELF フ ァ イ ルが作成 さ れます。
12. [hello_world_r5] を右 ク リ ッ ク し て [Run as] → [Run Configurations] を ク リ ッ ク し ます。 13. [Xilinx C/C++ application (System Debugger)] を右 ク リ ッ ク し て [New] を ク リ ッ ク し ます。
X-Ref Target - Figure 2-19
図 2-19: [Terminal Settings] ダ イ ア ログ ボ ッ ク ス
ウ ィ ザー ド 画面 シ ス テム プ ロパテ ィ 設定または使用する コ マ ン ド
Application Project Project name hello_world_r5
Use default location オン
Hardware Platform edt_zcu102_wrapper_hw_platform_0
Processor psu_cortexr5_0
OS Platform standalone
Language C
Board Support Package [Create New] を オ ン に し て
「hello_world_r5_bsp」 と 入力する 。
SDK に よ っ て 「hello_world_r5 Debug」 と い う 名前の新 し い実行 コ ン フ ィ ギ ュ レーシ ョ ン が作成 さ れ ます。 アプ リ ケーシ ョ ンに関連す る コ ン フ ィ ギ ュ レーシ ョ ンは、 起動 コ ン フ ィ ギ ュ レーシ ョ ンの [Main] タ ブに自動入 力 さ れます。 14. [Target Setup] タ ブ を ク リ ッ ク し 、 設定を確認 し ます。 初期化 Tcl フ ァ イ ルへの コ ン フ ィ ギ ュ レーシ ョ ン パス があ る こ と に着目 し て く だ さ い。 こ こ では psu_init.tcl へのパ ス です。 こ の フ ァ イ ルは、 デザ イ ン を SDK にエ ク ス ポー ト し た際にエ ク ス ポー ト さ れ た も ので、 プ ロ セ ッ シ ン グ シ ス テ ムの初期化情報を含みます。 15. [Run] を ク リ ッ ク し ます。
次の図に示す よ う に、 [Terminal 1] のシ リ アル通信ユーテ ィ リ テ ィ に 「Hello World」 と 表示 さ れます。
注記: Zynq UltraScale+ 評価ボー ド で実行する上記 ソ フ ト ウ ェ ア アプ リ ケーシ ョ ン用にビ ッ ト ス ト リ ーム を ダ ウ ン ロ ー ド す る 必要はあ り ませんで し た。 ARM Cortex R5 デュ アル コ アは既にボー ド に実装 さ れています。 簡単なアプ
リ ケーシ ョ ン を実行す る こ と を目的 と し た こ のシ ス テ ムの基本的な初期化は、 デバ イ ス初期化 Tcl ス ク リ プ ト で実行 さ れます。
こ こ ま での結果
アプ リ ケーシ ョ ン ソ フ ト ウ ェ アに よ って、 「Hello World」 の文字列が PS の UART0 ペ リ フ ェ ラ ルに送信さ れま し た。 UART0 か ら ホ ス ト マシ ン で動作 し てい る シ リ アル タ ー ミ ナル アプ リ ケーシ ョ ンへ、 「Hello world」 の文字列が バ イ ト ご と に送信 さ れ、 文字列 と し て表示 さ れます。
その他の情報
ボー ド サポー ト パ ッ ケージ
ボー ド サポー ト パ ッ ケージ (BSP) はハー ド ウ ェ ア プ ラ ッ ト フ ォーム ま たはボー ド のサポー ト コー ド です。 こ の コー ド は、 電源投入時の基本的な初期化に役立つだけでな く 、 ソ フ ト ウ ェ ア アプ リ ケーシ ョ ンがハー ド ウ ェ ア プ ラ ッ ト フ ォーム ま たはボー ド の最上位で実行 さ れ る よ う にサポー ト し ます。 こ れは、 ブー ト ロ ーダーお よ びデバ イ ス ド ラ イ バーを備え る オペレーテ ィ ン グ シ ス テ ム固有の も のにで き ます。X-Ref Target - Figure 2-20
ヒ ン ト: BSP を再生成する場合は、 [Project Explorer] の下に表示さ れる BSP プ ロ ジ ェ ク ト を右ク リ ッ ク し、 [Re-generate BSP Sources] を ク リ ッ ク し ます。
プ ロ ジ ェ ク ト の作成後に タ ーゲ ッ ト BSP を変更する場合は次を実行 し ます。 1. タ ーゲ ッ ト 用に新規のボー ド サポー ト パ ッ ケージ を作成 し ます。
2. [Project Explorer] で、 アプ リ ケーシ ョ ン プ ロ ジ ェ ク ト を右 ク リ ッ ク し て [Change Referenced BSP] を ク リ ッ ク し 、 設 定す る 新 し い BSP を ポ イ ン ト し ます。
ス タ ン ド ア ロ ンの OS
ス タ ン ド ア ロ ンはシ ンプルな下位 ソ フ ト ウ ェ ア層です。 こ れは、 キ ャ ッ シ ュ 、 割 り 込み、 例外な ど の基本的なプ ロ セ ッ サ機能お よ びホ ス ト 環境の基本的なプ ロ セ ッ サ機能へのア ク セ ス を提供 し ます。 こ れ ら の機能には、 標準の入 力/出力、 プ ロ フ ァ イ ル、 停止、 終了が含まれます。 こ れはセ ミ ホ ス ト 型のシ ン グル ス レ ッ ド 環境です。 T 重要: こ の章で実行し たアプ リ ケーシ ョ ンが、 ス タ ン ド ア ロ ン OS の最上位に作成さ れま し た。 ソ フ ト ウ ェ ア アプ リ ケーシ ョ ンが タ ーゲ ッ ト にす る BSP は、 新規アプ リ ケーシ ョ ン プ ロ ジ ェ ク ト を作成する プ ロ セ ス で選択 さ れます。 プ ロ ジ ェ ク ト の作成後に タ ーゲ ッ ト BSP を変更する場合は、 ソ フ ト ウ ェ ア アプ リ ケーシ ョ ン を右 ク リ ッ ク し て [Change Referenced BSP] を ク リ ッ ク す る と 、 タ ーゲ ッ ト BSP を管理で き ます。PS サブ シ ス テム向けのソ フ ト ウ ェ ア構築
こ の章では、 PS サブシ ス テ ム向けに ソ フ ト ウ ェ ア を設定お よび構築する手順を示し ます。 こ こ では、 Vivado® Design Suite で設定 し た Zynq® UltraScale™+ ハー ド ウ ェ ア プ ラ ッ ト フ ォ ーム (ハー ド ウ ェ ア定義フ ァ イ ル) を使用 し ま す。 第 2 章では、 Vivado でハー ド ウ ェ ア プ ラ ッ ト フ ォーム を作成 し 、 エ ク ス ポー ト し ま し た。 こ のハー ド ウ ェ ア プ ラ ッ ト フ ォームには、 ハー ド ウ ェ ア ハン ド オ フ フ ァ イ ル、 プ ロ セ ッ シ ン グ シ ス テ ム初期化フ ァ イ ル (psu_init)、 およ び PL ビ ッ ト ス ト リ ームが含まれます。 こ の章では、 ハー ド ウ ェ ア プ ラ ッ ト フ ォーム をザ イ リ ン ク ス SDK および PetaLinux で使用 し 、 プ ロ セ ッ シ ン グ シ ス テ ム用に ソ フ ト ウ ェ ア を設定 し ます。 こ の章では、 2 つの重要な点について説明し ます。 まずは、 以降の章で も 使用可能な ソ フ ト ウ ェ ア コ ンポーネ ン ト の構築お よ び設定に役立つ情報を提供 し ます。 次に、 特定の PS サブシ ス テ ム を構築する手順を説明 し ます。
Zynq UltraScale+ のプ ロ セ ッ シ ング ユニ ッ ト
Zynq UltraScale+™ にあ る プ ロ セ ッ シ ン グ シ ス テ ムの主なプ ロ セ ッ シ ン グ ユニ ッ ト は次の と お り です。• アプ リ ケーシ ョ ン プ ロ セ ッ シ ン グ ユニ ッ ト : ク ワ ッ ド コ ア ARM® Cortex® A53 MPCore プ ロ セ ッ サ
• リ アル タ イ ム プ ロ セ ッ シ ン グ ユニ ッ ト : デュ アル コ ア ARM Cortex R5 MPCore プ ロ セ ッ サ
• グ ラ フ ィ ッ ク ス プ ロ セ ッ シ ン グ ユニ ッ ト : ARM Mali 400 MP2 GPU
• プ ラ ッ ト フ ォーム管理ユニ ッ ト (PMU)
こ のセ ク シ ョ ンでは、 上記のユニ ッ ト を シ ス テ ム ソ フ ト ウ ェ ア を使用 し て設定する方法を説明 し ます。 こ れは、 FSBL (第 1 段階ブー ト ロ ーダー ) を使用す る ブー ト レベルで実行す る か、 ま たはプ ラ ッ ト フ ォ ーム管理ユニ ッ ト (PMU) に適用可能な シ ス テ ム フ ァ ーム ウ ェ ア を使用 し て実行で き ます。
SDK で Zynq UltraScale+ ハー ド ウ ェ ア プ ラ ッ ト フ ォ ーム を使用 し て、 次の タ ス ク を実行 し ます。
1. ARM Cortex-A53 64 ビ ッ ト ク ワ ッ ド コ ア プ ロ セ ッ シ ン グ ユニ ッ ト (APU) お よ び Cortex-R5 デ ュ アル コ ア リ アル
タ イ ム プ ロ セ ッ シ ン グ ユニ ッ ト (RPU) 用の FSBL (第 1 段階ブー ト ロ ーダー ) を作成 し ます。
2. APU お よ び RPU 用のベア メ タ ル アプ リ ケーシ ョ ン を作成 し ます。
3. ザ イ リ ン ク ス SDK を使用 し てプ ラ ッ ト フ ォーム管理ユニ ッ ト (PMU) 用にプ ラ ッ ト フ ォーム管理ユニ ッ ト
フ ァ ーム ウ ェ ア を作成 し ます。
ベア メ タ ル アプ リ ケーシ ョ ンのほかに、 APU 向けの U-Boot および Linux イ メ ージの構築について も 説明 し ます。 Linux イ メ ージお よ び U-Boot は、 PetaLinux ビル ド シ ス テ ム を使用 し て設定お よ び構築で き ます。
サン プル プ ロ ジ ェ ク ト : SDK でベア メ タ ル ア プ リ ケー
シ ョ ン プ ロ ジ ェ ク ト を作成する
こ のサンプル プ ロ ジ ェ ク ト では、 ザ イ リ ン ク ス SDK を起動 し 、 Vivado Design Suite を用いて作成 さ れた Zynq
UltraScale+ 用ハー ド ウ ェ ア プ ラ ッ ト フ ォ ーム を使用 し てベア メ タ ル アプ リ ケーシ ョ ン を作成 し ます。34 ページの
図 3-1 に示す SDK の New Project ウ ィ ザー ド は、 Zynq UltraScale+ デバ イ ス のプ ロ セ ッ シ ン グ サブシ ス テ ム用にベア メ タ ル (ス タ ン ド ア ロ ン) アプ リ ケーシ ョ ン を作成する ためのオプシ ョ ン を示 し ています。
ARM Cortex A53 ベースの APU 用 FSBL (第 1 段階ブー ト ローダー ) を作
成する
第 1 段階ブー ト ロ ーダー (FSBL) の作成を開始 し ます。 Zynq UltraScale+ は APU ま たは RPU 上で実行する FSBL をサ ポー ト し ます。 こ のため、 ユーザーは必要な ARM プ ロ セ ッ サに FSBL を ロ ー ド で き、 ロ ー ド さ れた FSBL は必要な アプ リ ケーシ ョ ン ま たは第 2 段階ブー ト ロ ーダーを必要な コ アに ロ ー ド し ます。
こ の例では、 ARM Cortex A53 コ ア 0 を ターゲ ッ ト と し た FSBL イ メ ージ を作成 し ます。
1. SDK が起動 し ていない場合は起動 し ます。
2. 第 2 章で作成 し たプ ロ ジ ェ ク ト に基づいて ワー ク スペース パス を設定し ます。 た と えば、
C:\edt\edt_zcu102\edt_zcu102.sdk です。
3. [File] → [New] → [Application Project] を ク リ ッ ク し ます。
4. [Application Project] で、 次の よ う にプ ロ ジ ェ ク ト を設定 し ます。
a. [Project name] に 「fsbl_a53」 と 入力 し ます。
b. [Use default location] はオ ン の ま ま に し ます。
c. [OS Platform] ド ロ ッ プダ ウ ン リ ス ト で [standalone] を選択 し ます。
5. [Target Hardware] では、 次を確認お よ び設定 し ます。
a. 第 2 章で Vivado か ら エ ク ス ポー ト さ れたハー ド ウ ェ ア プ ラ ッ ト フ ォーム と し て、 [Hardware Platform] に [edt_zcu102_wrapper_hw_platform_0] が選択 さ れてい る こ と を確認 し ます。
b. [Processor] で [psu_cortexa53_0] を選択 し ます。
6. [Target Software] では、 次を設定 し ます。
a. [Language] で [C] をオンに し ます。
b. [Compiler] で [64-bit] を選択 し ます。
c. [Hypervisor Guest] で [No] を選択 し ます。
X-Ref Target - Figure 3-1
7. [Next] を ク リ ッ ク し ます。 [Templates] が表示 さ れ ます。
8. [Available Templates] で [Zynq MP FSBL] を ク リ ッ ク し ます。
9. [Finish] を ク リ ッ ク し ます。 SDK に よ っ てボー ド サポー ト パ ッ ケージお よ び FSBL アプ リ ケーシ ョ ン が作成 さ れ ます。 FSBL はデフ ォ ル ト で基本 メ ッ セージ を表示す る よ う に設定 さ れてい ます。 次に、 ユーザーは FSBL ビル ド 設定を変 更 し てデバ ッ グ メ ッ セージ を有効に し ます。 FSBL のデバ ッ グ オプシ ョ ン の一覧は、 [fsbl_a53] → [src] → [xfsbl_debug.h] フ ァ イ ルを参照 し て く だ さ い。 こ の例では、 次を実行 し て FSBL_DEBUG_INFO を有効に し ます。
1. [Project Explorer] で fsbl_a53 アプ リ ケーシ ョ ン を右 ク リ ッ ク し ます。
2. [C/C++ Build] → [Settings] を ク リ ッ ク し ます。
3. [Settings] → [Tool Settings] → [Symbols] を ク リ ッ ク し ます。
4. [Add] を ク リ ッ ク し ます。
X-Ref Target - Figure 3-2
5. 「FSBL_DEBUG_INFO」 と 入力 し ます。
シ ン ボルは、 次の図に示す よ う に設定 し ます。
6. [OK] を ク リ ッ ク す る と 、 変更が適用 さ れ、 [Settings] ダ イ ア ロ グ ボ ッ ク ス が閉 じ ます。
7. fsbl_a53 アプ リ ケーシ ョ ン を右 ク リ ッ ク し て [Clean Project] を ク リ ッ ク し ます。
注記: [Project] → [Build Automatically] を ク リ ッ ク する と 、 SDK はアプ リ ケーシ ョ ン を自動的に構築 し ます。
8. FSBL の実行フ ァ イ ルが fsbl_a53 → debug → fsbl_a53.elf と し て保存 さ れ ます。
こ の例の fsbl_a53 と い う アプ リ ケーシ ョ ン名は、 FSBL が APU (ARM Cortex A53 コ ア) を タ ーゲ ッ ト に し てい る こ と を示 し てい ます。
ARM Cortex R5 ベースの RPU 用 FSBL (第 1 段階ブー ト ローダー ) を作成
する
次の手順に従っ て ARM Cortex R5 コ ア用に FSBL を作成する こ と も で き ます。
X-Ref Target - Figure 3-3
図 3-3: [Enter Value] ダ イ ア ログ ボ ッ ク ス
X-Ref Target - Figure 3-4
1. [File] → [New] → [Application Project] を ク リ ッ ク し て、 New Project ウ ィ ザー ド を開 き ます。
2. [Application Project] で、 上の図に示す よ う にプ ロ ジ ェ ク ト を設定 し ます。
a. [Project name] に 「fsbl_r5」 と 入力 し ます。
b. [Use default location] はオ ン の ま ま に し ます。
c. [OS Platform] ド ロ ッ プダ ウ ン リ ス ト で [standalone] を選択 し ます。
3. [Target Hardware] では、 次を確認お よ び設定 し ます。
a. 第 2 章で Vivado か ら エ ク ス ポー ト さ れたハー ド ウ ェ ア プ ラ ッ ト フ ォーム と し て、 [Hardware Platform] に
[edt_zcu102_wrapper_hw_platform_0] が選択 さ れてい る こ と を確認 し ます。
b. [Processor] で [psu_cortexr5_0] を選択 し ます。
4. [Target Software] では、 次を設定 し ます。
a. [Language] で [C] をオンに し ます。
b. [Board Support Package] の [Create New] をオンに し て 「r5_bsp」 と 入力 し ます。
5. [Next] を ク リ ッ ク し ます。
6. [Available Templates] で [Zynq MP FSBL] を ク リ ッ ク し ます。
7. [Finish] を ク リ ッ ク し ます。
X-Ref Target - Figure 3-5
こ れに よ り 、 ボー ド サポー ト パ ッ ケージ、 およ び Zynq UltraScale+ RPU ARM Cortex R5 コ ア 0 を ターゲ ッ ト に し た FSBL アプ リ ケーシ ョ ン が作成 さ れ ます。
ARM Cortex A53 ベースの APU 用ベア メ タ ル ア プ リ ケーシ ョ ン を作成
する
FSBL が作成 さ れたので、 ARM A53 コ ア 0 を タ ーゲ ッ ト に し た簡単なベア メ タ ル アプ リ ケーシ ョ ン を作成で き ます。
こ の例では、第 2 章の 「サンプル プ ロ ジ ェ ク ト : ARM Cortex-A53 か ら Hello World アプ リ ケーシ ョ ン を実行する」 で
作成 し た test_a53 アプ リ ケーシ ョ ン を使用し ます。
test_a53 では簡単な Hello World アプ リ ケーシ ョ ン を選択 し ま し た。 こ のアプ リ ケーシ ョ ンは、 APU ま たは RPU 上で 動作 し てい る FSBL に よ り APU に ロ ー ド で き ます。
SDK は、 Zynq UltraScale+ デバ イ ス でのアプ リ ケーシ ョ ン実行を簡単にす る その他のベア メ タ ル アプ リ ケーシ ョ ン テ ンプ レー ト をい く つか提供 し てい ます。 ま た、 [Available Templates] に [Empty Application] を選択 し て、 アプ リ ケー シ ョ ン フ ォルダー構造にカ ス タ ムのアプ リ ケーシ ョ ン コー ド を コ ピーま たは作成する こ と がで き ます。
ア プ リ ケーシ ョ ン ソ ース コ ー ド を編集する
1. [Project Explorer] で [Test_a53] → [src] → [helloworld.c] を ク リ ッ ク し ます。
こ れに よ り 、 test_a53 アプ リ ケーシ ョ ン用の helloworld.c ソ ース フ ァ イ ルが開き ます。
2. 次の よ う に、 print コ マン ド の引数を編集 し ます。
Print("Hello World from APU\n\r");
3. Ctrl + S キーを押 し て変更を保存 し ます。
4. test_a53 プ ロ ジ ェ ク ト を右 ク リ ッ ク し て、 [Build Project] を ク リ ッ ク し ます。
X-Ref Target - Figure 3-6
5. アプ リ ケーシ ョ ンが コ ンパ イ ル さ れ、 リ ン ク が正常に確立 さ れ、 test_a53.elf フ ァ イ ルが [test_a53] → [Debug] フ ォ ルダーに生成 さ れてい る こ と を確認 し ます。
ARM Cortex R5 ベースの RPU 用ベア メ タル アプ リ ケーシ ョ ン を作成する
こ の例では、 ARM Cortex-R5 ベース の RPU 用ベア メ タ ル アプ リ ケーシ ョ ン プ ロ ジ ェ ク ト を作成 し ます。 こ のプ ロ ジ ェ ク ト では、 こ のチ ュ ー ト リ アルで リ リ ース さ れたデザ イ ン フ ァ イ ル (ZIP フ ァ イ ル) に含まれ る アプ リ ケーシ ョ
ン ソ ース フ ァ イ ルを イ ンポー ト する必要があ り ます。 こ れ ら のデザ イ ン フ ァ イ ルの場所は、付録 B の 「 こ のチ ュー
ト リ アルのデザ イ ン フ ァ イ ル」 を参照 し て く だ さ い。
ア プ リ ケーシ ョ ン プ ロ ジ ェ ク ト を作成する
1. SDK で [File] → [New] → [Application Project] を ク リ ッ ク し て、 New Project ウ ィ ザー ド を開 き ます。
2. 次の表の情報に基づいて、 ウ ィ ザー ド 画面で選択操作を実行 し ます。
注記: r5_bsp のボー ド サポー ト パ ッ ケージは、「ARM Cortex R5 ベースの RPU 用 FSBL (第 1 段階ブー ト ローダー) を
作成する」 の手順を実行し た際に作成 さ れています。
3. [Finish] を ク リ ッ ク し ます。
New Project ウ ィ ザー ド が閉 じ 、SDK に よ っ て testapp_r5 アプ リ ケーシ ョ ン プ ロ ジ ェ ク ト が [Project Explorer] の下 に作成 さ れます。
X-Ref Target - Figure 3-7
図 3-7: [CDT Build Console]
ウ ィ ザー ド 画面 シ ス テム プ ロパテ ィ 設定または使用する コ マ ン ド
Application Project Project name testapp_r5
Use default location オン
Hardware Platform edt_zcu102_wrapper_hw_platform
Processor psu_cortexr5_0
OS Platform standalone
Language C
Board Support Package [Use existing] を オ ン に し て 「r5_bsp」 と 入力す る 。