Memory Pool - GrundsätzlichsTes

Gast #3539600
Lesenswert?

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 #3539635
Lesenswert?

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 #3539641
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren