www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Java für AVR???


Autor: C. Lechner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

(für den Fall, dass meine Frage totaler Mist ist, bitte nicht schlagen
sondern den Post einfach ignorieren! :-)

gibt es eigentlich soetwas wie eine sehr primitive Java Virtual Machine
für AVR Controller in OpenSource? Sie muss natürlich nicht die
Java-Runtime-Library unterstützen ...

TIA
- C. Lechner

Autor: thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mmmh gute Frage, weiß auch nicht ob es eine JVM für AVR Controller gibt
und dann noch Open Source.

Ich glaub es ist fast nicht möglich eine JVM + Programm in so wenig
Speicher unter zubringen.
Was ich mir eher vorstellen könnte ist eine IDE in der man mit Java
programmiert und dann daraus ein Programm erzeugt wird das man in den
Chip lädt. So etwas müsste mit dem gcc möglich sein, nur bisher noch
beschränkt auf normale PC-Programme.


Aber es gibt zwei kommerzielle Sachen
1. JControl www.jcontrol.org
2. Javelin Stamp http://elmicro.com/de/javelin.html
Aber ob die AVR's benutzen weiß ich nicht

Autor: ejd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt eine lightweight JVM, heisst Waba, auch eine GPLed Erweiterung
davon, heisst SuperWaba. Ich kann mich noch daran erinnern, die Quellen
von SuperWaba angesehen zu haben, und es sind 3 (zugegeben, größere)
C-Dateien. Ich weiss nicht, ob das Ergebnis ins Flash eines AVRs passen
wird (obgleich ich schätze, dass zumindest der ATMega128 es schon
verkraften könnte), aber ein Versuch wäre es wert.

mfG,
                                        ejd

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leute

Ich hab mal an der HTA Luzern (FH in der Schweiz) Java auf einem
Mikrocontroller gesehen. Hier ein Link auf eine Projektbeschreibung:
http://www.ceesar.ch/cms/upload/pdf/Paper%20Wirele...

Vielleicht hilft dir das weiter. Als Mikrocontroller wird der Freescale
MC9S08 verwendet.

FG

Tom

Autor: ape (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Problem bei "richtigem" Java ist, das durch den konsequenten
Objektorientierten Ansatz ser viel RAM benötigt wird, da die Objekte ja
erst zur Laufzeit im RAM erzeugt werden. Da ist auch ein mega128 mit 4kB
SRAM ganz schnell am Ende.

Autor: ejd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man muss halt bedenken, dass JVM im Grunden genommen ein Emulator ist
(Java Virtual Machine). Die Spezifikationen der JVM sind recht offen.
Schafft man die JVM auf einem AVR (zumindest ansatzweise) zu emulieren,
kann man dann weiter über irgendwelche Klassenbibliotheken nachdenken.
Ansonsten bleibt es noch hinzuzufügen, dass die JVM mit kleinsten
Speicheranorderungen, nämlich die, die bei J2ME-Speifikation eingesetzt
wird, einen Preverifier nutzt, um die langwierigen
Sicherheitsüberprüfungen nicht auf dem Target auszuführen. Da braucht
man aber doch einige Hunderte von Bytes pro Klasse.

mfG,

                                               ejd

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ape: Ist das bei C++ auch so? AFAIK nur wenn man Objekte mittels new
auf dem Heap erzeugt. Objekte im Stack sollten schon zur
Kompilationszeit erzeugt werden können, oder sehe ich das falsch?
Ich überlege mir gerade, ob ich auf meinem MSP430 C++ oder doch C
verwenden soll. Momentan tendiere ich Aufgrund des sauberern Codes eher
zu C++. Leider gibt es aber noch keine Implemenation der
Standard-Library für diesen uC.

Hat jemand Erfahrungen oder Empfehlungen parat?

FG & Thanks

Tom

Autor: ape (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja bei Java erzeugt man ja auch jedes Objekt mit new :)
Ich hab leider keine Ahnung von C++, aber wenn die Objekte da auf dem
Stack erzeugt werden, brauchen sie ja genauso RAM (der Stack liegt ja
auch im RAM)
Ansonsten ist C++ eben wegen der fehlenden Libraries auf dem
Mikrocontroller eher schwierig und es bringt halt wegen dem sehr
kleinen RAM auch keine großen Vorteile.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.