Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit erstellen des hex-filles
sweetsuit
14.11.2009, 17:25
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?
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
sweetsuit
14.11.2009, 22:36
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
undefined reference to `setStopwatch'
Sieh dir mal die Zeile:
setStopwatch(0);
genauer an!
Gruß Dirk
sweetsuit
15.11.2009, 13:52
Danke
Problem gelöst
HarryP84
15.11.2009, 18:58
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
Sceloporus
15.11.2009, 20:00
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.
make: *** No rule to make target `Test.elf', needed by `elf'. Stop.
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.
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?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
HarryP84
16.11.2009, 17:27
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
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.