Forum: Compiler & IDEs eigene Header, 1 Projekt, 3 Boards


von Christian P. (peterfrosta)


Lesenswert?

Hallo Zusammen,

ich weiß das es zu dem Thema einige Einträge gibt, aber ich konnte nicht 
die gewünschten Aussagen finden.

Bisher habe ich meine eigenen Header immer in .c (Definitionen und 
Variablen)und .h ( Defines und Deklaratioenen) Dateien aufgeteilt.

Das funktionierte bisher ganz ok. (Nutze Atmel Studio 6 für Atmega88 und 
Atmega2560)

Nun habe ich ein Projekt, welches aus 3 separaten Boards besteht.
Meiner Auffassung nach würde Atmel Studio es so nennen:
1 Solution mit 3 Projekten - sprich 3 main()s.

Diese habe alle ein große Schnittmenge bei den verwendeten Funktion.
Z.B. der Bus ist exakt gleich bis auf die verwendeten Pins.
Diese Hardwareanpassung erfolgt aber per Defines in einer individuellen 
port_defines.h

Die Programme der 3 Boards includen also alle die selbe File für den Bus 
(plus seperate portdefine.h).
Ich habe auch verstanden, warum eine "Bibliothek" nicht für alle 
Möglichen Projekte herhalten soll, damit spätere Änderungen nicht alte 
Projekte beschädigt - bzw diese neu kompiliert werden müssen.

Ich habe hier aber 3 Boards, welche in jedemfall so zusammen gehöhren 
und eine Änderung in den "Bus-Grundlagen" auch alle Boards betrifft.

Daher frag ich mich, wie es möglich ist, ein und die selbe Datei in 
jedem der 3 Programme zu includen, statt nur jeweils ein Kopie.

Gerade weil ich noch Änderung vor habe, möchte ich nicht für jeden 
Kommunikationspartner die Includefiles ändern müssen.
Die  Header und Sourcefiles sollten doch auch aus übegeordneten Ordner 
zu includen sein?!

JA, ich habe gesehen, dass man weitere Includepfade angeben kann.
Wenn ich das tue, funktioniert das nur mit der Headerfile. Die 
Sourcefile aber fehlt ihm dann beim Compilieren. Wird diese bekannt 
gegeben, fügt AStudio eine Kopie von selbiger in das Projektverzeichnis. 
Somit würden  wieder 3 Versionen der bus.c existieren :-(

Nun wäre eine erdachte Lösung, den Inhalt der Sourcefile in die 
Headerfile zu kopieren und die Sourcefile nicht mehr zu benötigen.

Aber das soll man ja nicht, nicht wahr?

ich bin mal gespannt, ob mich jemand etwas aufklären kann oder mir vllt 
nen Tip geben kann.
Von den Motzköppen möchte ich nichts lesen ;)

Jedenfalls vielen Dank für eure Zeit

: Verschoben durch Admin
von guest (Gast)


Lesenswert?

In einem richtigen Betriebssystem könntest du das mit
1
 ln -s

auf die Files lösen.

von Fabian O. (xfr)


Lesenswert?

Du erstellst Dir einen Ordner "Common" o.ä. und packst dort alle 
C-Dateien und H-Dateien rein, die in mehreren Projekten verwendet werden 
sollen.

In Atmel Studio kannst Du die Dateien mit "Add File to Project" (o.ä., 
habe es gerade nicht installiert) in die Projekte einfügen. Es öffnet 
sich ein Dialogfenster, in dem Du die Dateien auswählen kannst. Der 
Trick ist, in dem Dialog nicht auf den Button "Add" zu klicken, sondern 
auf den kleinen Pfeil daneben, da gibt es nämlich noch "Add as Link". 
Damit werden die Dateien nicht in das Projektverzeichnis kopiert, 
sondern bleiben im Ordner "Common".

von Christian P. (peterfrosta)


Lesenswert?

Fabian O. schrieb:
> In Atmel Studio kannst Du die Dateien mit "Add File to Project" (o.ä.,
> habe es gerade nicht installiert) in die Projekte einfügen. Es öffnet
> sich ein Dialogfenster, in dem Du die Dateien auswählen kannst. Der
> Trick ist, in dem Dialog nicht auf den Button "Add" zu klicken, sondern
> auf den kleinen Pfeil daneben, da gibt es nämlich noch "Add as Link".
> Damit werden die Dateien nicht in das Projektverzeichnis kopiert,
> sondern bleiben im Ordner "Common".

geil. das teste ich! den pfeil werde ich dann wohl stets übersehen 
haben.
Ich gehe davon aus, dass das klapt und sage DANKE! sonst komm ich wieder 
;)

gruss

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
Noch kein Account? Hier anmelden.