Forum: Compiler & IDEs .a Datei in AVRSTUDIO5 einbinden?


von Martin R. (m-joy)


Lesenswert?

Guten Tach alle miteinander xD
Ich möchte einen Qtouch Button mit ATTINY44a bauen, und befolge die 
anleitung für den AVR1016.
Jetzt steht hier folgendes:

Include QTouch Library header, binary and source
1. To use the touch keys, first we need to add #include “touch_api.h” to 
our
list of include files. This will make the QTouch Library API available.
2. Now that we have the API, we need a reference to the library file 
containing the
precompiled QTouch code. Open the Project Options, and under Libraries
select the library file libavrxmega7g1-8qt-k-0rs.a and click Add 
Library.
3. Lastly we are going to need to add the file qt_asm_xmega.s to the 
project. This
is a special assembly source file that contains optimization routines 
that need to
be compiled with our project. In the AVR GCC tab in AVR Studio, right 
click the
project and select Add Existing File, then select the assembly source 
file.
Alternatively, you can drag and drop the source file onto the project 
name.

Das erste geht ja easy....
Aber der 2. Punkt: wie bekomme ich diese .a datei ins AVRSTUDIO5, ich 
finde nur anleitungen für AVRstudio4, aber das geht so nicht mehr :(

Und ist das .s file wichtig? Oder geht ein simpler button auch ohne.

Grüße

von Klaus W. (mfgkw)


Lesenswert?

Ich arbeite nicht mit dem AVR--Studio, deswegen kann ich nicht sagen, wo 
du genau drehen musst.
Nachdem sonst sich niemand äußert, hilft vielleicht folgendes:

Erstens mag ich kaum glauben, daß man dort in einem Projekt keine 
zusätzlichen Libs
angeben kann (im Zweifelsfall bei Linkereinstellungen?).

Zweitens kann man aber zumindest Optionen für den Linker angeben. Das 
wäre in diesem Fall
vermutlich -lavrxmega7g1-8qt-k-0rs (also -l, gefolgt von dem Libnamen 
ohne "lib" vorne
und Extension hinten).

Martin K. schrieb:
> Und ist das .s file wichtig? Oder geht ein simpler button auch ohne.

Wenn sie es sagen, wird es wohl so sein.
Wo ist das Problem damit?

von Martin R. (m-joy)


Lesenswert?

Huhuu, interessant.
Ich kann unter Projekt - Properties
bei Toolchain - AVR/GNU C Linker Libraries angeben.
da steht Libraries (-Wl,-l) und kann man etwas rein schreiben, aber 
nicht direkt die library per klick auswählen.
Vielleicht ist das die richtige fährte...?

das .S file macht nicht direkt probleme. war nur neugierig weil da 
soviel assembler code drin steht auf den mein compiler immoment net klar 
kommt (vermutlich wegen der fehlenden library) G

lg

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Martin K. schrieb:

> da steht Libraries (-Wl,-l) und kann man etwas rein schreiben, aber
> nicht direkt die library per klick auswählen.

Muss ja auch nicht alles klickbar sein.

> Vielleicht ist das die richtige fährte...?

Ja, wobei das "-Wl," überflüssig ist.

> das .S file macht nicht direkt probleme. war nur neugierig weil da
> soviel assembler code drin steht auf den mein compiler immoment net klar
> kommt (vermutlich wegen der fehlenden library)

Den Compiler sollte der Assemblercode gar nicht interessieren, der
muss den einfach nur an den Assembler durchreichen.  Was heißt denn
"kommt nicht klar"?

Die fehlende Library interessiert den Compiler rein gar nicht, denn
das wird erst vom Linker benötigt.

von Martin R. (m-joy)


Lesenswert?

in der .S file kommen total viele fehler "constant value required" immer 
wenn SNS1, SNS2, SNSK1 oder SNSK2 in der zeile auftaucht....

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Sieht so aus, als würde da noch eine Definitionsdatei fehlen oder
ein include-Pfad nicht passen oder so.  Diese SNS1 etc. sollen sicher
Konstanten sein, die via #define vom Präprozessor aufgelöst werden.
Wenn das aber aus irgendeinem Grunde nicht passiert ist, würde der
Assembler die entsprechenden Symbole als "global undefined" in
die Symboltabelle aufnehmen (auf dass der Linker sie hoffentlich
dann am Ende aufgelöst bekommt), allerdings passt dies wiederum
nicht zu dem Befehl, in dem es benutzt wird.

Warum das so ist, da musst du dich aber wohl entweder selbst
durchwurschteln, oder aber du nimmst den Atmel-Support in Anspruch.

von Martin R. (m-joy)


Lesenswert?

alsooo wenn ich in AVRStudio 4 arbeite, kann ich in den Projekt Options 
unter "Custom Options"
-DSNS1=A
-DSNSK1=A

und so weiter eintragen. dann habe ich keine fehler.

in AVRStudio finde ich diese custom compiler options nicht. WEnn ich das 
da eintragen könnte würds sicher gehen ... jemand n peil?

lg

von Oliver (Gast)


Lesenswert?

Martin K. schrieb:
> ... jemand n peil?

Einfach in den Sourcecode schreiben?

Oliver

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.