ARM in Java programmieren

Gast #230749
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
#230750
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.
#230752
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.
#230753
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.
Gast #230755
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.
Gast #230756
> 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.
#230757
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.
Gast #230758
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
Gast #230759
"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...
#230765
@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...
Admin Persönliche Seite #230766
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.
Gast #230767
> 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.
#230768
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.