Hallo liebes Forum. Ich hab mal wieder ein Problem und wende mich vertrauenswürdig an euch :o) Es geht darum, dass ich ein Beispielcode ausprobieren möchte. (es handelt sich um ein LUFA Projekt) Bei diesem Beispiel ist auch ein makefile dabei. Wenn ich das ganze in WINAVR kompiliere, dann bekomme ich unter anderem die Fehlermeldung: „#error F_CLOCK is not defined“ Das zeigt mir, dass das dazugehörige makefile nicht beachtet wird. Ich habe es auch daran gemerkt, dass ich in den Projektproperties z.B. einen Mega16 eingestellt habe und dann den AT90USB1287 programmieren möchte. Klar, WINAVR erwartet einen MEGA16 und es ist aber ein AT90USB1287 am Dragon angeschlossen. Jetzt wird allerdings im makefile der AT90USB1287 definiert. Auch „F_CLOCK“ ist dort definiert. Wie kann ich den jetzt im Projekt auf das makefile zugreifen ohne die properties einzubinden? Gibt es irgendwo einen Pfad wo ich das einstellen muss oder muss irgendwo ein Häkchen gesetzt werden? Ich wäre über eine Antwort sehr dankbar. Viele Grüße, Marcel
Kannst du mal beschreiben, wo dein Problem ist? WinAVR ist WinAVR ist WinAVR ist WinAVR. Nix anderes. Und es ist äusserst aufwendig, mit WinAVR ein lauffähiges Programm OHNE makefile zu erzeugen. Und ein "Projekt" ohne makefile gibt es gar nicht, genausowening wie die Möglichkeit, irgendwo Häkchen zu setzten. Ein makefile nutzt man mit dem Befehl "make", der sich über die Kommandozeile oder über das Menu von PN aufrufen lässt. Marcel K. schrieb: > Wenn ich das ganze in WINAVR kompiliere, Also: Was nutzt du tatsächlich, und wie genau kompilierst du? Oliver
Hallo und Danke für deine schnelle Antwort. Also ich habe eine Beispielcode bei dem ein makefile dabei ist. In diesem makefile sind bestimmt Definitionen drin. (MCU = at90usb1287, F_CPU = 8000000, )Wenn ich das Projekt kompiliere dann bekomme ich z.B. folgende Fehlermeldungen: #error F_CLOCK is not defined. You must define F_CLOCK to the frequency of the unprescaled input clock in your project makefile. #error No PLL prescale value available for chosen F_CPU value and AVR model. Das zeigt doch, dass beim kompilieren das makefiler nicht mit einbezogen wird, oder? Wo gebe ich denn den Befehl „make“ ein? In welche Kommandozeile? Was heißt: „Menü von PN..“? Danke und Grüße, Marcel
Marcel K. schrieb: > Wenn ich das Projekt kompiliere dann bekomme ich z.B. > folgende Fehlermeldungen: Man kann überahupt kein Projekt ohne makefile unter WinAVR kompilieren. (ok, man könnte schon, aber dazu braucht es vertiefte Kenntnisse). Daher nochmals meine Frage: Wie kompiliertst du? Was machst du dazu? Welches Programm startest du dafür? Wie genau nennt sich das? Was passiert dann? Oliver
In Eclipse gehe ich mit der Maus auf das Projekt, rechte Maustaste, Build Projekt. Dann kommen unten in der Konsole die erwähnten Fehlermeldungen. Wenn ich mit der Kommandozeite (cmd) im heruntergeladene Beispiel make eingebe dann gehts allerdings auch nicht! Ich denke ich stehe kommplet auf'm Schlauch! Ich möchte doch einfach nur das Beispielprogramm mit Eclipse in den Controller laden. Dazu müssen die defines aus dem makefile halt mit in das Projekt eingebunden werden. Oh je.... Danke Marcel
Frag' mal einen Buchbinder Deines Vertrauens ;-) Schönen Feiertag Euch allen!
Marcel K. schrieb: > Wenn ich das ganze in WINAVR Marcel K. schrieb: > In Eclipse gehe ich Damit wäre das ja schonmal geklärt. Es gibt jetzt zwei Möglicheiten: Du lernst Eclipse kennen, oder du lernst den Umgang mit makefiles kennen. Eins von beiden wird dir nicht erspart bleiben. In Eclipse gibt es Projekt-Settings, erreichbar über die rechte Maustaste, in denen man alle erforderlichen Defines einstellen kann. Such mal etwas rum, dan wirst du alles finden. Auch die Taktfrequenz. Eclipse erstellt dann damit ein eigenes makefile. Alternativ kannst du auch direkt make verwenden. make sucht das makefile im Ordner, in dem du es aufrufst. Wenn da keins ist, gibt es eine Fehlermeldung. Und die lautet in der Regel nicht: Spassvogel schrieb: > dann gehts allerdings auch nicht! Oliver
Hallo, also wie man alles in Eclipse einstellt weiß ich ja. Ich arbeite damit schon länger! Mein Problem ist jetzt wie ich die definitionen im makefile aus dem Beispiel in mein Projekt hinein bekomme. Wenn ich in Exlipse die Fehlermeldung:"#error F_CLOCK is not defined" bekomme, allerdings in den properties unter "Target Hardware" die 8MHz eingestellt habe, wo soll ich den "F_CLOCK" sonnst einstellen?? Grüße, Marcel
Marcel K. schrieb: > also wie man alles in Eclipse einstellt weiß ich ja. Ich arbeite damit > schon länger! Aber offensichtlich weißt du nicht was du tust, außer dumm rumklicken. Entweder bekommst du deinen Arsch hoch und lernst wirklich Eclipse (und ein bisschen C-Programmierung kann dir auch nicht schaden) oder du lernst Makefiles.
Wir reden aneinader vorbei, trotzdem danke! schönen Abend noch....
Marcel K. schrieb: > Wir reden aneinader vorbei, trotzdem danke! Sei mit nicht böse, es war gestern abend bestimmt schon spät, aber alles, was du geschrieben hast, ist halt völlig sinnfrei, und verwirrt nur. Es hilft nicht, von den falschen tools zu reden, und definenamen falsch wiederzugeben. Marcel K. schrieb: > Wenn ich das ganze in WINAVR Marcel K. schrieb: > In Eclipse gehe ich Marcel K. schrieb: > Also ich habe eine Beispielcode bei dem ein makefile dabei ist. In > diesem makefile sind bestimmt Definitionen drin. (MCU = at90usb1287, > F_CPU = 8000000, )Wenn ich das Projekt kompiliere dann bekomme ich z.B. > folgende Fehlermeldungen: > > #error F_CLOCK is not defined. You must define F_CLOCK to the frequency > of the unprescaled input clock in your project makefile. F_CPU ist nicht F_CLOCK. Eclipse definiert ein F_CPU, F_CLOCK musst du selber in den Projekt-Settings definieren. Du weisst ja sicher, wo. Marcel K. schrieb: > WINAVR erwartet einen MEGA16 und es ist aber ein AT90USB1287 am > Dragon angeschlossen. > Jetzt wird allerdings im makefile der AT90USB1287 definiert. Wenn du auch nur annähernd mehr als Null Projekte mit Eclipse und WinAVR erstellt hast, ist dieses Problem keins. Oliver
Guten Morgen, also ich versuch es noch mal. Ich habe ein Beispeilprojekt. Dieses Beispielprojekt hat ein makefile. So, ich möchte dieses Beispielprogramm ausprobieren. Da ich allerdings mit Eclipse programmiere muss ich in Eclipse ein eigenes Projekt erstellen und dann das Beispielprogramm dort einbinden. Das heißt, ich muss in Eclipse unter Properties diese Einstellungen machen die im Beispielcode im makefile gemacht wurden. Soweit hab ich da ja auch verstanden. Das heißt für: „MCU = at90usb1287“ im makefile stelle ich in Eclipse unter Target Hardware „MCU Type = AT90USB1287“ ein. Soweit kein Problem. Jetzt kompiliere ich das ganze und bekomme mehrer Fehlermeldungen. Unter anderem auch diese: #error F_CLOCK is not defined So, das ist ja klar, da Eclipse nicht F_CLOCK, sonder F_CPU definiert. Jetzt möchte ich doch einfach nur wissen WO ich in den Projekt-settings „F_CLOCK 8000000“ definieren kann, so dass der Compiler und letztendlich ich natürlich zufrieden sind. Gruß, Marcel
Marcel K. schrieb: > Ich habe ein Beispeilprojekt. Dieses Beispielprojekt hat ein makefile. > So, ich möchte dieses Beispielprogramm ausprobieren. Da ich allerdings > mit Eclipse programmiere muss ich in Eclipse ein eigenes Projekt > erstellen und dann das Beispielprogramm dort einbinden. Das heißt, ich > muss in Eclipse unter Properties diese Einstellungen machen die im > Beispielcode im makefile gemacht wurden. Nein, musst du nicht. Du kannst auch alternativ Eclipse einfach mitteilen, dass du ein eigenes Makefile verwenden möchtest, statt des von Eclipse generierten Makefiles. Ich habe auf diesem Rechner kein Eclipse, also kann ich dir jetzt nicht im Detail sagen, wo die entsprechende Einstellung ist, aber ... > also wie man alles in Eclipse einstellt weiß ich ja. Ich arbeite damit > schon länger! ... das solltest du dann ja wohl auch selber finden können.
SUPER!!! Also ich habe es nach langem suchen endlich gefunden. Für alle die es noch nicht wissen und gerne wissen möchten!!! Einzelne Definitionen kann man unter: C/C++ Build/Settings/Tool Settings/AVR Compiler/Symbols im Feld Define Syms (-D) eintragen. Dazu einfach das „Add“ klicken und dann das Define eingeben. Möchte man ein komplettes makefile einbinden muss man unter: C/C++ Build im Reiter Builder Settings den Hacken bei „Generate Makefiles automatically“ herausnehmen und dann den Pfad in „build directory“ eingeben. Gruß Marcel
Marcel K. schrieb: > Möchte man ein komplettes makefile einbinden muss man unter: > C/C++ Build im Reiter Builder Settings den Hacken bei „Generate > Makefiles automatically“ herausnehmen und dann den Pfad in „build > directory“ eingeben. Des Rätsels Lösung, danke für die Rückmeldung.
Marcel K. schrieb: > also wie man alles in Eclipse einstellt weiß ich ja. Ich arbeite damit > schon länger! Marcel K. schrieb: > SUPER!!! Also ich habe es nach langem suchen endlich gefunden. alles ist anscheinend nicht alles ;-) Oliver P.S. Mit einer etwas präziseren Frage hättest du die passenden Antwort gleich im zweiten Beitrag bekommen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.