www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LPC23XX Codegröße, ROM und RAM Verbrauch


Autor: Pong (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Wilhelm F. (ferkes-willem)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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

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.