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
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-Tutorial#Programmspeicher_.28Flash.29
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?
Wie bekomme ich denn einen Flash-ROM-Inhalt in einem sprintf-string untergebracht ?
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__avr__pgmspace.html http://www.nongnu.org/avr-libc/user-manual/group__avr__stdio.html (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 )
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.