mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ARM in Java programmieren


Autor: JAVARM (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich habe mich lange mit 8bitter und C vergnügt, nun wird es zeit sich
ein neues ziel zu setzen.

grundsätzliche frage

macht es sinn java und arm zu kombinieren?

ich habe mir zum ziel gesetzt, java zu erlernen und mich mit der
thematik 32bitter auseinanderzusetzen, um java applikationen schön auf
einem display(z.b.640x480 o.ä.) darzustellen.
auf dem display sollen verschiedene messwerte und zustände in grafiken
und in farbe angezeigt werden.

es ist sicherlich ein os notwendig wie z.b. linux(µclinux) bzw. wince.
oder?

hat schon jemand erfahrungen mit java und µc?
kann mir jemand umsteiger - tipps geben?

danke

javarm

Autor: Niels Huesken (monarch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Solange Java als Plattform softwaremässig übersetzt werden muss, wird es
immer ein Flaschenhals in Punkto Resourcenverbrauch (Rechenleistung,
Speicherkapazitäten) gebeben.

Im embeddedbereich macht Java nur sehr selten Sinn, da halt mehr
Hardware gebraucht wird, was den Preis für das zu entwicklende Produkt
in die Höhe treibt.

In der Entwicklungszeit kann java allerdings auch kosten sparen, da
Javacoder in der Regel billiger sind, als erfahrene C-Programmierer.

Autor: JAVARM (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was heißt - Solange Java als Plattform softwaremässig übersetzt werden
muss - ?

gibts noch andere möglichkeiten?

Autor: Mark Struberg (struberg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Java wurde ursprünglich für embedded systeme entwickelt, um sich die
lästige Anpassung an ständig ändernde Hardwareumgebungen zu ersparen.
So war die erste Zielplattform für Java der Bereich consumer
electronics, also Videorecorder und ähnliches.
Es macht also imho, vor allem bei den durchaus guten
hardwarevoraussetzungen der ARMs, durchaus Sinn Java in embedded
Projekten zu benutzen.

Autor: Niels Huesken (monarch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt zwei Javas: die Plattform und die Sprache.

Bei dem heutigen gängigen Javalaufzeitumgebungen wird der produzierte
Bytecode entweder interpretiert oder zur laufzeit compiliert. Beides
verbraucht Resourcen, die für eine Embeddedlösung nur schwer tragbar.

Es soll wohl irgendwann mal JavaCPUs geben, die quasi eine
Laufzeitumgebung hardwaremässig implementiert haben. Bis sowas
Marktreif  wird, wirds wohl noch ne ganze weile dauern, denke ich.

Autor: Niels Huesken (monarch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Mark Struber:

Verstehe. Daher auch die vielen Artikel und Geräte, die alle schon seit
Jahren auf Java laufen... X-)

Autor: JAVARM (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ihr seit euch einig sehe ich ;)

wie ist es den zum beispiel in einem pda oder handy oder z.b. im
-game boy advance- realisiert?
hier sind ja nun arm controller drin und denke auch java.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Java wurde ursprünglich für embedded systeme entwickelt,

Und wie toll das funktioniert, sieht man bei Handys, die Prozessoren
mit weit über 100Mhz und mehrere Megabytes an RAM haben, nur damit man
darauf Java für Spiele laufen lassen kann, die auch auf dem C64 schon
gelaufen sind.

Autor: Niels Huesken (monarch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zur Verteidigung der Javagames aufm Handy muss man sagen, das sich die
Handyhersteller immernoch nicht auf eine gemeinsame GamingAPI geeinigt
haben und viele immernoch ihr eigenes Süppchen kochen.

Auch was die Implementierung vorhandener Javastandards angeht,
verhalten sich noch lange nicht alles Handies so, wie sie sollten. Ganz
katastrophal siehts da z.B. bei dem relativ neuen MIDP 2.0 aus.

Autor: JAVARM (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also die meinungen gehen ja in sehr verschiedene richtungen.

das hilft mir nun nicht wirklich weiter.

was ratet ihr mir für den einstieg zu arm und einem grafik lcd
display.
es sollte kein monochromes sein und nicht nur 128x64 pixel haben.

danke

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Und wie toll das funktioniert, sieht man bei Handys, die Prozessoren
mit weit über 100Mhz und mehrere Megabytes an RAM haben, nur damit man
darauf Java für Spiele laufen lassen kann, die auch auf dem C64 schon
gelaufen sind."

Blödsinn. Der Grund sind die rotzigen C++-Betriebssysteme wie Symbian.
Wenn ich bei meinem dämlichen Nokia manchmal nach einem Tastendruck
über 2 Sekunden warten muss und das bei einem ARM mit über 200MHz...

Autor: Niels Huesken (monarch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
??? Symbian? Was hat denn jetzt symbian damit zu tun?

Autor: D. H. (slyd)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Es soll wohl irgendwann mal JavaCPUs geben"

http://www.ajile.com/
wird z.B. auf der JStamp benutzt:
http://jstamp.systronix.com/jstamp_photos.htm

ist aber leider etwas teuer...

Autor: D. H. (slyd)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auch noch interessant:
http://www.jstik.com/compare.htm

Autor: JAVARM (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
es läuft wohl alles auf ein single board computer hinaus.

das hier würde meinen ansprüchen ganz genügen ;)

http://www.fudantech.com/cp5.asp

Autor: JAVARM (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich laß irgendwo, dass die arm9 sogenannte java beschleuniger haben,
welcher von sun und arm gemeinsam entwicklet wurde.

Autor: Mark Struberg (struberg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@niels: gute Java Programmierer sind genauso rar und teuer wie gute
C/C++ Programmierer oder Hostlinge ;)
Ich sprach oben btw nur von der Sprache, die Laufzeitumgebung ist
sowieso je nach hardware anzupassen. In dem Zusammenhang geht der
Vergleich mit MIDP eines anderen Posters btw imho ziemlich daneben.
Wenn, dann müßte man das mit CLDP oder CDP vergleichen.

Die Vorteile einer Java-Umgebung wären:
.) memory management! Keine Abstürze oder Fehlfunktionen durch pointer
Fehler.
.) Fehlerminimierung durch codereuse der zentralen Teile
.) bessere Wartbarkeit durch automatisch eher Design Pattern
orientierte Implementierung
.) Portierbarkeit auf andere Hardware

@Dominik:
naja, die Firma ajile ist glaub ich der Versenkung nahe. Zumindest habe
ich schon ewig nichts mehr von denen gehört...

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Portierbarkeit des Java-Bytecode ergibt bei Mobiltelefonen,
Spielekonsolen usw. durchaus Sinn, weil Programme ohne Neukompilieren
auf verschiedenen Hardwareplattformen laufen können. Das geht aber nur
weil eine standardisierte Schnittstelle für Grafik, Ton und I/O
vorhanden ist. In den meisten Fällen von Embedded-Software
(Messwerterfassung, Steuerungen) bringt die VM außer zusätzlichem
Overhead rein gar nichts.

Automatische Bereichsüberprüfung von Variablen, Objektorientierung und
Portierbarkeit lassen sich mit zu Maschinencode kompilierten
Programmiersprachen (Ada) ebenso realisieren, dazu braucht es keine VM.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Die Vorteile einer Java-Umgebung wären:
> .) memory management! Keine Abstürze oder Fehlfunktionen durch
> pointer Fehler.

Kann auch ein Nachteil sein. Der Memory ist zwar automatisch gemanagt,
dafür aber alle anderen Ressourcen nicht. Außerdem wird das
Laufzeitverhalten nichtdeterministisch, weil der GC zuschlagen kann,
wann immer er gerade Lust dazu hat.

> .) Fehlerminimierung durch codereuse der zentralen Teile

Das ist eigentlich in jeder Sprache möglich.

> .) bessere Wartbarkeit durch automatisch eher Design Pattern
> orientierte Implementierung

Auch das ist in jeder Sprache möglich. In C++ ist halt vielleicht ein
Tick mehr Disziplin vom Programmierer gefragt, dafür wird mir hier
nicht so viel aufgezwungen wie in Java.

> .) Portierbarkeit auf andere Hardware

Die Portierbarkeit hängt von den verfügbaren Bibliotheken ab. Da fehlt
bei C++ halt einiges.

Autor: Niels Huesken (monarch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das sind ja alles ganz gute Argumente, die für Java sprechen sollten und
ich bin mir sicher, auf Hi-End-Plattformen hat das Geraffels durchaus
seine Daseinsberechtigung.

Ich bin nachwievor aber der Meinung, das es bis Dato keine
Embeddedlösungen gibt, mit der sich kostengünstige Produkte realisieren
lassen. Auch das Java in der realität, fern ab studentischer
Fantastereien, nicht immer Plattforumunabhängig (portabel)
funktioniert, hat J2ME (handy) längst bewiesen.

Autor: Cr0ok (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie man auf
http://www.arm.com/products/CPUs/ARM1026EJS.html
sieht ist es für manche arm kein problem java aus zuführen, denn sie
können das schon hardware mässig. allerdings dürfte es probleme geben
einen 1026ej-s core zu bekommen und das ganze zu vernünftigen preisen
in kleineren stückzahlen.

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.