Risolvere i problemi relativi alle applicazioni in tempo reale

Ecco alcuni passaggi per la risoluzione dei problemi che possono verificarsi durante lo sviluppo di applicazioni in tempo reale (RTApps).

Problemi di debug

Il debug potrebbe non riuscire per i motivi seguenti:

  • Windows Update sostituisce il driver USB per i core in tempo reale con un driver generico. Per ripristinare la funzionalità di debug per i core in tempo reale, apri un'interfaccia da riga di comando utilizzando PowerShell o il prompt dei comandi di Windows con privilegi di amministratore e riabilita il debug core in tempo reale. Il driver USB necessario viene installato durante l'esecuzione:

    az sphere device enable-development --enable-rt-core-debugging
    
  • Il file delle impostazioni di debug contiene errori. In questo caso, il debugger potrebbe non avviarsi. Se sono state modificate le impostazioni del debugger, verificare che la sintassi del file sia corretta.

  • Il debugger sul chip potrebbe essere già stato avviato in un altro contesto. Se viene visualizzato un errore come "Debugger Server: Errore: impossibile associare gdb al socket sulla porta 4444: Indirizzo già in uso" o "Errore: libusb_open() non riuscito con LIBUSB_ERROR_ACCESS", verificare se è già in esecuzione un processo openocd o gdb.

    Se sei in esecuzione su Linux, il comando sudo lsof -n -i :4444 | grep LISTEN dovrebbe mostrare tutti i processi con la porta 4444 aperta. La sostituzione 4444 con qualsiasi altra porta menzionata nel messaggio di errore deve fornire le stesse informazioni per tale porta.

  • Potrebbe mancare il pacchetto libncurses5 nel sistema Ubuntu 20.04. Se viene visualizzato un errore come "errore durante il caricamento delle librerie condivise: libncurses.so.5: impossibile aprire il file oggetto condiviso: nessun file o directory di questo tipo", è necessario installare il pacchetto nel modo seguente:

    sudo add-apt-repository universe
    sudo apt-get install libncurses5
    
  • Se provi a eseguire il debug di un'app di alto livello e due RTApp contemporaneamente utilizzando più istanze di Visual Studio, la seconda istanza di Visual Studio non sarà in grado di connettersi al debugger. Per risolvere questo problema, esegui il debug di tutte le app da una singola istanza di Visual Studio, come descritto in Debug di applicazioni partner.

CFai problemi

Quando si usa CMake con un'RTApp, potrebbero verificarsi i problemi seguenti:

  • La prima volta che si apre un progetto CMake in Visual Studio, la generazione CMakeLists viene eseguita automaticamente e imposta l'ID componente per l'applicazione. Se poi elimini l'ID componente, ad esempio perché l'applicazione si trova in un repository GitHub e hai eseguito un hard reset, la build non riesce. Per risolvere il problema, rigenerare la cache di CMake in Visual Studio.
  • Il CMakeLists.txt elemento di avvio viene rigenerato frequentemente. L'attività CMakeLists viene eseguita ogni volta che Visual Studio rigenera la cache di CMake. Di conseguenza, può essere eseguita spesso.
  • Visual Studio si blocca quando si crea un'RTApp con CMake. Per evitare questo problema, usa l'aggiornamento 1 o versione successiva di Visual Studio 2019.

Come nota generale, se si verificano errori quando si lavora con CMake, provare a rigenerare la cache di CMake. Questo spesso risolve i problemi.