Problembehandlung für Echtzeitanwendungen
Im Folgenden finden Sie einige Schritte zur Problembehandlung bei Problemen, die bei der Entwicklung von Echtzeitanwendungen (RTApps) auftreten können.
Debuggen von Problemen
Das Debuggen kann aus den folgenden Gründen fehlschlagen:
Windows Update ersetzt den USB-Treiber für die Echtzeitkerne durch einen generischen Treiber. Um die Debugfunktionen für die Echtzeitkerne wiederherzustellen, öffnen Sie eine Befehlszeilenschnittstelle mithilfe von PowerShell oder der Windows-Eingabeaufforderung mit Administratorrechten, und aktivieren Sie das Debuggen von Kernen in Echtzeit erneut. Der erforderliche USB-Treiber wird installiert, wenn Sie Folgendes ausführen:
az sphere device enable-development --enable-rt-core-debugging
Die Debugeinstellungsdatei enthält Fehler. In dieser Situation kann der Debugger möglicherweise nicht gestartet werden. Wenn Sie die Debuggereinstellungen bearbeitet haben, stellen Sie sicher, dass die Syntax der Datei korrekt ist.
Der Chipdebugger wurde möglicherweise bereits in einem anderen Kontext gestartet. Wenn ein Fehler wie "Debuggerserver: Fehler: Konnte gdb nicht an Socket an Port 4444 binden: Adresse wird bereits verwendet" oder "Fehler: libusb_open() fehlgeschlagen mit LIBUSB_ERROR_ACCESS" angezeigt wird, überprüfen Sie, ob bereits ein openocd- oder gdb-Prozess ausgeführt wird.
Wenn Sie unter Linux ausführen, sollte der Befehl
sudo lsof -n -i :4444 | grep LISTEN
alle Prozesse anzeigen, die Port 4444 geöffnet haben. Wenn4444
Sie durch einen anderen port ersetzen, der in der Fehlermeldung erwähnt wird, sollten die gleichen Informationen für diesen Port bereitgestellt werden.Möglicherweise fehlt das Libncurses5-Paket auf Ihrem Ubuntu 20.04-System. Wenn ein Fehler wie "Fehler beim Laden freigegebener Bibliotheken: libncurses.so.5: Freigegebene Objektdatei kann nicht geöffnet werden: Keine solche Datei oder ein solches Verzeichnis" angezeigt wird, sollten Sie das Paket wie folgt installieren:
sudo add-apt-repository universe sudo apt-get install libncurses5
Wenn Sie versuchen, eine allgemeine App und zwei RTApps gleichzeitig mit mehreren Instanzen von Visual Studio zu debuggen, kann die zweite instance von Visual Studio keine Verbindung mit dem Debugger herstellen. Um dieses Problem zu umgehen, debuggen Sie alle Apps aus einer einzelnen instance von Visual Studio, wie unter Debuggen von Partneranwendungen beschrieben.
CMake-Probleme
Bei der Verwendung von CMake mit einer RTApp können die folgenden Probleme auftreten:
- Wenn Sie ein CMake-Projekt zum ersten Mal in Visual Studio öffnen, wird die CMakeLists-Generierung automatisch ausgeführt und legt die Komponenten-ID für die Anwendung fest. Wenn Sie dann die Komponenten-ID löschen , z. B. weil sich die Anwendung in einem GitHub-Repository befindet und Sie einen Hard Reset durchgeführt haben, schlägt der Build fehl. Um dieses Problem zu beheben, generieren Sie den CMake-Cache in Visual Studio erneut.
- Das CMakeLists.txt Startelement wird häufig neu generiert. Der Task CMakeLists wird immer ausgeführt, wenn Visual Studio den CMake-Cache neu generiert. Daher kann es häufig ausgeführt werden.
- Visual Studio bleibt hängen, wenn Sie eine RTApp mit CMake erstellen. Verwenden Sie Visual Studio 2019 Update 1 oder höher, um dieses Problem zu vermeiden.
Allgemein gilt: Wenn bei der Arbeit mit CMake Fehler auftreten, versuchen Sie, den CMake-Cache neu zu generieren. Dies löst häufig Probleme.