Hallo, ich suche eine Möglichkeit, die Symbol-Größe aller verwendeter globalen Variablen, Strukturen und Funktionen zu ermitteln. Meine Datenstrukturen passen nicht mehr komplett in das interne RAM und um zu schauen, welche Daten ich am besten in das externe RAM verschiebe, wäre ein solche Übersicht sehr hilfreich. Es handelt es um den Prozessor TMS320C6727 und ich verwende den Compiler "TMS320C6000 Optimizing Compiler v 7.4". Ich hatte gehofft, dass die Größen in das MAP-File geschrieben werden können, aber auch der Programm-Parameter "--mapfile_contents= all" brinkt keinen gewünschten Erfolg. In dem Dokument "Object File Utilities" (http://www.ti.com/lit/ug/spru186w/spru186w.pdf) Seite 268ff sind einige TI-Tools beschrieben - mit diesen konnte ich jedoch nur die Symbol-Namen und -Adresse aus *.out und *.obj Dateien ermitteln, nicht die Größe. Aus der Differenz zweier Symbol-Adressen kann man zwar Rückschlüsse auf die Größe ziehen, aber das muss nicht immer passen. Zudem funktioniert dies nicht für die "letzten" Symbole in einer Section. (Es handelt sich um ein sehr großes Projekt mit sehr vielen Strukturen und Unterstrukturen. Deshalb möchte ich nicht "sizeof()" oder einen ähnlichen Workaround verwenden.) Irgendwie muss man doch die Größe extrahieren können... Habt ihr einen Tipp für mich? Gruß Ben
Beim "nm" der GNU-binutils gibt es die Möglichkeit, --print-size mit anzugeben. Im Prinzip sollten sich diese Tools einigermaßen unabhängig vom tatsächlichen Inhalt einer ELF-Datei auch auf solche fremder Architekturen anwenden lassen. Sofern deine Toolchain also ELF als Zieldateiformat benutzt, könnte man es auf einen Versuch ankommen lassen.
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.