FreeRTOS mit variabler Stackadresse für Tasks

OP #3859425
Lesenswert?
• ▲
▼
Hallo zusammen

Ich bin dabei, meine Software von Keil RLARM nach FreeRTOS zu portieren. 
Ich habe einen STM32F1 mit einem kleinen und schnellen internen RAM 
(64k) sowie einem etwas langsameren, grossen externen RAM (per FSMC).

Bei Keil konnte ich für jeden Task neben der Stackgrösse auch den 
Speicherort des Stacks angeben (per Übergabe eines Pointers). Dies war 
wichtig, da ich für alles Stacks im internen RAM zuwenig Speicher habe, 
jedoch für einige Task das externe RAM zu langsam ist (häufiger 
Taskwechsel).

Aktuell bin ich immer noch am portieren und habe deswegen noch keinen 
lauffähigen Code. Ich habe jedoch bereits jetzt ein Augenmerk auf den 
FreeRTOS Memorymanager heap_3.c geworfen. Da könnte ich bei 
pvPortMalloc() feststellen, aus welchem Task die Funktion aufgerufen 
wurde und entsprechend Speicher aus dem internen oder externen RAM 
bereitstellen. Ich bin mir jedoch nicht sicher, ob dies die optimale 
Lösung wäre.

heap_4.c bietet mir die Möglichkeit, sowohl Speicher im internen wie 
auch im externen RAM bereit zu stellen. Da ich aber keinen Einfluss 
nehmen kann, welcher Teil welchem Task zugesprochen wird ist dies für 
meinen Fall nicht brauchbar.

Habe ich bei FreeRTOS beim Erstellen eines Tasks die Möglichkeit, neben 
der Stackgrösse auch den Speicherort des Stacks anzugeben? Auf der 
Homepage habe ich keine verwendbaren Informationen gefunden. Die 
Funktion xTaskGenericCreate() könnte vieleicht die Lösung sein, doch ich 
finde keine Beschreibung zu dieser Funktion, selbst das FreeRTOS Manual 
schweigt sich aus.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.