www.mikrocontroller.net

Forum: Compiler & IDEs AVR-GCC .data wer kann helfen ?


Autor: medra (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi zusammen,

ich arbeite gerade an einer extended-Variante des Webservers von Ulrich
Radig.
Z.Zt. bin ich dabei, ein eigenes Telnet aufzusetzen, was etwas mehr
Komfort bietet.

Leider hab ich folgendes Problem:

Dies ist die Ausgabe des Compilers...

section            size      addr
.text             11656         0
.data               850   8388704
.bss                139   8389554
.noinit               0   8389693
.eeprom               0   8454144
.debug_aranges      260         0
.debug_pubnames    1372         0
.debug_info       10012         0
.debug_abbrev      3162         0
.debug_line        8731         0
.debug_str         1853         0
.debug_ranges        48     11656
Total             38083

Irgendwelche Textinhalte von z.B. printf erhöhen den Wert von .data
Kommt dieser an die 900-Grenze, dann läuft die Software gar nicht bzw.
Instabil.

Verwendet wird ein Mega32.

Wer weiss rat ?
Und wie kann ich rausfinden, wie viel Code und wie viel SRAM ich belegt
hab ? Der Mega32 hat doch 32k Flash und 2k SRAM ?


Greetz,
medra

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Deine "irgendwelchen Textinhalte von printf" werden, obwohl es
String-Konstanten sind, im RAM (also Sektion .data) abgelegt und bei
Programmstart mit konstanten Werten aus dem Flash-ROM initialisiert.

Abhilfe:
http://www.mikrocontroller.net/articles/AVR-GCC-Tu...

Autor: Simon Küppers (ohne Login) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Heißt das bei
printf("Test");

RAM belegt wird ?
Dachte er lädt die String Konstante (in Register) und gibt sie dann
aus?! Oder versteh ich jetzt was falsch?

Autor: medra (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmmm ...

aber der Mega32 hat doch 2k RAM ?

Autor: medra (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie bekomme ich denn einen Flash-ROM-Inhalt in einem sprintf-string
untergebracht ?

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einen ganzen Flash-PROM-Inhalt in einem sprintf-String? :-)

Ansonsten: ließ das ***-Manual einfach mal.  Referenzen:

http://www.nongnu.org/avr-libc/user-manual/group__...
http://www.nongnu.org/avr-libc/user-manual/group__...

(Errm, du musst das manuell cut&pasten, die Forumsoftware hat
mit den Unterstrichen einen Bug:

http://www.mikrocontroller.net/forum/read-5-241542.html#new )

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.