Руководство по использованию Git с Unified Vitis IDE

Руководство по использованию Git с Unified Vitis IDE
Руководство по использованию Git с Unified Vitis IDE

Начало работы с Git в Vitis IDE

Использование Git с новой IDE «Unified Vitis», основанной на VSCode, представляет собой уникальные проблемы по сравнению со старой версией на основе Eclipse. В последней версии отсутствует мастер проектов импорта/экспорта, что затрудняет эффективное управление контролем версий.

Это руководство направлено на решение проблем, возникающих при использовании Git в Vitis, включая обработку сгенерированных файлов с абсолютными путями и обеспечение бесперебойной совместной работы в различных системах разработки. Мы рассмотрим практический рабочий процесс для эффективного управления вашими проектами Vitis с помощью Git.

Команда Описание
import vitis Импортирует API Vitis для программного взаимодействия с проектами Vitis.
client.set_workspace() Устанавливает каталог рабочей области для клиента Vitis для управления файлами проекта.
client.create_platform_component() Создает новый компонент платформы в рабочей области Vitis, используя указанные параметры оборудования и ОС.
platform.build() Запускает процесс сборки указанного компонента платформы в Vitis.
client.create_app_component() Создает новый компонент приложения, связанный с указанным компонентом платформы в Vitis.
comp.import_files() Импортирует необходимые файлы из исходного каталога в компонент приложения Vitis.
os.makedirs() Создает указанную структуру каталогов, включая все необходимые родительские каталоги.
vitis -s tools/build_app.py Запускает указанный скрипт Python с использованием интерфейса командной строки Vitis для настройки проекта.
echo "build-vitis/" >>echo "build-vitis/" >> .gitignore Добавляет каталог сборки в файл игнорирования Git, чтобы исключить его из контроля версий.
git commit -m Фиксирует поэтапные изменения в локальном репозитории Git с указанным сообщением о фиксации.

Объяснение сценариев автоматизации Vitis

Первый скрипт автоматизирует настройку проекта Vitis с использованием Python. Все начинается с импорта необходимых модулей, в частности vitis и os. Затем он определяет корневой путь и создает каталог сборки, если он не существует, используя os.makedirs(). Сценарий устанавливает ожидаемые пути для файла XSA и основного исходного каталога. Затем он создает клиент Vitis и устанавливает в качестве рабочей области вновь созданный каталог сборки. Компонент платформы создается с помощью client.create_platform_component(), определяя конфигурацию оборудования, ОС и ЦП. После создания компонента платформы создается компонент приложения, который связывается с компонентом платформы. Наконец, необходимые файлы импортируются в проект Vitis, и компонент собирается.

Второй сценарий — это сценарий оболочки, который инициализирует проект Vitis и настраивает интеграцию с Git. Он определяет корневой путь и каталог сборки, создавая каталог, если он не существует. Затем сценарий запускает сценарий Python, используя vitis -s tools/build_app.py для автоматизации настройки проекта. После запуска сценария Python сценарий оболочки настраивает репозиторий Git, переходя в корневой каталог и инициализируя Git с помощью git initи добавление каталогов сборки в .gitignore файл. Он размещает соответствующие файлы с помощью git add и фиксирует их в репозитории с помощью git commit -m. Такой подход гарантирует, что каталоги сборки исключаются из контроля версий, сохраняя при этом необходимые файлы проекта.

Автоматизация настройки проекта Vitis с помощью Python

Скрипт Python для настройки проекта Vitis и интеграции с 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()

Управление системой контроля версий в проектах 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 и контроля версий

Один из аспектов использования новой IDE «Unified Vitis» с Git включает понимание структуры и компонентов проектов Vitis. Vitis IDE генерирует множество файлов, многие из которых имеют абсолютные пути, что усложняет контроль версий. Эти файлы включают конфигурации платформы, описания оборудования и метаданные, относящиеся к IDE. Когда эти файлы контролируются версиями без надлежащей обработки, разработчики могут столкнуться с такими проблемами, как ошибки сборки из-за несовпадающих путей в разных системах.

Чтобы смягчить эти проблемы, общепринятой практикой является исключение папок, управляемых Vitis, из контроля версий. Вместо этого важные файлы конфигурации, такие как сценарии компоновщика, файлы CMake и другие важные файлы проекта, вручную копируются в соответствующие места, ожидаемые Vitis. Такой подход гарантирует, что только необходимые файлы контролируются версиями, что снижает риск конфликтов и ошибок при сотрудничестве с другими разработчиками. Кроме того, использование сценариев автоматизации, таких как Python, или сценариев оболочки, может упростить этот процесс, гарантируя согласованность и воспроизводимость настройки проекта и управления файлами.

Общие вопросы и решения по использованию Git с Vitis IDE

  1. Как инициализировать репозиторий Git для проекта Vitis?
  2. Вы можете инициализировать репозиторий Git, перейдя в корень проекта и запустив git init. Добавьте необходимые файлы в .gitignore для исключения ненужных файлов.
  3. Какие файлы должны быть включены в .gitignore для проекта Витис?
  4. Включите папки, специфичные для IDE, например build-vitis/ и build-vivado/ чтобы избежать автоматического создания файлов с контролем версий.
  5. Как я могу автоматизировать настройку проекта Vitis?
  6. Используйте скрипт Python для автоматизации таких задач, как создание компонентов платформы и импорт необходимых файлов. Запустите скрипт, используя vitis -s tools/build_app.py.
  7. Почему мне нужно копировать файлы конфигурации вручную?
  8. Vitis ожидает, что определенные файлы конфигурации будут находиться в определенных местах. Копирование этих файлов вручную или с помощью сценария гарантирует, что IDE найдет их правильно.
  9. Как обрабатывать папки платформы и приложений в Vitis?
  10. Исключите эти папки из контроля версий и используйте сценарии для управления необходимыми файлами, обеспечивая согласованность и избегая конфликтов путей.
  11. Могу ли я редактировать исходные файлы непосредственно в Vitis при использовании Git?
  12. Да, но убедитесь, что ваша установка CMake указывает на правильные исходные каталоги. Vitis может неправильно распознавать включения и имена для подсветки синтаксиса.
  13. Каковы преимущества использования сценариев для настройки проекта?
  14. Сценарии обеспечивают согласованную и повторяемую настройку проекта, уменьшая количество ручных ошибок и упрощая совместную работу в различных средах.
  15. Как я могу обновить настройки проекта, если в них были внесены изменения?
  16. Измените свои сценарии автоматизации, чтобы отразить изменения, и повторно запустите их. Это гарантирует правильное применение всех необходимых обновлений.
  17. Что делать, если я столкнулся с ошибками сборки из-за проблем с путями?
  18. Проверьте сценарии настройки проекта и убедитесь, что все пути указаны правильно. Используйте относительные пути, где это возможно, чтобы избежать конфликтов.

Ключевые моменты эффективного контроля версий в Vitis IDE

Реализация контроля версий с помощью новой среды разработки Unified Vitis включает несколько важных шагов. Начните с исключения папок, созданных Vitis, из контроля версий, чтобы избежать конфликтов и ошибок. Вместо этого сосредоточьтесь на отслеживании важных файлов конфигурации, таких как сценарии компоновщика, файлы CMake и другие жизненно важные компоненты проекта. Скрипты автоматизации, особенно написанные на Python, могут значительно упростить этот процесс, автоматизируя настройку проекта и гарантируя, что все необходимые файлы находятся в правильных местах.

Автоматизируя настройку, вы можете обеспечить единообразную среду разработки в различных системах, уменьшая вероятность проблем, связанных с путями. Такой подход не только упрощает управление проектами, но и способствует более эффективному сотрудничеству между разработчиками. Кроме того, сохранение исходных файлов в исходных каталогах и использование CMake для указания на эти каталоги позволяет упростить редактирование и контроль версий, избегая при этом сложностей, связанных с внутренними файловыми структурами Vitis.

Завершение рабочего процесса для Vitis и Git

Интеграция Git с Unified Vitis IDE требует стратегического подхода для эффективного управления контролем версий. Исключив папки, управляемые Vitis, и сосредоточив внимание на важных файлах конфигурации, разработчики могут избежать распространенных ошибок, связанных с абсолютными путями и метаданными, специфичными для IDE. Скрипты автоматизации еще больше улучшают этот процесс, обеспечивая повторяемую и последовательную настройку проекта. Эти стратегии гарантируют, что проекты Vitis остаются управляемыми и совместными даже в сложных средах разработки.