Forum: Mikrocontroller und Digitale Elektronik Besonderer Speicherbereich und Realloc


von STM32 (Gast)


Lesenswert?

Hallo,

ich habe hier einen Controller, der seinen RAM in unterschiedlichen 
Bereichen unterteilt hat.

Nun würde ich davon gerne einen speziellen Bereich nutzen, klappt auch 
indem ich die entsprechenden Compilerdirektiven setze.

Wie aber kann ich mit einer Funktion Realloc/Malloc/Alloc genau 
denselben Speicherbereich nutzen?

von leo (Gast)


Lesenswert?

STM32 schrieb im Beitrag #5944565:
> Wie aber kann ich mit einer Funktion Realloc/Malloc/Alloc genau
> denselben Speicherbereich nutzen?

- die Funktionen verwenden Kleinbuchstaben
- was ist "Alloc"?
- ev. hilft "man sbrk" usw.
- vermeide es, wenn geht. malloc() usw. brauchen zusaetzlich 
Verwaltungsoverhead (i.e. Speicher) fuer Freelists. Durch Fragmentierung 
wird dein Speicherverbrauch anwachsen.

leo

von Hannes J. (pnuebergang)


Lesenswert?

malloc() und realloc() haben bereits einen speziellen Speicherbereich, 
den Heap. Wächst typischerweise auf den Stack zu.

alloca() (nicht alloc()) muss prinzipbedingt auf dem Stack liegen. Hat 
so gesehen also auch bereits einen speziellen Speicherbereich.

Stack + Heap erhalten typischerweise den ganzen nicht anderweitig 
genutzten Speicher. Alles was noch so da ist. Also, was willst du 
wirklich? Was soll das Verlegen in einen anderen Speicherbereich? Größer 
wird dein RAM dadurch auch nicht.

von Oliver S. (oliverso)


Lesenswert?

STM32 schrieb im Beitrag #5944565:
> Wie aber kann ich mit einer Funktion Realloc/Malloc/Alloc genau
> denselben Speicherbereich nutzen?

RTFM

In dem Fall das der Standardlib, die du verwendest, ob du da eine eigene 
Speicherverwaltung für malloc einbauen kannst.

Oliver

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.