• 検索結果がありません。

Zynq UltraScale+ MPSoC: エンベデッド デザイン チュートリアル (UG1209)

N/A
N/A
Protected

Academic year: 2021

シェア "Zynq UltraScale+ MPSoC: エンベデッド デザイン チュートリアル (UG1209)"

Copied!
143
0
0

読み込み中.... (全文を見る)

全文

(1)

Zynq UltraScale+ MPSoC:

エ ンベデ ッ ド

デザイ ン

チ ュ ー ト リ アル

効果的な エ ンベデ ッ ド

システム構築を

サポー ト するハンデ ィ

ガイ ド

UG1209 (v2017.1) 2017 年 7 月 28 日

この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資料に

よっては英語版の更新に対応していないものがあります。日本語版は参考用としてご使用の上、最新情報につきまし

ては、必ず最新英語版をご参照ください。

(2)

次の表に、 こ の文書の改訂履歴を示 し ます。 日付 バージ ョ ン 改訂内容 2017 年 7 月 28 日 2017.1 • 「PetaLinux を使用 し た設定の変更 と Linux イ メ ージの構築」 にザ イ リ ン ク ス ア ンサー 69248 への参照を追加。 2017 年 7 月 14 日 2017.1 • 第 5 章の 「ブー ト およ びコ ン フ ィ ギ ュ レーシ ョ ン」 に USB ブー ト を追加。 • 第 5 章の 「セキ ュ ア ブー ト シーケ ン ス」 の説明お よ び手順を詳細に記述。 • Vivado® Design Suite 2017.1 を用いた検証

• プ ロ ダ ク シ ョ ン シ リ コ ン を使用 し て ZCU102 Rev1 ボー ド で手順お よ びデザ イ ン フ ァ イ ルを テ ス ト

(3)

改訂履歴 . . . 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. . . 48

SDK を使用 し て ソ フ ト ウ ェ ア をデバ ッ グす る . . . 50

ザ イ リ ン ク ス ソ フ ト ウ ェ ア コ マン ド ラ イ ン ツール (XSCT) を使用 し てデバ ッ グする . . . 52

第 5 章: ブー ト および コ ン フ ィ ギ ュ レーシ ョ ン

シ ス テ ム ソ フ ト ウ ェ ア . . . 60

APU の Linux と RPU のベア メ タ ル . . . 61

SD ブー ト のブー ト シーケ ン ス . . . 62 QSPI ブー ト モー ド のブー ト シーケ ン ス . . . 71 JTAG を用いた QSPI ブー ト モー ド のブー ト シーケ ン ス . . . 82 USB ブー ト モー ド のブー ト シーケ ン ス . . . 85 セキ ュ ア ブー ト シーケ ン ス . . . 91

第 6 章: システム デザイ ン例

サンプル デザ イ ン 1: GPIO、 タ イ マー、 お よび割 り 込みを使用する . . . 114 サンプル デザ イ ン 2: グ ラ フ ィ ッ ク スおよ びデ ィ ス プ レ イ ポー ト ベース のサブシ ス テ ムのセ ッ ト ア ッ プ例 . . 133

付録 A: セキ ュ ア ブー ト での問題のデバ ッ グ

PUF 登録が実行 さ れてい る か ど う か を判断す る . . . 139 ブー ト イ メ ージで使用 さ れ る ブー ト ヘ ッ ダー値を テ ス ト する . . . 139

(4)

ソ リ ュ ーシ ョ ン セン ター . . . 140

Xilinx Documentation Navigator お よ びデザ イ ン ハブ . . . 140

Xilinx Documentation Navigator . . . 141

こ のチ ュ ー ト リ アルのデザ イ ン フ ァ イ ル . . . 141

ザ イ リ ン ク ス リ ソ ース . . . 141

ト レーニ ン グ リ ソ ース . . . 142

(5)

は じ めに

こ のガ イ ド について

こ のガ イ ド では、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 「その他の リ ソ ースお よび法的通知」 では、 こ のガ イ ド に関連す る その他の資料への リ ン ク を提供 し ま す。

(6)

サン プル プ ロ ジ ェ ク ト

ツールを習得す る ための最良の方法は、 それを使用 し てみ る こ と です。 そのため、 こ のガ イ ド では説明に従っ て ツールを操作す る 機会が設け ら れてい ます。 サンプル プ ロ ジ ェ ク ト のセ ク シ ョ ンでは、 サンプル プ ロ ジ ェ ク ト の仕 様のほかに背景で何が起 こ っ てい る かについて も 説明 し てい ます。 各章お よ びサンプル プ ロ ジ ェ ク ト は、 エンベ デ ッ ド デザ イ ンの さ ま ざ ま な側面を紹介する こ と を目的に し てい ます。 サンプル プ ロ ジ ェ ク ト を通 し て、 各項目の 学習を完了 し て次に進む形で フ ロ ー全体が説明 さ れます。

その他の資料

その他の資料一覧は、付録 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)

(7)

プ ロ グ ラ マブル ロ ジ ッ ク には、 プ ロ グ ラ マブル ロ ジ ッ ク セルに加え、 次に示す高性能ペ リ フ ェ ラ ル も 統合 さ れてい ます。 • 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 の機能を示し ます。

(8)

その他の Vivado コ ンポーネン ト

Vivado のその他の コ ン ポーネ ン ト は次の と お り です。 • ザ イ リ ン ク ス エンベデ ッ ド プ ロ セ ッ サ用のエンベデ ッ ド / ソ フ ト IP • 資料 • サンプル プ ロ ジ ェ ク ト

ザイ リ ン ク スの ソ フ ト ウ ェ ア開発キ ッ ト

ソ フ ト ウ ェ ア開発キ ッ ト (SDK) は Vivado を補完する統合開発環境で、C/C++ エンベデ ッ ド ソ フ ト ウ ェ ア アプ リ ケー シ ョ ンの作成お よ び検証に使用 し ます。 SDK は Eclipse オープン ソ ース フ レーム ワー ク で構築 さ れてい る ため、 ソ フ ト ウ ェ ア設計者や設計チームに と っ て使い慣れた環境です。

X-Ref Target - Figure 1-1

(9)

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 製品ガ イ ド 』

(10)

最初に必要なセ ッ ト ア ッ プ

ツールについて詳 し く 説明す る 前に、 ツールが適切に イ ン ス ト ール さ れ、 使用す る 環境が こ のガ イ ド の 「サンプル プ ロ ジ ェ ク ト 」 の記載要件に一致す る かを確認 し ます。

ハー ド ウ ェ ア要件

こ のガ イ ド では、 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)] のみをオンに し 、 ほかの ソ フ ト ウ ェ ア製品の選択をオフ に し て イ ン ス ト ー ラ ーを実行 し ます。

(11)

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

(12)

• ワー ク ス テーシ ョ ン ま たは仮想マシ ンに共通のシ ス テ ム パ ッ ケージおよ び ラ イ ブ ラ リ を追加する。 『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 ページの 「 こ のチ ュ ー ト リ アルのデザ イ

(13)

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 ベース のデザ イ ンの 作成手順について説明 し ます。

(14)

サン プル プ ロ ジ ェ ク ト : 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

(15)

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

(16)

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

(17)

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

(18)

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

(19)

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

(20)

注記: 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

(21)

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

(22)

ヒ ン ト: ハー ド ウ ェ アは 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

(23)

こ こ ま での結果

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

(24)

次に実行する こ と

こ れで、 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

(25)

注記: 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

(26)

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」

と 入力す る 。

(27)

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

(28)

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

(29)

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」 と 入力する 。

(30)

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

(31)

ヒ ン ト: 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 を管理で き ます。

(32)

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 ビル ド シ ス テ ム を使用 し て設定お よ び構築で き ます。

(33)

サン プル プ ロ ジ ェ ク ト : 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] を ク リ ッ ク し ます。

(34)

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

(35)

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

(36)

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

(37)

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

(38)

こ れに よ り 、 ボー ド サポー ト パ ッ ケージ、 およ び 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

(39)

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」 と 入力す る 。

図  2-3: [Re-customize IP]  ダ イ ア ロ グ ボ ッ ク ス
図  2-8: [Generate Output Products]  ダ イ ア ログ ボ ッ ク ス
図  2-9: [IP Sources]  の下に生成 さ れた出力
図  2-12: SDK  の  [system.hdf]  のア ド レ ス マ ッ プ
+7

参照

Outline

関連したドキュメント

In this section we will show (Theorem 3.1) that P W , the partially ordered set of parabolic subgroups of W , is order isomorphic to L W (and hence is a geometric lattice). This

W loc 2,p regularity for the solutions of the approximate equation This section is devoted to prove the W 2,p local regularity of the solutions of equations (5) and, as a by-product,

T Taiwan General Scholastic Ability Test (GSAT) or Department Required Test Thailand Ordinary National Educational Test(O-net), General Aptitude Test. (GAT), Professional

T Taiwan General Scholastic Ability Test (GSAT) or Department Required Test Thailand Ordinary National Educational Test(O-net), General Aptitude Test. (GAT), Professional

のようにすべきだと考えていますか。 やっと開通します。長野、太田地区方面  

8.1 In § 8.1 ∼ § 8.3, we give some explicit formulas on the Jacobi functions, which are key to the proof of the Parseval-Plancherel type formula of branching laws of

80本 100本 100本 120本 96本 120本 120本

[r]