arm ds-5 ツールチェーンを使用した zynq-7000 プラット …...ザイリンクス sdk...

31
XAPP1185 (v1.0) 2013 11 18 japan.xilinx.com 1 © Copyright 2013 Xilinx, Inc. Xilinx, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, Vivado, Zynq, and other designated brands included herein are trademarks of Xilinx in the United States and other countries. AMBA, AMBA Designer, ARM, ARM1176JZ-S, CoreSight, Cortex, and PrimeCell are trademarks of ARM in the EU and other countries. All other trademarks are the property of their respective owners. 概要 こ の文書では、 ARM Development Studio 5 (DS-5) デザイン スイートを使用して、 ARM Cortex™-A9 プロセッサを搭載したザイリンクス Zynq-7000 All Programmable SoC 用ベア メ タル ソフトウェアの開 発、 ビルド、 デバッグを行う方法について説明します。 こ こでは、 そのプロセスについて次の手順で解 説します。 1. ザイリンクス SDK : カスタム ハードウェア デザインのボード サポー ト パッケージ (BSP) の作成 2. DS-5 ツール : BSP のインポート とビルド 3. DS-5 ツール : アプリケーションのビルド 4. ザイリンクス SDK および DS-5 ツール : Zynq デバイスの FSBL ARMCC ビルドに変更 5. DS-5 ツール : Zynq デバイスのカスタム デザインのデバッガー ターゲッ ト を構成 はじめに この文書では、 設計者が Zynq-7000 製品ファ ミ リのアーキテクチャ、 ブート フロー、 および関連する ザイリンクス デザイン ツールについての基本知識と、 ARM DS-5 ツールチェーンに関する基本知識を 有していることを前提としています。 また、 開発ホス トのオペレーティング システムは Windows とし ています。このアプリケーション ノートの手順を完了するには、次のホス トベースのソフ ト ウェア ツー ルがインス トールされている必要があり ます。 ザイリンクス ソ フ ト ウ ェ ア開発キ ッ ト (SDK) 2013.3 : この リンク からダウンロードできます。 ARM Development Studio 5 (DS-5) ツール スイート : この リンク からダウンロードできます。 注記 : DS-5 ツール スイートは 30 日間の評価版が提供されています。 現在、 ザ イ リ ン ク ス は ARM 純正 C および C++ コンパイラのみをサポート しており、 DS-5 ツール イート と共に配布される Linaro GCC はサポー ト していません。 関連するデザイン ファイル ザイ リンクスが配布している 2013.3 スタンドアロン ボード サポー ト パッ ケージおよび第一段階ブー ローダー (FSBL) テンプレートをカスタマイズする必要があります。このアプリケーション ノートの デザイン ファイル ( この リンク か ら 入手可能) は、 カスタマイズおよびアップデート済みのリポジト リ を提供します。 デザイン フ ァ イルには、 この文書の説明に従って DS-5 ツールで使用できる、 ターゲッ ト初期化ファイルおよびサンプル リンカー スク リプト も含まれています。 デザイン ファイルに含まれ ているスタンドアロン BSP は、 SDK 2013.3 から利用可能な standalone_v3_11_a と ほぼ同様ですが、 インライン アセンブリ関数が多少変更されています。 デザイン ファイルをダウンロードし、解凍します。ファイルを保存したディレク ト リの名前と場所を書 き留めておきます。 ツールの設定 このアプリケーション ノ ー ト の手順では、 ザ イ リ ン ク ス SDK 環境内か ら ARM コンパイラ ツール チェーンを使用する必要があり ます。 したがって、 対応する ARM 実行フ ァ イルは、 DS-5 ツール環境 および DS-5 ツールのコマンド プロンプ ト 以外から も見えていなければな り ません。 この可視性を確保 するため、 Windows システム環境変数を1 に示すよ う に変更し ます。 アプリケーション ノート : Zynq-7000 All Programmable SoC XAPP1185 (v1.0) 2013 11 18 ARM ® DS-5 ツールチェーンを使用した Zynq-7000 プラットフォーム ソ フ ト ウ ェ アの開発 著者 : Simon GeorgePrushothaman Palanichamy

Upload: others

Post on 07-Mar-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ARM DS-5 ツールチェーンを使用した Zynq-7000 プラット …...ザイリンクス SDK 環境で非常に重要な Library Generator (libgen) ユーティリティを使用して、この

XAPP1185 (v1.0) 2013 年 11 月 18 日 japan.xilinx.com 1

© Copyright 2013 Xilinx, Inc. Xilinx, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, Vivado, Zynq, and other designated brands included herein are trademarks of Xilinx in the United States and other countries. AMBA, AMBA Designer, ARM, ARM1176JZ-S, CoreSight, Cortex, and PrimeCell are trademarks of ARM in the EU and other countries. All other trademarks are the property of their respective owners.

概要 この文書では、 ARM Development Studio 5 (DS-5) デザイン スイート を使用して、 ARM Cortex™-A9プロセッサを搭載したザイ リ ンクス Zynq-7000 All Programmable SoC 用ベアメ タル ソフ ト ウェアの開

発、 ビルド、 デバッグを行う方法について説明します。 こ こでは、 そのプロセスについて次の手順で解

説します。

1. ザイ リ ンクス SDK : カスタム ハードウェア デザインのボード サポート パッケージ (BSP) の作成

2. DS-5 ツール : BSP のインポート とビルド

3. DS-5 ツール : アプリ ケーシ ョ ンのビルド

4. ザイ リ ンクス SDK および DS-5 ツール : Zynq デバイスの FSBL を ARMCC ビルドに変更

5. DS-5 ツール : Zynq デバイスのカスタム デザインのデバッガー ターゲッ ト を構成

はじめに この文書では、 設計者が Zynq-7000 製品ファ ミ リのアーキテクチャ、 ブート フロー、 および関連する

ザイ リ ンクス デザイン ツールについての基本知識と、 ARM DS-5 ツールチェーンに関する基本知識を

有しているこ とを前提と しています。 また、 開発ホス トのオペレーティング システムは Windows と し

ています。このアプリ ケーシ ョ ン ノートの手順を完了するには、次のホス トベースのソフ ト ウェア ツー

ルがインス トールされている必要があ り ます。

• ザイ リ ンクス ソフ ト ウェア開発キッ ト (SDK) 2013.3 : この リ ンクからダウンロードできます。

• ARM Development Studio 5 (DS-5) ツール スイート : この リ ンクからダウンロードできます。

注記 : DS-5 ツール スイートは 30 日間の評価版が提供されています。

現在、 ザイ リ ンクスは ARM 純正 C および C++ コンパイラのみをサポート しており、 DS-5 ツール スイート と共に配布される Linaro GCC はサポート していません。

関連するデザイン ファイル

ザイ リ ンクスが配布している 2013.3 スタンドアロン ボード サポート パッケージおよび第一段階ブー

ト ローダー (FSBL) テンプレート をカスタマイズする必要があ り ます。このアプリ ケーシ ョ ン ノートの

デザイン ファ イル (この リ ンクから入手可能) は、 カスタマイズおよびアップデート済みのリポジ ト リ

を提供します。 デザイン ファ イルには、 この文書の説明に従って DS-5 ツールで使用できる、 ターゲッ

ト初期化ファ イルおよびサンプル リ ンカー スク リプ ト も含まれています。 デザイン ファ イルに含まれ

ているスタン ドアロン BSP は、 SDK 2013.3 から利用可能な standalone_v3_11_a とほぼ同様ですが、

インライン アセンブリ関数が多少変更されています。

デザイン ファ イルをダウンロード し、解凍します。 ファ イルを保存したディ レク ト リの名前と場所を書

き留めておきます。

ツールの設定 このアプ リ ケーシ ョ ン ノー ト の手順では、 ザイ リ ン ク ス SDK 環境内から ARM コンパイ ラ ツール

チェーンを使用する必要があ り ます。 したがって、 対応する ARM 実行ファ イルは、 DS-5 ツール環境

および DS-5 ツールのコマンド プロンプ ト以外からも見えていなければなり ません。 この可視性を確保

するため、 Windows システム環境変数を図 1 に示すよ うに変更します。

アプリケーシ ョ ン ノート : Zynq-7000 All Programmable SoC

XAPP1185 (v1.0) 2013 年 11 月 18 日

ARM® DS-5 ツールチェーンを使用した Zynq-7000 プラッ ト フォーム ソフ トウェアの開発著者 : Simon George、 Prushothaman Palanichamy

Page 2: ARM DS-5 ツールチェーンを使用した Zynq-7000 プラット …...ザイリンクス SDK 環境で非常に重要な Library Generator (libgen) ユーティリティを使用して、この

手順 1 - ザイリンクス SDK : スタンドアロン ボード サポート パッケージの作成

XAPP1185 (v1.0) 2013 年 11 月 18 日 japan.xilinx.com 2

追加されたパス (図中のハイ ラ イ ト箇所) が実際のインス トール位置と一致しているこ とを確認して く

ださい。

手順 1 - ザイリンクス SDK : スタンドアロン ボード サポート パッケージの作成

ザイ リ ンクス SDK は、 選択したハード ウェア デザイン (Vivado® Design Suite からインポート したカ

スタマイズ済みデザイン、 または構築済みプラ ッ ト フォーム) に基づいて、 カスタマイズされた BSP を動的に生成します。 この生成された BSP には、 CPU コンプレッ クス固有の設定とスタート アップ コー

ドを集めたデータ と共に、ハード プロセッシング システムと ソフ ト プログラマブル ロジッ ク ペリ フェ

ラル両方のプラ ッ ト フォーム アドレスおよび設定情報が含まれています。つま り、アプリ ケーシ ョ ン プロジェク トの作成時にリ ンクする必要がある情報は事実上すべて含まれています。

ザイ リ ンク ス SDK 環境で非常に重要な Library Generator (libgen) ユーテ ィ リ テ ィ を使用して、 この

BSP を作成する物理プロセスを完了します。 したがって、 ARM DS-5 ツール内での開発作業も、 この

BSP を使用します。 ただし、 デフォルトのスタート アップ ファ イルには GCC 固有のアセンブラ コー

ドが含まれているため、 カスタマイズが必要です。 このプロセスの一部は自動化されています。 このア

プリ ケーシ ョ ン ノートに含まれるデザイン ファ イルでは、 この リ リース用にスタート アップ ファ イル

にパッチが適用されます。

次の手順に従って、ザイ リ ンクス SDK からパッチ適用済みのスタンドアロン BSP リ ポジ ト リ をビルド

します。

1. ザイ リ ンクス SDK を起動し、 ワークスペースを作成して設定します。

a. ザイ リ ンクス SDK を開き、 新規ワークスペースを作成します (ワークスペース名の例 : XSDK_Workspace)。

X-Ref Target - Figure 1

図 1 : Windows システム環境変数の編集

Page 3: ARM DS-5 ツールチェーンを使用した Zynq-7000 プラット …...ザイリンクス SDK 環境で非常に重要な Library Generator (libgen) ユーティリティを使用して、この

手順 1 - ザイリンクス SDK : スタンドアロン ボード サポート パッケージの作成

XAPP1185 (v1.0) 2013 年 11 月 18 日 japan.xilinx.com 3

b. ザイ リ ンクス SDK で [Project] をク リ ッ ク し、 [Build Automatically] を無効にします。 これ

で、 プロジェク ト をビルドする前にコンパイラ オプシ ョ ンを変更できます。

Page 4: ARM DS-5 ツールチェーンを使用した Zynq-7000 プラット …...ザイリンクス SDK 環境で非常に重要な Library Generator (libgen) ユーティリティを使用して、この

手順 1 - ザイリンクス SDK : スタンドアロン ボード サポート パッケージの作成

XAPP1185 (v1.0) 2013 年 11 月 18 日 japan.xilinx.com 4

c. [Xilinx Tools] → [Repositories] をク リ ッ ク し、 [Local Repositories] で [New] をク リ ッ ク しま

す。 このアプリ ケーシ ョ ン ノートのデザイン ファ イル内の XAPP1185 フォルダーに移動し、

パッチ適用済みのスタンドアロン BSP を新規リポジ ト リ と して追加します。

2. 新規スタンドアロン アプリケーシ ョ ン プロジェク トおよびスタンドアロン BSP (ARMCC バージ ョ

ン) を作成します。

ザイ リ ンクス SDK には新規プロジェク ト作成ウ ィザードがあ り、 このウ ィザードに従って、 新規

プロジェク ト作成プロセスを順に進めるこ とができます。 以降の図ではこのウ ィザードを使用して

います。 プロジェク トの設定は個々の要件によるため、 図と異なる場合があ り ます。

このアプリ ケーシ ョ ン ノートでは、 DS-5 ツールでビルド されたターゲッ ト上で最初に実行される C アプリ ケーシ ョ ンの例と して、 ザイ リ ンクス SDK で作成される Hello World アプリ ケーシ ョ ン

を使用します。 サンプル アプ リ ケーシ ョ ン プロジェク ト を作成する必要がない場合は、 以前にイ

ンポート したハード ウェア プラ ッ ト フォームに対して個別に BSP を作成するか、 または手作業で

ハードウェア プラ ッ ト フォームを作成してからそれに対して BSP を作成できます。

Page 5: ARM DS-5 ツールチェーンを使用した Zynq-7000 プラット …...ザイリンクス SDK 環境で非常に重要な Library Generator (libgen) ユーティリティを使用して、この

手順 1 - ザイリンクス SDK : スタンドアロン ボード サポート パッケージの作成

XAPP1185 (v1.0) 2013 年 11 月 18 日 japan.xilinx.com 5

a. ザイ リ ンクス SDK で [File] → [New] → [Application Project] をク リ ッ ク します。

b. [Application Project] で次の設定を行います。

- ハードウェア プラ ッ ト フォーム

プルダウン メ ニューで、 事前に定義されたプラ ッ ト フォームまたはカスタム プラ ッ ト

フォーム ([Create New]) を選択します。 [Create New] を選択する と、 SDK は、 ユーザー

のハード ウェア開発チームが提供した <HardwareDesign.xml> の場所に移動するよ う

に求めるプロンプ ト を表示します。このディ レク ト リには、ps7_init .c/.h および .tclも含まれます。

- ソフ ト ウェア プラ ッ ト フォーム

[Target Software] で [Board Support Package] を新規作成を選択します。図に示すよ うに、

ボード サポート パッケージ名は例と して BSP_Standalone_ARMCC と します。(ザイ リ ン

クス SDK はデフォルトではザイ リ ンクスが配布した GCC を使用して BSP ソースをビル

ド しますが、 この手順の後半でツールチェーンのオプシ ョ ンを変更します。 )

Page 6: ARM DS-5 ツールチェーンを使用した Zynq-7000 プラット …...ザイリンクス SDK 環境で非常に重要な Library Generator (libgen) ユーティリティを使用して、この

手順 1 - ザイリンクス SDK : スタンドアロン ボード サポート パッケージの作成

XAPP1185 (v1.0) 2013 年 11 月 18 日 japan.xilinx.com 6

• [Next] をク リ ッ ク します。

• アプリ ケーシ ョ ン テンプレート を設定します。

実際にアプリ ケーシ ョ ンをビルド る前に、任意のアプリ ケーシ ョ ン テンプレート を使用してビ

ルド フローを検証できます。 こ こでは、 Hello World アプリ ケーシ ョ ンを使用します。

Page 7: ARM DS-5 ツールチェーンを使用した Zynq-7000 プラット …...ザイリンクス SDK 環境で非常に重要な Library Generator (libgen) ユーティリティを使用して、この

手順 1 - ザイリンクス SDK : スタンドアロン ボード サポート パッケージの作成

XAPP1185 (v1.0) 2013 年 11 月 18 日 japan.xilinx.com 7

• [Finish] をク リ ッ ク します。

ツールは次の図に示すファイルを作成します。

Page 8: ARM DS-5 ツールチェーンを使用した Zynq-7000 プラット …...ザイリンクス SDK 環境で非常に重要な Library Generator (libgen) ユーティリティを使用して、この

手順 1 - ザイリンクス SDK : スタンドアロン ボード サポート パッケージの作成

XAPP1185 (v1.0) 2013 年 11 月 18 日 japan.xilinx.com 8

c. BSP プロジェク トの [BSP_Standalone_ARMCC] を右ク リ ッ ク し、 [Board Support Package Settings] をク リ ッ ク します。

d. [drivers] → [cpu_cortexa9] に移動し、 次のパラ メーターを変更します。

- [compiler] : armcc

- [archiver] : armar

Page 9: ARM DS-5 ツールチェーンを使用した Zynq-7000 プラット …...ザイリンクス SDK 環境で非常に重要な Library Generator (libgen) ユーティリティを使用して、この

手順 2 - DS-5 ツール : BSP のインポート とビルド

XAPP1185 (v1.0) 2013 年 11 月 18 日 japan.xilinx.com 9

e. BSP プロジェク ト を右ク リ ッ ク し、 [Build Project] をク リ ッ ク します。

f. これで、 (ARMCC ツールチェーンを使用して事前に定義された) ZC702_hw_platform に対し

て、 パッチ適用済みの BSP ソース リ ポジ ト リがビルド されます。

注記 : その他のコンパイラ オプシ ョ ンを設定する必要はあ り ません。アーカイブされたライブ

ラ リ を使用できます。 ただし、 カスタマイズされた BSP ソース ツ リーを DS-5 ツールにイン

ポートする次の手順では、 多くのオプシ ョ ンがビルド オプシ ョ ンと して提示されます。

手順 2 - DS-5 ツール : BSP のインポート とビルド

1. Eclipse for DS-5 を起動して新規ワークスペースを作成します。 こ こでは、 C:\DS5_Workspace に新規ワークスペースを作成します。

Page 10: ARM DS-5 ツールチェーンを使用した Zynq-7000 プラット …...ザイリンクス SDK 環境で非常に重要な Library Generator (libgen) ユーティリティを使用して、この

手順 2 - DS-5 ツール : BSP のインポート とビルド

XAPP1185 (v1.0) 2013 年 11 月 18 日 japan.xilinx.com 10

2. スタンドアロン BSP をインポート します。

a. DS-5 ツールで [File] → [New] → [C Project] → [Bare metal Library] → [Empty Project] をク

リ ッ ク します。

Page 11: ARM DS-5 ツールチェーンを使用した Zynq-7000 プラット …...ザイリンクス SDK 環境で非常に重要な Library Generator (libgen) ユーティリティを使用して、この

手順 2 - DS-5 ツール : BSP のインポート とビルド

XAPP1185 (v1.0) 2013 年 11 月 18 日 japan.xilinx.com 11

b. プロジェク ト名を指定します (例 : ZynqBSP)。 [Next] をク リ ッ ク します。

c. [Finish] をク リ ッ ク します。

d. ライブラ リ プロジェク ト を右ク リ ッ ク し、 ザイ リ ンクス SDK が生成した (ARMCC) BSP ソース ツ リー (libsrc の下のディレク ト リ ツ リー ) をインポート します。 フォルダー BSP_Standalone_ARMCC\ps7_cortexa9_0\libsrc に移動し、 [OK] をク リ ッ ク します。

Page 12: ARM DS-5 ツールチェーンを使用した Zynq-7000 プラット …...ザイリンクス SDK 環境で非常に重要な Library Generator (libgen) ユーティリティを使用して、この

手順 2 - DS-5 ツール : BSP のインポート とビルド

XAPP1185 (v1.0) 2013 年 11 月 18 日 japan.xilinx.com 12

e. [Import] ウ ィンド ウで [Finish] をク リ ッ ク します。

注記 : 元のソースへの リ ン ク を使用する こ とで、 リ フ ァ レンス フ ァ イルのアップデー ト が

DS-5 ツールに反映されます。

f. これで、 次の図に示すフォルダーが ZynqBSP プロジェク トに含まれます。

3. Zynq アーキテクチャに合わせてビルドの設定を変更します。

a. プロジェク ト (ZynqBSP) を右ク リ ッ ク し、 [Properties] をク リ ッ ク します。

b. [Properties] ウ ィザードで [C/C++ Build] → [Settings] をク リ ッ ク し、 ARM コンパイラ と ARM アセンブラに対する次の設定を変更します。

Page 13: ARM DS-5 ツールチェーンを使用した Zynq-7000 プラット …...ザイリンクス SDK 環境で非常に重要な Library Generator (libgen) ユーティリティを使用して、この

手順 2 - DS-5 ツール : BSP のインポート とビルド

XAPP1185 (v1.0) 2013 年 11 月 18 日 japan.xilinx.com 13

• ARM C コンパイラで、ハード ウェア構成に合わせてカスタマイズされた、ザイ リ ンクス SDKlibgen プロセスによって生成された参照ヘッダー ファ イルのインクルード パスを設定します。

-I <XSDK_workspace>\BSP_Standalone_ARMCC\ps7_cortexa9_[0]\include

• ARM C コンパイラで、 Zynq デバイス固有の [Code Generation] パラ メーターを設定します。

- --cpu Cortex-A9

- --fpu VFPv3_FP16

Page 14: ARM DS-5 ツールチェーンを使用した Zynq-7000 プラット …...ザイリンクス SDK 環境で非常に重要な Library Generator (libgen) ユーティリティを使用して、この

手順 2 - DS-5 ツール : BSP のインポート とビルド

XAPP1185 (v1.0) 2013 年 11 月 18 日 japan.xilinx.com 14

• ARM C アセンブラで、 Zynq デバイス固有の [Code Generation] パラ メーターを設定します。

- --cpu Cortex-A9

- --fpu VFPv3_FP16

c. [Build Artifacts] タブをク リ ッ ク し、 次のよ うに設定します。

- [Artifact extension] : a

- [Output Prefix] : lib

d. [Build] ボタンをク リ ッ ク します。 ビルドが成功する と、 ツールは次のよ うにレポート

します。

'Finished building target: libZynqBSP.a'' '

**** Build Finished ****

これでこの手順は完了しました。

Page 15: ARM DS-5 ツールチェーンを使用した Zynq-7000 プラット …...ザイリンクス SDK 環境で非常に重要な Library Generator (libgen) ユーティリティを使用して、この

手順 3 - DS-5 ツール : アプリケーシ ョ ンのビルド

XAPP1185 (v1.0) 2013 年 11 月 18 日 japan.xilinx.com 15

手順 3 - DS-5 ツール : アプリケーシ ョ ンのビルド

この手順に従って、 Zynq デバイス用の DS-5 アプリ ケーシ ョ ン プロジェク ト を作成します。

1. ソフ ト ウェア アプリ ケーシ ョ ンをインポート し、 作成します。

a. DS-5 ツールで [File] → [New] → [C Project] → [Bare metal Executable] → [Empty Project] をク リ ッ ク します。

b. プロジェク ト名を指定します (例 : ZynqAPP)。

Page 16: ARM DS-5 ツールチェーンを使用した Zynq-7000 プラット …...ザイリンクス SDK 環境で非常に重要な Library Generator (libgen) ユーティリティを使用して、この

手順 3 - DS-5 ツール : アプリケーシ ョ ンのビルド

XAPP1185 (v1.0) 2013 年 11 月 18 日 japan.xilinx.com 16

c. [Next] をク リ ッ ク します。

d. [Finish] をク リ ッ ク して [C Project] ウ ィザードを閉じます。

e. アプリ ケーシ ョ ン プロジェク ト を右ク リ ッ ク して [Import] をク リ ッ ク し、 手順 1 で作成した Hello World アプリ ケーシ ョ ン プロジェク ト (App_HelloWorld_XSDK) に移動します。

Page 17: ARM DS-5 ツールチェーンを使用した Zynq-7000 プラット …...ザイリンクス SDK 環境で非常に重要な Library Generator (libgen) ユーティリティを使用して、この

手順 3 - DS-5 ツール : アプリケーシ ョ ンのビルド

XAPP1185 (v1.0) 2013 年 11 月 18 日 japan.xilinx.com 17

f. すべての C ソース ファ イルおよびヘッダー ファ イル (*.c、 *.h、 *.S) を含めます。

2. Zynq アーキテクチャに合わせてビルドの設定を変更します。

Page 18: ARM DS-5 ツールチェーンを使用した Zynq-7000 プラット …...ザイリンクス SDK 環境で非常に重要な Library Generator (libgen) ユーティリティを使用して、この

手順 3 - DS-5 ツール : アプリケーシ ョ ンのビルド

XAPP1185 (v1.0) 2013 年 11 月 18 日 japan.xilinx.com 18

a. プロジェク ト (ZynqApp) を右ク リ ッ ク し、 [Properties] をク リ ッ ク します。 [Properties] ウ ィ

ザードで [C/C++ Build] → [Settings] をク リ ッ ク し、 ARM コンパイラ、 ARM アセンブラ、お

よび ARM リ ンカーに対する次の設定を変更します。

- ARM C コンパイラで、 ハード ウェア構成に合わせてカスタマイズされた、 ザイ リ ンクス

SDK libgen プロセスによって生成された参照ヘッダー ファ イルのインクルード パスを設

定します。

../../../XSDK_Workspace/BSP_Standalone_ARMCC/ps7_cortexa9_0/include

b. ARM C コンパイラで、 Zynq アーキテクチャ固有の [Code Generation] パラ メーターを設定し

ます。

- --cpu Cortex-A9

- --fpu VFPv3_FP16

Page 19: ARM DS-5 ツールチェーンを使用した Zynq-7000 プラット …...ザイリンクス SDK 環境で非常に重要な Library Generator (libgen) ユーティリティを使用して、この

手順 3 - DS-5 ツール : アプリケーシ ョ ンのビルド

XAPP1185 (v1.0) 2013 年 11 月 18 日 japan.xilinx.com 19

c. ARM アセンブラで、 Zynq アーキテクチャ固有の [Code Generation] パラ メーターを設定しま

す。

- --cpu Cortex-A9

- --fpu VFPv3_FP16

d. ARM リ ンカーで、 Zynq アーキテクチャ固有の [General] パラ メーターを設定します。

- --entry vector_table

- --cpu Cortex-A9

- --fpu VFPv3_FP16

Page 20: ARM DS-5 ツールチェーンを使用した Zynq-7000 プラット …...ザイリンクス SDK 環境で非常に重要な Library Generator (libgen) ユーティリティを使用して、この

手順 3 - DS-5 ツール : アプリケーシ ョ ンのビルド

XAPP1185 (v1.0) 2013 年 11 月 18 日 japan.xilinx.com 20

e. [ARM Linker] → [Libraries] をク リ ッ ク し、 手順 2 で作成した リ ファレンス BSP ビルドを追

加します。

- [Libraries (--library)] : ZynqBSP

- [Library Search Path (--userlibpath)] : ${workspace_loc:/ZynqBSP/Debug}

注記 : 入口点は、スキャ ッ ター ファ イル内でプログラムがリ ンク される メモ リの始点と一致し

ます。 「_vector_table」 の定義は、 BSP ソース ツ リーの 「ス タン ドアロン」 コード内にある

asm_vector.s ファ イルに記述されています。

f. ARM リ ンカーで [Miscellaneous] → [Other objects files] をク リ ッ ク します。

g. [Other object files] で [Add] ボタンをク リ ッ ク し、

$workspace_loc:\ZynqBSP\Debug\ps7_cortexa9_0\libsrc\standalone_v3_11_a

\src” に移動して asm_vectors.o file を選択します。.

h. ARM リ ンカーで [Image Layout] をク リ ッ ク し、 (こ こではスキャッ ター ファ イルと呼ばれる) リ ンカー スク リプ ト を定義します。

Page 21: ARM DS-5 ツールチェーンを使用した Zynq-7000 プラット …...ザイリンクス SDK 環境で非常に重要な Library Generator (libgen) ユーティリティを使用して、この

手順 4 - ザイリンクス SDK および DS-5 ツール : Zynq デバイスの FSBL を ARMCC ビルドに変更

XAPP1185 (v1.0) 2013 年 11 月 18 日 japan.xilinx.com 21

i. ZynqApp.scat サンプル ファ イルのイ メージ レイアウ ト を次の図に示します。 このファイル

は、 XAPP1185 リ ファレンス ファ イルに含まれています。

j. アプリ ケーシ ョ ンをコンパイルします。 参考と して、 サンプルを実行した場合のコンパイル済

みサイズを次の図に示します。

これでこの手順は完了しました。

手順 4 - ザイリンクス SDK および DS-5 ツール : Zynq デバイスの FSBL を ARMCC ビルドに変更

次の手順に従って、 第一段階ブート ローダー (FSBL) を ARMCC でビルド します。

1. ザイ リ ンクス SDK を開き、 既存のワークスペース (XSDK_Workspace) を使用します。

2. [File] → [New Application Project] をク リ ッ ク します。

Page 22: ARM DS-5 ツールチェーンを使用した Zynq-7000 プラット …...ザイリンクス SDK 環境で非常に重要な Library Generator (libgen) ユーティリティを使用して、この

手順 4 - ザイリンクス SDK および DS-5 ツール : Zynq デバイスの FSBL を ARMCC ビルドに変更

XAPP1185 (v1.0) 2013 年 11 月 18 日 japan.xilinx.com 22

3. プロジェク ト名を指定します (例 : ZynqFSBL_XSDK)。 既存の BSP (BSP_Standalone_ARMCC) を使用します。

4. アプリ ケーシ ョ ン テンプレート と して [Zynq_FSBL] を選択します。

Page 23: ARM DS-5 ツールチェーンを使用した Zynq-7000 プラット …...ザイリンクス SDK 環境で非常に重要な Library Generator (libgen) ユーティリティを使用して、この

手順 4 - ザイリンクス SDK および DS-5 ツール : Zynq デバイスの FSBL を ARMCC ビルドに変更

XAPP1185 (v1.0) 2013 年 11 月 18 日 japan.xilinx.com 23

5. [Finish] をク リ ッ ク します。

6. Eclipse for DS-5 を開きます。

7. 既存のワークスペース (DS5_Workspace) を使用します。

8. [Bare-metal Executable] → [Empty] をク リ ッ ク して、 「ZynqFSBL」 とい う アプ リ ケーシ ョ ン プロ

ジェク ト を作成します。 詳細は、 「手順 3 - DS-5 ツール : アプリ ケーシ ョ ンのビルド」 の手順を参

照して ください。

Page 24: ARM DS-5 ツールチェーンを使用した Zynq-7000 プラット …...ザイリンクス SDK 環境で非常に重要な Library Generator (libgen) ユーティリティを使用して、この

手順 4 - ザイリンクス SDK および DS-5 ツール : Zynq デバイスの FSBL を ARMCC ビルドに変更

XAPP1185 (v1.0) 2013 年 11 月 18 日 japan.xilinx.com 24

9. [Finish] をク リ ッ ク します。

10. ZynqFSBL_XSDK からこのプロジェク トにファ イルをインポート します。

Page 25: ARM DS-5 ツールチェーンを使用した Zynq-7000 プラット …...ザイリンクス SDK 環境で非常に重要な Library Generator (libgen) ユーティリティを使用して、この

手順 4 - ザイリンクス SDK および DS-5 ツール : Zynq デバイスの FSBL を ARMCC ビルドに変更

XAPP1185 (v1.0) 2013 年 11 月 18 日 japan.xilinx.com 25

11. サポート ファ イルの場所から、パッチ適用済みの FSBL ファ イル (Zynq_FSBL_ARMCC サブフォル

ダーに置かれたファイル) をインポート します。

12. 「手順 3 - DS-5 ツール : アプリ ケーシ ョ ンのビルド」 の説明に従って、 コンパイラ と リ ンカーのオ

プシ ョ ンを設定します。

Page 26: ARM DS-5 ツールチェーンを使用した Zynq-7000 プラット …...ザイリンクス SDK 環境で非常に重要な Library Generator (libgen) ユーティリティを使用して、この

手順 4 - ザイリンクス SDK および DS-5 ツール : Zynq デバイスの FSBL を ARMCC ビルドに変更

XAPP1185 (v1.0) 2013 年 11 月 18 日 japan.xilinx.com 26

13. イ メージ レイアウ ト ファ イルを ZynqFSBL.scat に設定します。 このファイルは ..\XAPP1185\ Zynq_FSBL_ARMCC にあ り ます。

14. プロジェク ト 「ZynqFSBL_ARMCC」 をビルド します。

参考のために、 ビルド後のログの例を次の図に示します。

これでこの手順は完了しました。

Page 27: ARM DS-5 ツールチェーンを使用した Zynq-7000 プラット …...ザイリンクス SDK 環境で非常に重要な Library Generator (libgen) ユーティリティを使用して、この

手順 5 - DS-5 ツール : Zynq デバイスのカスタム デザインのデバッガー ターゲッ ト を構成

XAPP1185 (v1.0) 2013 年 11 月 18 日 japan.xilinx.com 27

注記 : ..\XAPP1185\ Zynq_FSBL_ARMCC にある ps7_init.c ファ イルは、 ZC702_hw_platform に対してのみ有効です。 ほかのハードウェア プラ ッ ト フォームでは、 ARMCC でのコンパイル用にこの

ファイルを手作業で編集する必要があ り ます。

手順 5 - DS-5 ツール : Zynq デバイスのカスタム デザインのデバッガー ターゲッ ト を構成

手順 4 で作成した FSBL アプリ ケーシ ョ ンを使用して、ターゲッ ト ハードウェアを初期化できます。次

の init スク リプ トは、 ZynqFSBL.axf を使用したターゲッ トの初期化の例を示します。

zynq_init.ds

loadfile {Workspace_loc:}\Zynq_FSBL_ARMCC\Debug\ZynqFSBL.axfrunpause 1000stop

次の手順に従って、 デバッグ セッシ ョ ンのためにターゲッ ト ハードウェアを初期化します。

1. デバッグするアプリ ケーシ ョ ンを右ク リ ッ ク し、 [Debug Configurations] をク リ ッ ク します。

2. [Debug Configurations] ダイアログ ボッ クスで [DS-5 Debugger] をダブルク リ ッ ク し、 新しいデ

バッグ設定を作成します。

Page 28: ARM DS-5 ツールチェーンを使用した Zynq-7000 プラット …...ザイリンクス SDK 環境で非常に重要な Library Generator (libgen) ユーティリティを使用して、この

手順 5 - DS-5 ツール : Zynq デバイスのカスタム デザインのデバッガー ターゲッ ト を構成

XAPP1185 (v1.0) 2013 年 11 月 18 日 japan.xilinx.com 28

3. [Connection] タブで 「Zynq-7000 EPP ZC702」 を見つけ、 [Bare Metal Debug] → [Debug Cortex-A9 via DStream/RVI] をク リ ッ ク します。

4. ダイアログ ボッ クスの下部の [Connections] で、 [Bare Metal Debug]、 [Connection] の右側にある

[Browse] をク リ ッ ク します。 アプリ ケーシ ョ ンはホス ト マシンへの Dstream 接続を自動検出しま

す。 適切な接続 (この例では USB) を選択し、 [OK] をク リ ッ ク します。

Page 29: ARM DS-5 ツールチェーンを使用した Zynq-7000 プラット …...ザイリンクス SDK 環境で非常に重要な Library Generator (libgen) ユーティリティを使用して、この

手順 5 - DS-5 ツール : Zynq デバイスのカスタム デザインのデバッガー ターゲッ ト を構成

XAPP1185 (v1.0) 2013 年 11 月 18 日 japan.xilinx.com 29

5. [Files] タブで、 デバッグするアプリ ケーシ ョ ン (例 : zynq_app.axf) を選択します。

6. [Debugger] タブで [Run target initialization debugger script (.ds/.py)] をオンにして、

zynq_init.ds script (上記の例) を選択します。

7. DStream ケーブルがボードに接続されているこ とを確認します。DStream と ターゲッ トの電源を入

れます。

8. [Debug] をク リ ッ ク します。

Page 30: ARM DS-5 ツールチェーンを使用した Zynq-7000 プラット …...ザイリンクス SDK 環境で非常に重要な Library Generator (libgen) ユーティリティを使用して、この

スクリプ ト を使用した手順 1 の自動化

XAPP1185 (v1.0) 2013 年 11 月 18 日 japan.xilinx.com 30

注記 : デバッガーは OCM に FSBL をロード して実行します。FSBL はターゲッ ト ハードウェアを初期

化します。 デバッガーは、 FSBL がターゲッ トの初期化を完了するのを 1 秒間待ち、 main() のブレーク

ポイン トでターゲッ トによるアプリ ケーシ ョ ンのロードを停止します。

これでデバッグ セッシ ョ ンのセッ ト アップに必要な手順は完了しました。 デバッグ セッシ ョ ンを続行

するには、 [Debug] をク リ ッ ク します。

スクリプ ト を使用した手順 1 の自動化

上級ユーザーは、 付属のスク リプ ト ファ イルを使用して、 このアプ リ ケーシ ョ ン ノートの手順 1 を自

動化できます。 手順 1 を自動化するバッチ ファ イル (build_bsp_fsbl_app.bat) は、

..\XAPP1185\xsdk_build\build_bsp_fsbl_app.bat にあ り ます。

このバッチ ファ イルを実行するには、 次の例に示すよ うに、 system.xml ファ イルの場所を引数と し

て渡す必要があ り ます。 これによ り、 ZC702 ボード用の BSP および FSBL の ARMCC バージ ョ ンが

生成されます。 このコマンドは、 デザイン ファ イル XAPP1185.zip が C:\ に展開されているこ とを前

提と しています。

C:\XAPP1185\xsdk_build>build_bsp_fsbl_app.bat ZC702_hw_platform

このコマンドは、この文書の一部と して入手可能な ZC702_hw_platfrom から system.xml ファ イルを

利用します。 このバッチ ファ イルは、 Zynq_FSBL、 ps7_cortex_a9、 および hello_world の 3 つのプロジェ ク ト フォルダーを作成します。 これらのファ イルは、 「手順 2 - DS-5 ツール : BSP のイン

ポート とビルド」 の説明に従って ARM DS-5 プロジェク トに直接インポートできます。

参考資料 1. 『Zynq-7000 All Programmable SoC : コンセプ ト、 ツール、 テクニッ ク ガイ ド』 (UG873)

2. ザイ リ ンクス ビデオ チュート リ アル 『ザイ リ ンクス SDK を使用した Zynq ベアメ タル アプリケーシ ョ ンの開発』

3. ザイ リ ンクス ビデオ チュート リ アル 『ザイ リ ンクス SDK を使用したヘテロジニアス マルチコア システムのデバッグ』

Page 31: ARM DS-5 ツールチェーンを使用した Zynq-7000 プラット …...ザイリンクス SDK 環境で非常に重要な Library Generator (libgen) ユーティリティを使用して、この

改訂履歴

XAPP1185 (v1.0) 2013 年 11 月 18 日 japan.xilinx.com 31

改訂履歴 次の表に、 この文書の改訂履歴を示します。

Notice of Disclaimer

The information disclosed to you hereunder (the “Materials”) is provided solely for the selection and useof Xilinx products. To the maximum extent permitted by applicable law: (1) Materials are made available"AS IS" and with all faults, Xilinx hereby DISCLAIMS ALL WARRANTIES AND CONDITIONS,EXPRESS, IMPLIED, OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OFMERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE;and (2) Xilinx shall not be liable (whether in contract or tort, including negligence, or under any othertheory of liability) for any loss or damage of any kind or nature related to, arising under, or in connectionwith, the Materials (including your use of the Materials), including for any direct, indirect, special,incidental, or consequential loss or damage (including loss of data, profits, goodwill, or any type of lossor damage suffered as a result of any action brought by a third party) even if such damage or loss wasreasonably foreseeable or Xilinx had been advised of the possibility of the same. Xilinx assumes noobligation to correct any errors contained in the Materials or to notify you of updates to the Materials orto product specifications. You may not reproduce, modify, distribute, or publicly display the Materialswithout prior written consent. Certain products are subject to the terms and conditions of the LimitedWarranties which can be viewed at http://www.xilinx.com/warranty.htm; IP cores may be subject towarranty and support terms contained in a license issued to you by Xilinx. Xilinx products are notdesigned or intended to be fail-safe or for use in any application requiring fail-safe performance; youassume sole risk and liability for use of Xilinx products in Critical Applications: http://www.xilinx.com/warranty.htm#critapps.

本資料は英語版 (v1.0) を翻訳したもので、 内容に相違が生じる場合には原文を優先します。

資料によっては英語版の更新に対応していないものがあ り ます。

日本語版は参考用と してご使用の上、 最新情報につきましては、 必ず最新英語版をご参照ください。

この資料に関するフ ィードバッ クおよびリ ンクなどの問題につきましては、

[email protected] までお知らせください。 いただきましたご意見を参考に早急に対応さ

せていただきます。 なお、 このメール アドレスへのお問い合わせは受け付けており ません。 あらかじめ

ご了承ください。

日付 バージョ ン 内容

2013 年 11 月 18 日 1.0 初版