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).
> 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
Der Quellcode für die malloc-Funktion liegt der Tasking-IDE bei. Einfach mal reinschauen! Alex
Wo liegt die denn? Ich find nur nen Funktionszeiger in ner H-Datei...
> 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
Sorry, Datei sollte eigentlich angehängt werden. Vielleicht klappt's ja jetzt.
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?))
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.