Introdução ao Git no Vitis IDE
Usar o Git com o novo IDE "Unified Vitis", baseado em VSCode, apresenta desafios únicos em comparação com a versão mais antiga baseada em Eclipse. O assistente de importação/exportação do projeto está ausente na versão mais recente, causando dificuldades no gerenciamento eficaz do controle de versão.
Este guia tem como objetivo abordar os problemas encontrados ao usar o Git no Vitis, incluindo o tratamento de arquivos gerados com caminhos absolutos e a garantia de uma colaboração tranquila entre diferentes sistemas de desenvolvimento. Exploraremos um fluxo de trabalho prático para gerenciar seus projetos Vitis de forma eficiente com Git.
Comando | Descrição |
---|---|
import vitis | Importa a API Vitis para interagir com projetos Vitis programaticamente. |
client.set_workspace() | Define o diretório do espaço de trabalho para o cliente Vitis gerenciar arquivos de projeto. |
client.create_platform_component() | Cria um novo componente de plataforma no espaço de trabalho Vitis usando parâmetros de hardware e sistema operacional especificados. |
platform.build() | Aciona o processo de construção para o componente de plataforma especificado no Vitis. |
client.create_app_component() | Cria um novo componente de aplicativo vinculado ao componente de plataforma especificado no Vitis. |
comp.import_files() | Importa os arquivos necessários do diretório de origem para o componente do aplicativo Vitis. |
os.makedirs() | Cria a estrutura de diretórios especificada, incluindo quaisquer diretórios pai necessários. |
vitis -s tools/build_app.py | Executa o script Python especificado usando a interface de linha de comando Vitis para configurar o projeto. |
echo "build-vitis/" >>echo "build-vitis/" >> .gitignore | Adiciona o diretório de construção ao arquivo ignorado do Git para excluí-lo do controle de versão. |
git commit -m | Confirma as alterações preparadas no repositório Git local com uma mensagem de confirmação especificada. |
Explicando os scripts de automação Vitis
O primeiro script automatiza a configuração de um projeto Vitis usando Python. Começa importando os módulos necessários, especificamente vitis e os. Em seguida, ele define o caminho raiz e cria o diretório de construção se ele não existir usando os.makedirs(). O script configura os caminhos esperados para o arquivo XSA e o diretório de origem principal. Em seguida, ele cria um cliente Vitis e define o espaço de trabalho para o diretório de construção recém-criado. O componente da plataforma é criado com client.create_platform_component(), especificando a configuração de hardware, sistema operacional e CPU. Depois que o componente de plataforma é construído, um componente de aplicativo é criado e vinculado ao componente de plataforma. Por fim, os arquivos necessários são importados para o projeto Vitis e o componente é construído.
O segundo script é um shell script que inicializa o projeto Vitis e configura a integração do Git. Ele define o caminho raiz e o diretório de construção, criando o diretório se ele não existir. O script então executa o script Python usando vitis -s tools/build_app.py para automatizar a configuração do projeto. Após a execução do script Python, o script shell configura um repositório Git navegando até o diretório raiz, inicializando o Git com git inite adicionando diretórios de compilação ao .gitignore arquivo. Ele organiza os arquivos relevantes com git add e os envia para o repositório com git commit -m. Essa abordagem garante que os diretórios de construção sejam excluídos do controle de versão, ao mesmo tempo que mantém os arquivos de projeto necessários rastreados.
Automatizando a configuração do projeto Vitis com Python
Script Python para lidar com a configuração do projeto Vitis e integração com 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()
Gerenciando o controle de origem em projetos Vitis
Script de shell para agilizar a inicialização do projeto Vitis e controle de origem
#!/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
Compreendendo o Vitis IDE e o controle de versão
Um aspecto do uso do novo IDE “Unified Vitis” com Git envolve a compreensão da estrutura e dos componentes dos projetos Vitis. O Vitis IDE gera vários arquivos, muitos deles com caminhos absolutos, o que complica o controle de versão. Esses arquivos incluem configurações de plataforma, descrições de hardware e metadados específicos do IDE. Quando esses arquivos são controlados por versão sem o tratamento adequado, os desenvolvedores podem enfrentar problemas como erros de compilação devido a caminhos incompatíveis em diferentes sistemas.
Para mitigar esses problemas, uma prática comum é excluir as pastas gerenciadas pelo Vitis do controle de versão. Em vez disso, arquivos de configuração cruciais, como scripts de vinculador, arquivos CMake e outros arquivos essenciais do projeto, são copiados manualmente para os locais apropriados esperados pelo Vitis. Essa abordagem garante que apenas os arquivos necessários sejam controlados por versão, reduzindo o risco de conflitos e erros ao colaborar com outros desenvolvedores. Além disso, o uso de scripts de automação como Python ou shell scripts pode agilizar esse processo, garantindo que a configuração do projeto e o gerenciamento de arquivos sejam consistentes e reproduzíveis.
Perguntas comuns e soluções para usar Git com Vitis IDE
- Como inicializo um repositório Git para um projeto Vitis?
- Você pode inicializar um repositório Git navegando até a raiz do projeto e executando git init. Adicione os arquivos necessários ao .gitignore para excluir arquivos indesejados.
- Quais arquivos devem ser incluídos no .gitignore para um projeto Vitis?
- Inclui pastas específicas do IDE como build-vitis/ e build-vivado/ para evitar arquivos gerados automaticamente com controle de versão.
- Como posso automatizar a configuração de um projeto Vitis?
- Use um script Python para automatizar tarefas como criação de componentes de plataforma e importação de arquivos necessários. Execute o script usando vitis -s tools/build_app.py.
- Por que preciso copiar os arquivos de configuração manualmente?
- Vitis espera que certos arquivos de configuração estejam em locais específicos. Copiar esses arquivos manualmente ou via script garante que o IDE os encontre corretamente.
- Como lidar com pastas de plataforma e aplicativos no Vitis?
- Exclua essas pastas do controle de versão e utilize scripts para gerenciar os arquivos necessários, garantindo consistência e evitando conflitos de caminho.
- Posso editar arquivos de origem diretamente no Vitis enquanto uso o Git?
- Sim, mas certifique-se de que a configuração do CMake aponte para os diretórios de origem corretos. Vitis pode não reconhecer inclusões e nomes corretamente para realce de sintaxe.
- Quais são os benefícios de usar scripts para configuração do projeto?
- Os scripts garantem uma configuração de projeto consistente e repetível, reduzindo erros manuais e simplificando a colaboração em diferentes ambientes.
- Como posso atualizar a configuração do meu projeto se forem feitas alterações?
- Modifique seus scripts de automação para refletir as alterações e execute-os novamente. Isso garante que todas as atualizações necessárias sejam aplicadas corretamente.
- O que devo fazer se encontrar erros de compilação devido a problemas de caminho?
- Verifique os scripts de configuração do seu projeto e certifique-se de que todos os caminhos estejam especificados corretamente. Use caminhos relativos sempre que possível para evitar conflitos.
Pontos-chave para controle de versão eficiente no Vitis IDE
A implementação do controle de versão com o novo IDE Unified Vitis envolve várias etapas críticas. Comece excluindo as pastas geradas pelo Vitis do controle de versão para evitar conflitos e erros. Em vez disso, concentre-se no rastreamento de arquivos de configuração essenciais, como scripts de vinculador, arquivos CMake e outros componentes vitais do projeto. Os scripts de automação, especialmente aqueles escritos em Python, podem agilizar significativamente esse processo, automatizando a configuração do projeto e garantindo que todos os arquivos necessários estejam nos locais corretos.
Ao automatizar a configuração, você pode garantir um ambiente de desenvolvimento consistente em diferentes sistemas, reduzindo a probabilidade de problemas relacionados ao caminho. Essa abordagem não apenas simplifica o gerenciamento de projetos, mas também facilita uma colaboração mais tranquila entre os desenvolvedores. Além disso, manter os arquivos de origem em seus diretórios originais e usar o CMake para apontar para esses diretórios permite uma edição e controle de versão mais fáceis, evitando as complexidades de lidar com as estruturas internas de arquivos do Vitis.
Concluindo o fluxo de trabalho para Vitis e Git
A integração do Git com o IDE Unified Vitis requer uma abordagem estratégica para gerenciar o controle de versão de maneira eficaz. Ao excluir as pastas gerenciadas pelo Vitis e focar nos arquivos de configuração essenciais, os desenvolvedores podem evitar armadilhas comuns associadas a caminhos absolutos e metadados específicos do IDE. Os scripts de automação aprimoram ainda mais esse processo, fornecendo uma configuração de projeto consistente e repetível. Estas estratégias garantem que os projetos Vitis permaneçam gerenciáveis e colaborativos, mesmo em ambientes de desenvolvimento complexos.