Forum: Mikrocontroller und Digitale Elektronik Debuggen von FreeRTOS


von Peter (Gast)


Lesenswert?

Hallo,

ich habe hier ein Projekt mit einem STM32F103, welches ich mit dem 
CubeMX, den HAL-Bibliotheken, GCC und OpenOCD unter Ubuntu entwickle.

Das Ganze wird ein kleiner Roboter. Ein LCD zur Anzeige, ein MPU6050 und 
die zwei Motoren laufen schon, solange ich alles einzeln teste.

Wenn ich jetzt alle Module zusammen schalte, dann hängt sich die Kiste 
auf. Lasse ich auch nur eines weg (egal welches Modul), dann habe ich 
keine Probleme.

Ich vermute nun, das es entweder ein Speicherplatz-Problem ist, oder die 
Interrupts und Tasks nicht richtig abgestimmt sind.

Wie debuggt man sowas am besten?

Danke und Gruß Peter

von pegel (Gast)


Lesenswert?

Genau weiß ich das nicht, würde aber solange es noch funktioniert einem 
Modul immer mehr Speicher zuweisen bis es nicht mehr geht.

Danach dann versuchen den Speicher bei allen Modulen optimal anzupassen.

von Johnny B. (johnnyb)


Lesenswert?

Peter schrieb:
> Wenn ich jetzt alle Module zusammen schalte, dann hängt sich die Kiste
> auf. Lasse ich auch nur eines weg (egal welches Modul), dann habe ich
> keine Probleme.

Versuche mal in FreeRTOSConfig.h die "configTOTAL_HEAP_SIZE" 
hochzusetzen.

Es gibt in FreeRTOS übrigens auch Funktionen um den freien Heap und auch 
freien Stack von allen Tasks abzufragen.
uxTaskGetStackHighWaterMark()
xPortGetFreeHeapSize()
Im config müssen die zum Teil noch aktiviert werden, siehe Doku von 
FreeRTOS.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.