www.mikrocontroller.net

Forum: Compiler & IDEs Makefile (SRC) und Programmspeicher


Autor: x7 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe eine Verständnis frage zum Makefile und das einbinden von 
mehreren .c Files.

Und zwar benutze ich zum kompilieren NetBeans 6.9.1 aber ich denke das 
Problem tritt auch mit dem AVR Studio auf.


So folgendes

Wenn ich die .c Files mit:
#include "lcd_routines.c"
#include "halb_automatik_modus.c"
in meine main.c schreibe dann verbrauche ich weniger Data Speicher als 
wenn ich in meinem Makefile das hier eintrage:

# List C source files here. (C dependencies are automatically 
generated.)
SRC = $(TARGET).c #lcd_routines.c halb_automatik_modus.c



Um Zahlen zu nennen mit den .c Files im Main includiert brauche ich 84% 
Data und wenn ich die in das Makefile SRC schreibe dann brauche ich 
94,5%


warum ist das so ?

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vermutlich stecken in Dateien unbenutze Funktionen, die der Compiler im 
ersten Fall wegoptimiert. Im zweiten Fall baut erst der linker das 
Programm zusammen, und der packt alles mit dazu.

Oliver

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
x7 schrieb:
> #include "lcd_routines.c"
> #include "halb_automatik_modus.c"

In aller Regel falsch.

Man wird i.d.R. Headerdateien #includen, aber keine C-Quelltexte.

x7 schrieb:
> warum ist das so ?

Kommt auf deine Quelltexte an.

Teilweise kann der Compiler besser optimieren, wenn er den
ganzen Quelltext am Stück sieht.


Die paar Byte Unterschied würden mich aber nicht so nervös machen,
wie ein vermurkster Aufbau deines Programms - mit
#include irgendwas.c hast du das vermutlich.

Insbesondere, wenn du nicht selber in den Quelltext schauen
und die Auswirkungen nachvollziehen kannst.

Autor: x7 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nee das mit im includen der .c Files ist natürlich nicht in meinem 
Programm ich habe das über das makefile mit SCR gemacht. ich hatte das 
nur mal ausprobiert und hatte da den großen speicher unterschied 
festgestellt

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei 94% in der DATA Section würde ich allerdings schon anfangen nervös 
zu werden.

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.