Forum: Mikrocontroller und Digitale Elektronik Eigene Bibliotheken in AVR Studio 5


von Fridolin (Gast)


Lesenswert?

Hallo,

kennt jemand hier eine praktikable Möglichkeit, wie man eine Art von 
eigener Bibliothek in AVR Studio 5 einbindet.

Konkreter:
Derzeit entwickle ich in Eclipse und nutze dort die Möglichkeit als 
Include-Paths ein anderes Projekt anzugeben. Des weiteren ist dieses 
auch als SourceLocation eingebunden.
Durch diesen Trick wird automatisch der dort enthaltene Quelltext mit 
den Einstellungen des jeweils aktuellen Projekts neu gebaut. (Dass 
dadurch im schlimmsten falle immer alles gebaut werden müsste weiß ich, 
dies ist nicht weiters schlimm.)

Wie kann man das also am besten Abbilden in AVR Studio 5?
Anmerkung: Der Quellcode der Bibliothek beinhaltet nicht nur abstrakte 
Funktionen, sondern auch Hardwarenahe Funktionen. Letztere werden über 
Preprozessoranweisungen entsprechend ausgewählt. Es muss also 
gewährleistet sein, dass die Version der kompilierten Bibliothek zur 
Prozessorarchitektur passt. Bisher wird nur die AVR Tiny, ATMega und 
XMEGA Serie verwendet, in Zukunft ist es jedoch möglich, dass ein Teil 
des Quellcodes auch in einem Projekt für den AVR32UC3A anwendung findet.

Grüße und Danke im voraus für die Antworten!

von Fridolin (Gast)


Lesenswert?

Nutzt wirklich keiner von euch so eine ähnliche Technik?
Die Alternativen für mich wären nämlich copy&paste oder irgendwas 
verzwicktes mit Repositorys.
Beide Ansätze gefallen mir nicht.

von bronko (Gast)


Lesenswert?

Hmmm...
ich bin nicht ganz sicher ob ich (oder andere) die Frage verstehen.
Also Bibliotheken einbinden funktioniert wie überall mit #include
je nach dem mit "bib.h" oder <bib.h>.
Kommt noch ein .c-File dazu dann musst du das per Rechtsklick auf das 
Projekt noch einbinden.
Ob das die Antwort auf deine Frage war weiß ich nicht ;)
Vlt gibts du noch ein paar Tips...

von Hans-jürgen H. (hjherbert) Benutzerseite


Lesenswert?

Für meine C-Programme mache ich das so:
http://www.mikrocontroller.net/articles/Beispiel_Makefile#Beispiel_2

Ich benutze das AVR-Studio nur um zum Debuggen. Die Projektverwaltung 
mache ich immer durch die Datei makefile, (z.B. in 
C:\home\cc\qq\avr\qqtraff\makefile) und die Datei makedefs (in 
C:\home\cc\avrbat\makedefs).
makefile erzeuge ich für jedes Projekt neu manuell, dadurch, dass ich 
ein vorhandenes makefile eines anderen Projekts kopiere und anpasse. 
Beispiele siehe ../../../../cc/qq/avr/qqtraff/makefile
Aufruf des AVR-Studio
[Start] [Programs] [Atmel AVR Tools] [AVR STudio 4]

Vorbereitung eines Projekts
[Project] [New Project]
Project Type : AVR GCC
Location : C:\HOME\CC\QQ\AVR
[ ] Create initial file (Die Vorwahl wegnehmen! Es wird eine Datei aus 
dem Verzeichnis C:\HOME\CC\QQ genommen)
Project name: QQTRAFF
-- Next >> --

Select Platform AVR Simulator, Device AT90S2323 oder 8535, je für 
welches Ziel entwickelt wird.
Das kann später korrigiert werden durch [Debug] [Select Platform and 
Device]

Jetzt ist das AVR Studio mit einem leeren Projekt zu sehen.
  QQTRAFF (default)
   +- Source Files
   +- Header Files
   +- External Dependencies
   +- Other Files

Rechter Mausklick auf [Source Files],  Add existing source files und die 
Datei qqtraff.cpp auswählen.

[Project] [Configuration Options]
Im linken Fenster Include Directories das Standard-Includeverzeichnis 
hinzufügen [Add...] C:\HOME\CC\INCLUDE

[Project] [Configuration Options]
Im linken Fenster General  Benutze eine externe Steuerdatei Makefile.

Den Makefile anpassen. Dazu einen vorhandenen Makfile herbeikopieren, 
z.B. von C:\HOME\CC\QQ\AVR\QQTSHAR\Makefile oder von 
C:\HOME\CC\QQ\AVR\QQTSSER\Makefile und editieren: Den alten Projektnamen 
und Hauptprogrammnamen ersetzen und mehr Library-Dateien hinzufügen.

von Fridolin (Gast)


Lesenswert?

@bronko: Ich sehe, ich habe mich zu undeutlich ausgedrückt, mein Fehler.
Ich versuche es nochmals so:
Für z.B. die AVR8 Prozessoren habe ich derzeit einen Ordner, in der all 
meine Libs drinnen sind (also die .c und .h Dateien). Gleichsam habe ich 
einen Ordner mit Libs nur für die XMega-Prozessoren. Beispiele für solch 
eine Lib ist Ansteuerung von Peripherie wie USART/TWI/SPI aber auch 
nicht Hardwarenahe dinge wie die Verarbeitung von Daten.

Diese Libs habe ich bisher in Eclipse in einem eigenen Projekt gehabt, 
sodass ich dieses in das eigentliche Projekt reinlinken konnte. Eclipse 
hat dann automatisch alle .c Dateien die ich nicht explizit includet 
habe mit meinen Projekteinstellungen (CPU-Typ, Frequenz, etc.) gebaut 
und alles war toll.

So etwas suche ich jetzt auch für AVR Studio 5. Der Umstieg kommt daher, 
dass ich doch gerne auch mal den Debugger anwerfe, was für die 
XMega-Prozessoren meines Wissenstands nur in AVR Studio selbst 
funktioniert.


@Herbert: Das trifft es in etwa, wobei ich wenn überhaupt dann AVR 
Studio 5 nehmen möchte. Allerdings habe ich keine Lust immer das 
Makefile anzupassen...



Eine Idee hätte ich übrigens noch, jedoch gefällt mir diese nicht so 
ganz: Da ich das ganze in einer VM laufen lasse, die auf einem 
Unix-System läuft, könnte ich eigentlich mit Symlinks einfach den 
Lib-Ordner reinlinken, und AVR Studio bekommt von dem ganzen Zauber 
nichts mit.
Die Idee ist mir gerade erst gekommen, daher habe ich über die 
Nebeneffekte noch nicht nachgedach.

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.