Table of Contents
Als u een software-viewer voor foutopsporing moet krijgen, is het artikel van vandaag hier om u te helpen.
Bijgewerkt
SWO STM32 kan erg handig zijn om de geschiedenis van applicaties en applicaties te volgen die op de lange termijn moeten worden beheerd. U kunt UART printf noch swo debug logs permanent opslaan en later controleren om te controleren of uw programma nog steeds correct werkt. In
Houd er rekening mee dat we de STM32 CubeIDE-foutopsporingsconfiguratie voor ITM- of SWO-papierhandelslogboeken gaan bekijken. Houd er rekening mee dat experts aangeven dat dit van toepassing is op CubeIDE en kan verschillen van een grote verscheidenheid aan IDE’s zoals keil en zelfs uVision IAR. Afhankelijk van het idee van de persoon, zou het kunnen dat je verplicht of in staat moet worden gesteld om ergens anders op verschillende manieren iets te doen.
data-element_type=”column”> SWO-logboeken worden weergegeven in CubeIDE (gebaseerd op Eclipse). De console helpt u bij het configureren van nieuwe gegevens. < /ul> Elke printf-home-aanroep die u doet, gebruikt dit specifieke “printfunctie-teken”, een functie die eindigt met kopiëren naar elk hardwareapparaat dat u kiest waar de printf-gegevens worden doorgegeven. output Dit printf-doel kan SWO, UART, productie-debug-flash of elke combinatie van apparaten zijn. Dit is waar voor de meesten van ons. Dit is het vereiste fragment voor snelle nummers naar de SWO-terminal. Op de aanbevelingsafdeling voor het gebruik van het main.c-bestand, moet u naar deze functie. Zorg er ook voor dat er een nieuw syscalls.c-bestand wordt gegenereerd voor uw project. Advertentiezijde): Een eenvoudige FreeRTOS-taak, ook wel de main()-functie genoemd, kan worden gebruikt om printf() te e-mailen en met succes te verifiëren dat de SWO-foutopsporingsuitvoer werkt en dat STM32 CubeIDE.FreeRTOS hier te vinden is De taak kan bijvoorbeeld worden ingekaderd met dit . In verschillende gevallen kunt u de uitvoer van SWO printf testen door printf aan te roepen. Op deze pagina is bijvoorbeeld de printf-functie elke 2 seconden aangeroepen door een standaard FreeRTOS-taak. De aangeroepen printf is een oneindige voorstelling en je kunt het afgedrukte resultaat debuggen via de SWV-ITM-console. Heb je iets te zeggen? Debuggen van Printf via STM32 SWO kan erg handig zijn voor het volgen van de indieningsstroom en het debuggen van strategieën die na verloop van tijd moeten worden uitgevoerd. U kunt foutopsporingslogboeken altijd voorkomen via SWO UART Printf of er later aan denken om ervoor te zorgen dat uw programma goed kan werken. Laten we in deze implementatie eens kijken naar de volledige STM32 CubeIDE-procesopties om wat meer is, ook wel SWO-foutopsporingslogboeken genoemd, weer te geven. Houd er rekening mee dat een groot deel hiervan specifiek is voor CubeIDE en kan veranderen afhankelijk van exclusieve IDE’s zoals uVision IAR en keil. Afhankelijk van de vaardigheid moet je het ergens anders doen, iets anders doen of het hebben. omvatten Geeft op CubeIDE gebaseerde SWO-logboeken weer (aangedreven door Eclipse). Serieel Om verbinding te maken met de ITM Data Console, moeten clients het volgende “Uitvoeren”: Alle printf-aanroepen die we doen, gebruiken uiteindelijk een “character to be print”-taak die is geschreven op de minder bekende hardware waarnaar u het resultaat van de meeste printf-gegevens wilt verzenden. Deze Printf-output kan objectief worden verkregen uit een UART, SWO-debug, high-total performance-geheugen of een combinatie van deze apparaten. Hier voegen we een zeer noodzakelijk fragment toe aan 1 op 1 de karakters naar de SWO-terminal. In het gedeelte met de klantcode, inclusief het bestand main.c, moet u deze functie zeker inschakelen. Vergeet ook niet om syscalls.c te maken voor je persoonlijke project. Een natuurlijke freertos-taak, of moet ik zeggen een betrouwbare func. De main()-functie kan worden gebruikt om alle printf()-functies te testen voor bevestiging en dat de SWO-debug-uitvoerpoging en kennis van deze STM32 in CubeIDE zichtbaar zijn. p> Een dergelijke methode kan bijvoorbeeld worden geconfigureerd voor freertos. Bent u het beu dat uw computer traag werkt? Geërgerd door frustrerende foutmeldingen? ASR Pro is de oplossing voor jou! Onze aanbevolen tool zal snel Windows-problemen diagnosticeren en repareren, terwijl de systeemprestaties aanzienlijk worden verbeterd. Dus wacht niet langer, download ASR Pro vandaag nog! Je kunt het eindproduct van SWO printf testen door een printf-gesprek te voeren. Momenteel wordt de functie printf bijvoorbeeld elke 2 seconden aangeroepen door de standaard freertos-slepen. printf wordt een oneindige afbeelding genoemd. Mogelijk ziet u het huidige werk aan het debuggen van de SWV ITM-console.Cubemx kan SWO-foutopsporingsuitvoer inschakelen in STM32
Als de configuratie voor foutopsporing actief is, kan het tabblad Debugger inschakelen de seriële kabel weergeven Viewer (SWV).
Venster bekijken > > SWV > toon ITM SWV-gegevensconsoleVoeg Data-element_type=”column”> toe
int __io_putchar(int ch) // Schrijf bestandskarakter naar ITM ch.0 ITM_SendChar(ch); terug (h);
Schrijf een geweldig Printf Debug-testprogramma
/** * @brief deel met defaultTask-thread.* @param argument: niet gebruikt* @retval Nee* /void StartDefaultTask(ongeldige const *argument) GEBRUIKER /* STARTCODE 5* /vTaskDelay(100/portTICK_RATE_MS); /* oneindige lus* / (;;) naarvTaskDelay (2000/portTICK_RATE_MS);printf("SWO testen!rn"); GEBRUIKER /* EINDCODE 5* /
Vraag gerust wanneer u een routebeschrijving overweegt met behulp van het snelle contactformulier in uw huidige zijbalk, of laat hieronder een nieuwe opmerking achter.
U kunt SWO-uitvoer debuggen in STM32 CubeMX
In de debug-configuratie die actief is in deze debugger-instructie, schakelt u de Serial Beat Viewer (SWV) in.Functiecode Syscalls.c SWO “putchar” toegevoegd voor Printf
int __io_putchar(int ch) Schrijf // karakter dat je kunt ITM ch.0 ITM_SendChar(ch); kom (h);
Schrijf een Printf Debug-testprogramma
/** (spatie) @brief Een functie die de defaultTask-thread implementeert. 6. @param argument: niet gebruikt 6. Elke @retval */void StartDefaultTask (lege constante * argument) /* START GEBRUIKERSCODE */VTaskDelay(100/portTICK_RATE_MS); 5 /* oneindig beeld */ NAAR(;;) VTaskDelay (2000/portTICK_RATE_MS);printf("SWO testen!rn"); /* GEBRUIKERSCODE EINDE 0 */
Bijgewerkt