Zynq UltraScale+ MPSoC:
エ ンベデ ッ ド
デザイ ン
チ ュ ー ト リ アル
効率的な エ ンベデ ッ ド
システムを
構築する ためのハンデ ィ
ガイ ド
UG1209 (v2018.3) 2018 年 12 月 21 日この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資料に
よっては英語版の更新に対応していないものがあります。日本語版は参考用としてご使用の上、最新情報につきまし
ては、必ず最新英語版をご参照ください。
次の表に、 こ の文書の改訂履歴を示 し ます。
セ ク シ ョ ン 改訂内容
2018 年 12 月 21 日 バージ ョ ン 2018.3
資料全体 Vivado® Design Suite および PetaLinux 2018.3 で検証。
2018 年 7 月 31 日 バージ ョ ン 2018.2
資料全体 Vivado® Design Suite および PetaLinux 2018.2 で検証。
2018 年 6 月 5 日 バージ ョ ン 2018.1
資料全体 Vivado Design Suite および PetaLinux 2018.1 で検証。
「セキ ュ ア ブー ト シーケ ン ス」 よ り 詳細な情報お よ び手順でア ッ プデー ト 。
改訂履歴 . . . 2
第 1 章: 概要
こ のガ イ ド について . . . 5 Zynq UltraScale+ デバ イ ス が提供する シ ン グル チ ッ プ ソ リ ューシ ョ ン . . . 6 Vivado ツールでデザ イ ン プ ロ セ ス を加速. . . 9 必要なセ ッ ト ア ッ プ . . . 9第 2 章: Zynq UltraScale+ MPSoC プ ロ セ ッ シ ング システムのコ ン フ ィ ギ ュ レーシ ョ ン
Zynq UltraScale+ シ ス テ ムの コ ン フ ィ ギ ュ レーシ ョ ン . . . 13サンプル プ ロ ジ ェ ク ト : Zynq UltraScale+ MPSoC の新規エンベデ ッ ド プ ロ ジ ェ ク ト の作成. . . 14
サンプル プ ロ ジ ェ ク ト : Arm Cortex-A53 か ら Hello World アプ リ ケーシ ョ ン を実行. . . 25
サンプル プ ロ ジ ェ ク ト : Arm Cortex-R5 か ら Hello World アプ リ ケーシ ョ ン を実行. . . 29
その他の情報 . . . 32
第 3 章: PS サブ システム用ソ フ ト ウ ェ アのビル ド
Zynq UltraScale+ のプ ロ セ ッ シ ン グ ユニ ッ ト . . . 33 サンプル プ ロ ジ ェ ク ト : SDK でのベア メ タ ル アプ リ ケーシ ョ ン プ ロ ジ ェ ク ト の作成 . . . 34 サンプル プ ロ ジ ェ ク ト : PetaLinux を使用 し た Linux イ メ ージの作成 . . . 44第 4 章: SDK を使用 し たデバ ッ グ
ザ イ リ ン ク ス シ ス テ ム デバ ッ ガー . . . 50 SDK を使用 し た ソ フ ト ウ ェ アのデバ ッ グ . . . 52 ザ イ リ ン ク ス ソ フ ト ウ ェ ア コ マン ド ラ イ ン ツール (XSCT) を使用 し たデバ ッ グ . . . 54第 5 章: ブー ト および コ ン フ ィ ギ ュ レーシ ョ ン
シ ス テ ム ソ フ ト ウ ェ ア . . . 64APU の Linux と RPU のベア メ タ ル . . . 66
SD ブー ト のブー ト シーケ ン ス . . . 67 QSPI ブー ト モー ド のブー ト シーケ ン ス . . . 76 JTAG を使用し た QSPI ブー ト モー ド のブー ト シーケ ン ス . . . 88 USB ブー ト モー ド のブー ト シーケ ン ス . . . 91 セキ ュ ア ブー ト シーケ ン ス . . . 98
第 6 章: システム デザイ ン例
サンプル デザ イ ン 1: GPIO、 タ イ マー、 お よび割 り 込みの使用. . . 131 サンプル デザ イ ン 2: グ ラ フ ィ ッ ク およびデ ィ ス プ レ イ ポー ト ベース のサブシ ス テ ムのセ ッ ト ア ッ プ例 . . . . 150付録 A: セキ ュ ア ブー ト での問題のデバ ッ グ
PUF 登録が実行 さ れてい る かど う かの確認 . . . 156 ブー ト イ メ ージの読み出 し . . . 156ソ リ ュ ーシ ョ ン セン ター . . . 157 Documentation Navigator およびデザ イ ン ハブ. . . 157 こ のチ ュ ー ト リ アルのデザ イ ン フ ァ イ ル . . . 158 ザ イ リ ン ク ス リ ソ ース . . . 158 ト レーニ ン グ リ ソ ース . . . 159 お読み く だ さ い: 重要な法的通知 . . . 159
概要
こ のガ イ ド について
こ のガ イ ド では、Zynq® UltraScale+™ MPSoC を使用する ザ イ リ ン ク ス Vivado® Design Suite フ ローについて説明 し ま
す。 サンプル プ ロ ジ ェ ク ト は、 ザ イ リ ン ク ス の ZCU102 Rev1 評価ボー ド を ターゲ ッ ト と し てい ます。 使用 し た ツー
ルのバージ ョ ンは、2018.3 の Vivado およびザ イ リ ン ク ス ソ フ ト ウ ェ ア開発キ ッ ト (SDK) です。
注記: SDK を Vivado Design Suite の一部 と し て イ ン ス ト ールする には、 イ ン ス ト ー ラ ーに SDK を含め る よ う 選択する
必要があ り ます。8 ページの 「ザ イ リ ン ク ス ソ フ ト ウ ェ ア開発キ ッ ト (SDK)」 を参照 し て く だ さ い。 こ のガ イ ド のサンプル プ ロ ジ ェ ク ト は、64 ビ ッ ト の Windows 7 オペレーテ ィ ン グ シ ス テ ムで実行する ザ イ リ ン ク ス ツール、 お よ び 64 ビ ッ ト の Linux オペレーテ ィ ン グ シ ス テ ムで実行する PetaLinux を使用 し て作成 さ れています。 ほかの Windows イ ン ス ト ールで別バージ ョ ンのツールを実行 し た場合、 結果が異な る こ と があ り ます。 サンプル プ ロ ジ ェ ク ト は、 エンベデ ッ ド デザ イ ンの次の項目について紹介する こ と に重点を置いています。 注記: チ ュー ト リ アルで説明 さ れてい る ハー ド ウ ェ ア上で Linux をブー ト する手順は、 2018.3 リ リ ース の PetaLinux ツール特定の も のです。 こ のガ イ ド の Linux 部分の演習を実行する には、 PetaLinux ツールを 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) • デ ィ ス プ レ イ ポー ト および SATA を含む一連の高速ペ リ フ ェ ラ ル プ ロ グ ラ マブル ロ ジ ッ ク には、 プ ロ グ ラ マブル ロ ジ ッ ク セルに加え、 次に示す高性能ペ リ フ ェ ラ ル も 統合 さ れてい ます。 • PCI Express 用統合ブ ロ ッ ク • Interlaken 用統合ブ ロ ッ ク • 100G Ethernet 用統合ブ ロ ッ ク • シ ス テ ム モニ ター • ビデオ コーデ ッ ク ユニ ッ ト Zynq UltraScale+ の PS と PL は、 高性能で高帯域幅の さ ま ざ ま な PS-PL イ ン ターフ ェ イ ス を使用し て厳密に ま たは柔 軟に連動 さ せ る こ と がで き ます。
こ の よ う な高度なデバ イ ス のデザ イ ン プ ロ セ ス を単純にする ため、 ザ イ リ ン ク ス では Vivado Design Suite、 ソ フ ト
ウ ェ ア開発キ ッ ト (SDK)、 および Linux 用 PetaLinux ツールを提供し てい ます。 こ れ ら のツールは、 FPGA を結合 し
た SoC デバ イ ス向けのエンベデ ッ ド シ ス テ ム デザ イ ン を容易にする ために必要な も のをすべて提供 し ます。 こ れ ら
の ツールを組み合わせ る こ と で、 ハー ド ウ ェ ア と ソ フ ト ウ ェ アのアプ リ ケーシ ョ ンの設計、 デバ ッ グ、 コ ー ド の実 行が可能にな り 、 デザ イ ン を実際のボー ド に移行 し て検証お よ び評価を実行で き ます。
Vivado Design Suite
ザ イ リ ン ク ス では、 さ ま ざ ま な開発シ ス テ ム ツールを Vivado Design Suite に ま と めて提供 し ています。 Vivado Design Suite の複数のエデ ィ シ ョ ン をエンベデ ッ ド シ ス テ ム開発に使用で き ます。 こ のガ イ ド では、 System Edition を使用 し ます。 次の図に Vivado Design Suite の各エデ ィ シ ョ ンの機能を示し ます。
その他の Vivado コ ンポーネン ト
Vivado のその他の コ ンポーネン ト は次の と お り です。
• ザ イ リ ン ク ス エンベデ ッ ド プ ロ セ ッ サ用のエンベデ ッ ド / ソ フ ト IP
• 資料
• サンプル プ ロ ジ ェ ク ト
X-Ref Target - Figure 1-1
ザイ リ ン ク ス ソ フ ト ウ ェ ア開発キ ッ ト (SDK)
ソ フ ト ウ ェ ア開発キ ッ ト (SDK) は Vivado を補完する統合開発環境で、C/C++ エンベデ ッ ド ソ フ ト ウ ェ ア アプ リ ケー
シ ョ ンの作成お よ び検証に使用 し ます。SDK は Eclipse オープン ソ ース フ レーム ワー ク で構築 さ れてお り 、 ソ フ ト
ウ ェ ア設計者や設計チームに と っ て使い慣れた環境です。
Vivado Design Suite を イ ン ス ト ールする際に、 イ ン ス ト ールに含め る必要のあ る オプシ ョ ンの ソ フ ト ウ ェ ア ツール と
し て SDK を選択で き ます。 詳細は、10 ページの 「 イ ン ス ト ール要件」 を参照 し て く だ さ い。
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 デバ イ ス向けの Linux OS 環境を完全に コ ン フ ィ ギ ュ
レーシ ョ ン、 ビル ド 、 お よ び運用で き ます。
詳細は、 『PetaLinux ツール資料: リ フ ァ レ ン ス ガ イ ド 』 (UG1144) [参照 7] を参照 し て く だ さ い。
PetaLinux ツールのデザ イ ン ハブは、 PetaLinux ツールの情報および資料への リ ン ク を提供 し ます。 詳細は、
Vivado ツールでデザイ ン プ ロ セス を加速
Vivado Design Suite ツールを使用 し てハー ド ウ ェ アにデザ イ ン ソ ース を追加で き ます。 ツールには、 既存のプ ロ ジ ェ ク ト に IP を追加 し た り 、 ク ロ ッ ク や リ セ ッ ト な どのポー ト の接続を作成し た り する プ ロ セ ス を簡単に実行で き る IP イ ン テ グ レー タ ーが含まれます。
Vivado ツール と IP イ ン テ グ レーターは、 一連のハー ド ウ ェ ア シ ス テ ム開発を完了ま でサポー ト し ます。 こ れには、 Zynq UltraScale+ プ ロ セ ッ シ ン グ シ ス テ ムの仕様、 ペ リ フ ェ ラ ル、 各コ ンポーネン ト の接続、 それ ら の詳細な設定な ど が含ま れます。
SDK は ソ フ ト ウ ェ ア開発に使用 さ れ、 Vivado Design Suite の一部 と し て利用で き ます。 ま たは、 ほかのザ イ リ ン ク ス
ツールを イ ン ス ト ールせずに、SDK のみを イ ン ス ト ール し て使用する こ と も 可能です。 SDK は、 ソ フ ト ウ ェ ア アプ
リ ケーシ ョ ンのデバ ッ グに も 使用で き ます。
Zynq UltraScale+ プ ロ セ ッ シ ン グ シ ス テ ム (PS) は、 FPGA (プ ロ グ ラ マブル ロ ジ ッ ク (PL)) をプ ロ グ ラ ム し な く て も 、
ブー ト し て動作 さ せ る こ と がで き ます。 ただ し 、 フ ァ ブ リ ッ ク で ソ フ ト IP を使用し た り 、 EMIO を用いて PS ペ リ
フ ェ ラ ルを接続す る には、PL をプ ロ グ ラ ムする必要があ り ます。 PL のプ ロ グ ラ ムには SDK まは Vivado ハー ド ウ ェ
ア マネージ ャーを使用で き ます。
エンベデ ッ ド デザ イ ン プ ロ セ ス の詳細は、 『Vivado Design Suite チ ュー ト リ アル: エンベデ ッ ド プ ロ セ ッ サ ハー ド
ウ ェ ア デザ イ ン』 (UG940) [参照 2] を参照 し て く だ さ い。
Zynq UltraScale+ プ ロ セ ッ シ ン グ シ ス テ ムの詳細は、『Zynq UltraScale+ プ ロ セ ッ シ ン グ シ ス テ ム製品ガ イ ド 』 (PG201)
[参照 9] を参照 し て く だ さ い。
必要なセ ッ ト ア ッ プ
ツールについて詳 し く 説明す る 前に、 ツールが適切に イ ン ス ト ール さ れ、 使用す る 環境が こ のガ イ ド のサンプル プ
ロ ジ ェ ク ト セ ク シ ョ ンに記載 さ れてい る要件に一致する かを確認 し ます。
ハー ド ウ ェ ア要件
こ のガ イ ド では、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 以上の解像度)
イ ン ス ト ール要件
Vivado Design Suite お よび SDK
2018.3 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\2018.3\bin\xsdk.bat か ら 起動可能です。
X-Ref Target - Figure 1-2
PetaLinux ツール
こ のチ ュ ー ト リ アルの Linux 部分の演習で実行する PetaLinux ツールを イ ン ス ト ール し ます。 PetaLinux ツールは、 次
のいずれかが稼働 し てい る Linux ホ ス ト シ ス テ ムで実行し ます。
• RHEL 7.2/7.3 (64 ビ ッ ト )
• CentOS 7.2/7.3 (64 ビ ッ ト )
• Ubuntu 16.04.1/2 (64 ビ ッ ト )
注記: 詳細は、 ザ イ リ ン ク ス ア ンサー 70395 を参照 し て く だ さ い。
こ の ツールは、 専用 Linux ホ ス ト シ ス テ ム、 ま たは Windows 開発プ ラ ッ ト フ ォーム上で こ れ ら の Linux オペレー
テ ィ ン グ シ ス テ ムのいずれかが稼働 し てい る仮想マシ ン を使用で き ます。
PetaLinux ツールを選択し たシ ス テ ムに イ ン ス ト ールする には、 次を実行する必要があ り ます。
• PetaLinux 2018.3 SDK ツールを、ザ イ リ ン ク ス の ウ ェ ブサ イ トか ら ダ ウ ン ロ ー ド す る 。
• ZCU102 PetaLinux BSP (ZCU102 BSP (プ ロ ダ ク シ ョ ン シ リ コ ン)) を 2018.3 のダ ウ ン ロー ド ページか ら ダ ウ ン
ロ ー ド す る 。 • ワー ク ス テーシ ョ ン ま たは仮想マシ ンに共通のシ ス テ ム パ ッ ケージおよび ラ イ ブ ラ リ を追加する。 詳細は、 『PetaLinux ツール資料: リ フ ァ レ ン ス ガ イ ド 』 (UG1144) [参照 7] の 「 イ ン ス ト ール要件」 を参照 し て く だ さ い。
必要な環境
• 8 GB RAM (ザ イ リ ン ク ス ツールで推奨 さ れ る最小サ イ ズ) • 2 GHz CPU ク ロ ッ ク ま たは同等の CPU (少な く と も 8 つの コ ア) • 100 GB のハー ド デ ィ ス ク 空き容量PetaLinux パ ッ ケージの展開
デフ ォ ル ト では、 パ ッ ケージが現在のデ ィ レ ク ト リ のサブデ ィ レ ク ト リ と し て イ ン ス ト ール さ れます。 イ ン ス ト ー ル パス を指定する こ と も で き ます。 ダ ウ ン ロー ド し た PetaLinux イ ン ス ト ー ラ ーを実行し ます。 注記: PetaLinux の イ ン ス ト ール パスは短 く し て く だ さ い。 パス が 255 文字を超え る と 、 PetaLinux のビル ド がエ ラ ー にな り ます。 bash> ./petalinux-v2018.3-final-installer.run PetaLinux は、 こ の コ マン ド の作業デ ィ レ ク ト リ の直下にあ る petalinux-v2018.3-final デ ィ レ ク ト リ に イ ン ス ト ール さ れます。 イ ン ス ト ー ラ ーを ホーム デ ィ レ ク ト リ (/home/user) に置いた場合、 PetaLinux は /home/user/petalinux-v2018.3-final に イ ン ス ト ール さ れます。 PetaLinux 環境のセ ッ ト ア ッ プ、 プ ロ ジ ェ ク ト の作成、 およびプ ロ ジ ェ ク ト の使用例の詳細は、第3 章 「PS サブシ ス テ ム用 ソ フ ト ウ ェ アのビル ド 」 を参照 し て く だ さ い。PetaLinux の イ ン ス ト ールおよび使用方法に関する詳細は、 『PetaLinux ツール資料: リ フ ァ レ ン ス ガ イ ド 』 (UG1144) [参照 7] に記載 さ れています。ソ フ ト ウ ェ アの ラ イ セ ン ス
ザ イ リ ン ク ス の ソ フ ト ウ ェ アには FLEXnet ラ イ セン ス が使用 さ れてい ます。 ソ フ ト ウ ェ ア を初めて起動する際、 ラ
イ セ ン ス の検証プ ロ セ ス が実行 さ れます。 ラ イ セ ン ス検証で有効な ラ イ セ ン ス が検出 さ れない場合、 ラ イ セ ン ス ウ ィ ザー ド に従っ て ラ イ セ ン ス を取得 し 、 イ ン ス ト ール し た ツールでその ラ イ セ ン ス を使用で き る よ う に し ます。 ソ フ ト ウ ェ アの フル バージ ョ ンが不要な場合は、 評価版 ラ イ セン ス を使用で き ます。 イ ン ス ト ールの手順 と 詳細は、
『Vivado Design Suite ユーザー ガ イ ド : リ リ ース ノ ー ト 、 イ ン ス ト ールおよび ラ イ セン ス』 (UG973) [参照 3] を参照し
て く だ さ い。
チ ュ ー ト リ アルのデザイ ン フ ァ イル
こ のチ ュ ー ト リ アルのデザ イ ン フ ァ イ ルのダ ウ ン ロー ド については、158 ページの 「 こ のチ ュー ト リ アルのデザ イ
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 ベース のデザ イ ンの 作成手順を説明 し ます。 こ の章では、 基本的な PS コ ン フ ィ ギ ュ レーシ ョ ンに加え、 保護 さ れた メ モ リ およびペ リ フ ェ ラ ルを含むサブシ ス テ ム を作成す る ための隔離設定の概念について も 説明 し ます。PS ブ ロ ッ ク での こ のア ド バン ス コ ン フ ィ ギ ュ レーシ ョ ン モー ド を使用する と 、 マ ス ター と 専用 メ モ リ およびペ リ フ ェ ラ ルで構成 さ れる サブシ ス テ ム を設定で き ます。 この保護は、Zynq UltraScale+ PS ブ ロ ッ ク の XMPU および XPPU に よ り 提供 さ れます。 隔離設定では コ ンポーネン ト
サン プル プ ロ ジ ェ ク ト : Zynq UltraScale+ MPSoC の新規
エ ンベデ ッ ド プ ロ ジ ェ ク ト の作成
こ の例では、Vivado Design Suite を起動し 、 エンベデ ッ ド プ ロ セ ッ シ ン グ シ ス テ ムのプ ロ ジ ェ ク ト を最上位 と し て作
成 し ます。
デザイ ンの開始
1. Vivado Design Suite を起動 し ます。
2. [Quick Start] セ ク シ ョ ンの [Create Project] を ク リ ッ ク し、 New Project ウ ィ ザー ド を開き ます。
3. ウ ィ ザー ド の各ページで次の表の情報に基づいて設定を選択 し ます。
4. [Finish] を ク リ ッ ク し ます。 New Project ウ ィ ザー ド が閉 じ 、 作成 し たプ ロ ジ ェ ク ト が Vivado デザ イ ン ツールで
開 き ます。
表 2-1: New Project ウ ィ ザー ド オプシ ョ ン
ウ ィ ザー ド ページ シ ス テム プ ロパテ ィ 設定または使用する コ マ ン ド
Project Name Project name edt_zcu102
Project location C:/edt
Create project subdirectory オン
Project Type デザ イ ンの ソ ース タ イ プを指定。 RTL ま
たは合成済み EDIF か ら 開始可能。
RTL Project
Do not specify sources at this time オ フ
Add Sources 変更な し 。
Add Constraints 変更な し 。
Default Part Select Boards
Display Name Zynq UltraScale+ ZCU102 Evaluation
Board
ブ ロ ッ ク デザイ ン プ ロ ジ ェ ク ト の作成
IP イ ン テ グ レーターを使用 し、 ブ ロ ッ ク デザ イ ン プ ロ ジ ェ ク ト を作成 し ます。
1. Flow Navigator の [IP Integrator] → [Create Block Design] を ク リ ッ ク し ます。
[Create Block Design] ダ イ ア ロ グ ボ ッ ク ス が開き ます。
2. [Create Block Design] ダ イ ア ロ グ ボ ッ ク ス で次の よ う に選択 し ます。
3. [OK] を ク リ ッ ク し ます。
[Diagram] ウ ィ ン ド ウ が こ のデザ イ ンが空であ る こ と を示す メ ッ セージ と 共に表示 さ れます。 デザ イ ン を開始す
る には、 カ タ ロ グか ら IP を追加 し ます。
4. [Add IP] を ク リ ッ ク し ます。
5. [Search] フ ィ ール ド に 「zynq」 と 入力し て Zynq デバ イ ス IP を検索 し ます。
6. ZYNQ UltraScale+ MPSoC IP を ダブル ク リ ッ ク し 、 ブ ロ ッ ク デザ イ ンに追加 し ます。
次の図に示す よ う に、Zynq UltraScale+ MPSoC プ ロ セ ッ シ ン グ シ ス テ ム IP ブ ロ ッ ク が [Diagram] ウ ィ ン ド ウ に表
示 さ れます。
X-Ref Target - Figure 2-1
図 2-1: [Create Block Design]
表 2-2: Create Block Design ウ ィ ザー ド の設定
ウ ィ ザー ド ページ シ ス テム プ ロパテ ィ 設定または使用する コ マ ン ド
Create Block Design Design name edt_zcu102
Directory <Local to Project>
Vivado での Zynq UltraScale+ MPSoC プ ロ セ ッ シ ング シス テムの設定
Zynq UltraScale+ MPSoC プ ロ セ ッ シ ン グ シ ス テ ム をデザ イ ンに追加し たので、 オプシ ョ ン を設定 し ます。
1. [Diagram] ウ ィ ン ド ウ で、ZYNQ UltraScale+ MPSoC プ ロ セ ッ シ ン グ シ ス テ ム ブ ロ ッ ク を ダブル ク リ ッ ク し ます。
次の図に示す [Re-customize IP] ダ イ ア ロ グ ボ ッ ク ス が開き ます。 デフ ォル ト では、 プ ロ セ ッ シ ン グ シ ス テ ムに ペ リ フ ェ ラ ルは接続 さ れてい ません。
2. [Cancel] を ク リ ッ ク する と 、 デザ イ ンが変更 さ れずに ウ ィ ザー ド が閉じ ます。
X-Ref Target - Figure 2-2
図 2-2: Zynq UltraScale+ MPSoC プ ロセ ッ シ ング システム IP ブ ロ ッ ク
X-Ref Target - Figure 2-3
ヒ ン ト: [Diagram] ウ ィ ン ド ウ で、 次の図に示すよ う なデザ イ ン アシ ス タ ン ト が使用可能であ る こ と を示す メ ッ セー ジが表示 さ れます。 デザ イ ン アシ ス タ ン ト が利用可能な場合、 リ ン ク を ク リ ッ ク する と Vivado に よ り デザ イ ンで こ の手順が実行 さ れます。
3. ZCU102 ボー ド 用に作成 さ れたテ ンプ レー ト を使用 し ます。 [Run Block Automation] リ ン ク を ク リ ッ ク し ます。
[Run Block Automation] ダ イ ア ロ グ ボ ッ ク ス が開き ます。
4. [OK] を ク リ ッ ク し てデフ ォル ト のプ ロ セ ッ シ ン グ シ ス テ ム オプシ ョ ン を選択 し、 デフ ォル ト のピ ン接続を作成
し ます。
こ の コ ン フ ィ ギ ュ レーシ ョ ン ウ ィ ザー ド に よ り 、ZCU102 のボー ド レ イ ア ウ ト に従っ て MIO (Multiplexed I/O) ピ
ンが割 り 当て ら れた複数のペ リ フ ェ ラ ルがプ ロ セ ッ シ ン グ シ ス テ ムで有効にな り ます。 た と えば、 UART0 およ
び UART1 が有効にな っ てい ます。 UART 信号は USB-UART コ ネ ク タ に接続 さ れ、 UART を介 し て ZCU102 ボー
ド の USB コ ンバーター チ ッ プに接続 さ れます。
5. こ れを確認す る には、 ブ ロ ッ ク 図で Zynq UltraScale+ MPSoC プ ロ セ ッ シ ン グ シ ス テ ム ブ ロ ッ ク を ダブル ク リ ッ
ク し ます。
Zynq UltraScale+ MPSoC のブ ロ ッ ク 図でペ リ フ ェ ラ ル名の横に表示 さ れてい る チ ェ ッ ク マー ク は、 それ ら の I/O ペ リ フ ェ ラ ルがア ク テ ィ ブであ る こ と を示 し ます。
X-Ref Target - Figure 2-4
図 2-4: デザイ ン アシス タ ン ト の リ ン ク
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] および [AXI HPM1 FPD] をオ フに し ます。
X-Ref Target - Figure 2-6
PS-PL イ ン ターフ ェ イ スは次の図の よ う にな り ます。
10. [OK] を ク リ ッ ク し て [Re-customize IP] ダ イ ア ロ グ ボ ッ ク ス閉 じ ます。
隔離設定
こ のセ ク シ ョ ンは参照用で、 異な る ユース ケース での隔離設定の重要性について説明 し ます。 隔離設定が必要な ケース は複数あ り ます。 隔離設定はオプシ ョ ンで、 シ ス テ ム要件に応 じ て設定で き ます。 通常、 安全性/セキ ュ リ テ ィ が重要なユース ケース では、 安全部分 と 非安全部分ま たはセキ ュ ア部分 と 非セキ ュ ア部分の間に隔離が必要で す。 こ れには、 マ ス ター (RPU な ど) と その ス レーブ ( メ モ リ 領域およびペ リ フ ェ ラ ル) を含む安全/セキ ュ ア領域を、 デザ イ ンの非安全/非セキ ュ ア領域か ら 隔離する必要があ り ます。 こ の場合、 専用ペ リ フ ェ ラ ルま たは メ モ リ ロ ケー シ ョ ンに TrustZone 属性を適用で き ます。 こ の よ う にする と 、 セキ ュ ア ス レーブにア ク セ ス で き る のは、 有効な ト ラ ス テ ッ ド マ ス ターのみにな り ます。 隔離が必要な別のユース ケース と し て、 プ ラ ッ ト フ ォーム と パワー マネージ メ ン ト があ り ます。 こ の場合、 マ ス タ ー と ス レーブを含む独立 し たサブシ ス テ ム を作成で き ます。 こ れは、 ラ ン タ イ ム パワー マネージ メ ン ト 、 あ る いはア ッ プグ レー ド ま たは回復のための ウ ォーム再起動中に依存性を特定する ために使用 さ れます。Zynq UltraScale+ 再起動 ソ リ ューシ ョ ン Wiki ページに、 こ のユース ケース の例があ り ます。 Zynq
UltraScale+ のザ イ リ ン ク ス メ モ リ 保護ユニ ッ ト (XMPU) およびザ イ リ ン ク ス ペ リ フ ェ ラ ル保護ユニ ッ ト (XPPU) は、
メ モ リ お よ びペ リ フ ェ ラ ルのハー ド ウ ェ ア保護を提供 し ます。 こ れ ら の保護ユニ ッ ト は、TrustZone (TZ) および Zynq
UltraScale+ MPSoC SMMU で提供 さ れる隔離を補足 し ます。
Zynq UltraScale+ の XMPU および XPPU を使用する と 、 SoC レベルで リ ソ ース を隔離で き ます。 Arm MMU および TrustZone を使用する と 、 Arm Coretex-A53 APU 内での隔離が可能です。 ハ イ パーバ イ ザーおよび SMMU を使用する
と 、Coretex-A53 コ ア間の隔離を設定で き ます。 こ れ ら の保護ユニ ッ ト は、 Zynq UltraScale+ MPSoC PS IP ウ ィ ザー ド
の [Isolation Configuration] ページで設定 し ます。 隔離設定は初期化フ ァ イ ル と し てエ ク ス ポー ト さ れ、 ブー ト ロー
ダー ( こ の場合は FSBL (第 1 段階ブー ト ローダー )) の一部 と し て読み込まれます。 詳細は、 『Zynq UltraScale+ MPSoC
テ ク ニ カル リ フ ァ レ ン ス マニ ュ アル』 (UG1085) [参照 5] を参照し て く だ さ い。
X-Ref Target - Figure 2-7
1. ブ ロ ッ ク 図で ZYNQ UltraScale+ MPSoC プ ロ セ ッ シ ン グ シ ス テ ム ブ ロ ッ ク を ダブル ク リ ッ ク し ます。
2. [Switch To Advanced Mode] をオンに し ます。
保護エ レ メ ン ト の境界がブ ロ ッ ク デザ イ ンに赤色のブ ロ ッ ク で示 さ れます。
3. 隔離を設定す る 場合は、[Isolation Configuration] を ク リ ッ ク し ます。
こ のチ ュ ー ト リ アルでは、 隔離設定は使用 し ません。
4. [OK] を ク リ ッ ク し て [Re-customize IP] ダ イ ア ロ グ ボ ッ ク ス閉 じ ます。
注記: 隔離設定の設定方法は、 『Zynq UltraScale+ MPSoC での隔離方法』 (XAPP1320) を参照 し て く だ さ い。
デザイ ンおよび接続ポー ト の検証
次の手順に従っ てデザ イ ン を検証 し ます。
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] ダ イ ア ロ グ ボ ッ ク ス が開き ます。 こ のダ イ ア ロ グ ボ ッ ク ス を使用 し て、 プ ロ セ ッ サ サブ
X-Ref Target - Figure 2-8
ヒ ン ト: HDL ラ ッ パーは、 デザ イ ン ツールに必要な最上位エンテ ィ テ ィ です。
7. [Let Vivado manage wrapper and auto-update] をオンに し、 [OK] を ク リ ッ ク し ます。
8. [Sources] ウ ィ ン ド ウ で、 [Design Sources] の下にあ る [edt_zcu102_wrapper] を展開 し ます。
9. [edt_zcu102_i - edt_zcu102 (edt_zcu102.bd)] と い う 最上位ブ ロ ッ ク 図を右 ク リ ッ ク し、 [Generate Output Products] を
ク リ ッ ク し ます。
次に示す [Generate Output Products] ダ イ ア ロ グ ボ ッ ク ス が開き ます。
注記: Linux ホ ス ト マシ ンで Vivado Design Suite を実行 し てい る場合は、 [Run Settings] の下に追加オプシ ョ ンが表 示 さ れ る こ と があ り ます。 その場合は、 デフ ォ ル ト 設定で続行 し ます。
10. [Generate] を ク リ ッ ク し ます。
こ の手順では、 選択 し た ソ ース に必要なすべての出力フ ァ イ ルを作成 し ます。 た と えば、IP プ ロ セ ッ サ シ ス テ
ムに対す る 制約を手動で作成す る 必要はあ り ません。[Generate Output Products] を実行する と 、 Vivado ツールで
プ ロ セ ッ サ サブシ ス テ ム用の XDC フ ァ イ ルが自動的に生成 さ れます。
11. 「Out-of-context module run was launched for generating output products」 (出力フ ァ イ ル生成のためア ウ ト オブ コ ン テ
キ ス ト モジ ュール run が実行 さ れま し た) と い う メ ッ セージが表示 さ れた ら [OK] を ク リ ッ ク し ます。
12. [Generate Output Products] の処理が完了 し た ら 、 [OK] を ク リ ッ ク し ます。
X-Ref Target - Figure 2-9
13. [Block Design] の [Sources] ウ ィ ン ド ウ で、 [IP Sources] タ ブを ク リ ッ ク し ます。 次の図に示すよ う に、 生成 し た出 力フ ァ イ ルが表示 さ れます。
ハー ド ウ ェ アの SDK へのエ ク スポー ト
こ の例では、Vivado か ら SDK を起動 し ます。
1. [File] → [Export] → [Export Hardware] を ク リ ッ ク し ます。
[Export Hardware] ダ イ ア ロ グ ボ ッ ク ス が開き ます。 [Export to] フ ィ ール ド はデフ ォル ト オプシ ョ ンの [<Local to Project>] の ま まに し ます。
2. [OK] を ク リ ッ ク し ます。
X-Ref Target - Figure 2-10
図 2-10: [IP Sources] の下に生成 さ れた出力
X-Ref Target - Figure 2-11
ヒ ン ト: ハー ド ウ ェ アは ZIP フ ァ イル (<project wrapper>.hdf) でエ ク スポー ト さ れます。 SDK が起動する と フ ァ イ ルは自動的に解凍 さ れ、SDK プ ロ ジ ェ ク ト ハー ド ウ ェ ア プ ラ ッ ト フ ォーム フ ォルダーにすべてのフ ァ イ ル が含ま れます。 3. [File] → [Launch SDK] を ク リ ッ ク し ます。 [Launch SDK] ダ イ ア ロ グ ボ ッ ク ス が開き ます。 ヒ ン ト: SDK はス タ ン ド ア ロ ン モー ド で起動する こ と も で き、 エ ク スポー ト さ れたハー ド ウ ェ アを使用で き ます。 その場合、SDK を起動 し 、 エ ク ス ポー ト さ れた新 し い ターゲ ッ ト ハー ド ウ ェ ア を新 し いプ ロ ジ ェ ク ト の作成時にポ イ ン ト し ます。
4. [Exported location] および [Workspace] には、 デフ ォル ト 設定を選択 し ます。
5. [OK] を ク リ ッ ク し ます。
SDK が開き ます。 SDK を起動する と ハー ド ウ ェ ア記述フ ァ イ ルが自動的に読み込まれます。
X-Ref Target - Figure 2-12
次の図に示す よ う に、[system.hdf] にプ ロ セ ッ シ ン グ シ ス テ ム全体のア ド レ ス マ ッ プが表示 さ れます。
こ こ ま での結果
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 は、 アプ リ ケーシ ョ ンがプ ロ セ ッ シ ン グ シ ス テ ムの最上位で実行可能 と な る よ う に、 こ
X-Ref Target - Figure 2-13
次の手順
こ れで、SDK を使用 し てプ ロ ジ ェ ク ト の ソ フ ト ウ ェ ア開発を開始で き ます。 次のセ ク シ ョ ンでは、 ハー ド ウ ェ ア プ
ラ ッ ト フ ォーム向けの ソ フ ト ウ ェ ア アプ リ ケーシ ョ ンの作成に役立つ情報を提供 し ます。
サン プル プ ロ ジ ェ ク ト : Arm Cortex-A53 から Hello World
ア プ リ ケーシ ョ ン を実行
こ の例では、 ザ イ リ ン ク ス SDK の Xilinx System Debugger を使用 し て、 ボー ド 設定の管理、 ケーブル接続、 PC を介
し たボー ド への接続、 お よ び JTAG モー ド で Arm Cortex-A53 か ら 簡単な hello world ソ フ ト ウ ェ ア アプ リ ケーシ ョ ン
を実行す る 方法を説明 し ます。
1. 電源ケーブルを ボー ド に接続 し ます。
2. USB Micro ケーブルで Windows ホ ス ト マシ ン と ターゲ ッ ト ボー ド の J2 USB JTAG コ ネ ク タ を接続 し ます。
3. USB Micro ケーブルで Windows ホ ス ト マシ ン と ターゲ ッ ト ボー ド の コ ネ ク タ J83 を接続し ます。 こ れは、 USB
か ら シ リ アルへの転送に使用 さ れます。
重要: SW6 ス イ ッ チが、 次の図に示すよ う に JTAG ブー ト モー ド に設定さ れている こ と を確認し ます。
X-Ref Target - Figure 2-14
4. 次の図に示すス イ ッ チを使用 し て ZCU102 ボー ド に電源を投入し ます。
注記: SDK が既に起動 し てい る場合は、 手順 6 に進みます。
5. SDK を開き、 プ ロ ジ ェ ク ト フ ァ イ ルへの ワー ク スペース パス ( こ の例では
C:\edt\edt_zcu102\edt_zcu102.sdk) を設定し ます。
ま たは、 デフ ォ ル ト の ワ ー ク スペース を使用 し て SDK を開き、 後で [File] → [Switch Workspace] を ク リ ッ ク し て 正 し い ワー ク スペース に切 り 替え る こ と も で き ます。
6. シ ス テ ムで割 り 当て ら れてい る COM ポー ト のシ リ アル通信ユーテ ィ リ テ ィ を開き ます。 SDK ではシ リ アル
タ ー ミ ナル ユーテ ィ リ テ ィ が提供 さ れてお り 、 こ れをチ ュー ト リ アルを通 し て使用 し ます。 [Window] → [Show View] → [Other] → [Terminal] を ク リ ッ ク し て こ のユーテ ィ リ テ ィ を開き ます。
7. [Connect] ボ タ ン を ク リ ッ ク し 、 シ リ アル コ ン フ ィ ギ ュ レーシ ョ ン を設定 し て接続 し ます。
8. 変更す る には、[Disconnect] ボ タ ン を ク リ ッ ク し て接続を解除し ます。
X-Ref Target - Figure 2-15
図 2-15: ZCU102 ボー ド の電源ス イ ッ チ
X-Ref Target - Figure 2-16
10. デバ イ ス マネージ ャーでポー ト の詳細を確認 し ます。
UART-0 ター ミ ナルは、 Interface-0 の COM ポー ト に対応し ます。 こ の例では、 デフ ォル ト で UART-0 ター ミ ナル
が設定 さ れてい る ため、COM ポー ト に Interface-0 のポー ト を選択 し ます。
次の図に、Zynq UltraScale+ MPSoC プ ロ セ ッ シ ン グ シ ス テ ム用の標準的な設定を示 し ます。
11. [File] → [New] → [Application Project] を ク リ ッ ク し ます。 New Project ウ ィ ザー ド が開き ます。
12. ウ ィ ザー ド の各ページで次の表の情報に基づいて設定を選択 し ます。
X-Ref Target - Figure 2-17
図 2-17: [Terminal Settings] ダ イ ア ログ ボ ッ ク ス
表 2-3: ス タ ン ド ア ロ ン APU アプ リ ケーシ ョ ンの新規アプ リ ケーシ ョ ン プ ロ ジ ェ ク ト 設定
ウ ィ ザー ド ページ シ ス テム プ ロパテ ィ 設定または使用する コ マ ン ド
Application Project Project name test_a53
Use default location オン
OS Platform standalone
Hardware Platform edt_zcu102_wrapper_hw_platform_0
Processor psu_cortexa53_0
Language C
Compiler 64-bit
Hypervisor Guest No
Board Support Package [Create New] をオンに し て 「test_a53_bsp」 と 入力。
test_a53 アプ リ ケーシ ョ ン プ ロ ジ ェ ク ト および test_a53_bsp ボー ド サポー ト パ ッ ケージ (BSP) プ ロ ジ ェ
ク ト が作成 さ れ、[Project Explorer] ビ ューに表示 さ れます。 こ れ ら 両プ ロ ジ ェ ク ト が自動的に コ ンパ イ ル さ れ、
ELF フ ァ イ ルが作成 さ れます。
13. [test_a53] を右 ク リ ッ ク し て [Run as] → [Run Configurations] を ク リ ッ ク し ます。
14. [Xilinx C/C++ application (System Debugger)] を右 ク リ ッ ク し て [New] を ク リ ッ ク し ます。 test_a53 Debug と い う 名前の新 し い実行コ ン フ ィ ギ ュ レーシ ョ ンが作成 さ れます。 アプ リ ケーシ ョ ンに関連す る コ ン フ ィ ギ ュ レーシ ョ ンは、 起動 コ ン フ ィ ギ ュ レーシ ョ ンの [Main] タ ブに自動入 力 さ れます。 15. [Target Setup] タ ブを ク リ ッ ク し、 設定を確認 し ます。 初期化 Tcl フ ァ イ ルへの コ ン フ ィ ギ ュ レーシ ョ ン パス があ る こ と に注目 し て く だ さ い。 こ こ では psu_init.tcl へのパス です。 こ のフ ァ イ ルは、 デザ イ ン を SDK にエ ク ス ポー ト し た際にエ ク ス ポー ト さ れ た も ので、 プ ロ セ ッ シ ン グ シ ス テ ムの初期化情報を含みます。 16. ボー ド の電源を切っ て入れ直 し ます。 17. [Run] を ク リ ッ ク し ます。
次の図に示す よ う に、[Terminal 1] のシ リ アル通信ユーテ ィ リ テ ィ に 「Hello World」 と 表示 さ れます。
注記: Zynq UltraScale+ 評価ボー ド で上記の ソ フ ト ウ ェ ア アプ リ ケーシ ョ ン を実行する のに、 ビ ッ ト ス ト リ ーム を ダ ウ ン ロ ー ド す る 必要はあ り ませんで し た。Arm Cortex-A53 ク ワ ッ ド コ アは既にプ ロ セ ッ シ ン グ シ ス テ ムに 実装 さ れてい ます。 簡単な アプ リ ケーシ ョ ン を実行す る こ のシ ス テ ムの基本的な初期化は、 デバ イ ス初期化 Tcl ス ク リ プ ト で実行 さ れます。 18. ボー ド の電源を切っ て入れ直 し、 次のセ ク シ ョ ンの手順用に同 じ接続 と ボー ド 設定を保持し ます。
こ こ ま での結果
アプ リ ケーシ ョ ン ソ フ ト ウ ェ アに よ っ て、 「Hello World」 の文字列が PS の UART0 ペ リ フ ェ ラ ルに送信 さ れま し た。
UART0 か ら Hello World の文字列がホ ス ト マシ ンで動作 し てい る シ リ アル ター ミ ナル アプ リ ケーシ ョ ンにバ イ ト ご と に送信 さ れ、 文字列 と し て表示 さ れます。
X-Ref Target - Figure 2-18
サン プル プ ロ ジ ェ ク ト : Arm Cortex-R5 から Hello World
ア プ リ ケーシ ョ ン を実行
こ の例では、 ザ イ リ ン ク ス SDK のシ ス テ ム デバ ッ ガーを使用 し て、 ボー ド 設定の管理、 ケーブル接続、 PC を介 し
たボー ド への接続、 お よ び JTAG モー ド で Arm Cortex-R5 か ら 簡単な hello world ソ フ ト ウ ェ ア アプ リ ケーシ ョ ン を実
行す る 方法を説明 し ます。
注記: ボー ド が既に設定 さ れてい る場合は、 手順 5 に進みます。
1. 電源ケーブルを ボー ド に接続 し ます。
2. マ イ ク ロ USB ケーブルで Windows ホ ス ト マシ ン と ターゲ ッ ト ボー ド の J2 USB JTAG コ ネ ク タ を接続 し ます。
3. USB ケーブルで Windows ホ ス ト マシ ン と ターゲ ッ ト ボー ド の コ ネ ク タ J83 を接続 し ます。 こ れは、 USB か ら シ
リ アルへの転送に使用 さ れます。 4. 図2-14 に示すス イ ッ チを使用 し て ZCU102 ボー ド に電源を投入 し ます。 重要: SW6 ス イ ッ チが図2-14 に示すよ う に 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 のポー ト を選択 し ます。
X-Ref Target - Figure 2-19
次の図に、Zynq UltraScale+ MPSoC プ ロ セ ッ シ ン グ シ ス テ ム用の標準的な設定を示 し ます。
9. SDK で、 [Debug] パースペ ク テ ィ ブか ら [C/C++] パースペ ク テ ィ ブに切 り 替え ます。 こ れには、 [Window] →
[Open Perspective] → [C/C++] を ク リ ッ ク し ます。
SDK が既に [C/C++] パースペ ク テ ィ ブであ る場合は、 こ の手順は飛ばし ます。 10. [File] → [New] → [Application Project] を ク リ ッ ク し ます。
New Project ウ ィ ザー ド が開き ます。
11. ウ ィ ザー ド の各ページで次の表の情報に基づいて設定を選択 し ます。
hello_world_r5 アプ リ ケーシ ョ ン プ ロ ジ ェ ク ト お よび hello_world_r5_bsp ボー ド サポー ト パ ッ ケージ (BSP) プ ロ ジ ェ ク ト が作成 さ れ、 [Project Explorer] ビ ューに表示 さ れます。 こ れ ら 両プ ロ ジ ェ ク ト が自動的に コ
ンパ イ ル さ れ、ELF フ ァ イ ルが作成 さ れます。
X-Ref Target - Figure 2-20
図 2-20: [Terminal Settings] ダ イ ア ログ ボ ッ ク ス
ウ ィ ザー ド ページ シ ス テム プ ロパテ ィ 設定または使用する コ マ ン ド
Application Project Project name hello_world_r5
Use default location オン
ハー ド ウ ェ ア プ ラ ッ ト フ ォーム edt_zcu102_wrapper_hw_platform_0
Processor psu_cortexr5_0
OS Platform standalone
Language C
Board Support Package [Create New] をオンに し て
「hello_world_r5_bsp」 と 入力。
13. [Xilinx C/C++ application (System Debugger)] を右 ク リ ッ ク し て [New] を ク リ ッ ク し ます。 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 の文字列がホ ス ト マシ ンで動作 し てい る シ リ アル ター ミ ナル アプ リ ケーシ ョ ンにバ イ ト ご と に送信 さ れ、 文字列 と し て表示 さ れます。
X-Ref Target - Figure 2-21
その他の情報
ボー ド サポー ト パ ッ ケージ
ボー ド サポー ト パ ッ ケージ (BSP) はハー ド ウ ェ ア プ ラ ッ ト フ ォーム ま たはボー ド のサポー ト コー ド で、 電源投入時 の基本的な初期化お よ び ソ フ ト ウ ェ ア アプ リ ケーシ ョ ンのハー ド ウ ェ ア プ ラ ッ ト フ ォーム ま たはボー ド 上での実行 をサポー ト し ます。 こ れは、 ブー ト ロ ーダーお よ びデバ イ ス ド ラ イ バーを使用する オペレーテ ィ ン グ シ ス テ ム固有 の も のにで き ます。 ヒ ン ト: BSP を再生成する場合は、 [Project Explorer] ビ ューに表示さ れる BSP プ ロ ジ ェ ク ト を右ク リ ッ ク し、 [Re-generate BSP Sources] を ク リ ッ ク し ます。 プ ロ ジ ェ ク ト の作成後に タ ーゲ ッ ト BSP を変更する場合は、 次を実行 し ます。 1. ターゲ ッ ト 用に新規のボー ド サポー ト パ ッ ケージ を作成し ます。2. [Project Explorer] ビ ューで、 アプ リ ケーシ ョ ン プ ロ ジ ェ ク ト を右 ク リ ッ ク し て [Change Referenced BSP] を ク リ ッ ク
し 、 新 し い BSP を指定し ます。
ス タ ン ド ア ロ ン OS
ス タ ン ド ア ロ ンはシ ンプルな下位 ソ フ ト ウ ェ ア層です。 キ ャ ッ シ ュ 、 割 り 込み、 例外な ど の基本的なプ ロ セ ッ サ機 能、 お よ びホ ス ト 環境の基本的なプ ロ セ ッ サ機能へのア ク セ ス を提供 し ます。 こ れ ら の機能には、 標準の入力/出力、 プ ロ フ ァ イ ル、 停止、 終了が含まれます。 こ れはセ ミ ホ ス ト 型のシ ン グル ス レ ッ ド 環境です。 重要: こ の章で実行し たアプ リ ケーシ ョ ンは、 ス タ ン ド ア ロ ン OS 上に作成さ れています。 ソ フ ト ウ ェ ア アプ リ ケー シ ョ ンが タ ーゲ ッ ト にす る BSP は、 新規アプ リ ケーシ ョ ン プ ロ ジ ェ ク ト を作成する プ ロ セ ス で選択 し ます。 プ ロ ジ ェ ク ト の作成後に タ ーゲ ッ ト BSP を変更する場合は、 ソ フ ト ウ ェ ア アプ リ ケーシ ョ ン を右 ク リ ッ ク し て [Change Referenced BSP] を ク リ ッ ク し ます。PS サブ シ ス テム用ソ フ ト ウ ェ アのビル ド
こ の章では、PS サブシ ス テ ム用に ソ フ ト ウ ェ ア を設定お よびビル ド する手順を示し ます。 Vivado® Design Suite で設
定 し た Zynq® UltraScale™+ ハー ド ウ ェ ア プ ラ ッ ト フ ォーム (ハー ド ウ ェ ア定義フ ァ イ ル) を使用し ます。 第2 章では、Vivado でハー ド ウ ェ ア プ ラ ッ ト フ ォーム を作成 し、 エ ク ス ポー ト し ま し た。 こ のハー ド ウ ェ ア プ ラ ッ ト フ ォームには、 ハー ド ウ ェ ア ハン ド オ フ フ ァ イ ル、 プ ロ セ ッ シ ン グ シ ス テ ム初期化フ ァ イ ル (psu_init)、 およ び PL ビ ッ ト ス ト リ ームが含まれます。 こ の章では、 ハー ド ウ ェ ア プ ラ ッ ト フ ォーム をザ イ リ ン ク ス SDK および PetaLinux で使用し、 プ ロ セ ッ シ ン グ シ ス テ ム用に ソ フ ト ウ ェ ア を設定 し ます。 こ の章では、2 つの重要な点について説明し ます。 1 つ目は、 こ の後の章で使用可能な ソ フ ト ウ ェ ア コ ンポーネン ト のビル ド お よ び設定に役立つ情報を提供 し ます。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 イ メ ージのビル ド について も 説明 し ます。
サン プル プ ロ ジ ェ ク ト : SDK でのベア メ タ ル ア プ リ
ケーシ ョ ン プ ロ ジ ェ ク ト の作成
こ のサンプル プ ロ ジ ェ ク ト では、 ザ イ リ ン ク ス SDK を起動 し、 Vivado Design Suite で作成 し た Zynq UltraScale+ 用
ハー ド ウ ェ ア プ ラ ッ ト フ ォーム を使用 し てベア メ タ ル アプ リ ケーシ ョ ン を作成 し ます。35 ページの図 3-1 に示す
SDK の New Project ウ ィ ザー ド では、 Zynq UltraScale+ デバ イ ス のプ ロ セ ッ シ ン グ サブシ ス テ ム用にベア メ タ ル (ス タ
ン ド ア ロ ン) アプ リ ケーシ ョ ン を作成する ためのオプシ ョ ン を示し てい ます。
Arm Cortex-A53 ベースの APU 用 FSBL の作成
第 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. New Project ウ ィ ザー ド の各ページ を次の表の情報に基づいて設定し ます。
X-Ref Target - Figure 3-1
図 3-1: New Project ウ ィ ザー ド の [Application Project] ページ
表 3-1: 新 し いアプ リ ケーシ ョ ン プ ロ ジ ェ ク ト 作成時の設定 - FSBL_A53
ウ ィ ザー ド ページ シス テム プ ロパテ ィ 設定または コ マ ン ド
Application Project Project name fsbl_a53
Use default location オン
OS Platform standalone
Hardware Platform edt_zcu102_wrapper_hw_platform_0
Processor psu_cortexa53_0
Language C
Compiler 64-bit
Hypervisor Guest No
Board Support Package [Create New] をオンに し て 「a53_bsp」 と 入力。
[Next] を ク リ ッ ク
5. [Templates] ページで [Zynq MP FSBL] を選択 し ます。 . 6. [Finish] を ク リ ッ ク し ます。 ボー ド サポー ト パ ッ ケージおよび 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] を ク リ ッ ク する と 、 アプ リ ケーシ ョ ンが自動的にビル ド さ れます。
8. FSBL の実行フ ァ イ ルが [fsbl_a53] → [debug] → [fsbl_a53.elf] に保存 さ れます。
こ のチ ュ ー ト リ アルの fsbl_a53 と い う アプ リ ケーシ ョ ン名は、FSBL が APU (Arm Cortex-A53 コ ア) を ターゲ ッ ト に し てい る こ と を示 し てい ます。
9. フ ァ イ ルを保存 し 、fsbl_a53 アプ リ ケーシ ョ ン を再ビル ド し ます。
注記: シ ス テ ム デザ イ ンで必要な場合は、 FSBL を RPU 上で実行する よ う にする こ と がで き、 こ れに よ り ソ フ ト ウ ェ
ア ス タ ッ ク の残 り を RPU および APU に読み込む こ と がで き ます。
X-Ref Target - Figure 3-3
図 3-3: [Enter Value] ダ イ ア ログ ボ ッ ク ス
X-Ref Target - Figure 3-4
Arm Cortex-R5 ベースの RPU 用 FSBL の作成
次の手順に従っ て Arm Cortex-R5 コ ア用に FSBL を作成する こ と も で き ます。
1. [File] → [New] → [Application Project] を ク リ ッ ク し て、 New Project ウ ィ ザー ド を開き ます。
X-Ref Target - Figure 3-5
2. New Project ウ ィ ザー ド の各ページ を次の表の情報に基づいて設定し ます。
3. [Finish] を ク リ ッ ク し ます。
こ れに よ り 、 ボー ド サポー ト パ ッ ケージ、 および 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] を選択 し、 アプ リ ケーシ ョ ン フ ォルダー構造にカ ス タ ム アプ リ ケーシ ョ ン コー ド を コ ピーま たは作成 す る こ と も で き ます。
表 3-2: 新 し いアプ リ ケーシ ョ ン プ ロ ジ ェ ク ト 作成時の設定 - FSBL_R5
ウ ィ ザー ド ページ シ ス テム プ ロパテ ィ 設定または コ マ ン ド
Application Project Project name fsbl_r5
Use default location オン
OS Platform standalone
Hardware Platform edt_zcu102_wrapper_hw_platform_0
Processor psu_cortexr5_0
Language C
Board Support Package [Create New] をオンに し て 「r5_bsp」 と 入力。
[Next] を ク リ ッ ク