Eclipse-Plugin

1 view
Skip to first unread message

Gunter Heuckeroth

unread,
Sep 17, 2011, 10:27:53 AM9/17/11
to bajo...@googlegroups.com
Hallo,

eigentlich wollte ich mich erst melden, wenn ich ein bisschen mehr habe, aber vielleicht habt ihr ein paar gute Ideen für meine Probleme...

Ziel ist ein Plugin für Eclipse für Bajos (kling schon mal gut, oder?)
Über "New" - "Other" - "Custom wizards" kommt man zu einem Assistenten für ein "Bajos"-Projekt (soweit unproblematisch).
Nach der Auswahl des Projektverzeichnisses (Standard) kommt man zum spezifischen Bajos-Teil.
Hier wählt man man die Bajos-Version & Zielplattform ("Bajos 0.7 / Arduino Mega"), sowie Schnittstelle ("COMx") und Protokoll ("STK500" oder "XMODEM") aus (siehe angehängtes Bild).
Bajos-Version & Zielplattform bestimmen die zu verwendenden "Boot"-Classes.
Im "properties"-Dialog des Projekt sollen diese Werte auch noch mal geändert werden können.
Es gibt dann auch einen Button in der Oberfläche (auch kein Problem), um ein Bajos-Projekt zu kompilieren (das ist jetzt schon etwas aufwendiger) und per serielle Schnittstelle herunterzuladen.

Bezüglich kompilieren:
Ich wollte das plugin auch schon für die "aktuelle" Version anwenden können (deswegen Abfrage der Bajos-Version), d.h. für die Version 0.7 wäre es ein "Zusammenkopieren" der class-Dateien ("Boot"-Klassen & Applikations-Klassen).
Für spätere Versionen ist es vielleicht nur ein "Herunterladen" einer jar-Datei...

Jetzt bin ich am überlegen, wie das Handling mit den Bootklassen aussehen kann:
Möglichkeit 1: In Eclipse angeben, wo die Bajosquellen liegen, und die Dateien dort neu kompileren und von dort kopieren (wenn Plattform nicht "Arduino", wird's wieder make-file-mäßig...)
Möglichkeit 2: Dem Plugin "vorkompilierte" (oder zumindest die Quellen der Version) Bootklassen mitgeben (alle Plattformen, alle Versionen?)
Möglichkeit 3: ?

Welche Plattformen sollen/können denn (aktuell) unterstützt werden?

Alle Kommentare und Ideen sind herzlich willkommen...

Gruß,
Gunter

PS:
Ich habe es immerhin auch geschaft, einen kleinen Bootloader zu schreiben, der per X-Modem-Protokoll eine Datei (beliebig) empfängt und z.Z an Adresse 0x10000 schreibt...





bajosplugin.jpg

Christopher Hrabia

unread,
Sep 26, 2011, 3:44:40 PM9/26/11
to bajo...@googlegroups.com
Hallo,
sorry für die späte Antwort, aber ich war im Urlaub und hatte danach
jetzt einiges zu tun.
Den Ansatz finde ich sehr gut, hatte ich auch schon einmal drüber
nachgedacht, aber bisher die Zeit nicht gefunden.
Ich würde die Bajos Version gar nicht wählbar machen oder? Einfach
immer die neuste Version stabile Version. Das wäre zumindest mein
Vorschlag. Maximal noch eine Unterscheidung in stable und experimental
o.Ä.
Ich hätte vorgeschlagen, dass man das zusammenkopieren oder was auch
immer, einfach in einem script kapselt, so ist man in diesem punkt
unabhängig.
Ich würde des Weiteren dafür plädieren, Bajos nur als Kompilat bzw
verschiedene Kompilate im Plugin einzubauen(zumindest für alle
c-Quellen), dass sind dann natürlich eine gewisse Anzahl an
Kombinationen, befreit den Endanwender aber auch von komplizierten
Problemen mit irgend welchen Toolchains usw. Die Bootklassen könnte
man im prinzip auch immer nach bedarf neu zusammenkompilieren, da ja
eine javac vorhanden sein muss.

Jo das wäre jetzt so meine Meinung dazu! Hast du daran mittlerweile
schon weitergearbeitet Gunter?

Am 17. September 2011 16:27 schrieb Gunter Heuckeroth
<gunterhe...@googlemail.com>:

--
Mit freundlichen Grüßen
Christopher Hrabia
(c.hr...@gmail.com)

Gunter Heuckeroth

unread,
Sep 27, 2011, 3:22:25 PM9/27/11
to bajo...@googlegroups.com
Hallo Christopher,

ich bin zwar etwas weiter, aber nicht soweit wie ich gerne schon wäre

Im Moment habe ich etwas weniger Zeit, da ich die neue Tischtennis-Saison für die Betriebsrunde vorbereiten muß...

Was bis jetzt fertig ist (hat gedauert, bis ich die ganzen Infos dazu zusammen hatte):
Nachdem der "Assistent" abgearbeitet ist, wird ein Projekt angelegt mit "Java" und "Bajos"-"Nature",
sowie die Verzeichnisse "dist", "bin" und "scr".

Jetzt hänge ich etwas fest:
Damit Eclipse feststellen kann, welche Funktionen für dieses Java-Projekt zur Verfügung stehen, wird ein Verweis auf die "Boot"-Klassen von Bajos benötigt (mindestens ein Jar, aber woher?).
--> Du meinst, einfach diese jar's vorkompilieren & fest in das plugin übernehmen?

Danach ist angedacht, ein "Download"-Knopf für das Bajos-Projekt zu haben:
Für die aktuelle Version heißt das, alle Klassen (alle Bootklassen + die in diesem Projekt erstellten Klassen) in eine Datei zu kopieren (in Verzeichnis "dist", wie im makefile), und anschließend diese Datei an das System (per serieller Schnittstelle) herunterzuladen.

Dabei möchte ich auch noch berücksichtigen, dass außer dem ArduinoMega auch noch andere Systeme (mit anderen Prozessoren)
das Ziel sein können (sollen).
Und vielleicht die nächste Version direkt mit jar-Files arbeitet....

Bajos-Kompilat:
Möglich ist es. Wenn man schon ein jar herunterladen kann, wieso nicht auch gleicht die VM...


Gruß,
Gunter

Christopher Hrabia

unread,
Sep 29, 2011, 4:45:17 PM9/29/11
to bajo...@googlegroups.com
Hallo Gunther,
was soll Nature bedeuten?
Vielleicht könnte man die Sache ganz prakmatisch strukturieren:

Das Plugin besitzt einfach ein Verzeichnis mit fertig kompilierter
VM+Bootklassen und verschiedenen Versionen/Konfigurationsvarianten.
Den Namen strukturiert man so, dass dieser interpretiert werden kann
oder wir entwerfen noch eine beschreibende XML Struktur, welche dann
entsprechende Parameter ausließt. Dafür wäre es vermutlich schon
sinnvoll, wenn wir alles in einem JAR hätten bzw. sogar zwei JARs
eigentlich. Ich würde hier an deiner Stelle nicht weiter auf die
Rückwärtskompatiblität achten, sondern schon von JARs ausgehen, dann
müssen wir das halt mal implementieren.

Was du Download nennst wäre für mich eigentlich eher Upload oder
Brennen/Flashen. Ich meine das ist ja egal, aber irgend wie hat mich
die Begrifflichkeit verwirrt.

Was meinst du damit?


> Möglich ist es. Wenn man schon ein jar herunterladen kann, wieso nicht auch
> gleicht die VM...
>

Am 27. September 2011 21:22 schrieb Gunter Heuckeroth
<gunterhe...@googlemail.com>:

--

Reply all
Reply to author
Forward
0 new messages