mikrocontroller.net

Forum: Compiler & IDEs Memory Managment und C Programm


Autor: Felix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey ich hab ne Frage zur Verteilung von Memory in einem C Programm.
Also in C ist Memory ja aufgeteilt in (initialized und 
uninitialized)Data Segment,Text Segment,Heap und Stack. Aber zum 
Beispiel auf meinem Arm Cortex a35 habe ich verschiedene Speicher die 
unterschiedlich schnell abrufbar sind L1 und L2 cache und SRam. Wie 
passen die beiden Systeme zueinander. Oder ist die memory Verteilung in 
C nur virtuel und wie der Speicher tatsächlich verteilt wird wird dann 
der MMU überlassen.

: Verschoben durch Moderator
Autor: Achim S. (achs)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dein Linker (bzw. dessen Script) bestimmt die Lage der Segmente. Meist 
kannst Du per #pragma für verschiedene Arten von Speicher noch 
zusätzliche Segmente selbst erstellen, z.b. einen RAM-Bereich, in dem 
uninitialisierte Variablen nicht genullt werden. Oder einen Bereich im 
langsamen RAM und einen im schnellen RAM. Oder ein Segment für bestimmte 
Codeteile, die dann automatisch dort gruppiert werden.

Finde also heraus, wie Dein Linker arbeitet und was in diesem ominösen 
File steht.

Autor: guest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Felix schrieb:
> L1 und L2 cache und SRam

Die Caches liegen hardwaremäßig quasi transparent über dem normalen 
Speicher (egal ob SRam, DRam, Flash, ...), davon bekommt Dein C-Program 
eh nichts mit.

Felix schrieb:
> Oder ist die memory Verteilung in
> C nur virtuel und wie der Speicher tatsächlich verteilt wird wird dann
> der MMU überlassen.

Ja, vorrausgesetzt die MMU wird auch benutzt.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.