-
        

Ergebnis 1 bis 9 von 9

Thema: Problem mit erstellen des hex-filles

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    14.10.2009
    Beiträge
    12

    Problem mit erstellen des hex-filles

    Anzeige

    Hallo

    Hab mir neulich den RP6 zugelegt.
    Der Selftest lief perfekt, aber als ich mein erstes Programm hochladen wollte gabs Probleme.
    Auf meinem Pc is xp und ich verwende das mitgelieferte Programmers notepad 2 von winavr.
    Wie erstelle ich jetzt die Hex-Datei.

    Wenn ich auf Make all klicke, dann kommt:
    > "make.exe" all
    make.exe: *** No rule to make target `all'. Stop.

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

    Hat es vieleicht damit was zutun, dass ich kein neues Projekt erstellt hab
    und unter was muss ich das dann speichern Filename.c oder hex oder was?

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791
    Hallo ...,

    für ein eigenes Programm machst du Folgendes:
    1. Einen eigenen Unterordner im Ordner RP6BASE_PROGRAMS anlegen (z.B. MeinProg_01).
    2. In den neuen Ordner (MeinProg_01) kopierst du make_all und make_clean aus irgendeinem Demo-Programm und natürlich dein eigenes Programm.
    3. Von einem ähnlichen Demo-Programm (was also ähnliches macht wie dein Programm) kopierst du makefile in den neuen Ordner.
    4. Mit einem Editor (kann auch Notepad 2 sein) öffnest du das makefile.
    5. Du änderst die Zeile TARGET = ... so, dass da anstelle von ... der Name deines Programms (ohne .c) steht.
    6. Etwas weiter unten im makefile suchst du Zeilen, die mit SRC = beginnen, und überprüftst, ob da alle Libraries eingebunden werden, die dein Programm braucht.

    Das wars.

    Gruß Dirk

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    14.10.2009
    Beiträge
    12
    Das Programm sieht so aus:

    #include "RP6RobotBaseLib.h"

    int main(void)
    {
    initRobotBase();
    powerON();

    moveAtSpeed(60,60);
    startStopwatch1();

    while(true)
    {
    if(getStopwatch1() > 4000)
    {
    if(getDirection() == FWD)
    changeDirection(BWD);
    else if(getDirection() == BWD)
    changeDirection(FWD);
    setStopwatch(0);
    }
    task_motionControl();
    task_ADC();
    }
    return 0;
    }

    Und nachdem ich einen Neuen Ordner Erstellt hab, Make all und Make clean und das Programm mit .c gespeichert hab, Das makefile reinkopiert hab und ein neues Target angegeben hab, kommt diese Fehlermeldung:

    ersteFahrt.o: In function `main':
    C:\Dokumente und Einstellungen\D15cH\Desktop\Roboter u. Programmieren\zips\RP6Examples\RP6BASE_EXAMPLES\er steFahrt/ersteFahrt.c:19: undefined reference to `setStopwatch'
    make.exe: *** [ersteFahrt.elf] Error 1

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

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791
    undefined reference to `setStopwatch'
    Sieh dir mal die Zeile:
    setStopwatch(0);
    genauer an!

    Gruß Dirk

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    14.10.2009
    Beiträge
    12
    Danke
    Problem gelöst

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    12.11.2009
    Beiträge
    6
    Hallo

    ich habe deinen Beitrag mit "Freude" verfolge weil ich am selben Problem leide. Allerdings folgt bei mir jetzt schon ein neues Problem ich habe allen Angaben von Dirk Folge geleistet; Allerdings bekomme ich jetzt folgende Fehlermeldung

    "no rule to make target ´main.elf´ , need bei ´elf´. Stop


    Ich hoffe ihr könnt mir da ein wenig weiter helfen weil ich schhon Stunden gegoogelt und probiert hab.

    MfG HarryP

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    26.09.2008
    Beiträge
    14
    Hallo,

    Ich habe das selbe Problem!

    Habe eine Test.c erstellt und mit einem Beispielprogramm gefüllt. Ich nutze WinAVR und habe die makefile unter "Project->Configuration Options->Use external makefile" hinzugefügt.

    In der Makefile habe ich "TARGET = Test" eingetragen.

    Leider funktioniert es nicht.

    Code:
    make: *** No rule to make target `Test.elf', needed by `elf'.  Stop.

  8. #8
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    32
    Beiträge
    1.514
    Du meinst vermutlich AVRStudio? WinAVR hat mit AVRStudio nix zu tun.

    Kann sein das Du die Verzeichnisstruktur nicht richtig angelegt hast oder AVRStudio nicht mit dem Makefile klarkommt. Ruf mal make direkt in einer Text Konsole auf oder probier es wie in der RP6 Anleitung beschrieben mit Programmers Notepad. Klappt es da?

    falls nicht, s.
    http://www.roboternetz.de/phpBB2/zei...t=48027#441942

    (den link zum Projekt Template meine ich)
    Auf jeden Fall vorher die aktuelle lib von arexx.com/rp6 herunterladen und das in dem template vorhandene lib verzeichnis damit ersetzen - die in dem RP6_project_template.zip vorhandene RP6Lib ist schon etwas älter und ist nur dazu da zu zeigen wo die library hingehört damit es funktioniert.

    MfG,
    SlyD

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    12.11.2009
    Beiträge
    6
    Hallo,

    hab meinen Fehler gefunden.
    Und zwar hab die mein Programm geschrieben und als ´main´ gespeichert und nicht als ´main.c´
    jetzt klappts wunderbar und bin am werckeln wie ich .cpp programme schreiben und in hex comilieren kann.

    MfG Harryp

Berechtigungen

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