Forum: Mikrocontroller und Digitale Elektronik mmu im uc und speicherverwaltung


von Sonke A. (soeni)


Lesenswert?

Hhuhu,

hab mal ne Frage, und zwar wie läuft das eigentlich mit der 
Speicherverwaltung in einem uc?? wie sorgt da die MMU dafür, dass die 
Daten in den ram geladen werden können.

Kann die MMU auch daten auf den flash auslagern?  woher weis ich, ob 
mein ram voll ist, wenn ich nicht per mallok alloziiere sondern statisch 
speicher reserviere?

Konkretes Beispiel, ich will einfach nur 512 bytes von einer SD Card 
lesen. mit 4kbyte ram  (mega128) sollte das ja kein problem sein. aber 
wo ist da schluss, heist das ich kann maximal dateien der Größe 4k in 
den ram legen??

Danke schonmal und Gruß

von Purzel H. (hacky)


Lesenswert?

Ein kleiner Mikrocontroller hat keine MMU. Lies mal ein Datenblatt eines 
AVR zum Beispiel. Ja wenn das RAM voll ist ist Schluss.

von Sonke A. (soeni)


Lesenswert?

hm und wie funktioniert dann die Speicherverwaltung?? ich meine 
alloziieren und freigeben von Speicher zur Laufzeit? ohne das da nen 
Betriebssystem drauf ist oder ne mmu.

von Purzel H. (hacky)


Lesenswert?

Eine kleine Library, resp etwas Code und ein paar Variablen. Es wird 
beim Startup ueber die Konfiguration dem Heap eine gewisse Groesse 
zugewiesen, und eine verkettete Liste haelt die Pointer auf die 
einzelnen Bloecke.

von Thomas (Gast)


Lesenswert?

Das wird nicht vom uC verwaltet sondern vom Programm. Wenn avr-gcc 
verwendest, dann kümmern sich deren Funktionen um die 
Speicherverwaltung.
Es wird dabei einfach irgendein freies Register für den Breakpointer und 
irgendein anderes für den Stackpointer verwendet.
Dynamischer Speicher (malloc) verwendet den brk-pointer und wird 
vermutlich einfach mit einer doppelt verketteten Liste bewerkstelligt.

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.