www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR- Studio 4 C-Datein einbinden


Autor: MR_Will (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
grüß euch
ich möchte zu meinem projekt ein weiters c-file einbinden.
dazu habe ich es unter source files hinzugefügt. danach unter use 
external makefile das makefile im ordner "default" des projektes 
eingebunden. (siehe Anhang).
funnk nicht...
kann mir da wer helfen??

lg
willi

Autor: Andreas H. (anderlh)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum nutzt du ein externes makefile? Das Studio erzeugt dir eines. 
Unter "Configuration Options" kannst Du alles einstellen was rein soll. 
Alle c-Files unter Source Files werden berücksichtigt.
LG Andi

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
MR_Will schrieb:
> funnk nicht...
ah ja

> kann mir da wer helfen??
keiner

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Willi, geh dem Hinweis von Andreas nach. In AVR Studio ist es wesentlich 
bequemer mit dessen Projektverwaltung und interner Makestruktur zu 
arbeiten statt mit externem Makefile.

Wenn du trotzdem mit externem Makefile arbeiten musst: Die Dateien in 
AVR Studio unter Source Files sind dem externen Makefile volkommen egal. 
Nur was im Makefile angegeben ist zählt.

Bei der Ergänzung des (seltsamen) Makefile kannst du dir ein Beispiel an 
der Source uart.c nehmen. Dazu sind Ergänzungen nötig:
## Objects that must be built in order to link
OBJECTS = hoello_V_0_1.o uart.o 

Hier wird definiert, dass eine Objektdatei uart.o erstellt werden muss.
uart.o: ../../../Module/Uart/uart.c
  $(CC) $(INCLUDES) $(CFLAGS) -c  $<

Hier wird definiert wovon die Objektdatei abhängig ist (uart.c) und wie 
die Objektdatei uart.o erstellt werden kann.

Die Besonderheit ist, dass die Source nicht im aktuellen Verzeichnis 
liegt. Daher auch die dritte Ergänzung, damit sowas wie #include 
"uart.h" innerhalb uart.c oder main.c funktioniert:
## Include Directories
INCLUDES = -I"D:\programmieren\Hoelli\V_0_1\..\..\Module\Uart" 

Hier wird der Suchpfad für die uart-spezifischen Includedateien ergänzt.

Angenommen du hast zusätzlich eine Source angie.c, dann sieht das so im 
Makefile aus:
## Objects that must be built in order to link
OBJECTS = hoello_V_0_1.o uart.o angie.o

angie.o: angie.c
  $(CC) $(INCLUDES) $(CFLAGS) -c  $<

Wichtig: Bei der Bearbeitung des Makefiles im Editor müssen Tabulatoren 
erhalten bleiben. Die leiten die Zeilen mit den Makekommandos ein, z.B.
  $(CC) $(INCLUDES) $(CFLAGS) -c  $<

Zu dem "seltsamen" Makefile: Üblich sind eher Makefiles nach dem 
Beispiel Makefile

Autor: MR_Will (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kk vielen dank!!
haut schon hin ;)

lg
willi

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.