www.mikrocontroller.net

Forum: Mikrocontroller und Elektronik M16C / 62P Dynamische Speicherverwaltung

Autor: Karsten (Gast)
Datum: 18.07.2007 10:28

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: 18.07.2007 13:08

> 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: 18.07.2007 18:07

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

Alex
Autor: Karsten (Gast)
Datum: 19.07.2007 15:33

Wo liegt die denn? Ich find nur nen Funktionszeiger in ner H-Datei...
Autor: Mike (Gast)
Datum: 19.07.2007 15:38

> 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: 19.07.2007 15:39
Dateianhang: malloc.c (13,6 KB, 158 Downloads) | formatierter Code

Sorry, Datei sollte eigentlich angehängt werden. Vielleicht klappt's ja
jetzt.
Autor: Karsten (Gast)
Datum: 22.07.2007 20:56

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 Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
  • Aussagekräftigen Betreff wählen
  • Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
  • JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
  • Schaltpläne, Screenshots usw. als PNG oder GIF anhängen

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel





Hinweis: der Originalbeitrag ist mehr als 6 Monate alt.

webmaster@mikrocontroller.netImpressumWerbung auf Mikrocontroller.net