Compartilhar via


Solucionar problemas de aplicativos com capacidade em tempo real

Importante

Esta é a documentação do Azure Sphere (herdado). O Azure Sphere (herdado) será desativado em 27 de setembro de 2027 e os usuários devem migrar para o Azure Sphere (integrado) até esse momento. Use o seletor de versão localizado acima do sumário para exibir a documentação do Azure Sphere (Integrado).

Aqui estão algumas etapas de solução de problemas para problemas que podem ocorrer durante o desenvolvimento de aplicativos com capacidade para tempo real (RTApps).

Problemas de depuração

A depuração pode falhar pelos seguintes motivos:

  • O Windows Update substitui o driver USB pelos núcleos em tempo real com um driver genérico. Para restaurar a funcionalidade de depuração para os núcleos em tempo real, abra uma interface de linha de comando usando o PowerShell ou o Prompt de Comando do Windows com privilégios de administrador e reabilite a depuração de núcleo em tempo real. O driver USB necessário é instalado quando você executa:

    azsphere device enable-development --enable-rt-core-debugging
    
  • O arquivo de configurações de depuração contém erros. Nessa situação, o depurador pode falhar ao iniciar. Se você editou as configurações do depurador, verifique se sintaxe do arquivo está correta.

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

    Se você estiver executando no Linux, o comando sudo lsof -n -i :4444 | grep LISTEN deve mostrar todos os processos que mantêm a porta 4444 aberta. A substituição 4444 por qualquer outra porta mencionada na mensagem de erro deve fornecer as mesmas informações para essa porta.

  • Você pode estar perdendo o pacote libncurses5 em seu sistema Ubuntu 20.04. Se você vir um erro como "erro ao carregar bibliotecas compartilhadas: libncurses.so.5: não é possível abrir o arquivo de objeto compartilhado: Não existe esse arquivo ou diretório", você deve instalar o pacote da seguinte forma:

    sudo add-apt-repository universe
    sudo apt-get install libncurses5
    
  • Se você tentar depurar um aplicativo de alto nível e dois RTApps ao mesmo tempo usando várias instâncias do Visual Studio, a segunda instância do Visual Studio não poderá se conectar ao depurador. Para contornar esse problema, depure todos os aplicativos de uma única instância do Visual Studio, conforme descrito em Depurar aplicativos parceiros.

Problemas do CMake

Você pode encontrar os seguintes problemas ao usar o CMake com um RTApp:

  • A primeira vez que você abrir um projeto do CMake no Visual Studio, geração de CMakeLists executa automaticamente e define a ID de componente para o aplicativo. Se você excluir a ID do componente, por exemplo, porque o aplicativo está em um repositório do GitHub e você fez uma redefinição de disco rígido, a compilação falhar. Para resolver esse problema, gere novamente o cache de CMake no Visual Studio.
  • O item de inicialização do CMakeLists.txt é frequentemente regenerado. A tarefa de CMakeLists é executada sempre que o Visual Studio renova o cache de CMake. Como resultado, ele pode ser executado muitas vezes.
  • O Visual Studio para de responder quando você compila um RTApp com CMake. Para evitar esse problema, use o Visual Studio 2019, atualização 1 ou posterior.

Como uma observação geral, se ocorrerem erros quando você está trabalhando com CMake, tente gerar novamente o cache do CMake. Isso geralmente resolve problemas.