Freigeben über


Troubleshoot real-time capable applications (Problembehandlung für Echtzeitanwendungen)

Hier sind einige Problembehandlungsschritte für Probleme angegeben, die während der Entwicklung von echtzeitfähigen Anwendungen (RTApps) auftreten können.

Debuggen von Problemen

Beim Debuggen können aus den folgenden Gründen Fehler auftreten:

  • 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 mit PowerShell oder Windows-Eingabeaufforderung mit Administratorrechten, und aktivieren Sie das Coredebugging in Echtzeit erneut. Der erforderliche USB-Treiber wird installiert, wenn Sie Folgendes ausführen:

    az sphere device enable-development --enable-rt-core-debugging
    
  • Die Datei mit den Debugeinstellungen enthält Fehler. In diesem Fall wird der Debugger ggf. nicht gestartet. Wenn Sie die Debuggereinstellungen bearbeitet haben, sollten Sie sicherstellen, dass die Datei die richtige Syntax enthält.

  • Der On-Chip-Debugger wurde möglicherweise bereits in einem anderen Kontext gestartet. Wenn ein Fehler wie "Debuggerserver: Fehler: GDB nicht an Socket an Port 4444 gebunden werden konnte" 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 ausgeführt werden, sollte der Befehl sudo lsof -n -i :4444 | grep LISTEN alle Prozesse mit geöffnetem Port 4444 anzeigen. Das 4444 Ersetzen durch einen anderen port, der in der Fehlermeldung erwähnt wird, sollte die gleichen Informationen für diesen Port enthalten.

  • Möglicherweise fehlen Sie das libncurses5-Paket auf Ihrem Ubuntu 20.04-System. Wenn ein Fehler wie "Fehler beim Laden freigegebener Bibliotheken: libncurses.so.5: Freigegebene Objektdatei nicht öffnen kann: 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 mithilfe mehrerer Instanzen von Visual Studio zu debuggen, kann die zweite Instanz von Visual Studio keine Verbindung mit dem Debugger herstellen. Um dieses Problem zu umgehen, debuggen Sie alle Apps aus einer einzigen Instanz von Visual Studio, wie in Debug-Partneranwendungen beschrieben.

CMake-Probleme

Bei 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 die Komponenten-ID für die Anwendung festgelegt. Wenn Sie dann die Komponenten-ID löschen – z. B. weil die Anwendung in einem GitHub-Repository enthalten ist und Sie eine Zurücksetzung (Hard Reset) durchgeführt haben –, ist der Buildvorgang nicht erfolgreich. Generieren Sie den CMake-Cache in Visual Studio erneut, um dieses Problem zu beheben.
  • Das Startelement „CMakeLists.txt“ wird häufig neu generiert. Die CMakeLists-Aufgabe wird jeweils ausgeführt, wenn der CMake-Cache von Visual Studio neu generiert wird. Dies bedeutet, dass die Ausführung relativ häufig erfolgt.
  • Visual Studio hängt, wenn Sie eine RTApp mit CMake erstellen. Verwenden Sie Visual Studio 2019 Update 1 oder höher, um dieses Problem zu vermeiden.

Allgemeiner Hinweis: Falls der Fehler bei der Nutzung von CMake auftritt, sollten Sie versuchen, den CMake-Cache neu zu generieren. Hierdurch kann das Problem häufig gelöst werden.