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?
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.