Seit einigen Tagen bemühe ich mich, den SDCC (https://sourceforge.net/projects/sdcc/) mit Eclipse unter Linux Mint (Version 18.3) ans Laufen zu kriegen. Jetzt muss ich erst einmal eine Pause einlegen, möchte aber den Zwischenstand hier darstellen um eventuell Mitstreiter zu finden. Ich habe das Forum hier bereits durchwühlt und bin auf eine interessante Aussage gestossen (weiß leider nicht mehr in welchem Thread): SDCC funktioniert nur bis zur Version MARS von Eclipse. Aber was ist denn an den neueren Versionen so anders? Oder ist die von mir verwendete (3.8) noch älter? Mein aktueller Stand ist wie folgt: Ich hatte zunächst Eclipse (Standard) und folgend Eclipse CDT (Version 3.8, Namen weiß ich nicht) über die Anwendersoftwareverwaltung von Linux Mint (entspricht Ubuntu) installiert. Ebenso den SDCC, der auch über die Anwendersoftwareverwaltung angeboten wird. Nach weiteren Anleitungen (leider habe ich die Links dazu jetzt nicht parat) habe ich die Plugin-Dateien (Verzeichnisse plugins und features) in die entsprechenden Verzeichnisse von Eclipse kopiert. Ergebnis: Das Kompilieren als solches (Build über Project-Menü) funktioniert einwandfrei, es werden die Ergebnisse im Release-Verzeichnis ohne Fehlermeldungen abgelegt. Aber!!! Der Indexer funktioniert überhaupt nicht. Obwohl alle Angaben in den Einstellungen richtig erscheinen, scheint es so, als ob der Indexer nach wie vor den ursprünglichen gcc verwendet. So bekomme ich Standardfehlermeldungen (fehlende Include-Dateien, etc.) durch ergänzende Einstellungen im Projekt weg, dennoch werden typische Konstrukte aus der SDCC-Umgebung (z.B. __sfr __at ...) nicht verarbeitet und einfache Zuweisungen wie P1_1 = 1 erzeugen Syntaxfehler. Ich habe schon Vieles probiert, auch Beschränkung auf gcc cross für die Toolchain und ähnliches. Aber nun komme ich nicht weiter. Um wenigstens etwas ans Laufen zu bekommen, habe ich MCU 8051 IDE (https://sourceforge.net/projects/mcu8051ide/) probiert (wegen SDCC). Das klappt ziemlich gut, obwohl der Editor nicht auf Pfeil rechts oder Pfeil links reagiert und ich ihn deshalb kaum bedienen kann. Das ständige Positionieren mit der Maus ist einfach anstrengend. Ich werde in den nächsten Tagen/Wochen nochmal einen Anlauf mit Eclipse/SDCC versuchen. Gibt es noch weitere Interessenten außer mir?
Es liefen Versuche vom Simplicity Studio Team (Eclipse für C8051) und vom SDCC Team, ist aber nur halb fertig. https://www.silabs.com/community/software/simplicity-studio/forum.topic.html/add_the_sdcc_compile-ZMyi https://sourceforge.net/p/sdcc/mailman/message/33596001/
Zum probieren hatte ich mal MCU 8051 IDE v1.4.10 installiert. Läuft ohne Probleme. Das mit eclipse und sdcc finde ich auch Schade, damit hätte ich dem STM8 eine Chance gegeben. Das Plugin liegt als Quelltext vor und wer etwas Ahnung von der eclipse Plugin Programmierung hat könnte das vielleicht sogar anpassen.
Danke für die Links @Lothar, ich werde denen demnächst mal nachgehen. Ich hatte Simplicity Studio auch schon ins Visier genommen und installiert, war aber dann doch sehr durch die weitreichenden Ergänzungen von Eclipse verunsichert und habe dann die Finger davon gelassen. Zumal anscheinend nur der Keil Compiler nutzbar ist und der scheint auch noch als Windows-Software über Wine eingebunden zu sein. Ich denke, der richtige Weg wird sein, den Plugin-Mechanismus von Eclipse zu verstehen und die vorliegenden Plugin-Dateien vom SDCC anzupassen. Vielleicht findet man da noch etwas Hilfe bei den SDCC-Entwicklern, obwohl da der Bereich Eclipse/SDCC sehr stiefmütterlich behandelt scheint. @pegel Der STM8 ist mir hier im Forum auch beim Thema SDCC begegnet. Überhaupt gibt es noch so einige 8051-Erweiterungen mit interessanten Parametern. Obwohl ich nicht davon ausgehe, dass die sich gegen den Trend zu preiswerten 32-Bit-Mikrocontrollern behaupten können, hat der 8051 weiterhin eine große Bedeutung für die Grundlagenausbildung an Mikrocontrollern. Da sollte man eine zuverlässige Freeware-Umgebung haben, mit denen die Studenten auch daheim herumwerkeln können.
Die Plugin Dateien sind nur ein paar winzige java Dateien und dazu einige Konfigurationen. Da müsste doch was zu machen sein.
Robert P. schrieb: > Da sollte man eine zuverlässige Freeware-Umgebung > haben, mit denen die Studenten auch daheim herumwerkeln können. Wie gesagt, die MCU 8051 IDE funktioniert bei mir.
Robert P. schrieb: > Ich hatte zunächst Eclipse (Standard) und folgend Eclipse CDT (Version > 3.8, Namen weiß ich nicht) über die Anwendersoftwareverwaltung von Linux > Mint (entspricht Ubuntu) installiert. Die Version, die Ubuntu über die Anwendersoftwareverwaltung installiert, benutzt noch Keilschrift... Oliver
Das eclipseSDCC-Plugin ist schon recht alt, und auch schon lange nicht mehr maintained. Das müsste sich wohl mal jemand, der Java kann (das Plugin selbst ist in Java geschrieben) und Eclipse kennt, ansehen. Code::Blocks hat auch SDCC-Unterstützung. Die war zwar bis vor ein paar Monaten nur mit SDCC bis 2.8.0 kompatibel, aber seit dem Release 17.12 sollte es auch wieder gut mit aktuellem SDCC funktionieren. Philipp P.S.: Siehe auch: http://sdcc.sourceforge.net/mediawiki/index.php/IDE_integration
:
Bearbeitet durch User
Robert P. schrieb: > Ich denke, der richtige Weg wird sein, den Plugin-Mechanismus von > Eclipse zu verstehen und die vorliegenden Plugin-Dateien vom SDCC > anzupassen. Vielleicht findet man da noch etwas Hilfe bei den > SDCC-Entwicklern, obwohl da der Bereich Eclipse/SDCC sehr > stiefmütterlich behandelt scheint. SDCC-Entwickler kümmern sich halt erstmal um SDCC selbst, erst in zweiter Linie um das drumherum, wie IDEs. Aber in dem im zweiten Post verlinkten Thread hat Maarten mehrfach Hilfe bei der SDCC-Unterstützung in Simplicity Studio angeboten. Auch auf sdcc-user gab es vor ein paar Tagen einen Post zum Thema: https://sourceforge.net/p/sdcc/mailman/message/36174514/ Wenn sich Leute finden, die das eclipseSDCC-Plugin aktualisieren wollen, werden SDCC-Entwickler natürlich helfen, soweit sie können. Philipp
@Alle Schon mal vielen Dank für die Links und Anregungen. Es hat sich auf jeden Fall gelohnt, hier einen Beitrag einzustellen. Ich bin angenehm überrascht. @pegel Die MCU 8051 IDE habe ich auch schon ausprobiert, funktioniert tadellos bis auf den Umstand, dass die Cursortasten (rechts und links) bei meiner Installation nicht funktionieren (Linux Mint 18.3, aktuelle Versionen von SDCC und MCU 8051 IDE). Und ich bin es gewohnt, mehr mit der Tastatur zu arbeiten, als mit der Maus. Wie ist das denn bei Deiner Installation? @Philipp Vielen Dank für die weiteren Links, ich werde dem nachgehen. Dass es grundsätzlich möglich sein sollte, zeigt mir die Aktivität von Jantje mit Sloeber (http://eclipse.baeyens.it/), der immerhin die ganze Arduino-Umgebung in Eclipse integriert hat und da funktioniert (bei mir) bislang Alles. @Oliver Das würde aber dafür sprechen, dass ich eine ältere Version habe und die Aussage "SDCC geht nur bis MARS" nicht relevant für mich wäre. Übrigens: Ich hatte bis vor ca. einem Jahr auch die APP-Entwicklung für Android mit Eclipse gemacht und musste dafür extra eine alte Version installieren, weil das Android-Plugin mit den neueren Versionen nicht geht. Da muss es also irgendwann eine grundsätzliche Änderung bei Eclipse gegeben haben, die vielleicht auch das SDCC-Plugin betrifft.
Robert P. schrieb: > Wie ist das denn bei Deiner Installation? Wie gesagt, keine Probleme. Funktioniert alles. ubuntu 16.04 LTS MCU 8051 IDE v1.4.10 Es gibt aber auch die v1.4.9 zum Download. Welche hast du?
@pegel Da sehe ich später nochmal nach. Bitte sei so lieb und bestätige (teste) nochmal, ob Du im Editor wirklich frei mit den Cursortasten (Pfeil rechts/links) navigieren kannst. Ich habe mich nochmal mit Eclipse näher befasst und muss zu meiner Schande gestehen, dass mein Know-how da total veraltet ist (3 Jahre). Da hat sich in der Zwischenzeit extrem viel getan. Und es gibt auch Tutorials im Netz, um Eclipse-Plugins zu erstellen. Leider habe ich die nächsten 10 Tage keine Zeit (heute eigentlich auch schon nicht). Sie haben sogar eine neue Android-Umgebung, sind also nicht mehr vom Google-Plugin abhängig. Das MUSS ich ausprobieren. Und eine Arduino-Umgebung, wo ich dachte, Sloeber wäre die einzige Eclipse-Anpassung für Arduino.
Robert P. schrieb: > ob Du im Editor wirklich frei mit den Cursortasten Ja, wirklich. Sofern die Datei nicht Read only ist, wie bei jedem anderen Editor auch.
Übrigens: Da gibt es tatsächlich aktuellere Informationen bei YouTube, ich habe im Suchfenster mal Eclipse und SDCC eingegeben und bin sehr erstaunt.
Bei Read only Dateien ist der Cursor nicht sichtbar, aber die Line/Column Werte ändern sich.
Nein, da hast Du mich falsch verstanden (wegen read-only). Es ist bei mir tatsächlich so, dass ich Alles machen kann, also tippen, speichern, übersetzen, etc. Nur nicht in der Datei mit Pfeil links/rechts navigieren. Also wenn ich am Ende einer eingetippten Zeile stehe, dann kann ich nicht mit Pfeil links zur Mitte meiner eingetippten Zeile gehen, um da etwas zu korrigieren.
Habe ich schon verstanden, deshalb meine Frage nach der Version. Manchmal ist es nur eine Kleinigkeit die hakt.
Du kannst übrigens auch unter Configure Editor einen anderen Editor wählen, der tut es vielleicht.
Danke für den Hinweis. Ich habe tatsächlich Version 1.4.7 und werde gleich einmal ein Update machen.
Vielen Dank, das war es tatsächlich. Ich hatte dem nicht weiter nachgeforscht, weil der Link vom Autor auf moravia-microsystems nicht funktionierte. Jetzt habe ich auch 1.4.9 und die Cursortasten funktionieren. 1.4.10 habe ich nicht gefunden. Ich bleibe aber an SDCC unter Eclipse dran. Wenn die Android-Entwicklung gut läuft, dann habe ich alles, was ich so brauche, in Eclipse unter Linux (auf einem bootfähigen Stick). Arduino, Android und einfache Mikrocontroller.
Robert P. schrieb: > Ich bleibe aber an SDCC unter Eclipse dran. Das ist gut. Robert P. schrieb: > in Eclipse unter Linux (auf einem bootfähigen Stick) Das ist noch besser ;)
Das im ersten Post genannte Problem mit Eclipse CDT, daß es nämlich die (teil Prozessor-spezifischen) SDCC Erweiterungen nicht kennt, besteht auch für C++ Version größer 11. Diese ist darin begründet, daß CDT versucht die Files selber zu parsen und das wird immer schwieriger. Auch gibt es keinen einfachen Extension-Point mit dem man mal schnell für Konfiguration x ein paar zusätzliche Schlüsselworte hinzufügen könnte. Für die Zunkunft erwägt man llvm als "Parser" zu verwenden, um mit zukünftigen Sprachfeatures mithalten zu können. Eclipse will nämlich nicht nur farbig rendern, sondern die Source verstehen. Bedeutet aber auch, wenn man kein llvm-Frontend mit 8051-SDCC-Syntax-Erweiterungen hat, dann geht's nicht. Es gibt aber einen sehr kleinen Hoffnugsschimer, denn zwischen llvm soll ein json-basiertes Webinterface benutzt werden. Theoretisch könnte man also einen anderen "Parser-Service" verwenden. Nur ist das Protokoll von MS und damit sicher maximal kompliziert, sorry sofisticated. Mir würde C++17 schon reichen, aber notfalls versteht halt der Editor nicht, was dem Compiler gefällt.
Hallo Carl, vielen Dank für diese Info. Leider ist mein Know-how nicht ausreichend, um das wirklich zu verstehen bzw. die Konsequenzen abzuschätzen. Deshalb ein paar direkte Fragen: Heißt das, ich kann/sollte mir die weitere Auseinandersetzung mit der Gestaltung von Plugins sparen, da es ohnehin keinen Sinn macht, weil ich am CDT-Parser nicht vorbeikomme? Oder sollte ich tatsächlich ein ältere Eclipse-Version (noch älter als 3.8) bemühen, um mir eine Umgebung für den SDCC zu schaffen? Oder handle ich mir da wieder neuen Ärger mit eventuellen Inkompatibilitäten bei den Java-Umgebungen ein, wenn ich verschiedene Eclipse-Versionen verwende? Zur Zeit habe ich schon 4.6 (mit Sloeber) und 3.8 (aus der Paketverwaltung von Linux Mint) gleichzeitig am Laufen und konnte noch keine Probleme feststellen.
Robert P. schrieb: > Hallo Carl, > vielen Dank für diese Info. > Leider ist mein Know-how nicht ausreichend, um das wirklich zu verstehen > bzw. die Konsequenzen abzuschätzen. > Deshalb ein paar direkte Fragen: > Heißt das, ich kann/sollte mir die weitere Auseinandersetzung mit der > Gestaltung von Plugins sparen, da es ohnehin keinen Sinn macht, weil ich > am CDT-Parser nicht vorbeikomme? > Oder sollte ich tatsächlich ein ältere Eclipse-Version (noch älter als > 3.8) bemühen, um mir eine Umgebung für den SDCC zu schaffen? > Oder handle ich mir da wieder neuen Ärger mit eventuellen > Inkompatibilitäten bei den Java-Umgebungen ein, wenn ich verschiedene > Eclipse-Versionen verwende? > Zur Zeit habe ich schon 4.6 (mit Sloeber) und 3.8 (aus der > Paketverwaltung von Linux Mint) gleichzeitig am Laufen und konnte noch > keine Probleme feststellen. Ich hab ein SDCC-Plugin mit SDCC 3.5 auf einem mindestens Neon-Eclipse laufen. Brauch ich zwar nur, weil ich mal sehen wollte, wie man heute 8051 programmiert im Vergleich zu vor 20..25 Jahren. Die Einbindung einer anderen Toolchain in CDT ist ja nicht wirklich ein Problem, nur das Syntaxhighlighting, da funktioniert eben nicht für die Spezialfälle. Aber ich ab wegen C++ >11 Erfahrung damit, von CDT gefühlte Fehler von echten Compilerfehlern zu unterscheiden. Falls irgendjemand, der hier mit liest, genauere/andere Kenntnisse zu dem Thema hat, bitte nicht zurückhalten beim Schreiben ;-)
Vielen Dank. Das Dumme bei meiner Installation ist ja, dass mir der Editor Syntaxfehler anzeigt, der Buildvorgang aber einwandfrei läuft und auch die gewünschten Ergebnisse liefert. Und wenn ich nicht über die Projekteinstellungen die Include-Pfade einstelle, kann der Editor noch nicht einmal die Include-Dateien sehen. Obwohl der Buildvorgang davon völlig unberührt ist und einwandfrei läuft. Für heute mache ich Feierabend. Schönen Abend noch.
Robert P. schrieb: > Editor Syntaxfehler anzeigt, der Buildvorgang aber einwandfrei läuft Das ist bei Simplicity Studio auch noch so z.B. wird void extint1(void) interrupt 2 using 3 als Fehler angezeigt. Es ist also nicht so einfach möglich, Eclipse die Keil C51 Extensions beizubringen. Und bei SDCC wird es dann ähnlich sein.
Zur Aktualisierung des eclipseSDCC-Plugins: * Linux-Distributionen enthalten üblicherweise Eclipse 3.8.1, was sich in absehbarer Zeit wohl auch nicht ändern wird. Es sollte also wohl dauerhaft eine Version des Plugins geben, die mit Eclipse 3.8.1 funktioniert. * Ideal wäre, wenn die gleiche Version des Plugins auch mit aktuellem Eclipse. Die Eclipse-Documentation https://help.eclipse.org/mars/nav/2_3 sieht aus, als ließe sich das machen. Philipp
Robert P. schrieb: > Das Dumme bei meiner Installation ist ja, dass mir der Editor > Syntaxfehler anzeigt, der Buildvorgang aber einwandfrei läuft und auch > die gewünschten Ergebnisse liefert. Das ist, wie schon geschrieben wurde, ein Eclipse-Standardproblem. Die Lösung dazu ist ebenso simpel wie effektiv: Einfach den Syntaxcheck in den Eclipse-Settings abschalten. Dann ist Ruhe. Oliver
Philipp Klaus K. schrieb: > Zur Aktualisierung des eclipseSDCC-Plugins FTDI nutzt für ihre neuen FT51 8051 Eclipse 4.4.0 und SDCC: http://www.ftdichip.com/Firmware/FT51AToolchain.htm
Ich habe mir es kurz angeschaut. Da sollte brauchbares dabei sein, dass man in eclipseSDCC übernehmen könnte. Philipp
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.