Forum: Mikrocontroller und Digitale Elektronik Helix MP3 mit FreeRTOS auf STM32F4 geht nicht


von Peter (Gast)


Lesenswert?

Hallo,

ich versuche den HELIX MP3 Code auf einem STM32F4 mit FreeRTOS (8.0) zum 
laufen zu bringen.

Ich habe den Codec in einer Funktion zum Testen verpackt und im Flash 
ein MP3 File liegen. Zum Testen ist vom Codes die langsame C-Variante 
drin. Die Codec Variablen sind nicht auf dem Heap sondern Statische 
Variablen.


Wenn ich nun ohne dem RTOS in einer Schleife die Funktion aufrufe läuft 
alles super. Die gesamte Datei wird sauber decodiert.

Aber wenn ich in einem Task die Funktion aufrufe läuft meistens beim 2. 
Frame der Codec Amok und löscht fast das ganze RAM und damit alle 
Variablen.
Ich habe auch schon den Aufruf in eine Critical Section (oder wie das 
heist) gekapselt, auch ohne Erfolg.

Hat jemand Erfahrung mit dieser Kombination oder hat einen Tipp woran 
das liegen könnte?


VG, Peter

von Jim M. (turboj)


Lesenswert?

Klingt nach Stack overflow. Der Stack ist bei RTOS Tasks AFAIK nicht 
sehr groß.

von Peter (Gast)


Lesenswert?

Vergesst es, meine Output Variable ( uint8_t Out[2][2304] )  war zu 
klein und hat dadurch die dahinter liegende Decoder Variable zerlegt.
Es sind nicht 2304 Byte  sonder  2304 Short.
Da hatte ich wohl aus einem falsches Demo Projekt das raus kopiert.


Beim Test ohne ROTS ist es nicht aufgefallen weil ich immer bei "0" 
angefangen habe.
Im RTOS habe ich den Output auf den 2. OUT Bereich umgeschaltet und dann 
wurde halt mal eben was falsches beschreiben.

VG, Peter

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.