Solucionar problemas de aplicativos com capacidade em tempo real

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

Problemas de depuração

A depuração pode falhar pelos seguintes motivos:

  • Windows Update substitui o driver USB pelos núcleos em tempo real por 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 habilite novamente a depuração principal em tempo real. O driver USB necessário é instalado quando você executa:

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

  • O depurador no chip pode já ter sido iniciado em outro contexto. Se você vir um erro como "Depurador Servidor: Erro: não foi possível associar gdb ao soquete na porta 4444: Endereço já em uso" ou "Erro: libusb_open() falhou com LIBUSB_ERROR_ACCESS", marcar para ver 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 deverá 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 um arquivo de objeto compartilhado: nenhum arquivo ou diretório", você deve instalar o pacote da seguinte maneira:

    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 Aplicativos parceiros de Depuração.

Problemas do CMake

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

  • Na primeira vez que você abre um projeto do CMake no Visual Studio, a geração CMakeLists é executada automaticamente e define a ID do 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 dura, o build falhará. Para resolve esse problema, regenere o cache CMake no Visual Studio.
  • O item de inicialização CMakeLists.txt é regenerado com frequência. A tarefa CMakeLists é executada sempre que o Visual Studio regenera o cache CMake. Como resultado, ele pode ser executado com frequência.
  • O Visual Studio trava quando você cria um RTApp com o CMake. Para evitar esse problema, use a atualização 1 ou posterior do Visual Studio 2019.

Como uma observação geral, se ocorrerem erros quando você estiver trabalhando com o CMake, tente regenerar o cache CMake. Isso geralmente resolve problemas.