SDx IDE の用語集

SDx™ IDE

この付録では、SDx IDE のプラットフォーム プロジェクト (アプリケーション プロジェクトに対して) について説明し、さまざまなパースペクティブまたは別の表示設定に変更できる複数のビューについて説明します。デフォルトのパースペクティブには、次のような機能があります。

  • [Explorer] ビュー: 画面左側に表示され、プロジェクト階層、ソース ファイル、およびリソースをナビゲートできます。
  • [Editor] ビュー: 画面中央にプロジェクトが表示され、プロジェクトの機能を修正したり、コード、スクリプト、コンフィギュレーション ファイルなどを編集できます。ファイルは [Explorer] ビューでダブルクリックすると開くことができます。
  • [Console] ビュー: 画面下部に表示され、SDx ツールに含まれるさまざまなプロセスおよびユーティリティの結果が表示されます。

ビューは、[Window] > [Show View] コマンドで設定できます。また、必要に応じて表示/非表示を切り替えたり、並べ替えたり、後でツールに読み込むことのできるパースペクティブに保存したりできます。SDx IDE の使用方法の詳細は、SDSoC 環境ユーザー ガイド を参照してください。

[Editor] ビューでは、プロセッサのエレメントはプラットフォーム、システム コンフィギュレーション、プロセッサ ドメインの 3 つのプラットフォーム レベルに含まれます。[Editor] ビューの下部には、プラットフォームを作成するプロセスを定義したワークフローも表示されます。次のセクションでは、これらのプラットフォームの各エレメントの定義方法について説明します。

プラットフォーム

前の例では、プロジェクトを作成する際に指定した情報でプラットフォーム プロジェクトが作成されます。

  • [Name]: 名前が表示されます。
  • [DSA]: プラットフォームに関連付けられた DSA ファイルが表示されます。
    重要: この名前と DSA ファイルは、プラットフォームの作成時に指定したものになり、変更はできません。
  • [Description]: このフィールドは、最初プラットフォーム名からコピーされたものになりますが、[Edit] ボタン () をクリックして、さらに詳細なプラットフォームの説明を記述することもできます。
  • [Samples]: このオプションのフィールドには、プラットフォームで使用するサンプル アプリケーションを含んだフォルダーへのパスを指定します。詳細は、サンプル アプリケーション を参照してください。
    ヒント: [Samples] フォルダーは、[Browse] ボタンから指定できるほか、プラットフォーム プロジェクトの resources フォルダーにサンプルを追加しておいて、[Search] コマンド () で探して読み込むこともできます。[Explore] ビューに表示される resources フォルダーはワークスペース内でプロジェクトに対してローカルになっており、プラットフォーム プロジェクトをほかのユーザーと共有がしやすくなっています。

システム コンフィギュレーションの定義

システム コンフィギュレーションでは、ハードウェア プラットフォームで起動されて実行されるソフトウェア環境が定義されます。ハードウェア プラットフォームのプロセッサのオペレーティング システムとランタイム設定が指定されるほか、ソフトウェア コンフィギャラブルなハードウェア パラメーターも含まれます。

システム コンフィギュレーションをプラットフォームに追加するには、SDx IDE でプラットフォーム プロジェクトを開いて、[Editor] ビューの下部にあるワークフローで [Define System Configuration] コマンドをクリックします。次のような [New System Configuration] ダイアログ ボックスが開きます。
ヒント: [Editor] ビューで [Add] ボタン () をクリックして、[System Configuration] を選択する方法でも追加できます。

[System Configuration] ダイアログ ボックスには、次のフィールドが含まれます。

  • [Name]: システム コンフィギュレーションの名前を指定します。名前は、英数字 3 ~ 40 文字にする必要があり、アンダースコア (_) およびダッシュ (-) 以外の特殊文字は使用できません。システム コンフィギュレーション名は識別子になるので、作成後に変更はできません。
    ヒント: makefile フローまたはコマンド ラインを使用する場合は、sds++ にオプションの -sds-sys-config<name> を付けて、使用するソフトウェア プラットフォーム (ターゲット オペレーティング システムおよびその他の設定を含む) を指定します。
  • [Display Name]: SDx IDE およびレポートで表示される名前。この名前にはスペースおよび特殊文字を含めることができます。名前を変更することもできます。
  • [Description]: コンフィギュレーションの簡単な説明を入力します。
  • 重要: BIF ファイルで参照したファイルはすべて [Boot Directory] フィールドで指定したディレクトリに含まれている必要があります。

[OK] をクリックすると、[New System Configuration] ダイアログ ボックスが閉じ、プラットフォームにコンフィギュレーションが追加されます。[Editor] ビューにコンフィギュレーションがリストされます。

[Editor] ビューの左側のプラットフォームのツリー表示からシステム コンフィギュレーションを選択すると、システム コンフィギュレーションの情報が定義したように表示されます。また、コンフィギュレーションに関連する readme ファイルを定義できる [Readme] フィールドも表示されます。readme ファイルは、SD カードと一緒に入手できるようになるはずです。このファイルでは、このコンフィギュレーションでのアプリケーションのブート方法、およびジャンパー設定などのボードの物理的な設定方法などを説明します。ユーザーへの説明を含む単純なテキスト ファイルです。

プロセッサ ドメインの定義

プロセッサ ドメインは、デバイス上で実行される 1 つまたは複数のプロセッサおよびランタイムを定義します。ドメインでは、Linux、FreeRTOS、Standalone などの OS 設定が定義されます。

次の図に示すように、SDSoC™ では Standalone または FreeRTOS オペレーティング システムをターゲットにするアプリケーションを構築して、特定のプロセッサ コア (Cortex™-A9、Cortex-A53、または Cortex-R5) をターゲットできます。Linux アプリケーションの場合は、OS から可視のすべてのコアで実行されるように構築されます。Linux オペレーティング システムのドメインを定義する際は、特定のコアをターゲットにする必要はありません。Linux スケジューラがプロセッサ間を適切にスケジュールするので、特定のコアに限定されないのです。

ドメインをシステム コンフィギュレーションに追加するには、[Editor] ビューの下部のワークフローから [Add Processor Group/Domain] コマンドをクリックします。次のような [New Domain] ダイアログ ボックス開きます。
ヒント: [Editor] ビューで [Add] ボタン () をクリックして、[Domain] を選択する方法もあります。

[System Configuration] ダイアログ ボックスには、次のフィールドが含まれます。

  • [Name]: ドメイン名を指定します。
    ヒント: 名前は、英数字 3 ~ 40 文字にする必要があり、アンダースコア (_) およびダッシュ (-) 以外の特殊文字は使用できません。
  • [Display Name]: SDx IDE およびレポートで表示される名前。この名前にはスペースおよび特殊文字を含めることができます。
  • [OS]: 設定する OS のタイプをドロップダウン リストから [Linux]、[FreeRTOS]、[Standalone] のいずれかに指定します。各 OS ごとに、指定したアプリケーションに対してブート ファイルをコンパイル、リンク、生成するために含める必要のあるさまざまなファイルがあります。[New Domain] ダイアログ ボックスのフィールドは、選択した OS によって異なります。
  • [Processor]: プラットフォームに使用可能なプロセッサ タイプを定義します。使用可能なプロセッサのタイプは、DSA で定義されたように、ハードウェア プラットフォームの IP によって決まります。ハードウェア デザインに IP が含まれる場合は、このリストに表示されます。
  • [Supported Runtime]: ドロップダウン リストからプラットフォームのカーネル ランタイムを指定します。これで、ランタイムでカーネル ロジックを処理するのに使用するコンパイラが指定できます。C/C++ はすべての OS でサポートされます。
  • [Prebuilt Linux Image]: Linux OS の場合、たとえば PetaLinux を使用してハードウェア デザインの Linux イメージをビルドして、イメージ ディレクトリを提供する必要があります。正しいイメージをビルドする方法の詳細は、プラットフォーム ソフトウェア コンポーネントの作成 を参照してください。
  • [Linker Script]: FreeRTOS および Standalone でのみ必要な設定です。これは SDx アプリケーション ビルドでベアメタルまたは FreeRTOS ELF をリンキングする際に使用されるリンカー スクリプトです。このファイルを使用すると、ELF でのセクションの統合方法、メモリ内での位置などをプログラマが指定できます。ユーザーもスタックおよびヒープに対してどれくらい DDR メモリを割り当てるのかを指定できます。
    ヒント: SDx プラットフォームにリンカー スクリプトを追加する場合、SDK のデフォルト値では通常の SDx アプリケーションには小さすぎるため、スタックおよびヒープ サイズを増加する必要があります。
  • [Description]: ドメインの簡単な説明を入力します。

[OK] をクリックすると、[New Domain] ダイアログ ボックスが閉じ、プラットフォームにプロセッサ ドメインが追加されます。[Editor] ビューにドメインがリストされます。ドメインを定義したら、次の図のように SDx IDE にドメインの追加フィールドが表示され、プラットフォーム プロジェクトで選択すると、編集できます。

ドメインの新しいフィールドには、次が含まれます。

  • [Repositories]: スタンドアロンおよび FreeRTOS にのみ使用可能です。ユーザー ハードウェア デザインの BSP を作成するのに必要なエンベデッド ドライバーおよびライブラリを保持するために使用します。これはディレクトリで、<platform>/sw/<sysconfig>/<domain>/bspRepo ディレクトリにコピーされます。エントリは、spfm ファイルに sdx:bspRepo タグで追加されます。
  • [Prebuilt data]: プリビルド ビットストリームおよび生成済みソフトウェア アーチファクト (ハードウェアでアクセラレーションされる関数のないソフトウェアのみのプロジェクトの見本) を含むディレクトリを指定します。カスタム プラットフォーム用にプリビルド データを生成する方法は、ハードウェアのプリビルドを参照してください。

また、[Editor] ビューで [Domain] を選択した場合は、ドメインのサブヘディングが次のように表示されます。

  • [Prebuilt Image]: Linux ドメインの場合のみに表示され、ドメインを作成したときに指定したプリビルド Linux イメージの内容が示されます。
  • [Application Settings]: Standalone または FreeRTOS ドメインの場合、ドメインを作成したときに指定したリンカー スクリプトが示されます。
  • [Board Support Package]: Standalone または FreeRTOS ドメインの場合、ボード サポート パッケージ (BSP) ライブラリとアクセラレータのないベース プラットフォームのドライバーを定義する Microprocessor Software Specification (MSS) ファイルを指定して、プラットフォーム、データ モーションネットワーク、ハードウェア アクセラレータ関数を含む最終的なデザインの MSS を作成する際のベースラインにします。MSS を使用すると、ライブラリおよびライブラリ オプションを定義できます。このオプションは、spfm ファイルに sdx:bspConfig タグで追加されます。指定した MSS ファイルは、<platform>/sw/<sysconfig>/<domain> ディレクトリにコピーされます。
    重要: MSS ファイルを指定するのは、BSP のデフォルト設定を使用しない場合のみです。MSS ファイルを指定する場合、[Library] の [Include Path] に MSS ファイルを使用する際に生成されたインクルード ファイルを含むディレクトリを指定する必要もあります。
  • [Libraries]: 次の 2 つのフィールドが含まれます。
    • [Libraries]: プラットフォーム ユーザーに個別のライブラリを選択させて、アプリケーションに使用できるようにします。
    • [Include Paths]: プラットフォーム ユーザーにインクルード ファイルを含むディレクトリを指定させて、アプリケーションで使用できるようにします。
      ヒント: ライブラリは、<platform>/sw/<sysconfig>/<domain>/lib にコピーされ、[Include Paths]<platform>/sw/<sysconfig>/<domain>/inc にコピーされます。

プラットフォームの生成とリポジトリへの追加

SDSoC プラットフォーム プロジェクトの設定が終了したら、[Editor] ビューの下部のワークフローから [Generate Platform] コマンドをクリックします。これで、ファイルのコピーおよび作成プロセスが開始され、プラットフォームのメタデータが生成されます。新しいプラットフォーム ファイルがそのプラットフォーム プロジェクトのワークスペースに書き込まれます。プラットフォーム ファイルは必要に応じて生成し直すことができます。
重要: プラットフォーム プロジェクト、システム コンフィギュレーション、またはドメインのフィールドを変更した場合、プラットフォームを生成し直してリポジトリのプラットフォームをアップデートする必要があります。プラットフォームをリポジトリにエクスポートし直す必要はありませんが、出力を生成し直す必要があります。

SDx プラットフォームが生成されると、プラットフォーム プロジェクト フォルダーの workspace/<project_name>/export に書き。

最後に、プラットフォームを生成したら、[Editor] ビューの下部のワークフローの [Add to Custom Repositories] コマンドをクリックします。これでエクスポートされたプラットフォームが SDx カスタム リポジトリに追加され、SDx のアプリケーションおよびシステム プロジェクトで使用できるようになります。カスタム リポジトリはディレクトリのリストで、これらのディレクトリは SDx ツールで追加プラットフォームがないかどうかスキャンされます。[Add to Custom Repositories] をクリックすると、プラットフォーム出力ディレクトリ (./export) がリポジトリに追加されます。

このプラットフォームをほかのユーザーと共有するには、エクスポートしたプラットフォーム フォルダーを共有のディレクトリにコピーし、ユーザーには [Xilinx] > [Add Custom Repository] メニュー コマンドを使用して、カスタム リポジトリにそのディレクトリを追加してもらいます。プラットフォームが次の図のように使用可能なプラットフォームのリストに追加されます。

ヒント: SDx の GUI には、プラットフォーム生成をスクリプト記述に使用できるように、Tcl コマンドが記録されます。SDSoC プラットフォームをビルドするコマンド ライン フローの使用例については、コマンド ラインからの SDSoC プラットフォームの作成を参照してください。