Partilhar via


Resolver problemas de aplicações com capacidade em tempo real

Seguem-se alguns passos de resolução de problemas que podem ocorrer durante o desenvolvimento de aplicações com capacidade em tempo real (RTApps).

Problemas de depuração

A depuração pode falhar pelos seguintes motivos:

  • Windows Update substitui o controlador USB dos núcleos em tempo real por um controlador genérico. Para restaurar a funcionalidade de depuração para os núcleos em tempo real, abra uma interface de linha de comandos com o PowerShell ou a Linha de Comandos do Windows com privilégios de administrador e reativar a depuração de núcleos em tempo real. O controlador USB necessário é instalado quando executa:

    az sphere device enable-development --enable-rt-core-debugging
    
  • O ficheiro de definições de depuração contém erros. Nesta situação, o depurador pode não iniciar. Se tiver editado as definições do depurador, certifique-se de que a sintaxe do ficheiro está correta.

  • O depurador no chip pode já ter sido iniciado noutro contexto. Se vir um erro como "Servidor de Depurador: Erro: não foi possível vincular a gdb ao socket na porta 4444: Endereço já em utilização" ou "Erro: libusb_open() falhou com LIBUSB_ERROR_ACCESS", verifique se já tem um processo openocd ou gdb em execução.

    Se estiver a executar no Linux, o comando sudo lsof -n -i :4444 | grep LISTEN deverá mostrar todos os processos com a porta 4444 aberta. 4444 Substituir por qualquer outra porta mencionada na mensagem de erro deve fornecer as mesmas informações para essa porta.

  • Poderá estar a perder o pacote libncurses5 no seu sistema Ubuntu 20.04. Se vir um erro como "erro ao carregar bibliotecas partilhadas: libncurses.so.5: não é possível abrir o ficheiro de objeto partilhado: não existe esse ficheiro ou diretório", deve instalar o pacote da seguinte forma:

    sudo add-apt-repository universe
    sudo apt-get install libncurses5
    
  • Se tentar depurar uma aplicação de alto nível e duas RTApps ao mesmo tempo com várias instâncias do Visual Studio, a segunda instância do Visual Studio não conseguirá ligar ao depurador. Para contornar este problema, depure todas as aplicações a partir de uma única instância do Visual Studio, conforme descrito em Depurar aplicações de parceiros.

Problemas de CMake

Poderá deparar-se com os seguintes problemas ao utilizar o CMake com uma RTApp:

  • Quando abre um projeto CMake pela primeira vez no Visual Studio, a geração CMakeLists é executada automaticamente e define o ID do componente da aplicação. Se, em seguida, eliminar o ID do componente ( por exemplo, porque a aplicação está num repositório do GitHub e fez uma reposição difícil), a criação falha. Para resolver este problema, volte a gerar a cache CMake no Visual Studio.
  • O CMakeLists.txt item de arranque regenera-se frequentemente. A tarefa CMakeLists é executada sempre que o Visual Studio regenera a cache CMake. Como resultado, pode ser executado com frequência.
  • O Visual Studio bloqueia quando cria uma RTApp com CMake. Para evitar este problema, utilize a atualização 1 ou posterior do Visual Studio 2019.

Como nota geral, se ocorrerem erros quando estiver a trabalhar com o CMake, tente regenerar a cache CMake. Isto resolve frequentemente os problemas.