Handleiding voor het gebruik van Git met Unified Vitis IDE

Handleiding voor het gebruik van Git met Unified Vitis IDE
Handleiding voor het gebruik van Git met Unified Vitis IDE

Aan de slag met Git in Vitis IDE

Het gebruik van Git met de nieuwe "Unified Vitis" IDE, gebaseerd op VSCode, biedt unieke uitdagingen vergeleken met de oudere, op Eclipse gebaseerde versie. De import/export-projectwizard ontbreekt in de nieuwste versie, wat problemen veroorzaakt bij het effectief beheren van versiebeheer.

Deze gids is bedoeld om de problemen aan te pakken die je tegenkomt bij het gebruik van Git in Vitis, inclusief het omgaan met gegenereerde bestanden met absolute paden en het garanderen van een soepele samenwerking tussen verschillende ontwikkelingssystemen. We verkennen een praktische workflow om uw Vitis-projecten efficiënt te beheren met Git.

Commando Beschrijving
import vitis Importeert de Vitis API voor programmatische interactie met Vitis-projecten.
client.set_workspace() Stelt de werkruimtemap in voor de Vitis-client om projectbestanden te beheren.
client.create_platform_component() Creëert een nieuwe platformcomponent in de Vitis-werkruimte met behulp van gespecificeerde hardware- en OS-parameters.
platform.build() Activeert het bouwproces voor de opgegeven platformcomponent in Vitis.
client.create_app_component() Creëert een nieuwe applicatiecomponent gekoppeld aan de opgegeven platformcomponent in Vitis.
comp.import_files() Importeert de benodigde bestanden uit de bronmap in de Vitis-applicatiecomponent.
os.makedirs() Creëert de opgegeven mapstructuur, inclusief eventuele noodzakelijke bovenliggende mappen.
vitis -s tools/build_app.py Voert het opgegeven Python-script uit met behulp van de Vitis-opdrachtregelinterface om het project in te stellen.
echo "build-vitis/" >>echo "build-vitis/" >> .gitignore Voegt de build-directory toe aan het Git-negeerbestand om het uit te sluiten van versiebeheer.
git commit -m Legt de gefaseerde wijzigingen vast in de lokale Git-repository met een gespecificeerd commit-bericht.

Uitleg van de Vitis Automation-scripts

Het eerste script automatiseert de opzet van een Vitis-project met behulp van Python. Het begint met het importeren van specifiek de benodigde modules vitis En os. Vervolgens wordt het hoofdpad gedefinieerd en wordt de build-map gemaakt als deze niet bestaat os.makedirs(). Het script stelt de verwachte paden in voor het XSA-bestand en de hoofdbronmap. Vervolgens wordt een Vitis-client gemaakt en wordt de werkruimte ingesteld op de nieuw gemaakte build-directory. De platformcomponent is gemaakt met client.create_platform_component(), met vermelding van de hardware-, besturingssysteem- en CPU-configuratie. Zodra de platformcomponent is gebouwd, wordt er een applicatiecomponent gemaakt en aan de platformcomponent gekoppeld. Ten slotte worden de benodigde bestanden in het Vitis-project geïmporteerd en wordt het onderdeel gebouwd.

Het tweede script is een shellscript dat het Vitis-project initialiseert en Git-integratie instelt. Het definieert het hoofdpad en de build-map, en maakt de map aan als deze niet bestaat. Het script voert vervolgens het Python-script uit met behulp van vitis -s tools/build_app.py om de projectconfiguratie te automatiseren. Nadat het Python-script is uitgevoerd, stelt het shell-script een Git-repository in door naar de hoofdmap te navigeren en Git te initialiseren met git init, en het toevoegen van build-mappen aan de .gitignore bestand. Het ensceneert de relevante bestanden met git add en verbindt ze met de repository git commit -m. Deze aanpak zorgt ervoor dat de build-mappen worden uitgesloten van versiebeheer, terwijl de benodigde projectbestanden worden bijgehouden.

Automatisering van Vitis-projectconfiguratie met Python

Python-script voor het afhandelen van Vitis-projectconfiguratie en Git-integratie

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

Beheer van bronbeheer in Vitis Projects

Shell-script om de initialisatie van Vitis-projecten en bronbeheer te stroomlijnen

#!/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

Inzicht in Vitis IDE en versiebeheer

Eén aspect van het gebruik van de nieuwe "Unified Vitis" IDE met Git betreft het begrijpen van de structuur en componenten van Vitis-projecten. De Vitis IDE genereert talloze bestanden, waarvan vele met absolute paden, wat het versiebeheer bemoeilijkt. Deze bestanden bevatten platformconfiguraties, hardwarebeschrijvingen en IDE-specifieke metagegevens. Wanneer deze bestanden versiebeheer krijgen zonder de juiste afhandeling, kunnen ontwikkelaars te maken krijgen met problemen zoals bouwfouten als gevolg van niet-overeenkomende paden op verschillende systemen.

Om deze problemen te verhelpen, is het gebruikelijk om door Vitis beheerde mappen uit te sluiten van versiebeheer. In plaats daarvan worden cruciale configuratiebestanden zoals linkerscripts, CMake-bestanden en andere essentiële projectbestanden handmatig gekopieerd naar de juiste locaties die Vitis verwacht. Deze aanpak zorgt ervoor dat alleen de noodzakelijke bestanden versiebeheer hebben, waardoor de kans op conflicten en fouten bij het samenwerken met andere ontwikkelaars wordt verkleind. Bovendien kan het gebruik van automatiseringsscripts zoals Python of shell-scripts dit proces stroomlijnen, waardoor de projectconfiguratie en het bestandsbeheer consistent en reproduceerbaar zijn.

Veelgestelde vragen en oplossingen voor het gebruik van Git met Vitis IDE

  1. Hoe initialiseer ik een Git-repository voor een Vitis-project?
  2. U kunt een Git-repository initialiseren door naar de hoofdmap van het project te navigeren en deze uit te voeren git init. Voeg de benodigde bestanden toe aan .gitignore om ongewenste bestanden uit te sluiten.
  3. Welke bestanden moeten worden opgenomen in het .gitignore voor een Vitis-project?
  4. Voeg IDE-specifieke mappen toe, zoals build-vitis/ En build-vivado/ om versiebeheer van automatisch gegenereerde bestanden te voorkomen.
  5. Hoe kan ik de opzet van een Vitis-project automatiseren?
  6. Gebruik een Python-script om taken te automatiseren, zoals het maken van platformcomponenten en het importeren van benodigde bestanden. Voer het script uit met vitis -s tools/build_app.py.
  7. Waarom moet ik configuratiebestanden handmatig kopiëren?
  8. Vitis verwacht dat bepaalde configuratiebestanden zich op specifieke locaties bevinden. Door deze bestanden handmatig of via een script te kopiëren, zorgt u ervoor dat de IDE ze correct vindt.
  9. Hoe ga ik om met platform- en applicatiemappen in Vitis?
  10. Sluit deze mappen uit van versiebeheer en gebruik scripts om de benodigde bestanden te beheren, waardoor consistentie wordt gewaarborgd en padconflicten worden vermeden.
  11. Kan ik bronbestanden rechtstreeks in Vitis bewerken terwijl ik Git gebruik?
  12. Ja, maar zorg ervoor dat uw CMake-installatie naar de juiste bronmappen verwijst. Vitis herkent de toevoegingen en namen mogelijk niet correct voor syntaxisaccentuering.
  13. Wat zijn de voordelen van het gebruik van scripts voor het opzetten van projecten?
  14. Scripts zorgen voor een consistente en herhaalbare projectopzet, verminderen handmatige fouten en vereenvoudigen de samenwerking tussen verschillende omgevingen.
  15. Hoe kan ik mijn projectconfiguratie bijwerken als er wijzigingen zijn aangebracht?
  16. Pas uw automatiseringsscripts aan om de wijzigingen weer te geven en voer ze opnieuw uit. Dit zorgt ervoor dat alle noodzakelijke updates correct worden toegepast.
  17. Wat moet ik doen als ik buildfouten tegenkom vanwege padproblemen?
  18. Controleer uw projectconfiguratiescripts en zorg ervoor dat alle paden correct zijn opgegeven. Gebruik waar mogelijk relatieve paden om conflicten te voorkomen.

Kernpunten voor efficiënt versiebeheer in Vitis IDE

Het implementeren van versiebeheer met de nieuwe Unified Vitis IDE omvat verschillende cruciale stappen. Begin met het uitsluiten van door Vitis gegenereerde mappen van versiebeheer om conflicten en fouten te voorkomen. Concentreer u in plaats daarvan op het bijhouden van essentiële configuratiebestanden, zoals linkerscripts, CMake-bestanden en andere essentiële projectcomponenten. Automatiseringsscripts, vooral die geschreven in Python, kunnen dit proces aanzienlijk stroomlijnen door de projectconfiguratie te automatiseren en ervoor te zorgen dat alle benodigde bestanden zich op de juiste locaties bevinden.

Door de installatie te automatiseren, kunt u zorgen voor een consistente ontwikkelomgeving op verschillende systemen, waardoor de kans op padgerelateerde problemen wordt verkleind. Deze aanpak vereenvoudigt niet alleen het projectbeheer, maar maakt ook een soepelere samenwerking tussen ontwikkelaars mogelijk. Bovendien zorgt het bewaren van de bronbestanden in hun oorspronkelijke mappen en het gebruik van CMake om naar deze mappen te verwijzen voor eenvoudiger bewerken en versiebeheer, terwijl de complexiteit van het omgaan met de interne bestandsstructuren van Vitis wordt vermeden.

De workflow voor Vitis en Git afronden

Het integreren van Git met de Unified Vitis IDE vereist een strategische aanpak om versiebeheer effectief te beheren. Door door Vitis beheerde mappen uit te sluiten en zich te concentreren op essentiële configuratiebestanden kunnen ontwikkelaars veelvoorkomende valkuilen vermijden die verband houden met absolute paden en IDE-specifieke metagegevens. Automatiseringsscripts verbeteren dit proces verder door een herhaalbare en consistente projectopzet te bieden. Deze strategieën zorgen ervoor dat Vitis-projecten beheersbaar blijven en samenwerken, zelfs in complexe ontwikkelomgevingen.