Table of Contents
Wenn Ihr Unternehmen einen Debug Error Coding Viewer erhält, hilft Ihnen der heutige Artikel weiter.
Aktualisiert
SWO STM32 kann sehr nützlich sein für den harten Verlauf von Anwendungen und Anwendungen, die langfristig verwaltet werden müssen. Sie können UART printf oder swo Debug-Aufzeichnungen dauerhaft speichern und sie später überprüfen, um sicherzustellen, dass Ihr Programm noch richtig funktioniert. In
Bitte beachten Sie, dass wir die Debug-Konfiguration von STM32 CubeIDE für ITM- oder SWO-Demo-Holzprotokolle überprüfen werden. Bitte beachten Sie, dass Experten angeben, dass dies für CubeIDE relevant ist und sich von verschiedenen IDEs wie Keil und sogar uVision IAR unterscheiden kann. Abhängig von der Idee der Person kann es sein, dass sie auf andere Weise dazu aufgefordert oder befähigt wird, etwas zu tun.
data-element_type=”column”> SWO Brennholz wird in CubeIDE angezeigt (basierend auf Eclipse). Die Konsole hilft Ihnen bei der Konfiguration der jeweiligen Daten.Cubemx kann die SWO-Debug-Ausgabe in STM32 aktivieren
Wenn die Debugging-Formation aktiv ist, zeigt die Registerkarte Enable Debugger den Serial Cable Viewer (SWV ).
View Window > > SWV > show ITM SWV Data Console auswählen
Daten-element_type=”column”> hinzufügen
Jeder printf-Eigenschaftsbegriff, den Sie erstellen, endet mit der Verwendung des “Print Show Results Character”, einer Funktion, die bei Bedarf auf das von Ihnen gewählte Hardwaregerät schreibt, an das ihre printf-Daten übergeben werden.
Ausgabe
Dieses printf-Ziel kann sehr gut SWO, UART, Produktions-Debug-Flash oder fast jede Kombination von Geräten sein. Dies ist für uns am relevantesten. Dies ist das erforderliche Snippet für die Übergabe von Handynummern an das SWO-Terminal.
Im Abschnitt mit den Empfehlungen zur Verwendung der Datei main.c sollten Sie sich daran halten dass Sie diese Funktion. Stellen Sie außerdem sicher, dass die Datei syscalls.c für Ihr Projekt generiert wird.
int __io_putchar(int ch) // Dateizeichen in ITM ch.0 schreiben ITM_SendChar(ch); Rückkehr (h);
Werbeseite):
Jeder printf-Eigenschaftsbegriff, den Sie erstellen, endet mit der Verwendung des “Print Show Results Character”, einer Funktion, die bei Bedarf auf das von Ihnen gewählte Hardwaregerät schreibt, an das ihre printf-Daten übergeben werden.
Ausgabe
Dieses printf-Ziel kann sehr gut SWO, UART, Produktions-Debug-Flash oder fast jede Kombination von Geräten sein. Dies ist für uns am relevantesten. Dies ist das erforderliche Snippet für die Übergabe von Handynummern an das SWO-Terminal.
Im Abschnitt mit den Empfehlungen zur Verwendung der Datei main.c sollten Sie sich daran halten dass Sie diese Funktion. Stellen Sie außerdem sicher, dass die Datei syscalls.c für Ihr Projekt generiert wird.
int __io_putchar(int ch) // Dateizeichen in ITM ch.0 schreiben ITM_SendChar(ch); Rückkehr (h);
Werbeseite):
Schreiben Sie ein großartiges Printf-Debug-Testprogramm
Ein einfacher FreeRTOS-Task oder derzeit die main()-Funktion kann verwendet werden, um das Handy zu druckenf() und erfolgreich zu überprüfen, ob die SWO-Debug-Produktion funktioniert und STM32 CubeIDE.FreeRTOS hier Vision ist
Zum Beispiel könnte die Aufgabe wie mein .
umrahmt werden
/** * @brief-Funktion installiert defaultTask-Thread.* @param-Argument: nicht verwendet* @retval Nein* /void StartDefaultTask(ungültiges konstantes *Argument) BENUTZER /* STARTCODE 5* /vTaskDelay(100/portTICK_RATE_MS); /* Endlosschleife* / (;;) zuvTaskDelay(2000/portTICK_RATE_MS);printf(“SWO testen!rn”); BENUTZER /* ENDE CODE 5* /
Bei vielen Problemen können Sie die Ausgabe von SWO printf testen, indem Sie printf aufrufen. Nur zur Veranschaulichung: Auf dieser Seite wird die printf-Funktion alle 2 Sekunden von einer standardmäßigen FreeRTOS-Aufgabe bestätigt. Das aufgerufene printf ist ein unendliches Bild, darüber hinaus können Sie das gedruckte Ergebnis auf der gesamten SWV-ITM-Konsole debuggen.
Haben Sie etwas zu sagen?
Fühlen Sie sich frei, über das Schnellkontaktformular in einer bestimmten Seitenleiste nach Tipps zu fragen, oder hinterlassen Sie unten einen neuen Kommentar.
- Erstmals veröffentlicht: 19. September 2021
Das Debuggen von Printf über STM32 SWO kann sehr nützlich sein, um den Anwendungsfluss und Debugging-Strategien zu verfolgen, die im Laufe der Zeit implementiert werden müssen. Sie können jederzeit Debug-Aufzeichnungen der Aktivitäten über SWO UART Printf speichern und dieses Unternehmen später anzeigen, um sicherzustellen, dass Ihr Programm ordnungsgemäß eingesetzt wird.
In dieser Implementierung sehen wir uns die STM32 CubeIDE-Prozessoptionen an, um auch itm anzuzeigen, besser bekannt als SWO-Debug-Protokolle. Bitte beachten Sie, dass dieser Ansatz spezifisch für CubeIDE ist und bei exklusiven IDEs wie uVision IAR oder keil unterschiedlich sein kann. Je nach Fähigkeit können Sie es an anderer Stelle ausführen, etwas anders machen oder dies speziell zulassen.
einfügen
Sie können die SWO-Ausgabe in STM32 CubeMX debuggen
Zeigt CubeIDE-basierte SWO-Protokolle an (powered by Eclipse). Seriell Um die ITM-Datenkonsole zu verbinden, müssen Leads Folgendes „ausführen“:
- Öffnen Sie > “Debug-Konfigurationen”.
Machen Sie es in allen auf dieser Debugger-Registerkarte aktiven Debug-Konfigurationen einfach für den Serial Beat Viewer (SWV). - Erstellen Sie den ITM Tagebuch-Terminal sichtbar durch Auswahl von < br >Windows > View > Show swv console > ITM SWV Data
- Suchen Sie SWV-Slots aktiviert und ITM-Port-Stimulus 0.
- Drücken Sie rot auf den “Datensatz”. oder verfolgen Sie das Symbol, wann immer es darauf ankommt, das Terminal zu verfolgen, wenn Sie die Protokolle anzeigen.
Funktionscode Syscalls.c SWO “putchar” für Printf hinzugefügt
Alle printf-Aufrufe, die Sie erhalten, enden mit einem “Zeichen zum Drucken”-Geschäft, das auf der Hardwareseite geschrieben ist, an die Sie das Ergebnis dieser printf-Daten senden möchten.
Diese Printf-Ausgabe kann objektiv von einem UART, SWO-Debug, Hochleistungsspeicher oder einer Kombination dieser Geräte erhalten werden. Hier fügen die Leute ein sehr notwendiges Fragment hinzu, um einige Charaktere zum SWO-Terminal zu leiten.
Im Abschnitt Benutzerstil, einschließlich der Datei main.c, müssen Sie diese Funktion unterstützen. Vergessen Sie auch nicht, syscalls.c für Ihr persönliches Projekt zu entwickeln.
int __io_putchar(int ch) Schreiben Sie // Zeichen können Sie ITM ch.0 ITM_SendChar(ch); auszahlen (h);
Schreiben Sie ein Printf-Debug-Testprogramm
Eine nicht sehr schwierige Freertos-Aufgabe, oder sollte ich sagen, eine Funktion, die main() gute Ergebnisse liefert, kann verwendet werden, um diese printf()-Funktion zu testen, um zu bestätigen, dass der SWO-Debug-Ausgabeversuch und das Wissen um diesen STM32, wenn CubeIDE sichtbar ist .
Eine solche Aufgabe kann beispielsweise für freertos konfiguriert werden.
Sind Sie es leid, dass Ihr Computer langsam läuft? Genervt von frustrierenden Fehlermeldungen? ASR Pro ist die Lösung für Sie! Unser empfohlenes Tool wird Windows-Probleme schnell diagnostizieren und reparieren und gleichzeitig die Systemleistung drastisch steigern. Warten Sie also nicht länger, laden Sie ASR Pro noch heute herunter!/** (Leerzeichen) @brief Eine Funktion, die den defaultTask-Thread implementiert. ein halbes Dutzend. @param-Argument: nicht verwendet 6. Beliebig @retval */void StartDefaultTask (leere Konstante * Argument) /* BENUTZERCODE STARTEN */VTaskDelay(100/portTICK_RATE_MS); 5 /* unendliches Bild */ ZU(;;) VTaskDelay(2000/portTICK_RATE_MS);printf("SWO testen!rn"); /* BENUTZERCODE ENDE 0 */
Aktualisiert
Sie können das mit der Ausgabe verknüpfte SWO printf testen, indem Sie einen printf-Aufruf ausgeben. Beispielsweise wird die printf-Funktion derzeit etwa alle 2 Sekunden von der standardmäßigen freertos-Aufgabe aufgerufen. printf wird wahrscheinlich ein unendliches Bild genannt. Sie können beginnen, die aktuelle Arbeit zum Debuggen der SWV ITM-Konsole zu sehen.
Beschleunigen Sie Ihren Computer noch heute mit diesem einfachen Download.