Fehlerbehebung - FreeRTOS

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Fehlerbehebung

Wichtig

Dies ist eine archivierte Version des FreeRTOS-Benutzerhandbuchs zur Verwendung mit der FreeRTOS-Version 202012.00. Die neueste Version dieses Dokuments finden Sie im FreeRTOS-Benutzerhandbuch.

Jede Ausführung einer Testsuite verfügt über eine eindeutige Ausführungs-ID, die verwendet wird, um im Verzeichnis results einen Ordner mit dem Namen results/execution-id zu erstellen. Die einzelnen Testgruppenprotokolle befinden sich im Verzeichnis results/execution-id/logs. Verwenden Sie die IDT for FreeRTOS-Konsolenausgabe, um die Ausführungs-ID, Testfall-ID und Testgruppen-ID des fehlgeschlagenen Testfalls zu ermitteln, und öffnen Sie dann die Protokolldatei für diesen Testfall mit dem Namen. results/execution-id/logs/test_group_id__test_case_id.log Die Informationen in dieser Datei beinhalten Folgendes:

  • Vollständige Build- und Flash-Befehlsausgabe.

  • Testausführungsausgabe.

  • Ausführlichere IDT für die FreeRTOS-Konsolenausgabe.

Wir empfehlen folgenden Workflow für die Fehlersuche:

  1. Wenn der Fehler "user/roleist nicht berechtigt, auf diese Ressource zuzugreifen“ angezeigt wird, stellen Sie sicher, dass Sie die Berechtigungen wie unter konfiguriert haben.

  2. Lesen Sie die Konsolenausgabe, um Informationen zu finden, wie z. B. Ausführungs-UUID und aktuell ausgeführte Aufgaben.

  3. Suchen Sie in der Datei FRQ_Report.xml nach Fehleranweisungen für jeden Test. Dieses Verzeichnis enthält Ausführungsprotokolle für jede Testgruppe.

  4. Schauen Sie in den Protokolldateien unter nach/results/execution-id/logs.

  5. Untersuchen Sie einen der folgenden Problembereiche:

    • Gerätekonfiguration, wie z. B. JSON-Konfigurationsdateien im Ordner /configs/.

    • Geräteschnittstelle Überprüfen Sie die Protokolle, um festzustellen, welche Schnittstelle fehlschlägt.

    • Geräte-Tools Stellen Sie sicher, dass die Toolchains zum Erstellen und Flashen des Gerätes korrekt installiert und konfiguriert sind.

    • Stellen Sie sicher, dass Sie eine saubere, geklonte Version des FreeRTOS-Quellcodes haben. FreeRTOS-Releases sind entsprechend der FreeRTOS-Version gekennzeichnet. Verwenden Sie die folgenden Befehle, um eine bestimmte Version des Codes zu klonen:

      git clone --branch version-number https://github.com/aws/amazon-freertos.git cd amazon-freertos git submodule update --checkout --init --recursive

Fehlerbehebung bei der Gerätekonfiguration

Wenn Sie IDT für FreeRTOS verwenden, müssen Sie die richtigen Konfigurationsdateien einrichten, bevor Sie die Binärdatei ausführen. Wenn Sie Parsing- und Konfigurationsfehler erhalten, sollten Sie als Erstes eine für Ihre Umgebung geeignete Konfigurationsvorlage suchen und anwenden. Diese Vorlagen befinden sich im Verzeichnis IDT_ROOT/configs.

Wenn weiterhin Probleme auftreten, beachten Sie den folgenden Debugging-Vorgang.

Wo suche ich?

Lesen Sie zunächst die Konsolenausgabe, um Informationen zu finden, z. B. die Ausführungs-UUID, die in dieser Dokumentation als execution-id bezeichnet wird.

Suchen Sie als Nächstes in der Datei FRQ_Report.xml im Verzeichnis /results/execution-id. Diese Datei enthält alle ausgeführten Testfälle und Fehlerausschnitte zu jedem Fehler. Suchen Sie zum Abrufen aller Ausführungsprotokolle für jeden Testfall jeweils nach der Datei /results/execution-id/logs/test_group_id__test_case_id.log.

IDT-Fehlercodes

In der folgenden Tabelle werden die von IDT für FreeRTOS generierten Fehlercodes erklärt:

Fehlercode Name des Fehlercodes Mögliche Ursache Fehlerbehebung

201

InvalidInputError

Felder in device.json, config.json oder userdata.json fehlen entweder oder haben ein falsches Format.

Stellen Sie sicher, dass die Pflichtfelder in den aufgelisteten Dateien nicht fehlen und dass sie das erforderliche Format aufweisen. Weitere Informationen finden Sie unter Vorbereitung auf den ersten Test Ihres Mikrocontroller-Boards.

202

ValidationError

Felder in device.json, config.json oder userdata.json enthalten ungültige Werte.

Überprüfen Sie die Fehlermeldung auf der rechten Seite des Fehlercodes im Bericht:

  • Ungültige AWS Region — Geben Sie eine gültige AWS Region in Ihrer Datei an. config.json Weitere Informationen zu AWS Regionen finden Sie unter Regionen und Endpunkte.

  • Ungültige AWS Anmeldeinformationen — Legen Sie gültige AWS Anmeldeinformationen auf Ihrem Testcomputer fest (über Umgebungsvariablen oder die Anmeldeinformationsdatei). Überprüfen Sie, ob das Authentifizierungsfeld korrekt konfiguriert ist. Weitere Informationen finden Sie unter .

203

CopySourceCodeError

Der FreeRTOS-Quellcode konnte nicht in das angegebene Verzeichnis kopiert werden.

Überprüfen Sie Folgendes:

204

BuildSourceError

Der FreeRTOS-Quellcode konnte nicht kompiliert werden.

Überprüfen Sie Folgendes:

  • Überprüfen Sie, ob die Informationen unter buildTool in der Datei userdata.json korrekt sind.

  • Wenn Sie cmake als Build-Tool verwenden, stellen Sie sicher, dass {{enableTests}} im buildTool-Befehl angegeben ist. Weitere Informationen finden Sie unter Konfiguration von Build-, Flash- und Testeinstellungen.

  • Wenn Sie IDT for FreeRTOS in einen Dateipfad auf Ihrem System extrahiert haben, der beispielsweise Leerzeichen enthält, benötigen Sie möglicherweise zusätzliche Anführungszeichen in Ihren Build-BefehlenC:\Users\My Name\Desktop\, um sicherzustellen, dass die Pfade ordnungsgemäß analysiert werden. Das Gleiche wird möglicherweise für Ihre Flash-Befehle benötigt.

205

FlashOrRunTestError

IDT FreeRTOS kann FreeRTOS nicht auf Ihrem DUT flashen oder ausführen.

Überprüfen Sie, ob die Informationen unter flashTool in der Datei userdata.json korrekt sind. Weitere Informationen finden Sie unter Konfiguration von Build-, Flash- und Testeinstellungen.

206

StartEchoServerError

IDT FreeRTOS kann den Echo-Server für die WiFi oder Secure Socket-Tests nicht starten.

Stellen Sie sicher, dass die unter echoServerConfiguration in Ihrer userdata.json-Datei konfigurierten Ports nicht von der Firewall oder den Netzwerkeinstellungen verwendet oder blockiert werden.

Debuggen von Parsing-Fehlern

Es kann vorkommen, dass ein Tippfehler in einer JSON-Konfiguration zu Parsing-Fehlern führt. In den meisten Fällen ist die Ursache des Problems eine fehlende Klammer oder ein fehlendes Komma oder Anführungszeichen in Ihrer JSON-Datei. IDT for FreeRTOS führt eine JSON-Validierung durch und druckt Debugging-Informationen. Gedruckt werden die Zeile, in der der Fehler aufgetreten ist, sowie Zeilennummer und Spaltennummer des Syntaxfehlers. Diese Informationen sollten ausreichen, um Ihnen bei der Behebung des Fehlers zu helfen. Wenn Sie jedoch immer noch Probleme haben, den Fehler zu finden, können Sie die Validierung manuell in Ihrer IDE, einem Texteditor wie Atom oder Sublime oder über ein Online-Tool wie durchführen. JSONLint

Fehler bei der Integritätsprüfung debuggen

Wenn Sie die RTOSIntegrity Testgruppe Free ausführen und Fehler auftreten, stellen Sie zunächst sicher, dass Sie keine der freertos Verzeichnisdateien geändert haben. Falls dies nicht der Fall ist und weiterhin Probleme auftreten, stellen Sie sicher, dass Sie den richtigen Zweig verwenden. Wenn Sie den list-supported-products Befehl IDT ausführen, können Sie herausfinden, welchen markierten Zweig des freertos Repositorys Sie verwenden sollten.

Wenn Sie den richtigen markierten Zweig des freertos Repositorys geklont haben und immer noch Probleme haben, stellen Sie sicher, dass Sie den Befehl auch ausgeführt haben. submodule update Der Klon-Workflow für das freertos Repo sieht wie folgt aus.

git clone --branch version-number https://github.com/aws/amazon-freertos.git cd amazon-freertos git submodule update --checkout —init —recursive

Die Liste der Dateien, nach denen die Integritätsprüfung sucht, befindet sich in der checksums.json Datei in Ihrem freertos Verzeichnis. Um einen FreeRTOS-Port ohne Änderungen an den Dateien und der Ordnerstruktur zu qualifizieren, stellen Sie sicher, dass keine der in den Abschnitten '' und exhaustive 'minimal' der checksums.json Datei aufgelisteten Dateien geändert wurde. Um die Ausführung mit einem konfigurierten SDK durchzuführen, stellen Sie sicher, dass keine der Dateien im Abschnitt minimal '' geändert wurde.

Wenn Sie IDT mit einem SDK ausführen und einige Dateien in Ihrem freertos Verzeichnis geändert haben, stellen Sie sicher, dass Sie Ihr SDK in Ihrer userdata Datei korrekt konfigurieren. Andernfalls überprüft der Integritätsprüfer alle Dateien im freertos Verzeichnis.

Fehler bei FullWiFi Testgruppen debuggen

Wenn Sie Fehler in der FullWiFi Testgruppe feststellen und der "AFQP_WiFiConnectMultipleAP" Test fehlschlägt, kann dies daran liegen, dass sich beide Access Points nicht im selben Subnetz befinden wie der Host-Computer, auf dem IDT ausgeführt wird. Stellen Sie sicher, dass sich beide Access Points im selben Subnetz befinden wie der Hostcomputer, auf dem IDT ausgeführt wird.

Debuggen von Fehlern aufgrund fehlender erforderlicher Parameter

Da IDT for FreeRTOS um neue Funktionen erweitert wird, können Änderungen an den Konfigurationsdateien vorgenommen werden. Bei Verwendung einer alten Konfigurationsdatei kann Ihre Konfiguration beschädigt werden. In diesem Fall listet die Datei test_group_id__test_case_id.log im Verzeichnis results/execution-id/logs explizit alle fehlenden Parameter auf. IDT for FreeRTOS validiert Ihre JSON-Konfigurationsdateischemas, um sicherzustellen, dass die neueste unterstützte Version verwendet wurde.

Debuggen von Fehlern aufgrund fehlgeschlagenen Teststarts

Möglicherweise finden Sie Hinweise auf Fehler beim Teststart. Da es mehrere mögliche Ursachen gibt, überprüfen Sie die folgenden Bereiche auf ihre Richtigkeit:

  • Stellen Sie sicher, dass der in Ihrem Ausführungsbefehl enthaltene Poolname tatsächlich vorhanden ist. Auf diesen wird direkt über Ihre device.json-Datei verwiesen.

  • Stellen Sie sicher, dass die Geräte in Ihrem Pool über die richtigen Konfigurationsparameter verfügen.

Debuggen von Fehlern aufgrund fehlender Autorisierung zum Zugriff auf eine Ressource

Möglicherweise wird in der Terminalausgabe oder in der Datei darunter der Fehler "user/roleist nicht autorisiert, auf diese Ressource zuzugreifen“ angezeigt. test_manager.log /results/execution-id/logs Um dieses Problem zu beheben, fügen Sie die AWSIoTDeviceTesterForFreeRTOSFullAccess-verwaltete Richtlinie an Ihren Testbenutzer an. Weitere Informationen finden Sie unter .

Debuggen von Fehlern beim Netzwerktest

Für netzwerkbasierte Tests startet IDT einen Echo-Server, der sich an einen nicht reservierten Port auf dem Hostcomputer bindet. Wenn bei den Tests oder Secure Sockets aufgrund von Zeitüberschreitungen oder nicht verfügbaren Verbindungen Fehler auftreten, stellen Sie sicher, dass Ihr Netzwerk so konfiguriert ist, dass Datenverkehr zu konfigurierten Ports im Bereich 1024 bis 49151 zugelassen wird. WiFi

Der Secure Sockets-Test verwendet standardmäßig die Ports 33333 und 33334. Die WiFi Tests verwenden standardmäßig Port 33335. Wenn diese drei Ports von einer Firewall oder einem Netzwerk verwendet oder blockiert werden, können Sie verschiedene Ports in userdata.json zum Testen verwenden. Weitere Informationen finden Sie unter Konfiguration von Build-, Flash- und Testeinstellungen. Sie können mit den folgenden Befehle überprüfen, ob ein bestimmter Port verwendet wird:

  • Windows: netsh advfirewall firewall show rule name=all | grep port

  • Linux: sudo netstat -pan | grep port

  • macOS: netstat -nat | grep port

OTA-Updatefehler aufgrund derselben Version der Nutzlast

Wenn OTA-Testfälle fehlschlagen, weil sich dieselbe Version auf dem Gerät befindet, nachdem ein OTA ausgeführt wurde, kann dies daran liegen, dass Ihr Build-System (z. B. cmake) die Änderungen von IDT am FreeRTOS-Quellcode nicht bemerkt und keine aktualisierte Binärdatei erstellt. Dies führt dazu, dass OTA mit der gleichen Binärdatei durchgeführt wird, die sich bereits auf dem Gerät befindet, weshalb der Test fehlschlägt. Um OTA-Updatefehler zu beheben, stellen Sie zunächst sicher, dass Sie die neueste unterstützte Version Ihres Build-Systems verwenden.

OTA-Testfehler im PresignedUrlExpired-Testfall

Eine Voraussetzung für diesen Test ist, dass die OTA-Update-Zeit mehr als 60 Sekunden betragen sollte, da der Test andernfalls fehlschlagen würde. In diesem Fall ist im Protokoll die folgende Fehlermeldung zu finden: „Test takes less than 60 seconds (url expired time) to finish. (Abschluss des Tests dauert weniger als 60 Sekunden (URL-Ablaufzeit). Please reach out to us (Bitte kontaktieren Sie uns).“

Debuggen von Schnittstellen- und Portfehlern des Geräts

Dieser Abschnitt enthält Informationen über die Geräteschnittstellen, die IDT zur Verbindung mit Ihren Geräten verwendet.

Unterstützte Plattformen

IDT unterstützt Linux, MacOS und Windows. Auf allen drei Plattformen werden unterschiedliche Benennungen für serielle Geräte verwendet, die mit ihnen verbunden sind:

  • Linux: /dev/tty*

  • macOS: /dev/tty.* oder /dev/cu.*

  • Windows: COM*

So überprüfen Sie den Geräteport:

  • Öffnen Sie unter Linux/macOS ein Terminal und führen Sie ls /dev/tty* aus.

  • Öffnen Sie unter macOS ein Terminal und führen Sie ls /dev/tty.* oder ls /dev/cu.* aus.

  • Öffnen Sie in Windows Sie den Geräte-Manager und erweitern Sie die Gruppe mit den seriellen Geräten.

Um zu überprüfen, welches Gerät mit einem Port verbunden ist:

  • Stellen Sie unter Linux sicher, dass das Paket udev installiert ist, und führen Sie dann udevadm info –name=PORT aus. Dieses Dienstprogramm gibt die Gerätetreiberinformationen aus, mit deren Hilfe Sie überprüfen können, ob Sie den richtigen Port verwenden.

  • Öffnen Sie für macOS Launchpad und suchen Sie nach System Information.

  • Öffnen Sie in Windows Sie den Geräte-Manager und erweitern Sie die Gruppe mit den seriellen Geräten.

Geräteschnittstellen

Jedes eingebettete Gerät ist anders. Dies bedeutet, dass sie einen oder mehrere serielle Ports haben können. Es ist üblich, dass Geräte über zwei Ports verfügen, wenn sie mit einer Maschine verbunden sind:

  • Ein Datenport zum Flashen des Geräts.

  • Ein Leseport zum Lesen der Ausgabe.

    Sie müssen den richtigen Leseport in Ihrer device.json-Datei festlegen. Andernfalls kann das Lesen der Ausgabe vom Gerät fehlschlagen.

    Vergewissern Sie sich bei mehreren Ports, dass Sie den Leseport des Geräts in Ihrer device.json-Datei verwenden. Wenn Sie beispielsweise ein WRover Espressif-Gerät anschließen und die beiden ihm zugewiesenen Anschlüsse in Ihrer Datei verwendet werden/dev/ttyUSB0. /dev/ttyUSB1 /dev/ttyUSB1 device.json

    Folgen Sie derselben Logik in Windows.

Lesen von Gerätedaten

IDT for FreeRTOS verwendet individuelle Gerätebau- und Flash-Tools, um die Portkonfiguration zu spezifizieren. Wenn Sie Ihr Gerät testen und keine Ausgabe erhalten, versuchen Sie es mit den folgenden Standardeinstellungen:

  • Baudrate: 115200

  • Datenbits: 8

  • Parität: Keine

  • Stop-Bits: 1

  • Flusssteuerung: Keine

Diese Einstellungen werden von IDT für FreeRTOS verwaltet. Sie müssen sie nicht festlegen. Sie können jedoch dieselbe Methode verwenden, um die Geräteausgabe manuell zu lesen. Unter Linux oder macOS ist dies mit dem Befehl screen möglich. Unter Windows können Sie ein Programm wie verwenden. TeraTerm

Screen: screen /dev/cu.usbserial 115200

TeraTerm: Use the above-provided settings to set the fields explicitly in the GUI.

Probleme mit der Entwicklungs-Toolchain

In diesem Abschnitt werden Probleme beschrieben, die mit Ihrer Tool-Chain auftreten können.

Code Composer Studio auf Ubuntu

In den neueren Versionen von Ubuntu (17.10 und 18.04) ist eine Version des glibc-Pakets enthalten, die nicht mit den Versionen von Code Composer Studio 7.x kompatibel ist. Wir empfehlen, Code Composer Studio Version 8.2 oder höher zu installieren.

Folgende Anzeichen der Inkompatibilität könnten auftreten:

  • FreeRTOS kann nicht erstellt oder auf Ihr Gerät geflasht werden.

  • Das Code Composer Studio-Installationsprogramm stürzt ab.

  • In der Konsole wird keine Protokollausgabe während des Build- oder Flash-Prozesses angezeigt.

  • Der Build-Befehl versucht, im GUI-Modus zu starten, auch wenn er im Headless-Modus aufgerufen wird.

Protokollierung

IDT for FreeRTOS-Protokolle werden an einem einzigen Ort gespeichert. Im IDT-Stammverzeichnis sind diese Dateien unter results/execution-id/ verfügbar:

  • FRQ_Report.xml

  • awsiotdevicetester_report.xml

  • logs/test_group_id__test_case_id.log

FRQ_Report.xml und logs/test_group_id__test_case_id.log sind die wichtigsten Protokolle, die Sie untersuchen sollten. FRQ_Report.xml enthält Informationen dazu, für welche Testfälle Fehler mit einer bestimmten Fehlermeldung aufgetreten sind. Anschließend können Sie logs/test_group_id__test_case_id.log verwenden, um das Problem genauer zu analysieren und so einen besseren Kontext zu erhalten.

Konsolenfehler

Wenn AWS IoT Device Tester es ausgeführt wird, werden Fehler mit kurzen Meldungen an die Konsole gemeldet. Weitere Informationen zum Fehler finden Sie unter results/execution-id/logs/test_group_id__test_case_id.log.

Protokollfehler

Jede Ausführung der Testsuite verfügt über eine eindeutige Ausführungs-ID, die zum Erstellen eines Ordners mit dem Namen results/execution-id verwendet wird. Einzelne Testfallprotokolle befinden sich im Verzeichnis results/execution-id/logs. Verwenden Sie die Ausgabe der IDT for FreeRTOS-Konsole, um die Ausführungs-ID, die Testfall-ID und die Testgruppen-ID des fehlgeschlagenen Testfalls zu ermitteln. Verwenden Sie dann diese Informationen, um die Protokolldatei für diesen Testfall mit dem Namen zu finden und zu öffnen. results/execution-id/logs/test_group_id__test_case_id.log Die Informationen in dieser Datei umfassen die vollständige Build- und Flash-Befehlsausgabe, die Ausgabe der Testausführung und eine AWS IoT Device Tester ausführlichere Konsolenausgabe.

Probleme mit dem S3-Bucket

Wenn Sie CTRL+C während der Ausführung von IDT drücken, startet IDT einen Bereinigungsprozess. Ein Teil dieser Bereinigung besteht darin, Amazon S3 S3-Ressourcen zu entfernen, die im Rahmen der IDT-Tests erstellt wurden. Wenn die Bereinigung nicht abgeschlossen werden kann, tritt möglicherweise ein Problem auf, bei dem zu viele Amazon S3 S3-Buckets erstellt wurden. Das bedeutet, dass die Tests fehlschlagen werden, wenn Sie IDT das nächste Mal ausführen.

Wenn Sie CTRL+C die Taste drücken, um IDT zu beenden, müssen Sie den Bereinigungsvorgang beenden lassen, um dieses Problem zu vermeiden. Sie können auch die manuell erstellten Amazon S3 S3-Buckets aus Ihrem Konto löschen.

Fehlerbehebung bei Timeout-Fehlern

Wenn beim Ausführen einer Testsuite Timeout-Fehler auftreten, erhöhen Sie das Timeout, indem Sie einen Timeout-Multiplikatorfaktor angeben. Dieser Faktor wird auf den Standardwert für die Zeitüberschreitung angewendet. Jeder Wert für dieses Kennzeichen muss größer als oder gleich 1,0 sein. Um den Timeout-Multiplikator zu verwenden, verwenden Sie beim Ausführen der Testsuite das Flag --timeout-multiplier.

IDT v3.0.0 and later
./devicetester_linux run-suite --suite-id FRQ_1.0.1 --pool-id DevicePool1 --timeout-multiplier 2.5
IDT v1.7.0 and earlier
./devicetester_linux run-suite --suite-id FRQ_1 --pool-id DevicePool1 --timeout-multiplier 2.5

Mobilfunkfunktion und Gebühren AWS

Wenn die Cellular Funktion Yes in Ihrer device.JSON Datei auf eingestellt ist, FullSecureSockets werden EC2 T.micro-Instances für die Durchführung von Tests verwendet, was zu zusätzlichen Kosten für Ihr AWS Konto führen kann. Weitere Informationen finden Sie unter EC2 Amazon-Preise.

Richtlinie zur Erstellung von Qualifikationsberichten

Qualifizierungsberichte werden nur von AWS IoT Device Tester (IDT-) Versionen generiert, die FreeRTOS-Versionen unterstützen, die in den letzten zwei Jahren veröffentlicht wurden. Wenn Sie Fragen zu den Support-Richtlinien haben, wenden Sie sich bitte an. AWS -Support