-         

Ergebnis 1 bis 8 von 8

Thema: Problem beim Einbinden der RP6BaseLib in AVR Studio 4.

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    24.02.2010
    Beiträge
    29

    Problem beim Einbinden der RP6BaseLib in AVR Studio 4.

    Anzeige

    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

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.04.2009
    Ort
    Wörgl
    Alter
    21
    Beiträge
    175
    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

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    24.02.2010
    Beiträge
    29
    Oh ja das war der Fehler.

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

    Big THX

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    24.02.2010
    Beiträge
    29
    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?

  5. #5
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.782
    Blog-Einträge
    8
    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:

    Code:
       ...
       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

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    24.02.2010
    Beiträge
    29
    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

  7. #7
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.782
    Blog-Einträge
    8
    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. 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

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    24.02.2010
    Beiträge
    29
    Ich habe es hin bekommen.
    Es lag am Makefile.
    Man muss den Hacken bei "Use External Makfile" setzen.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •