-
-
Neuer Benutzer
Öfters hier
"undefined reference" bei AVRStudio
Hallo!
Ich habe angefangen ein Programm in AVR-Studio zu schreiben. Ich benutze das AVR-GCC-Plugin.
Nun binde ich per include die Datei twi_slave.h ein.
Code:
#include "twi_slave.h"
Wenn ich nun versuche eine Funktion aufzurufen, die in dieser Datei vorhanden ist bekomme ich den Fehler:
../ServoAtmega48.c:234: undefined reference to `TWI_Slave_Initialise'
(Dieser Fehler tritt bei allen Funktionen auf die ich aus dieser Datei aufrufen möchte)
Im linken Bereich unter "External Dependencies" ist diese Datei aufgeführt.
Wie ich in anderen Threads erfahren habe handelt es sich um einen Fehler im Linker. Ich habe es so verstanden dass die Datei nicht kompiliert wurde und so der Linker die Funktion nicht findet und diese Fehlermeldung ausgibt.
Die Makefile wird ja vom AVRStudio verwaltet und so müsste dort alles stimmen. Woher kommt dann der Fehler?
Grüße
BlueEagle
-
Erfahrener Benutzer
Roboter Genie
entweder "twi_slave.h" liegt nicht im selben verzeichnis wie der code, oder `TWI_Slave_Initialise' ist falsch geschrieben oder kA? was anderes fällt mir nicht ein, könntest höchstens mal ein stück twi_slave.h posten.
AVR Studio 4? wäre nett, wenn du kurz etwas zu diesem GCC plugin sagen könntest, oder einen link hättest. das interessiert mich.
gruesse
-
Neuer Benutzer
Öfters hier
Hi
Danke für deine Antwort.
Das AVR-GCC Plugin ist der Plugin der automatisch von AVRStudio erkannt wird wenn WinAVR installiert ist.
Einfach die neueste Version von AVR-Studio installieren und dann die neueste von WinAVR. Dann kann man bei einem neuen Projekt wählen ob man Assembler coden will oder in C.
Die TWI_Slave.h ist die Datei aus dem Beispiel AVR311von Atmel.
Diese Datei liegt in dem gleichen Verzeichniss wie der Code. Die Funktion(en) sind richtig geschrieben.
Ich hab keine Ahnung was da schief läuft...
Grüße
BlueEagle
-
Erfahrener Benutzer
Roboter Genie
versuch mal eine andere header datei (kann leer sein) einzubinden. wenn das funktioniert ist der fehler auf die twi_slave.h eingegrenzt.
vielleicht hilft das?
"TWI_" oder "twi_"? das ist case-sensitive...
gruesse
-
Neuer Benutzer
Öfters hier
Hallo!
Ich denke die Probleme werden dadurch verursacht, dass der Code nich für den AVR-GCC- Compiler gedacht sind sondern für den IAR.
Daher habe ich mich entschieden auf einen anderen Code auszuweichen.
Ich habe mich für diesen entschieden.
Ich habe dazu nur eine kleine Verständnissfrage:
Ich muss in der Main-Funktion des Programms bei einem SlaveReceiver doch nur in einer Schleife die Funktion SR aufrufen und der ein Array aus Integerzahlen übergeben(und die maximale Länge). Dann kann ich doch hinterher auf das Array wieder zugreifen und die übertragenen Bytes auslesen, oder ?
Hoffe ich hab mich verständlich ausgedrückt...
Grüße
BlueEagle
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen