Hallo Kollegen eigentlich bin ich gar kein Freund von Eclipse, aber ich habe bisher ausser ddd keinen Debugger gefunden, welcher meinen Ansprüchen genügt. Leider ist auch ddd etwas buggy und ich möchte etwas moderneres benutzen. Also habe ich mich mal an Eclipse versucht! Als Testprojekt verwende ich das STM32F407 Beispiel von hier: http://emb4fun.de/arm/examples/index.html Das Makefile habe ich allerdings angepasst, siehe Anhang. Grund: ich bin sehr faul und möchte nicht von Hand meine Source-Files ins Makefile eintragen, sondern ich möchte, dass dieses bitteschön die C-Files automatisch findet und compiliert. Das funktioniert in der Konsole perfekt! Nun habe ich das Projekt in Eclipse zu importieren versucht (habe mir Eclipse for C/C++ developers runtergeladen). Dann wollte ich das Projekt drt drin bearbeiten, also habe ich versucht, ein 'Makefile project' zu importieren, was mir zwar auch gelungen ist, aber Eclipse ist nicht in der Lage, das Makefile auszuführen. Ich weiss, dass ich es vor Jahren mal geschafft habe, aber weil ich Eclipse so einen Mist fand, habe ich das damals wieder verworfen. (Ich hoffe dass Eclipse in der Zwischenzeit besser geworden ist, daher möchte ich es nochmals versuchen :-) ). Könnt ihr mir bitte auf die Sprünge helfen, wo ich rum schrauben muss, damit ich mein Projekt in Eclipse compiliert bekomme und auch debuggen kann?
Bert schrieb: > habe mir Eclipse for C/C++ developers runtergeladen Du hast aber nicht das plugin vergessen oder? http://gnuarmeclipse.livius.net/blog/
Wenn das Makefile in der Console funktioniert, braucht man kein Plugin. Aber man muss die Dateien dann händisch eintragen :) Wenn man ein Cross-Compile-Projekt anlegt, geht es auch ohne Plugin und man muss die Dateien nicht händisch irgendwo eintragen, nur dem Projekt hinzufügen. Compiler /Linker - Optionen dann nicht vergessen. Mit Plugin kann das (muss nicht) etwas einfacher sein. Da der TO aber (so wie er schreibt) faul ist, beschäftigt er sich auch nicht mit den Werkzeugen um sie zu verstehen. Dann sind die natürlich Mist, weil sie nicht das machen, was man erwartet ;)
lass doch das selbstgeschriebene Makefile weg und lass eclipse die Makefiles automatisch erzeugen, indem du ein Projekt für den STM32 anlegst (nachdem du das GNU ARM Eclipse Plugin installiert hast). Das ist am einfachsten und bietet dir sogar spezifischen Debugging-Support für zB den J-Link.
Ihr versteht mich falsch. Ich meine das so: oft sieht man, wie Leute ihre *.c Dateien im Makefile in einer Liste eintragen. Ich habe das Makefile mittels Wildcards so modifiziert, dass es alle *.c-Files, die im Unterordner /src liegen, dem Compiler übergibt. Dieser ist bei mir der arm-none-eabi-gcc. Insofern habe ich mich also sehr wohl mit den Tools auseinandergesetzt und sie verstanden, aber eben die Console-Tools, und nicht Eclipse, darum frage ich ja ;-) Wenn ich mit der rechten Maustaste auf mein Project in Eclipse klicke und sage "Build", dann kommt in der Eclipse-Konsole die Meldung "Successfully built" (oder ähnlich, kanns grad nicht sagen weil ich grad nicht am PC sitze) aber es kommt nicht wie erwartet die Ausgabe, die mein Makefile liefern würde, wenn es denn ausgeführt würde. Die Frage ist: was muss ich unternehmen, dass das aus Eclipse heraus auch funktioniert. Nicht mit irgend einem generierten Startupcode und Linkerscript, sondern die gebe ich vor, und Eclipse soll bitteschön die verwenden. Wie das Makefile zustande kommt, nun gut, das soll Eclipse meinetwegen generieren, aber ich weiss nicht, wie ich das einstellen kann.
Bert schrieb: > Ihr versteht mich falsch. Ich meine das so: oft sieht man, wie Leute > ihre *.c Dateien im Makefile in einer Liste eintragen. Ich habe das > Makefile mittels Wildcards so modifiziert, dass es alle *.c-Files, die > im Unterordner /src liegen, dem Compiler übergibt. Aber wozu? Ist doch viel zu kompliziert, eclipse kann das automatisch. Eclipse kompiliert automatisch alle Sourec Dateien im Projekt. > auch funktioniert. Nicht mit irgend einem generierten Startupcode und > Linkerscript Die generiert eclipse auch nicht. > sondern die gebe ich vor, und Eclipse soll bitteschön > die verwenden. Tut es auch. Denn die haben überhaupt nichts mit makefiles zu tun. > Wie das Makefile zustande kommt, nun gut, das soll > Eclipse meinetwegen generieren, aber ich weiss nicht, wie ich das > einstellen kann. Indem du ein stinknormales C/C++ Projekt anlegst, oder ein STM32 C/C++ Projekt.
Hallo alles klar. Ich hab jetzt ein normales Hello World Cross GCC Projekt angelegt. Compilerpräfix etc. ist korrekt eingestellt. Allerdings weiss ich jetzt nicht, wo ich das Linkerscript angeben kann? Und er macht auch was komisches mit der C-Library, denn er sucht die stubs für _atexit(), _read() und so weiter.
Bert schrieb: > Hallo > > alles klar. > > Ich hab jetzt ein normales Hello World Cross GCC Projekt angelegt. > Compilerpräfix etc. ist korrekt eingestellt. Allerdings weiss ich jetzt > nicht, wo ich das Linkerscript angeben kann? Du kannst bei den Projekteinstellungen Project->Properties->C/C++Build->Settings->CrossLinker->Miscellaneous Flags für den Linker angeben. Also auch das Linkerscript (siehe LD Doku). > Und er macht auch was komisches mit der C-Library, denn er sucht die > stubs für _atexit(), _read() und so weiter. Dafür müssttest du ein syscalls.c Modul haben, wenn es vorher funktioniert hat. Oder eben ein anderes Modul, in dem diese Funktionen enthalten sind.
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.