プロジェクトの操作

プロジェクトのビルド

ソフトウェア アプリケーション開発では、まずアプリケーションで使用するボード サポート パッケージを作成します。この後、アプリケーション プロジェクトを作成できます。

このアプリケーションの実行ファイルをビルドする場合、Vitis で自動的に次が実行されます。これらの手順には、コンフィギュレーション オプションを指定することもできます。

  1. Vitis ソフトウェア プラットフォームは、ボード サポート パッケージをビルドします。これは「プラットフォーム」と呼ばれることもあります。
  2. Vitis ソフトウェア プラットフォームは、プラットフォーム特有の gcc/g++ コンパイラを使用してアプリケーション ソフトウェアをコンパイルします。
  3. アプリケーションおよびボード サポート パッケージからのオブジェクト ファイルがリンクされて、最終的な実行ファイルが形成されます。この手順は、オブジェクト ファイルのセットを入力として取り込むリンカーとオブジェクト ファイルをメモリのどこに含めるかを指定するリンカー スクリプトで実行されます。

次のセクションでは、アプリケーションをビルドするのに関連するコンセプトの概要について説明します。

ビルド コンフィギュレーション

ソフトウェア開発者は通常、異なる設定を使用して異なるバージョンの実行ファイルをビルドします。たとえば、アプリケーションをデバッグ用にビルドする際に特定のオプション セット (コンパイラ フラグおよびマクロ定義など) を使用し、最終的なカスタマーへのリリース用にビルドする際には異なるオプション セットを使用するなどです。Vitis ソフトウェア プラットフォームでは、ビルド コンフィギュレーションの概念を使用しており、これらの異なるプロファイルを管理しやすくなっています。

ビルド コンフィギュレーションは、ビルド ツール オプションのコレクションです。ビルド コンフィギュレーションのオプション セットに基づいて、ビルド ツールで特定の特性を持つ最終的なバイナリが生成されます。ウィザードのプロセスが終了すると、<projectname> (<projectname> はプロジェクト名) という名前の実行コンフィギュレーションが生成されます。

ビルド コンフィギュレーションでは、次をカスタマイズできます。

  • コンパイラ設定: デバッグおよび最適化レベル
  • コンパイル用に渡されるマクロ
  • リンカー設定

Vitis ソフトウェア プラットフォームでは、デフォルトで次の表に示す 3 つのビルド コンフィギュレーションが提供されています。

表 1. ビルド コンフィギュレーション
コンフィギュレーション タイプ コンパイラ フラグ
デバッグ -O0 -g
リリース -O2
プロファイル -O2 -g -pg

ビルド コンフィギュレーションの変更

Tool Settings プロパティ タブを使用して、ビルド コンフィギュレーションに使用するツールおよびツール オプションをカスタマイズします。ビルド設定を変更する手順は、次のとおりです。

  1. Project Explorer ビューでビルド設定を変更するプロジェクトを選択します。
  2. Project > Properties をクリックします。Properties for <project> ウィンドウが表示されます。ウィンドウの左側には、プロパティ リストが表示されます。このリストには、現在のプロジェクトに適用されるビルド プロパティが表示されます。
  3. C/C++ Build プロパティを展開します。
  4. Settings を選択します。
  5. Configuration リストから、変更する必要があるコンフィギュレーションを選択します。
  6. Tool Settings タブをクリックします。
  7. ツールを選択して要件に合わせて設定を変更します。
  8. Apply をクリックして設定を保存します。
  9. ツールおよびその設定のアップデートが終了したら、OK をクリックして Properties for <project> ウィンドウを保存して閉じます。

ライブラリおよびライブラリ パスの追加

アプリケーション プロジェクトには、ライブラリおよびライブラリ パスを追加できます。リンクするカスタム ライブラリがある場合は、リンカーに対してそのライブラリ パスとライブラリ名を指定する必要があります。

アプリケーション プロジェクトのプロパティを設定する手順は、次のとおりです。

  1. アプリケーション プロジェクトを右クリックして C/C++ Build Settings をクリックします。または、Properties をクリックし、C/C++ Build > Settings をクリックします。
  2. ターゲット リンカー セクションを展開して、カスタム ライブラリ パスとライブラリ名を追加するライブラリを選択します。

リンカー オプションの指定

アプリケーション プロジェクトにはリンカー オプションを指定できます。[Tool Settings] に含まれないその他のリンカー フラグは、ここで指定できます。

プロジェクトのプロパティを設定するには、次の手順に従います。

  1. Managed Make プロジェクトを右クリックし、C/C++ Build Settings をクリックします。または、Properties をクリックし、C/C++ Build > Settings をクリックします。
  2. [Tool Settings] タブで、ターゲット リンカー セクションを展開します。
  3. Miscellaneous を選択します。
  4. Add ボタンをクリックし、[Linker Flags] フィールドでリンカー オプションを指定します。オプションを削除するには Delete ボタンをクリックし、変更するには Edit ボタンをクリックします。

デバッグおよび最適化コンパイラ フラグの指定

選択したビルド コンフィギュレーションに基づいて、Vitis ソフトウェア プラットフォームによりデフォルトの最適化レベルとコンパイル用のデバッグ フラグが指定されます。プロジェクトのデフォルト値は変更できます。

プロジェクトのプロパティを設定するには、次の手順に従います。

  1. Managed Make プロジェクトを右クリックします。
  2. Properties をクリックします。または、プロジェクトの特定のソースのプロパティを設定するには、Standard Make プロジェクト内でソース ファイルを右クリックして Properties をクリックし、プロパティのダイアログ ボックスを開きます。
  3. C/C++ Build を展開します。
  4. Settings をクリックします。
  5. [Tool Settings] タブで、gcc compiler を展開します。
  6. Optimization で最適化レベル、Debugging でデバッグ レベルを変更します。

その他のコンパイラ フラグの指定

Tool Settings に含まれないその他のプログラム コンパイル用のコンパイラ フラグも指定できます。

プロジェクトのプロパティを設定するには、次の手順に従います。

  1. Managed Make プロジェクトを右クリックし、Properties をクリックします。または、プロジェクトの特定のソースのプロパティを設定するには、Standard Make プロジェクト内でソース ファイルを右クリックし、Properties をクリックします。
  2. C/C++ Build をクリックしてリストを展開し、Settings をクリックします。
  3. [Tool Settings] タブで gcc compiler リストを展開します。
  4. Miscellaneous をクリックします。
  5. [Other flags] フィールドでコンパイラ フラグを指定します。

ビルド コンフィギュレーションの復元

次の手順を使用すると、ビルド プロパティを出荷時のデフォルト設定に復元したり、最後の既知の作業ビルド設定に戻すことができます。

  1. ビルド設定を変更するプロジェクトを [Project Explorer] ビューで選択します。
  2. Project > Properties をクリックします。Properties for <project> ウィンドウが表示されます。ウィンドウの左側には、プロパティ リストが表示されます。このリストには、現在のプロジェクトに適用されるビルド プロパティが表示されます。
  3. Restore Defaults ボタンをクリックします。
  4. ビルド設定の復元が終了したら、OK をクリックして Properties for <project> ウィンドウを保存して閉じます。

makefiles

ソース ファイルのオブジェクトファイルへのコンパイルは、makefile を使用して制御されます。Vitis ソフトウェア プラットフォームを使用する場合は、次の 2 つの makefile オプションがあります。

Managed Make
Managed Make プロジェクトの場合は、Vitis ソフトウェア プラットフォームで自動的に makefile が作成されます。Vitis ソフトウェア プラットフォームで作成された makefile は、通常ソースをオブジェクトへコンパイルし、最後にそれらの異なるオブジェクト ファイルを実行ファイルへリンクします。ほとんどの場合、Managed Make により、makefile を接続する必要がなくなります。これは、お勧めのオプションです。
Standard Make
ユーザーがコンパイル プロセスを完全に制御する場合は、Standard Make プロジェクトを使用します。この場合、アプリケーションをコンパイルしてリンクする手順を使用して makefile を手動で記述する必要があります。Standard Make フローを使用すると、Vitis ソフトウェア プラットフォームからの多くの依存が隠されます。Vitis ソフトウェア プラットフォーム内からのアプリケーションのデバッグまたは実行のようなその他のタスクは、手動で実行する必要があります。このため、通常は Standard Make フローはお勧めしません。

プロジェクトのデバッグ

Vitis ソフトウェア プラットフォームでデバッガーを使用すると、プログラムの実行中に何が起こっているかを確認できます。プロセッサを停止するブレークポイントまたはウォッチポイントの設定、プログラムのステップ実行、プログラム変数およびスタックの確認、システム内のメモリ内容の確認などを実行できます。

デバッガーでは、ザイリンクス システム デバッガーおよび GNU デバッガー (GDB) を使用したデバッグがサポートされます。ザイリンクス システム デバッガーは、オープンソース ツールから作成されたツールで、Vitis ソフトウェア プラットフォームに統合されています。

ハードウェア デバッグ ターゲット

Vitis ソフトウェア プラットフォームでは、FPGA または Zynq-7000 SoC で実行されるプロセッサのプログラムのデバッグがサポートされます。すべてのプロセッサ アーキテクチャ (MicroBlaze および Arm® Cortex A9 プロセッサ) がサポートされます。Vitis ソフトウェア プラットフォームは、FPGA または Zynq-7000 SoC デバイスのプロセッサと通信します。

FPGA のプロセッサをデバッグする前に、適切なシステム ビットストリームを使用して FPGA をコンフィギュレーションします。

各プロセッサのデバッグ ロジックを使用すると、プロセッサ実行を制御してプログラム デバッグができるようになります。ソフト MicroBlaze プロセッサ コアのデバッグ ロジックはコンフィギャラブルで、エンベデッド ハードウェアをビルドする際にハードウェア設計者がイネーブルまたはディスエーブルにできます。MicroBlaze プロセッサでデバッグ ロジックをイネーブルにすると、ハードウェア ブレークポイント、読み出し/書き込みメモリ ウォッチポイント、セーフモード デバッグのほか、MicroBlaze プロセッサをさらに見やすくするといったアドバンス デバッグ機能を使用できます。これは、MicroBlaze ソフトウェアのデバッグに推奨される方法です。

GDB の使用

このセクションでは、GDB を使用してベアメタル アプリケーションをデバッグする方法について説明します。

ベアメタル アプリケーションをデバッグする手順は、次のとおりです。

  1. サンプルの Hello World プロジェクトを作成します。
  2. アプリケーションを選択し、Run > Debug As > Single Application Debug (GDB) をクリックします。[Main] タブが選択された状態で [Debug Configuration] ウィンドウが開きます。

  3. デフォルトでは、Vitis ソフトウェア プラットフォームに含まれる GDB がデフォルト ポートで使用されますが、[Debug Configurations] の [Debugger] タブで GDB とポートを指定することもできます。
    注記: 別のアーキテクチャ用に GDB サーバーで使用されるデフォルト ポートは、次のとおりです。
    • Arm: 3000
    • Arm: AArch64
    • MicroBlaze: 3002
  4. Debug ボタンをクリックしてアプリケーションのデバッグを開始します。