ユーザー アプリケーション テンプレートの作成

Vitis ソフトウェア プラットフォームおよび XSCT では、リポジトリ機能を使用したユーザー定義のアプリケーション テンプレートの作成がサポートされます。スタンドアロンまたは Linux アプリケーション テンプレートを作成する手順は、次のとおりです。

  1. ユーザー定義のアプリケーション テンプレートを作成するには、まず既存テンプレートから、ソース ファイルと一緒に定義する必要のあるディレクトリ構造およびファイルを確認してみます。
    1. サンプルのスタンドアロン OS のアプリケーション テンプレート ファイルは、<Vitis software platform installation directory>\data\embeddedsw\lib\sw_apps\lwip_echo_server に含まれます。
    2. サンプルの Linux OS のアプリケーション テンプレート ファイルは、<Vitis software platform installation directory>\data\embeddedsw\lib\sw_apps_linux\linux_hello_world に含まれます。
    3. フォルダー名に注目してください。ファイル名は、アプリケーション テンプレート名と同じになることにも注目してください (ファイル拡張子は異なります)。
    4. アプリケーション テンプレート名と OS を決めます。
    5. アプリケーションの Tcl ファイルを作成します。Tcl ファイル名は、アプリケーション テンプレート名と同じにする必要があります。
    6. Tcl ファイルに次の関数を追加します。
      1. swapp_get_name: この関数は、アプリケーション テンプレート名を戻します。戻り値は、アプリケーション テンプレート名と同じになるはずです。
        proc swapp_get_name {} {
            return "lwIP Echo Server";
        }
      2. swapp_get_description: この関数は Vitis IDE のアプリケーション テンプレートの説明を表示します。この説明は、アプリケーションの詳細に従ってカスタマイズできます。
        proc swapp_get_description {} {    
        return "The lwIP Echo Server application provides a simple demonstration of 
        how to use the light-weight IP stack (lwIP). This application sets up the board 
        to use IP address 192.168.1.10, with MAC address 00:0a:35:00:01:02. The server listens 
        for input at port 7 and simply echoes back whatever data is sent to that port."
        }
      3. swapp_is_supported_sw: この関数は、アプリケーション プロジェクトに必要なソフトウェア ライブラリをチェックします。たとえば、lwip_echo_server アプリケーション テンプレートにはドメインに lwip ライブラリが必要です。

      4. swapp_is_supported_hw: この関数は、アプリケーションが特定のデザインでサポートされるかどうかをチェックします。たとえば、lwipMicroBlaze™ プロセッサではサポートされません。

      5. swapp_get_linker_constraints: この関数は、リンカー スクリプトを生成するのに使用します。lscript no が表示される場合、リンカー スクリプトがアプリケーション テンプレートからコピーされます。たとえば、FSBL アプリケーションはリンカー スクリプトを生成しません。デフォルトのリンカー スクリプトは src フォルダーに含まれ、アプリケーションを作成するのに使用されます。
        proc swapp_get_linker_constraints {} {    
            # don't generate a linker script. fsbl has its own linker script
            return "lscript no";
        }
      6. swapp_get_supported_processors: この関数は、アプリケーション テンプレートでサポートされるプロセッサをチェックします。たとえば、linux_hello_world プロジェクトでは ps7_cortexa9psu_cortexa53、および microblaze プロセッサがサポートされます。
        proc swapp_get_supported_processors {} {
            return "ps7_cortexa9 psu_cortexa53 microblaze";
        }
      7. proc swap_get_supported_os: この関数は、アプリケーション テンプレートでサポートされる OS をチェックします。
        proc swapp_get_supported_os {} {
            return "linux";
        }
  2. アプリケーションの MSS ファイルを作成して、アプリケーション テンプレートに特定のドライバー ライブラリを提供します。MSS ファイル名は、アプリケーション テンプレート名と同じような名前にする必要があります。
  3. OS および LIBRARY パラメーターの説明を指定します。

  4. 新しく作成された Tcl および MSS ファイルを data フォルダーにコピーします。
  5. ソース ファイルを作成して、src フォルダーに保存します。必要な場合は、lscript.ld ファイルを src フォルダーにコピーします。
  6. data および src フォルダーを新しく作成したフォルダーに移動します。次に例を示します。
    • スタンドアロン アプリケーション テンプレートの場合は、sw_apps フォルダーを作成し、data および src フォルダーを新しく作成したフォルダーに移動します。Vitis ソフトウェア プラットフォームは、sw_apps フォルダーに作成されたアプリケーションをスタンドアロン アプリケーションとして認識します。
    • Linux アプリケーション テンプレートの場合、sw_apps_linux フォルダーを作成して、data および src フォルダーを新しく作成したフォルダーに移動します。Vitis ソフトウェア プラットフォームは、sw_apps_linux フォルダーに作成されたアプリケーションを Linux アプリケーションとして認識します。

ユーザー アプリケーション テンプレートへのアクセス

ユーザー テンプレート アプリケーションには、Vitis IDE または XSCT を使用してアクセスできます。ユーザー アプリケーション テンプレートにアクセスするには、次の手順に従います。

  1. Vitis IDE を使用:
    1. Vitis IDE を起動します。
    2. Xilinx > Repositories > Add をクリックします。
    3. 表示されるダイアログ ボックスでリポジトリ フォルダーを選択します。
      注記: スタンドアロン アプリケーションの場合、アプリケーションを含む親フォルダーは sw_apps です。たとえば、C:\temp\repo\sw_apps\custom_app_name のようになります。Linux アプリケーションの場合、アプリケーションを含む親フォルダーは sw_apps_linux です。たとえば、C:\temp\repo\sw_apps_linux\custom_app_name のようになります。
    4. File > New > Application Project をクリックします。New Project ウィザードが表示されます。
    5. プロジェクト名を指定します。
    6. プラットフォームを選択するか、ハードウェア (XSA) から新しいプラットフォームを作成します。
    7. ユーザー アプリケーション テンプレートに一致する OS とプロセッサを選択します。
    8. Available Templates リストからユーザー アプリケーション テンプレートを選択して Finish をクリックし、選択したユーザー アプリケーション テンプレートに基づくアプリケーションを作成します。
  2. XSCT を使用:
    1. XSCT プロンプトで次のコマンドを実行します。
      setws {c:\temp\workspace}
      repo –set {C:\temp\repo}
      app create –name custom_app –hw zc702 -os standalone -proc -template {custom_app_name}
      app build -name custom_app