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
プ ラ ッ ト フ ォーム
ソ フ ト ウ ェ アの開発
手順 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 - ザイ リ ン ク ス SDK : ス タ ン ド ア ロ ンボー ド サポー ト パ ッ ケージの作成
XAPP1185 (v1.0) 2013 年 11 月 18 日 japan.xilinx.com 3
b. ザ イ リ ン ク ス SDK で [Project] を ク リ ッ ク し 、[Build Automatically] を無効に し ます。 こ れ で、 プ ロ ジ ェ ク ト を ビル ド す る 前に コ ンパ イ ラ オプシ ョ ン を変更で き ます。
手順 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 を作成で き ます。
手順 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 ソ ース を ビル ド し ますが、 こ の手順の後半で ツールチ ェーンのオプシ ョ ン を変更 し ます。)
手順 1 - ザイ リ ン ク ス SDK : ス タ ン ド ア ロ ンボー ド サポー ト パ ッ ケージの作成 XAPP1185 (v1.0) 2013 年 11 月 18 日 japan.xilinx.com 6 • [Next] を ク リ ッ ク し ます。 • アプ リ ケーシ ョ ンテ ンプ レー ト を設定 し ます。 実際にアプ リ ケーシ ョ ン を ビル ド る 前に、任意のアプ リ ケーシ ョ ン テ ンプ レー ト を使用 し て ビ ル ド フ ロ ーを検証で き ます。 こ こ では、Hello World アプ リ ケーシ ョ ン を使用 し ます。
手順 1 - ザイ リ ン ク ス SDK : ス タ ン ド ア ロ ンボー ド サポー ト パ ッ ケージの作成
XAPP1185 (v1.0) 2013 年 11 月 18 日 japan.xilinx.com 7
• [Finish] を ク リ ッ ク し ます。
手順 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
手順 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 に新規 ワー ク スペース を作成 し ます。
手順 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] を ク リ ッ ク し ます。
手順 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] を ク リ ッ ク し ます。
手順 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 アセ ンブ ラ に対す る 次の設定を変更 し ます。
手順 2 - DS-5 ツール : BSP のイ ンポー ト と ビル ド
XAPP1185 (v1.0) 2013 年 11 月 18 日 japan.xilinx.com 13
• ARM C コ ンパ イ ラ で、 ハー ド ウ ェ ア構成に合わせて カ ス タ マ イ ズ さ れた、 ザ イ リ ン ク ス SDK libgen プ ロ セ ス に よ っ て生成 さ れた参照ヘ ッ ダーフ ァ イ ルの イ ン ク ルー ド パ ス を設定 し ます。 -I <XSDK_workspace>\BSP_Standalone_ARMCC\ps7_cortexa9_[0]\include
• ARM C コ ンパ イ ラ で、Zynq デバ イ ス固有の [Code Generation] パ ラ メ ー タ ーを設定 し ます。 - --cpu Cortex-A9
手順 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 **** こ れで こ の手順は完了 し ま し た。
手順 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] を ク リ ッ ク し ます。
手順 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) に移動 し ます。
手順 3 - DS-5 ツール : ア プ リ ケーシ ョ ンのビル ド
XAPP1185 (v1.0) 2013 年 11 月 18 日 japan.xilinx.com 17
f. すべての C ソ ース フ ァ イ ルお よ びヘ ッ ダーフ ァ イ ル (*.c、*.h、*.S) を含め ます。
手順 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
手順 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
手順 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] を ク リ ッ ク し 、(こ こ ではス キ ャ ッ タ ーフ ァ イ ル と 呼ばれ る) リ ン カース ク リ プ ト を定義 し ます。
手順 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] を ク リ ッ ク し ます。手順 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 - ザイ リ ン ク ス 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 ツール : アプ リ ケーシ ョ ンの ビル ド 」 の手順を参 照 し て く だ さ い。
手順 4 - ザイ リ ン ク ス SDK お よび DS-5 ツール : Zynq デバイ スの FSBL を ARMCC ビル ド に変更
XAPP1185 (v1.0) 2013 年 11 月 18 日 japan.xilinx.com 24
9. [Finish] を ク リ ッ ク し ます。
手順 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 ツール : アプ リ ケーシ ョ ンのビル ド 」 の説明に従っ て、 コ ンパ イ ラ と リ ン カーのオ プシ ョ ン を設定 し ます。
手順 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」 を ビル ド し ます。 参考のために、 ビル ド 後の ロ グの例を次の図に示 し ます。 こ れで こ の手順は完了 し ま し た。
手順 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.axf run pause 1000 stop 次の手順に従っ て、 デバ ッ グセ ッ シ ョ ンのために タ ーゲ ッ ト ハー ド ウ ェ ア を初期化 し ます。 1. デバ ッ グす る アプ リ ケーシ ョ ン を右 ク リ ッ ク し 、[Debug Configurations] を ク リ ッ ク し ます。 2. [Debug Configurations] ダ イ ア ロ グ ボ ッ ク ス で [DS-5 Debugger] を ダブル ク リ ッ ク し 、 新 し いデ手順 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] を ク リ ッ ク し ます。
手順 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 と タ ーゲ ッ ト の電源を入 れます。
ス ク リ プ ト を使用 し た手順 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 を使用 し たヘテ ロ ジニ ア スマルチ コ ア シ ス テ ムのデバ ッ グ』
改訂履歴
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 use of 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 OF MERCHANTABILITY, 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 other theory of liability) for any loss or damage of any kind or nature related to, arising under, or in connection with, 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 loss or damage suffered as a result of any action brought by a third party) even if such damage or loss was reasonably foreseeable or Xilinx had been advised of the possibility of the same. Xilinx assumes no obligation to correct any errors contained in the Materials or to notify you of updates to the Materials or to product specifications. You may not reproduce, modify, distribute, or publicly display the Materials without prior written consent. Certain products are subject to the terms and conditions of the Limited Warranties which can be viewed at http://www.xilinx.com/warranty.htm; IP cores may be subject to warranty and support terms contained in a license issued to you by Xilinx. Xilinx products are not designed or intended to be fail-safe or for use in any application requiring fail-safe performance; you assume 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 初版