Vitis IDE での Git 入門
VSCode ベースの新しい「Unified Vitis」IDE で Git を使用すると、古い Eclipse ベースのバージョンと比較して独特の課題が生じます。最新バージョンではプロジェクトのインポート/エクスポート ウィザードが欠落しているため、バージョン管理を効果的に管理することが困難になります。
このガイドは、絶対パスを使用した生成ファイルの処理や、異なる開発システム間でのスムーズなコラボレーションの確保など、Vitis で Git を使用する際に発生する問題に対処することを目的としています。 Git を使用して Vitis プロジェクトを効率的に管理するための実践的なワークフローを見ていきます。
指示 | 説明 |
---|---|
import vitis | Vitis API をインポートして、プログラムで Vitis プロジェクトと対話します。 |
client.set_workspace() | Vitis クライアントがプロジェクト ファイルを管理するためのワークスペース ディレクトリを設定します。 |
client.create_platform_component() | 指定されたハードウェアおよび OS パラメーターを使用して、Vitis ワークスペースに新しいプラットフォーム コンポーネントを作成します。 |
platform.build() | Vitis で指定されたプラットフォーム コンポーネントのビルド プロセスをトリガーします。 |
client.create_app_component() | Vitis の指定されたプラットフォーム コンポーネントにリンクされた新しいアプリケーション コンポーネントを作成します。 |
comp.import_files() | 必要なファイルをソース ディレクトリから Vitis アプリケーション コンポーネントにインポートします。 |
os.makedirs() | 必要な親ディレクトリを含む、指定されたディレクトリ構造を作成します。 |
vitis -s tools/build_app.py | Vitis コマンド ライン インターフェイスを使用して指定された Python スクリプトを実行し、プロジェクトをセットアップします。 |
echo "build-vitis/" >>echo "build-vitis/" >> .gitignore | ビルド ディレクトリを Git 無視ファイルに追加して、バージョン管理から除外します。 |
git commit -m | 指定されたコミット メッセージを使用して、段階的な変更をローカル Git リポジトリにコミットします。 |
Vitis 自動化スクリプトの説明
最初のスクリプトは、Python を使用して Vitis プロジェクトのセットアップを自動化します。具体的には、必要なモジュールをインポートすることから始まります。 そして 。次に、ルート パスを定義し、ビルド ディレクトリが存在しない場合は、次のコマンドを使用してビルド ディレクトリを作成します。 。スクリプトは、XSA ファイルとメイン ソース ディレクトリの予期されるパスを設定します。次に、Vitis クライアントを作成し、新しく作成したビルド ディレクトリにワークスペースを設定します。プラットフォームコンポーネントは次のように作成されます。 client.create_platform_component()、ハードウェア、OS、CPU 構成を指定します。プラットフォーム コンポーネントが構築されると、アプリケーション コンポーネントが作成され、プラットフォーム コンポーネントにリンクされます。最後に、必要なファイルが Vitis プロジェクトにインポートされ、コンポーネントがビルドされます。
2 番目のスクリプトは、Vitis プロジェクトを初期化し、Git 統合をセットアップするシェル スクリプトです。ルート パスとビルド ディレクトリを定義し、ディレクトリが存在しない場合は作成します。次に、スクリプトは次を使用して Python スクリプトを実行します。 プロジェクトのセットアップを自動化します。 Python スクリプトの実行後、シェル スクリプトはルート ディレクトリに移動して Git リポジトリをセットアップし、次のように Git を初期化します。 、ビルドディレクトリを ファイル。関連するファイルを次のようにステージングします。 git add そしてそれらをリポジトリにコミットします 。このアプローチにより、必要なプロジェクト ファイルを追跡しながら、ビルド ディレクトリがバージョン管理から確実に除外されます。
Python を使用した Vitis プロジェクトのセットアップの自動化
Vitis プロジェクトのセットアップと Git 統合を処理するための Python スクリプト
import vitis
import os
ROOT_PATH = os.path.abspath(os.path.dirname(__file__))
VITIS_BUILD_DIR_PATH = os.path.join(ROOT_PATH, "build-vitis")
os.makedirs(VITIS_BUILD_DIR_PATH, exist_ok=True)
EXPECTED_XSA_FILE_PATH = os.path.join(ROOT_PATH, "build-vivado", "mydesign.xsa")
COMPONENT_NAME = "MyComponent"
MAIN_SRC_PATH = os.path.join(ROOT_PATH, "src")
client = vitis.create_client()
client.set_workspace(path=VITIS_BUILD_DIR_PATH)
PLATFORM_NAME = "platform_baremetal"
platform = client.create_platform_component(
name=PLATFORM_NAME,
hw=EXPECTED_XSA_FILE_PATH,
os="standalone",
cpu="mycpu"
)
platform = client.get_platform_component(name=PLATFORM_NAME)
status = platform.build()
comp = client.create_app_component(
name=COMPONENT_NAME,
platform=os.path.join(VITIS_BUILD_DIR_PATH, PLATFORM_NAME, "export", PLATFORM_NAME, f"{PLATFORM_NAME}.xpfm"),
domain="mydomainname"
)
comp = client.get_component(name=COMPONENT_NAME)
status = comp.import_files(
from_loc=MAIN_SRC_PATH,
files=["CMakeLists.txt", "UserConfig.cmake", "lscript.ld", "NOTUSED.cpp"],
dest_dir_in_cmp="src"
)
comp.build()
Vitis プロジェクトでのソース管理の管理
Vitis プロジェクトの初期化とソース管理を合理化するシェル スクリプト
#!/bin/bash
ROOT_PATH=$(pwd)
VITIS_BUILD_DIR_PATH="$ROOT_PATH/build-vitis"
mkdir -p "$VITIS_BUILD_DIR_PATH"
EXPECTED_XSA_FILE_PATH="$ROOT_PATH/build-vivado/mydesign.xsa"
COMPONENT_NAME="MyComponent"
MAIN_SRC_PATH="$ROOT_PATH/src"
vitis -s tools/build_app.py
# After running the Python script, set up Git repository
cd "$ROOT_PATH"
git init
echo "build-vitis/" >> .gitignore
echo "build-vivado/" >> .gitignore
git add src/ tools/ .gitignore
git commit -m "Initial commit with project structure and scripts"
# Script end
Vitis IDE とバージョン管理について
新しい「Unified Vitis」IDE を Git で使用する場合の 1 つの側面には、Vitis プロジェクトの構造とコンポーネントを理解することが含まれます。 Vitis IDE は多数のファイルを生成し、その多くは絶対パスを含むため、バージョン管理が複雑になります。これらのファイルには、プラットフォーム構成、ハードウェアの説明、IDE 固有のメタデータが含まれます。これらのファイルが適切に処理されずにバージョン管理されている場合、開発者は、異なるシステム間でのパスの不一致によるビルド エラーなどの問題に直面する可能性があります。
これらの問題を軽減するには、Vitis 管理のフォルダーをバージョン管理から除外するのが一般的です。代わりに、リンカー スクリプト、CMake ファイル、その他の重要なプロジェクト ファイルなどの重要な構成ファイルは、Vitis が予期する適切な場所に手動でコピーされます。このアプローチにより、必要なファイルのみがバージョン管理されるようになり、他の開発者と共同作業する際の競合やエラーのリスクが軽減されます。さらに、Python やシェル スクリプトなどの自動化スクリプトを使用すると、このプロセスを合理化し、プロジェクトのセットアップとファイル管理の一貫性と再現性を確保できます。
- Vitis プロジェクトの Git リポジトリを初期化するにはどうすればよいですか?
- プロジェクトのルートに移動して次を実行することで、Git リポジトリを初期化できます。 。必要なファイルを追加します 不要なファイルを除外します。
- どのようなファイルを含めるべきか Vitis プロジェクト用ですか?
- 次のような IDE 固有のフォルダーを含めます。 そして 自動生成されたファイルのバージョン管理を避けるため。
- Vitis プロジェクトのセットアップを自動化するにはどうすればよいですか?
- Python スクリプトを使用して、プラットフォーム コンポーネントの作成や必要なファイルのインポートなどのタスクを自動化します。次を使用してスクリプトを実行します 。
- 構成ファイルを手動でコピーする必要があるのはなぜですか?
- Vitis は、特定の構成ファイルが特定の場所に存在することを想定しています。これらのファイルを手動またはスクリプト経由でコピーすると、IDE がそれらのファイルを正しく検出できるようになります。
- Vitis でプラットフォーム フォルダーとアプリケーション フォルダーを処理するにはどうすればよいですか?
- これらのフォルダーをバージョン管理から除外し、スクリプトを使用して必要なファイルを管理することで、一貫性を確保し、パスの競合を回避します。
- Git の使用中に Vitis でソース ファイルを直接編集できますか?
- はい、ただし、CMake セットアップが正しいソース ディレクトリを指していることを確認してください。 Vitis は構文ハイライトのインクルードと名前を正しく認識しない可能性があります。
- プロジェクトのセットアップにスクリプトを使用する利点は何ですか?
- スクリプトにより、一貫性と再現性のあるプロジェクト設定が保証され、手動エラーが削減され、異なる環境間でのコラボレーションが簡素化されます。
- 変更が加えられた場合、プロジェクト設定を更新するにはどうすればよいですか?
- 自動化スクリプトを変更して変更を反映し、再実行します。これにより、必要なすべての更新が正しく適用されます。
- パスの問題によりビルド エラーが発生した場合はどうすればよいですか?
- プロジェクトのセットアップ スクリプトをチェックし、すべてのパスが正しく指定されていることを確認してください。競合を避けるために、可能な場合は相対パスを使用してください。
Vitis IDE で効率的なバージョン管理を行うための重要なポイント
新しい Unified Vitis IDE を使用してバージョン管理を実装するには、いくつかの重要な手順が必要です。競合やエラーを避けるために、まず Vitis で生成されたフォルダーをバージョン管理から除外します。代わりに、リンカー スクリプト、CMake ファイル、その他の重要なプロジェクト コンポーネントなどの重要な構成ファイルの追跡に重点を置きます。自動化スクリプト、特に Python で記述されたスクリプトは、プロジェクトのセットアップを自動化し、必要なすべてのファイルが正しい場所に配置されるようにすることで、このプロセスを大幅に効率化できます。
セットアップを自動化することで、さまざまなシステム間で一貫した開発環境を確保し、パス関連の問題が発生する可能性を軽減できます。このアプローチにより、プロジェクト管理が簡素化されるだけでなく、開発者間のスムーズなコラボレーションも促進されます。さらに、ソース ファイルを元のディレクトリに保持し、CMake を使用してこれらのディレクトリを指定すると、Vitis の内部ファイル構造を扱う複雑さを回避しながら、編集とバージョン管理が容易になります。
Git を Unified Vitis IDE と統合するには、バージョン管理を効果的に管理するための戦略的アプローチが必要です。 Vitis が管理するフォルダーを除外し、重要な構成ファイルに重点を置くことで、開発者は絶対パスや IDE 固有のメタデータに関連する一般的な落とし穴を回避できます。自動化スクリプトは、反復可能で一貫性のあるプロジェクト設定を提供することで、このプロセスをさらに強化します。これらの戦略により、複雑な開発環境であっても、Vitis プロジェクトの管理性と共同作業性が維持されます。