Leitfaden zur Verwendung von Git mit Unified Vitis IDE

Leitfaden zur Verwendung von Git mit Unified Vitis IDE
Leitfaden zur Verwendung von Git mit Unified Vitis IDE

Erste Schritte mit Git in Vitis IDE

Die Verwendung von Git mit der neuen „Unified Vitis“-IDE, die auf VSCode basiert, stellt im Vergleich zur älteren Eclipse-basierten Version einzigartige Herausforderungen dar. Der Assistent zum Importieren/Exportieren von Projekten fehlt in der neuesten Version, was zu Schwierigkeiten bei der effektiven Verwaltung der Versionskontrolle führt.

Ziel dieses Leitfadens ist es, die Probleme zu beheben, die bei der Verwendung von Git in Vitis auftreten, einschließlich der Handhabung generierter Dateien mit absoluten Pfaden und der Gewährleistung einer reibungslosen Zusammenarbeit zwischen verschiedenen Entwicklungssystemen. Wir erkunden einen praktischen Workflow zur effizienten Verwaltung Ihrer Vitis-Projekte mit Git.

Befehl Beschreibung
import vitis Importiert die Vitis-API, um programmgesteuert mit Vitis-Projekten zu interagieren.
client.set_workspace() Legt das Arbeitsbereichsverzeichnis für den Vitis-Client zum Verwalten von Projektdateien fest.
client.create_platform_component() Erstellt eine neue Plattformkomponente im Vitis-Arbeitsbereich unter Verwendung der angegebenen Hardware- und Betriebssystemparameter.
platform.build() Löst den Build-Prozess für die angegebene Plattformkomponente in Vitis aus.
client.create_app_component() Erstellt eine neue Anwendungskomponente, die mit der angegebenen Plattformkomponente in Vitis verknüpft ist.
comp.import_files() Importiert erforderliche Dateien aus dem Quellverzeichnis in die Vitis-Anwendungskomponente.
os.makedirs() Erstellt die angegebene Verzeichnisstruktur, einschließlich aller erforderlichen übergeordneten Verzeichnisse.
vitis -s tools/build_app.py Führt das angegebene Python-Skript über die Vitis-Befehlszeilenschnittstelle aus, um das Projekt einzurichten.
echo "build-vitis/" >>echo "build-vitis/" >> .gitignore Fügt das Build-Verzeichnis zur Git-Ignorierdatei hinzu, um es von der Versionskontrolle auszuschließen.
git commit -m Überträgt die bereitgestellten Änderungen mit einer angegebenen Commit-Nachricht an das lokale Git-Repository.

Erklären der Vitis-Automatisierungsskripte

Das erste Skript automatisiert die Einrichtung eines Vitis-Projekts mit Python. Zunächst werden zunächst die notwendigen Module importiert vitis Und os. Anschließend wird der Root-Pfad definiert und das Build-Verzeichnis erstellt, falls dieses nicht vorhanden ist os.makedirs(). Das Skript richtet die erwarteten Pfade für die XSA-Datei und das Hauptquellverzeichnis ein. Als nächstes erstellt es einen Vitis-Client und legt den Arbeitsbereich auf das neu erstellte Build-Verzeichnis fest. Die Plattformkomponente wird mit erstellt client.create_platform_component(), unter Angabe der Hardware-, Betriebssystem- und CPU-Konfiguration. Sobald die Plattformkomponente erstellt ist, wird eine Anwendungskomponente erstellt und mit der Plattformkomponente verknüpft. Abschließend werden die notwendigen Dateien in das Vitis-Projekt importiert und die Komponente erstellt.

Das zweite Skript ist ein Shell-Skript, das das Vitis-Projekt initialisiert und die Git-Integration einrichtet. Es definiert den Root-Pfad und das Build-Verzeichnis und erstellt das Verzeichnis, falls es nicht existiert. Das Skript führt dann das Python-Skript mit aus vitis -s tools/build_app.py um die Projekteinrichtung zu automatisieren. Nachdem das Python-Skript ausgeführt wurde, richtet das Shell-Skript ein Git-Repository ein, indem es zum Stammverzeichnis navigiert und Git mit initialisiert git initund Hinzufügen von Build-Verzeichnissen zum .gitignore Datei. Es stellt die relevanten Dateien mit bereit git add und übergibt sie an das Repository mit git commit -m. Dieser Ansatz stellt sicher, dass die Build-Verzeichnisse von der Versionskontrolle ausgeschlossen sind, während die notwendigen Projektdateien weiterhin verfolgt werden.

Automatisierung des Vitis-Projekt-Setups mit Python

Python-Skript zur Abwicklung des Vitis-Projekt-Setups und der Git-Integration

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()

Verwalten der Quellcodeverwaltung in Vitis-Projekten

Shell-Skript zur Optimierung der Vitis-Projektinitialisierung und Quellcodeverwaltung

#!/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 und Versionskontrolle verstehen

Ein Aspekt der Verwendung der neuen „Unified Vitis“-IDE mit Git besteht darin, die Struktur und Komponenten von Vitis-Projekten zu verstehen. Die Vitis-IDE generiert zahlreiche Dateien, viele davon mit absoluten Pfaden, was die Versionskontrolle erschwert. Zu diesen Dateien gehören Plattformkonfigurationen, Hardwarebeschreibungen und IDE-spezifische Metadaten. Wenn diese Dateien ohne ordnungsgemäße Handhabung einer Versionskontrolle unterliegen, können Entwickler aufgrund nicht übereinstimmender Pfade auf verschiedenen Systemen mit Problemen wie Buildfehlern konfrontiert werden.

Um diese Probleme zu mildern, besteht eine gängige Praxis darin, von Vitis verwaltete Ordner von der Versionskontrolle auszuschließen. Stattdessen werden wichtige Konfigurationsdateien wie Linker-Skripte, CMake-Dateien und andere wichtige Projektdateien manuell an die entsprechenden, von Vitis erwarteten Speicherorte kopiert. Durch diesen Ansatz wird sichergestellt, dass nur die erforderlichen Dateien einer Versionskontrolle unterliegen, wodurch das Risiko von Konflikten und Fehlern bei der Zusammenarbeit mit anderen Entwicklern verringert wird. Darüber hinaus kann die Verwendung von Automatisierungsskripten wie Python oder Shell-Skripten diesen Prozess rationalisieren und sicherstellen, dass die Projekteinrichtung und Dateiverwaltung konsistent und reproduzierbar sind.

Häufige Fragen und Lösungen zur Verwendung von Git mit Vitis IDE

  1. Wie initialisiere ich ein Git-Repository für ein Vitis-Projekt?
  2. Sie können ein Git-Repository initialisieren, indem Sie zum Projektstammverzeichnis navigieren und es ausführen git init. Fügen Sie die erforderlichen Dateien hinzu .gitignore um unerwünschte Dateien auszuschließen.
  3. Welche Dateien sollten im enthalten sein .gitignore für ein Vitis-Projekt?
  4. Fügen Sie IDE-spezifische Ordner hinzu, z build-vitis/ Und build-vivado/ um die Versionskontrolle automatisch generierter Dateien zu vermeiden.
  5. Wie kann ich die Einrichtung eines Vitis-Projekts automatisieren?
  6. Verwenden Sie ein Python-Skript, um Aufgaben wie das Erstellen von Plattformkomponenten und das Importieren erforderlicher Dateien zu automatisieren. Führen Sie das Skript mit aus vitis -s tools/build_app.py.
  7. Warum muss ich Konfigurationsdateien manuell kopieren?
  8. Vitis geht davon aus, dass sich bestimmte Konfigurationsdateien an bestimmten Orten befinden. Durch manuelles Kopieren dieser Dateien oder per Skript wird sichergestellt, dass die IDE sie korrekt findet.
  9. Wie gehe ich mit Plattform- und Anwendungsordnern in Vitis um?
  10. Schließen Sie diese Ordner von der Versionskontrolle aus und verwenden Sie Skripts, um die erforderlichen Dateien zu verwalten, um Konsistenz sicherzustellen und Pfadkonflikte zu vermeiden.
  11. Kann ich Quelldateien direkt in Vitis bearbeiten, während ich Git verwende?
  12. Ja, aber stellen Sie sicher, dass Ihr CMake-Setup auf die richtigen Quellverzeichnisse verweist. Vitis erkennt Includes und Namen für die Syntaxhervorhebung möglicherweise nicht richtig.
  13. Welche Vorteile bietet die Verwendung von Skripten für die Projekteinrichtung?
  14. Skripte sorgen für einen konsistenten und wiederholbaren Projektaufbau, reduzieren manuelle Fehler und vereinfachen die Zusammenarbeit in verschiedenen Umgebungen.
  15. Wie kann ich mein Projekt-Setup aktualisieren, wenn Änderungen vorgenommen werden?
  16. Ändern Sie Ihre Automatisierungsskripte, um die Änderungen widerzuspiegeln, und führen Sie sie erneut aus. Dadurch wird sichergestellt, dass alle notwendigen Updates korrekt angewendet werden.
  17. Was soll ich tun, wenn aufgrund von Pfadproblemen Buildfehler auftreten?
  18. Überprüfen Sie Ihre Projekt-Setup-Skripte und stellen Sie sicher, dass alle Pfade korrekt angegeben sind. Verwenden Sie nach Möglichkeit relative Pfade, um Konflikte zu vermeiden.

Wichtige Punkte für eine effiziente Versionskontrolle in Vitis IDE

Die Implementierung der Versionskontrolle mit der neuen Unified Vitis IDE umfasst mehrere wichtige Schritte. Beginnen Sie damit, von Vitis generierte Ordner von der Versionskontrolle auszuschließen, um Konflikte und Fehler zu vermeiden. Konzentrieren Sie sich stattdessen auf die Verfolgung wichtiger Konfigurationsdateien wie Linker-Skripte, CMake-Dateien und anderer wichtiger Projektkomponenten. Automatisierungsskripte, insbesondere solche, die in Python geschrieben sind, können diesen Prozess erheblich rationalisieren, indem sie die Projekteinrichtung automatisieren und sicherstellen, dass sich alle erforderlichen Dateien an den richtigen Speicherorten befinden.

Durch die Automatisierung der Einrichtung können Sie eine konsistente Entwicklungsumgebung über verschiedene Systeme hinweg sicherstellen und so die Wahrscheinlichkeit pfadbezogener Probleme verringern. Dieser Ansatz vereinfacht nicht nur das Projektmanagement, sondern ermöglicht auch eine reibungslosere Zusammenarbeit zwischen Entwicklern. Darüber hinaus ermöglicht die Beibehaltung der Quelldateien in ihren ursprünglichen Verzeichnissen und die Verwendung von CMake, um auf diese Verzeichnisse zu verweisen, eine einfachere Bearbeitung und Versionskontrolle, während gleichzeitig die Komplexität des Umgangs mit den internen Dateistrukturen von Vitis vermieden wird.

Zusammenfassung des Workflows für Vitis und Git

Die Integration von Git in die Unified Vitis IDE erfordert einen strategischen Ansatz zur effektiven Verwaltung der Versionskontrolle. Durch den Ausschluss von von Vitis verwalteten Ordnern und die Konzentration auf wesentliche Konfigurationsdateien können Entwickler häufige Fallstricke im Zusammenhang mit absoluten Pfaden und IDE-spezifischen Metadaten vermeiden. Automatisierungsskripte verbessern diesen Prozess weiter, indem sie einen wiederholbaren und konsistenten Projektaufbau ermöglichen. Diese Strategien stellen sicher, dass Vitis-Projekte auch in komplexen Entwicklungsumgebungen überschaubar und kollaborativ bleiben.