Risoluzione dei problemi delle applicazioni con funzionalità in tempo reale
Importante
Questa è la documentazione di Azure Sphere (legacy). Azure Sphere (legacy) viene ritirato il 27 settembre 2027 e gli utenti devono eseguire la migrazione ad Azure Sphere (integrato) entro questo periodo. Usare il selettore di versione posizionato sopra il sommario per visualizzare la documentazione di Azure Sphere (integrata).
Alcune indicazioni sulla risoluzione dei problemi che possono verificarsi durante lo sviluppo di applicazioni con operazioni in tempo reale (RTApp).
Problemi di debug
Il debug può avere esito negativo per i motivi seguenti:
Windows Update sostituisce il driver USB per i core per operazioni in tempo reale con un driver generico. Per ripristinare la funzionalità di debug per i core in tempo reale, aprire un'interfaccia della riga di comando usando PowerShell o il prompt dei comandi di Windows con privilegi di amministratore e riabilitare il debug dei core in tempo reale. Il driver USB necessario viene installato quando si esegue:
- Interfaccia della riga di comando di Azure Sphere
- Interfaccia della riga di comando classica di Azure Sphere
azsphere device enable-development --enable-rt-core-debugging
Il file delle impostazioni di debug contiene errori. In questo caso, potrebbe risultare impossibile avviare il debugger. Se sono state modificate le impostazioni del debugger, verificare che la sintassi del file sia corretta.
Il debugger su chip potrebbe essere già stato avviato in un altro contesto. Se viene visualizzato un errore, ad esempio "Server debugger: 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 si esegue in Linux, il comando
sudo lsof -n -i :4444 | grep LISTEN
dovrebbe mostrare tutti i processi che contengono la porta 4444 aperta. La sostituzione4444
con qualsiasi altra porta indicata 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 simile a "errore durante il caricamento di 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 si tenta di eseguire il debug di un'app di alto livello e di due app RTApp contemporaneamente usando più istanze di Visual Studio, la seconda istanza di Visual Studio non sarà in grado di connettersi al debugger. Per risolvere questo problema, eseguire il debug di tutte le app da una singola istanza di Visual Studio, come descritto in Eseguire il debug delle applicazioni partner.
Problemi di CMake
È possibile riscontrare i seguenti problemi quando si usa CMake con un'applicazione RTApp:
- La prima volta che si apre un progetto CMake in Visual Studio, viene eseguita automaticamente la generazione di CMakeLists e viene impostato l'ID componente per l'applicazione. Se in seguito si elimina l'ID componente, ad esempio perché l'applicazione è in un repository GitHub ed è stato eseguito un ripristino hardware, la compilazione non riesce. Per risolvere il problema, rigenerare la cache di CMake in Visual Studio.
- L'elemento di avvio CMakeLists.txt viene rigenerato di frequente. L'attività CMakeLists viene eseguita ogni volta che Visual Studio rigenera la cache di CMake. Di conseguenza, potrebbe essere eseguita spesso.
- Visual Studio si blocca durante la compilazione di un'applicazione RTApp con CMake. Per evitare il problema, usare Visual Studio 2019 Update 1 o versioni successive.
In generale, se si verificano errori durante l'uso di CMake, provare a rigenerare la cache di CMake. Questo spesso consente di risolvere i problemi.