Memory Pool - GrundsätzlichsTes

Gast #3539600
Hallo Forum.
Ich bin dabei mich in ein Echtzeitbetriebssystem einzulesen (CMSIS-RTX) 
und muss nun meinen C Code dafür anpassen.
Die Funktionen die malloc() und free() verwenden muss ich umschreiben, 
am besten mit Memory Pools.
http://www.keil.com/pack/doc/cmsis_rtx/group___c_m_s_i_s___r_t_o_s___pool_mgmt.html
Ich muss sagen alles was im Internet steht scheint schon für Leute 
geschrieben sein, die die Dinger schon kennen, ausserdem ist mein 
Englisch anscheinend zu schlecht.
Ich bin eigentlich auf der Suche nach den EINFACHSTEN Antworten, alle 
Tutorials erzeugen nur einen Memory Pool und Löschen ihn wieder, ich 
möchte aber wissen:
-Wie schreib ich nun Daten da rein?
-Wie lese ich wieder Daten raus?
-Kann ich einen Pool Initialisieren der sich wie ein Array verhält?
-Ich möchte auch Funktionen wie vsnprintf oder sprintf damit verwenden, 
gibt mir der Memory Pool einfach einen Zeiger in den ich reinschreiben 
kann?
Glaubt mir, die EINFACHSTEN Sachen erklärt das Internet nicht.
Gast
ichbinblöd schrieb:
> -Wie schreib ich nun Daten da rein?
Du kriegst doch die Startadr. des Pools zurück.
> -Wie lese ich wieder Daten raus?
Auch über die Adresse
> -Kann ich einen Pool Initialisieren der sich wie ein Array verhält?
Solange sizeof(array) <= sizeof(memoryBlock) gilt, sehe ich erstmal 
keinen Hinderungsgrund
> -Ich möchte auch Funktionen wie vsnprintf oder sprintf damit verwenden,
Nimm snprintf statt sprintf und gib als size die Größe eine Blocks an.

Du kannst anscheinend auch Pools anlegen, deren Blockgröße sich 
unterscheidet und nimmst den passenden, der gerade noch deine Anfordeung 
erfüllen kann.

Oder du nimmst ein RTOS, das malloc() free() gleich unterstützt.
Gast
Hallo Mr T.
Ich schreibe einfach in den Memory Pool so rein wie in jeden anderen 
Speicher mit Pointer?
So einfach?
Warum schreibt diese Offensichtlichkeit niemand in die Tutorials...
Gast
So wie ich das verstehe, besteht ein Pool aus N Blöcken gleicher Größe.
Ergo arbeitest Du mit Blöcken (im Pool).

> Warum schreibt diese Offensichtlichkeit niemand in die Tutorials...
Weil es offensichtlich ist? Vielleicht? ;-)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 12 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.