PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem beim Einbinden der RP6BaseLib in AVR Studio 4.



PocketPc
25.02.2010, 11:13
Hallo und einen Guten wünsch ich.

Ich hab seit 1 Woche den RP6 und möchte jetzt etwas rumbasteln.

Ich hab ein kleines Problem mit der Einbindung der RP6RobotBaseLib.h unter AVR Studio 4.

Ich Starte AVR und gehe auf New Projekt. AVR GCC -> Projekt name Test
Als Debug Plattform wähle ich AVR Dragon. Als Device Atmega32.

Quellcode ist das Beispielprogramm aus dem Manuel.

Jetzt geh ich auf Projekt -> Configuration Options -> Include Directories
Dort gebe ich zu erst den Hauptordner an C:\RP6Examples_20080915
Dann den Ordner der Lib C:\RP6Examples_20080915\RP6Lib\RP6base

Nun F7 drücken und der Fehler ist da.

Build started 25.2.2010 at 10:47:23
avr-gcc.exe -I"C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\test\..\..\..\..\RP6Examples_20080915" -I"C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\test\..\..\..\..\RP6Examples_20080915\RP6L ib\RP6base" -mmcu=atmega32 -Wall -gd
warf-2 -Os -std=gnu99 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT test.o -MF dep/test.o.d -c ../test.c

In file included from ../test.c:1:
C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\test\..\..\..\..\RP6Examples_20080915\RP6L ib\RP6base/RP6RobotBaseLib.h:31:81: error: RP6Config.h: No such file or directory
C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\test\..\..\..\..\RP6Examples_20080915\RP6L ib\RP6base/RP6RobotBaseLib.h:33:47: error: RP6uart.h: No such file or directory
../test.c: In function 'main':
../test.c:6: warning: implicit declaration of function 'writeString'
make: *** [test.o] Error 1
Build failed with 2 errors and 1 warnings...

Kann mir bitte einer Schreiben wo der Hacken ist.
Thx

RobotMichi
25.02.2010, 17:06
Hallo

Die Lib wird ja gefunden, die dateien RP6Config.h und RP6uart.h werden nicht gefunden. Diese sollten normalerweise im Ordner ...\RP6Lib\RP6common sein. Schau mal, ob sie da auch wirklich sind.

lg
Michi

PocketPc
25.02.2010, 18:03
Oh ja das war der Fehler.

Hab jetzt den Ordner RP6common mit Includiert. Jetzt geht es.

Big THX

PocketPc
26.02.2010, 08:22
Kleines Update

Mein Quellcode:

#include "RP6RobotBaseLib.h"

int main (void)
{
initRobotBase();
writeString("Hello\n");
return 0;
}

Mein neuer Fehler:

C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\test\default/../test.c:5: undefined reference to `initRobotBase'
C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\test\default/../test.c:6: undefined reference to `writeString'

Habe bis jetzt unter Avr Studio 4 mit Atmega 8 zu tun gehabt und da nur mit den Standart Libs avr/io.h usw.

Der Fehler heist doch das er die Befehle aus der RobotBaseLib nicht einbindet. bzw nicht kennt.

Jemand eine Lösung?

radbruch
26.02.2010, 11:05
Hallo

Die Funktionen initRobotBase() und writeString() werden in der Datei RP6RobotBaseLib.c definiert. Wie man diese Datei im AVR-Studio einträgt kann ich leider nicht sagen weil ich es nicht verwende. Als Provisorium würde vielleicht auch ein (nicht gerne gesehenes) #include "RP6RobotBaseLib.c" funktionieren.

Wenn dein Programm so endet:

...
writeString("Hello\n");
return 0;
}

stürzt der Mega32 nach dem return ins Nirwana, weil nirgends definiert ist, wohin der Kontroller beim return springen soll! Das könnte bewirken, dass die Zeichen vom writeString() gar nicht mehr gesendet werden bevor sich der kontroller verabschiedet. Besser, weil richtig, wäre eine Endlosschleife vor dem return:


...
writeString("Hello\n");
setLEDs(63); // wir haben fertig
while(1); // Endlosschleife
return 0; // wird nie erreicht
}
Btw. werden längere Programme in einem Code-Tag übersichtlicher dargestellt.

Gruß

mic

PocketPc
26.02.2010, 11:54
MIC welches Programm benutzt du?

Ich hab es auch schon mit dem PN2 von WINAVR versucht.

Doch leider bekomme ich da durch druck auf Make All

diese Fehler meldung.

"make.exe" all
make.exe: *** No rule to make target `all'. Stop.

> Process Exit Code: 2
> Time Taken: 00:00

Bin halt ein Neuling und hangel mich grad durch ](*,)

radbruch
26.02.2010, 12:26
Hallo

Nur keine Panik. Vermutlich ist es nur ein Problem mit dem Makefile.

Grundsätzlich sollte es funktionieren, wenn du die Installationen wie in der RP6-Doku beschrieben machst. Also nochmals genau nachlesen, im schlimmsten Falle nochmals alles deinstallieren und Schritt für Schritt neu installieren. Bevor du aber aktiv wirst solltest du noch weitere Meldungen zu diesem Thema abwarten. Die meisten RP6-Besitzer verwenden ja wie du die Standartprogramme.

Als Editor verwende ich KamAVR (http://www.avrfreaks.net/index.php?module=FreaksTools&func=viewItem&item_id=632). Das ist vielleicht nicht die beste IDE für WinAVR, erzeugt aber automatische Makefiles. Das Programm ist aber nur englischsprachig und ohne Doku verfügbar.

"C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\test\.."
Im Alltag solltest du nicht mit Adminrechten angemeldet sein!

Gruss

mic

PocketPc
27.02.2010, 21:12
Ich habe es hin bekommen.
Es lag am Makefile.
Man muss den Hacken bei "Use External Makfile" setzen.