mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik M16C / 62P Dynamische Speicherverwaltung


Autor: Karsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Tag.
Ich bin Anfänger auf dem Gebiet der Embedded Systems und habe da mal 
eine Verständnisfrage:

Wie funktioniert die dynamische Speicherverwaltung bei Embedded Systems, 
bzw. wie wird der Heap verwaltet, wenn ich kein Betriebssystem habe? Was 
passiert, wenn ich mit new Speicher allokiere? Wird da vom Compiler 
irgendwas hinzugefummelt, um den Speicher zu verwalten (Bitmap oder so)? 
Kann ich wirklich einzelne Bytes allokieren? Woher weiss der  die  das 
jenige, welcher  welche  welches den Speicher verwaltet, dass der Heap 
komplett vergeben ist und gibt mir in solchen Fällen NULL zurück?

Ich arbeite mit einem Renesas M16C / 62P und einer Entwicklungsumgebung 
von Tasking (EDE).

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ich bin Anfänger auf dem Gebiet der Embedded Systems und habe da mal
> eine Verständnisfrage:

Naja, es wuerde schon fuer das Verstaendnis reichen wenn du Profi fuer 
Turbo Pascal 2.2B von 1983 waerst, da sich da wohl nicht viel geaendert 
hat. :-)


> Wie funktioniert die dynamische Speicherverwaltung bei Embedded Systems,
> bzw. wie wird der Heap verwaltet, wenn ich kein Betriebssystem habe?

Das macht der Compiler, bzw. die Libaries die er fuer dich einbindet.

> jenige, welcher  welche  welches den Speicher verwaltet, dass der Heap
> komplett vergeben ist und gibt mir in solchen Fällen NULL zurück?

Du kannst wohl davon ausgehen das der intern eine Liste verwaltet. Und 
ohne es genau zu wissen wuerde ich einfach mal vermuten die liegt mit im 
Heap.

Olaf

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Quellcode für die malloc-Funktion liegt der Tasking-IDE bei. Einfach 
mal reinschauen!

Alex

Autor: Karsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo liegt die denn? Ich find nur nen Funktionszeiger in ner H-Datei...

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wo liegt die denn? Ich find nur nen Funktionszeiger in ner H-Datei...

Wenn Du die Quellen der Library installiert hast, unter 
SRC30\LIB\malloc.c. Ansonsten oben in diesem Beitrag....

Gruss
Mike

Autor: Mike (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, Datei sollte eigentlich angehängt werden. Vielleicht klappt's ja 
jetzt.

Autor: Karsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jetzt mal für Leute, die die Disziplin "Fremden Quellcode verstehen" 
nicht so gut beherrschen :-)

Kann ich wirklich einzelne Bytes allokieren?

Ist Verlass darauf, dass die angeforderten Speicherbereiche nicht 
überschrieben werden?

Wie wird der Heap verwaltet (Bitmap / Liste(was steht in den 
Listenelementen?))

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.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

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