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.
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.
Mr.T schrieb: >> -Wie schreib ich nun Daten da rein? > Du kriegst doch die Startadr. des Pools zurück. Muss heißen: Du kriegst doch die Startadr. des Blocks zurück.
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...
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? ;-)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.