Panduan Menggunakan Git dengan Unified Vitis IDE

Python Script

Memulai Git di Vitis IDE

Menggunakan Git dengan IDE "Unified Vitis" baru, berdasarkan VSCode, menghadirkan tantangan unik dibandingkan dengan versi berbasis Eclipse yang lebih lama. Wizard proyek impor/ekspor tidak ada di versi terbaru, menyebabkan kesulitan dalam mengelola kontrol versi secara efektif.

Panduan ini bertujuan untuk mengatasi masalah yang dihadapi saat menggunakan Git di Vitis, termasuk menangani file yang dihasilkan dengan jalur absolut dan memastikan kelancaran kolaborasi di berbagai sistem pengembangan. Kami akan menjelajahi alur kerja praktis untuk mengelola proyek Vitis Anda secara efisien dengan Git.

Memerintah Keterangan
import vitis Mengimpor Vitis API untuk berinteraksi dengan proyek Vitis secara terprogram.
client.set_workspace() Menetapkan direktori ruang kerja untuk klien Vitis untuk mengelola file proyek.
client.create_platform_component() Membuat komponen platform baru di ruang kerja Vitis menggunakan parameter perangkat keras dan OS yang ditentukan.
platform.build() Memicu proses pembangunan untuk komponen platform tertentu di Vitis.
client.create_app_component() Membuat komponen aplikasi baru yang ditautkan ke komponen platform tertentu di Vitis.
comp.import_files() Mengimpor file yang diperlukan dari direktori sumber ke komponen aplikasi Vitis.
os.makedirs() Membuat struktur direktori tertentu, termasuk direktori induk yang diperlukan.
vitis -s tools/build_app.py Menjalankan skrip Python yang ditentukan menggunakan antarmuka baris perintah Vitis untuk menyiapkan proyek.
echo "build-vitis/" >>echo "build-vitis/" >> .gitignore Menambahkan direktori build ke file abaikan Git untuk mengecualikannya dari kontrol versi.
git commit -m Mengkomit perubahan bertahap ke repositori Git lokal dengan pesan penerapan tertentu.

Menjelaskan Skrip Otomasi Vitis

Skrip pertama mengotomatiskan penyiapan proyek Vitis menggunakan Python. Ini dimulai dengan mengimpor modul yang diperlukan, khususnya Dan . Ini kemudian mendefinisikan jalur root dan membuat direktori build jika tidak ada yang menggunakannya . Skrip menyiapkan jalur yang diharapkan untuk file XSA dan direktori sumber utama. Selanjutnya, ia membuat klien Vitis dan menyetel ruang kerja ke direktori build yang baru dibuat. Komponen platform dibuat dengan client.create_platform_component(), menentukan konfigurasi perangkat keras, OS, dan CPU. Setelah komponen platform dibangun, komponen aplikasi dibuat dan dihubungkan ke komponen platform. Terakhir, file yang diperlukan diimpor ke proyek Vitis, dan komponen dibuat.

Skrip kedua adalah skrip shell yang menginisialisasi proyek Vitis dan menyiapkan integrasi Git. Ini mendefinisikan jalur root dan direktori build, membuat direktori jika tidak ada. Script kemudian menjalankan skrip Python menggunakan untuk mengotomatiskan pengaturan proyek. Setelah skrip Python berjalan, skrip shell menyiapkan repositori Git dengan menavigasi ke direktori root, menginisialisasi Git dengan , dan menambahkan direktori build ke mengajukan. Ini menampilkan file yang relevan dengan git add dan mengkomitnya ke repositori dengan . Pendekatan ini memastikan bahwa direktori build dikecualikan dari kontrol versi sambil tetap melacak file proyek yang diperlukan.

Mengotomatiskan Pengaturan Proyek Vitis dengan Python

Skrip Python untuk menangani penyiapan proyek Vitis dan integrasi 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()

Mengelola Kontrol Sumber di Proyek Vitis

Skrip shell untuk menyederhanakan inisialisasi proyek Vitis dan kontrol sumber

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

Memahami Vitis IDE dan Kontrol Versi

Salah satu aspek penggunaan IDE "Unified Vitis" baru dengan Git melibatkan pemahaman struktur dan komponen proyek Vitis. Vitis IDE menghasilkan banyak file, banyak dengan jalur absolut, yang mempersulit kontrol versi. File-file ini mencakup konfigurasi platform, deskripsi perangkat keras, dan metadata khusus IDE. Jika file-file ini dikontrol versinya tanpa penanganan yang tepat, pengembang mungkin menghadapi masalah seperti kesalahan build karena jalur yang tidak cocok di berbagai sistem.

Untuk mengurangi masalah ini, praktik umum adalah mengecualikan folder yang dikelola Vitis dari kontrol versi. Sebaliknya, file konfigurasi penting seperti skrip linker, file CMake, dan file proyek penting lainnya disalin secara manual ke lokasi sesuai yang diharapkan oleh Vitis. Pendekatan ini memastikan bahwa hanya file yang diperlukan yang dikontrol versinya, sehingga mengurangi risiko konflik dan kesalahan saat berkolaborasi dengan pengembang lain. Selain itu, penggunaan skrip otomatisasi seperti Python atau skrip shell dapat menyederhanakan proses ini, memastikan bahwa pengaturan proyek dan manajemen file konsisten dan dapat direproduksi.

  1. Bagaimana cara menginisialisasi repositori Git untuk proyek Vitis?
  2. Anda dapat menginisialisasi repositori Git dengan menavigasi ke root proyek dan menjalankannya . Tambahkan file yang diperlukan ke untuk mengecualikan file yang tidak diinginkan.
  3. File apa saja yang harus dimasukkan ke dalam untuk proyek Vitis?
  4. Sertakan folder khusus IDE seperti Dan untuk menghindari file yang dibuat secara otomatis yang mengontrol versi.
  5. Bagaimana cara mengotomatiskan pengaturan proyek Vitis?
  6. Gunakan skrip Python untuk mengotomatiskan tugas-tugas seperti membuat komponen platform dan mengimpor file yang diperlukan. Jalankan skrip menggunakan .
  7. Mengapa saya perlu menyalin file konfigurasi secara manual?
  8. Vitis mengharapkan file konfigurasi tertentu berada di lokasi tertentu. Menyalin file-file ini secara manual atau melalui skrip memastikan bahwa IDE menemukannya dengan benar.
  9. Bagaimana cara menangani folder platform dan aplikasi di Vitis?
  10. Kecualikan folder ini dari kontrol versi dan gunakan skrip untuk mengelola file yang diperlukan, memastikan konsistensi dan menghindari konflik jalur.
  11. Bisakah saya mengedit file sumber langsung di Vitis saat menggunakan Git?
  12. Ya, tapi pastikan pengaturan CMake Anda mengarah ke direktori sumber yang benar. Vitis mungkin tidak mengenali penyertaan dan nama dengan benar untuk penyorotan sintaksis.
  13. Apa manfaat menggunakan skrip untuk penyiapan proyek?
  14. Skrip memastikan penyiapan proyek yang konsisten dan berulang, mengurangi kesalahan manual, dan menyederhanakan kolaborasi di berbagai lingkungan.
  15. Bagaimana cara memperbarui pengaturan proyek saya jika ada perubahan?
  16. Ubah skrip otomatisasi Anda untuk mencerminkan perubahan dan jalankan kembali. Hal ini memastikan bahwa semua pembaruan yang diperlukan diterapkan dengan benar.
  17. Apa yang harus saya lakukan jika saya mengalami kesalahan build karena masalah jalur?
  18. Periksa skrip pengaturan proyek Anda dan pastikan semua jalur ditentukan dengan benar. Gunakan jalur relatif jika memungkinkan untuk menghindari konflik.

Poin Penting untuk Kontrol Versi yang Efisien di Vitis IDE

Menerapkan kontrol versi dengan Unified Vitis IDE baru melibatkan beberapa langkah penting. Mulailah dengan mengecualikan folder yang dibuat Vitis dari kontrol versi untuk menghindari konflik dan kesalahan. Sebaliknya, fokuslah pada pelacakan file konfigurasi penting seperti skrip linker, file CMake, dan komponen proyek penting lainnya. Skrip otomatisasi, khususnya yang ditulis dengan Python, dapat menyederhanakan proses ini secara signifikan dengan mengotomatiskan pengaturan proyek dan memastikan semua file yang diperlukan berada di lokasi yang benar.

Dengan mengotomatiskan penyiapan, Anda dapat memastikan lingkungan pengembangan yang konsisten di berbagai sistem, sehingga mengurangi kemungkinan masalah terkait jalur. Pendekatan ini tidak hanya menyederhanakan manajemen proyek tetapi juga memfasilitasi kolaborasi yang lebih lancar antar pengembang. Selain itu, menyimpan file sumber di direktori aslinya dan menggunakan CMake untuk menunjuk ke direktori ini memungkinkan pengeditan dan kontrol versi yang lebih mudah, sekaligus menghindari kerumitan dalam menangani struktur file internal Vitis.

Mengintegrasikan Git dengan Unified Vitis IDE memerlukan pendekatan strategis untuk mengelola kontrol versi secara efektif. Dengan mengecualikan folder yang dikelola Vitis dan berfokus pada file konfigurasi penting, pengembang dapat menghindari kesalahan umum yang terkait dengan jalur absolut dan metadata khusus IDE. Skrip otomatisasi semakin menyempurnakan proses ini dengan menyediakan penyiapan proyek yang berulang dan konsisten. Strategi-strategi ini memastikan bahwa proyek-proyek Vitis tetap dapat dikelola dan kolaboratif, bahkan dalam lingkungan pengembangan yang kompleks.