LPC23XX Codegröße, ROM und RAM Verbrauch

Gast #1613607
Hallo Gemeinde,

ich habe hier einen LPC2378 (ARM7) und benutze die Yagarto Toolchain 
(GCC).

Beim Kompilieren wird mir folgendes ausgegeben:

Size after:
test.elf  :
section             size         addr
.text             116536            0
.data               5640   1073741824
.initdata           5640       116536
.bss               11800   1073747464
.stack             13312   1073759488
.comment            1368            0
.debug_aranges      6352            0
.debug_pubnames    17609            0
.debug_info       110483            0
.debug_abbrev      27811            0
.debug_line        35495            0
.debug_frame       14772            0
.debug_str         26324            0
.debug_loc         65271            0
.ARM.attributes       16            0
.debug_ranges      10112            0
Total             468541

Von den AVRs kenne ich nur die Ausgabe von text, data und bss.
ROM Verbrauch: text + data
dyn. RAM Verbrauch: data + BSS + Stack (dyn.)

Gilt das auch für den ARM?
Was fange ich aber mit den ganzen anderen Angaben hier an?
initdata klingt zB wichtig.
Und worauf bezieht sich die Angabe zum Stack? Der ist doch dynamisch...

Kann ich die Ausgabe auch so abändern, dass ich den Verbrauch in % 
angegeben bekomme?

Freue mich über etwas Unterstützung.
Pong
Da das vom von dir gebauten Linkerscript und vom Controllertyp abhängt 
ist eine automatisierte summarische Angabe durch Compiler/Linker oder 
sonstwen nicht so einfach möglich.

Code ist hier .text, für die ROM-Kapazität kommt noch .initdata hinzu.
Für's RAM sind hier .data, .bss und .stack relevant. Wenn du das 
automatisiert und in Prozent haben willst, dann bau ein einfaches 
Scriptprogramm, das diese Zeilen auswertet und summiert. Oder die 
Ausgabe von objdump auswertet.

Edit: Bei .data und .initdata kann es auch andersrum sein, aber da beide 
per Def gleich gross sind ist das egal.

Schau ins Mapfile, dort findet sich die Adressbelegung.
Gast
@Pong:

Die Yagarto Toolchain kenne ich nicht, arbeitete aber mal mit ARM und 
Keil µVision. Die hat ein Output-Window, wo die Speicherdaten angezeigt 
werden. Unter RealView funktionierte das nicht mehr.

Ich bastelte mir ein Script, welches die Daten im Map-File suchte, und 
im Output-Window darstellte. Sowas sollte gehen.

Mit dem Script, kann man sich dann aussuchen, was dargestellt werden 
soll.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.