- 3D-Druck Einstieg und Tipps         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 13 von 13

Thema: AVR mit Java programmieren?

  1. #11
    Neuer Benutzer Öfters hier
    Registriert seit
    11.10.2005
    Beiträge
    16
    Anzeige

    E-Bike
    Also mal ehrlich, da ich mit Java besser umgehen kann als mit C, auch wenn die Unterschiede bei den grundsätzlichen Sachen recht ähnlich sind, wäre es fuer mich besser/schöner, wenn ich die gewohnte Sprache nutzen könnte und nicht auf C zurueckgreifen muesste.
    Leider ist die NanoVM, soweit ich das richtig verstanden habe, aber leider nur auf den ATmega8 beschränkt.
    Da ich mich gerade mit ATmega128L rumschlage, also fuer mich eher sinnlos...

    Aber wenn einem von euch mal was derartiges ueber den Weg läuft - mal bitte hier bescheid sagen, denn das wuerde mich wirklich interessieren und ich wuerde mit Freuden umsteigen...

    BGMF

  2. #12
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Ich kann mich da meinen Vorrednern nur anschliessen. Java auf nem AVR halte ich nicht für sonderlich angebracht. Erstmal musst du die Sprache gründlich abspecken: Serialisierung, Security, RMI, AWT, Reflection API, und so fliegt raus. Nebenläufigkeit wohl auch. Einen Großteil der Leistung opferst du für die VM, an Flash, RAM und EEPROM. Java sieht es nicht vor, direkt auf die Hardware zu greifen, also brauchst du native Klassen um auf SFRs zu greifen und das zu erledigen, also für jedes Derivat ne neue API.
    Bytecode ist zwar recht kompakt, aber mit 1-2 kBytes wirst du auch nicht sooo weit kommen, dazu bei grottiger Performance. Auf einem Hostrechner spielt das keine Rolle, da ist es viel wichtiger flott entwickeln zu können und Abstand von der Hardware zu haben (meistens jedenfalls), und da verwende ich Java wo ich kann.
    Teile deines AVRs wirst du aufgrund der langsamen Abarbeitung gar nicht nutzen können, bei InputCapture oder hoher Interrupt-Last wird's jedenfalls sehr schwer. Bei Systemen an der Grenze gehen die Kosten immens in die höhe: Entwicklungszeit, Stabilität, Nerven, so daß du nicht wirklich was sparst.
    Dem RAM geht fix die Luft aus: die VM belegt einen Großteil und int in Java ist 32 Bit breit. Weiterhin ist die Frage, ob die VM dafür ausgelegt ist, Flash zu nutzen, zB für Tabellen. Falls nicht, belegen die auch Platz im RAM (oder im EEPROM). Und was nutzt dir Java, wenn der Code für ne Hashtable dein ganzes EEPROM auffrisst?
    Portierbar dürfte das Zeug auch nicht sein. Der Bytecode für einen Mega8 wird auf einem Mega128 nicht funktionieren.

    Mit avr-gcc hast du einen Leistungsfähigen C-Compiler für die AVRs, ausser für ein paar Winzlinge. Die C-Syntax ist dir offenbar vertraut. IMHO ist es weniger Aufwand, dich mit C anzufreunden, als dir den Wolf nach ner VM zu suchen. Scheint ohnehin eher eine mentale Hürde zu sein...
    Disclaimer: none. Sue me.

  3. #13
    Neuer Benutzer Öfters hier
    Registriert seit
    11.10.2005
    Beiträge
    16
    Ja, mag ja sein, das das auf HW zutrifft.
    Aber auf der "normalen" SW-Seite, ist Java auf jedenfall schon mindestens so gut wie C/C++.
    Meine Meinung...

    Na ja gut.
    Ich geb mich ja geschlagen.
    Wie war der Spruch?
    "Schuster bleib bei deinen Leisten!"
    So etwa hauts wohl auch bei diesem Thema hin...

    BGMF

Seite 2 von 2 ErsteErste 12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen