Noțiuni introductive cu Git în Vitis IDE
Utilizarea Git cu noul IDE „Unified Vitis”, bazat pe VSCode, prezintă provocări unice în comparație cu versiunea mai veche bazată pe Eclipse. Expertul de import/export al proiectului lipsește în cea mai recentă versiune, ceea ce provoacă dificultăți în gestionarea eficientă a controlului versiunilor.
Acest ghid își propune să abordeze problemele întâlnite în timpul utilizării Git în Vitis, inclusiv gestionarea fișierelor generate cu căi absolute și asigurarea unei colaborări fără probleme între diferite sisteme de dezvoltare. Vom explora un flux de lucru practic pentru a vă gestiona eficient proiectele Vitis cu Git.
Comanda | Descriere |
---|---|
import vitis | Importă API-ul Vitis pentru a interacționa cu proiectele Vitis în mod programatic. |
client.set_workspace() | Setează directorul spațiului de lucru pentru clientul Vitis pentru a gestiona fișierele de proiect. |
client.create_platform_component() | Creează o nouă componentă de platformă în spațiul de lucru Vitis utilizând parametri hardware și OS specificați. |
platform.build() | Declanșează procesul de construire pentru componenta de platformă specificată în Vitis. |
client.create_app_component() | Creează o nouă componentă de aplicație legată de componenta de platformă specificată în Vitis. |
comp.import_files() | Importă fișierele necesare din directorul sursă în componenta aplicației Vitis. |
os.makedirs() | Creează structura de directoare specificată, inclusiv toate directoarele părinte necesare. |
vitis -s tools/build_app.py | Rulează scriptul Python specificat folosind interfața de linie de comandă Vitis pentru a configura proiectul. |
echo "build-vitis/" >>echo "build-vitis/" >> .gitignore | Adaugă directorul de compilare la fișierul de ignorare Git pentru a-l exclude de la controlul versiunilor. |
git commit -m | Commite modificările în etape în depozitul local Git cu un mesaj de confirmare specificat. |
Explicarea scripturilor de automatizare Vitis
Primul script automatizează configurarea unui proiect Vitis folosind Python. Începe prin a importa modulele necesare, în special vitis și os. Apoi definește calea rădăcină și creează directorul de construcție dacă nu există folosind os.makedirs(). Scriptul stabilește căile așteptate pentru fișierul XSA și directorul sursă principal. Apoi, creează un client Vitis și setează spațiul de lucru în directorul de compilare nou creat. Componenta platformei este creată cu client.create_platform_component(), specificând configurația hardware, OS și CPU. Odată construită componenta platformei, o componentă a aplicației este creată și legată la componenta platformei. În cele din urmă, fișierele necesare sunt importate în proiectul Vitis, iar componenta este construită.
Al doilea script este un script shell care inițializează proiectul Vitis și setează integrarea Git. Definește calea rădăcină și directorul de compilare, creând directorul dacă acesta nu există. Scriptul rulează apoi scriptul Python folosind vitis -s tools/build_app.py pentru a automatiza configurarea proiectului. După ce rulează scriptul Python, scriptul shell configurează un depozit Git navigând la directorul rădăcină, inițialând Git cu git init, și adăugarea directoarelor de compilare la .gitignore fişier. Stadiază fișierele relevante cu git add și le trimite în depozit cu git commit -m. Această abordare asigură că directoarele de compilare sunt excluse de la controlul versiunilor, păstrând în același timp urmărite fișierele de proiect necesare.
Automatizarea Vitis Project Setup cu Python
Script Python pentru gestionarea configurației proiectului Vitis și a integrării Git
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()
Gestionarea controlului sursei în proiectele Vitis
Script Shell pentru a eficientiza inițializarea proiectului Vitis și controlul sursei
#!/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
Înțelegerea Vitis IDE și Controlul versiunilor
Un aspect al utilizării noului IDE „Unified Vitis” cu Git implică înțelegerea structurii și componentelor proiectelor Vitis. Vitis IDE generează numeroase fișiere, multe cu căi absolute, ceea ce complică controlul versiunilor. Aceste fișiere includ configurații de platformă, descrieri hardware și metadate specifice IDE. Atunci când aceste fișiere sunt controlate de versiune fără o gestionare adecvată, dezvoltatorii se pot confrunta cu probleme precum erori de compilare din cauza căilor nepotrivite în diferite sisteme.
Pentru a atenua aceste probleme, o practică comună este excluderea folderelor gestionate de Vitis de la controlul versiunilor. În schimb, fișierele de configurare esențiale, cum ar fi scripturile de linker, fișierele CMake și alte fișiere de proiect esențiale, sunt copiate manual în locațiile corespunzătoare așteptate de Vitis. Această abordare asigură că numai fișierele necesare sunt controlate în funcție de versiune, reducând riscul de conflicte și erori atunci când colaborați cu alți dezvoltatori. În plus, utilizarea scripturilor de automatizare precum Python sau script-urilor shell poate simplifica acest proces, asigurându-se că configurarea proiectului și gestionarea fișierelor sunt consecvente și reproductibile.
Întrebări frecvente și soluții pentru utilizarea Git cu Vitis IDE
- Cum inițializez un depozit Git pentru un proiect Vitis?
- Puteți inițializa un depozit Git navigând la rădăcina proiectului și rulând git init. Adăugați fișierele necesare la .gitignore pentru a exclude fișierele nedorite.
- Ce fișiere ar trebui incluse în .gitignore pentru un proiect Vitis?
- Includeți foldere specifice IDE, cum ar fi build-vitis/ și build-vivado/ pentru a evita fișierele autogenerate care controlează versiunea.
- Cum pot automatiza configurarea unui proiect Vitis?
- Utilizați un script Python pentru a automatiza sarcini precum crearea componentelor platformei și importarea fișierelor necesare. Rulați scriptul folosind vitis -s tools/build_app.py.
- De ce trebuie să copiez manual fișierele de configurare?
- Vitis se așteaptă ca anumite fișiere de configurare să fie în anumite locații. Copierea acestor fișiere manual sau prin script asigură că IDE-ul le găsește corect.
- Cum gestionez folderele platformei și aplicațiilor în Vitis?
- Excludeți aceste foldere de la controlul versiunilor și utilizați scripturi pentru a gestiona fișierele necesare, asigurând coerența și evitând conflictele de căi.
- Pot edita fișierele sursă direct în Vitis în timp ce folosesc Git?
- Da, dar asigurați-vă că configurarea dvs. CMake indică directoarele sursă corecte. Este posibil ca Vitis să nu recunoască corect includerile și numele pentru evidențierea sintaxelor.
- Care sunt beneficiile utilizării scripturilor pentru configurarea proiectelor?
- Scripturile asigură o configurare consecventă și repetabilă a proiectului, reducând erorile manuale și simplificând colaborarea în diferite medii.
- Cum îmi pot actualiza configurația proiectului dacă se fac modificări?
- Modificați scripturile de automatizare pentru a reflecta modificările și executați-le din nou. Acest lucru asigură că toate actualizările necesare sunt aplicate corect.
- Ce ar trebui să fac dacă întâmpin erori de compilare din cauza problemelor de cale?
- Verificați scripturile de configurare a proiectului și asigurați-vă că toate căile sunt specificate corect. Folosiți căi relative acolo unde este posibil pentru a evita conflictele.
Puncte cheie pentru un control eficient al versiunilor în Vitis IDE
Implementarea controlului versiunilor cu noul Unified Vitis IDE implică câțiva pași critici. Începeți prin a exclude folderele generate de Vitis de la controlul versiunilor pentru a evita conflictele și erorile. În schimb, concentrați-vă pe urmărirea fișierelor de configurare esențiale, cum ar fi scripturile de linker, fișierele CMake și alte componente vitale ale proiectului. Scripturile de automatizare, în special cele scrise în Python, pot simplifica în mod semnificativ acest proces prin automatizarea configurației proiectului și asigurându-se că toate fișierele necesare sunt în locațiile corecte.
Prin automatizarea configurării, puteți asigura un mediu de dezvoltare consistent în diferite sisteme, reducând probabilitatea problemelor legate de cale. Această abordare nu numai că simplifică managementul proiectelor, dar facilitează și o colaborare mai fluidă între dezvoltatori. În plus, păstrarea fișierelor sursă în directoarele lor originale și utilizarea CMake pentru a indica aceste directoare permite editarea mai ușoară și controlul versiunilor, evitând în același timp complexitatea gestionării structurilor interne de fișiere Vitis.
Încheierea fluxului de lucru pentru Vitis și Git
Integrarea Git cu Unified Vitis IDE necesită o abordare strategică pentru a gestiona eficient controlul versiunilor. Excluzând folderele gestionate de Vitis și concentrându-se pe fișierele de configurare esențiale, dezvoltatorii pot evita capcanele comune asociate cu căile absolute și metadatele specifice IDE. Scripturile de automatizare îmbunătățesc și mai mult acest proces, oferind o configurație de proiect repetabilă și consecventă. Aceste strategii asigură că proiectele Vitis rămân gestionabile și colaborative, chiar și în medii complexe de dezvoltare.