Wenn Sie im Bereich der Programmierung von Mikroprozessoren / Mikrocontrollern unerfahren sind, sollten Sie wahrscheinlich zuerst C lernen, damit Sie verstehen, wann und warum Java für die meisten Mikrocontroller-Projekte eine schlechte Wahl ist.
Haben Sie die Einschränkungen für die von Ihnen verlinkte JVM gelesen? Es enthält die folgenden Probleme:
- Nur 512 Bytes Programmspeicher (nicht KB und definitiv nicht MB)
- Nur 768 Byte RAM (wohin Ihre Variablen gehen. Durch diese Einschränkung sind Sie auf 768 Zeichenfolgen beschränkt.)
- Ungefähr 20.000 Java-Opcodes pro Sekunde auf einem 8-MHz-AVR.
- Enthält nur java.lang.Object, java.lang.System, java.io.PrintStream, java.lang.StringBuffer, eine JVM-Steuerungsklasse und eine native E / A-Klasse. Sie können java.util nicht importieren. *; und alle Klassen erhalten, die nicht in dieser Liste enthalten sind.
Wenn Sie nicht wissen, was diese Einschränkungen bedeuten, stellen Sie sicher, dass Sie einen Plan B haben, wenn sich herausstellt, dass Sie das Projekt aufgrund der Platz- und Geschwindigkeitsbeschränkungen nicht mit Java ausführen können.
Wenn Sie immer noch mit Java arbeiten möchten, vielleicht weil Sie erwarten, dass das Gerät von vielen Leuten programmiert wird, die nur Java kennen, würde ich dringend empfehlen, größere Hardware zu erwerben, wahrscheinlich etwas, auf dem Embedded Linux ausgeführt wird. Auf dieser Seite von Oracle finden Sie einige Spezifikationen, auf die Sie zugreifen können, um die eingebettete JVM auszuführen. In den häufig gestellten Fragen (FAQ) werden mindestens 32 MB RAM und 32 MB Flash empfohlen. Das ist ungefähr das 32.000-fache des RAM und das 1.0000-fache des Flashs des AVR, den Sie betrachten. Auf der Java Embedded Intro- Seite von Oracle werden die Einschränkungen der JVM ausführlicher beschrieben. Ihr Tonfall ist, wie Sie sich vorstellen können, viel Java-freundlicher als meiner. Beachten Sie, dass diese Art von Hardware viel schwieriger zu entwerfen ist als ein 8-Bit-AVR.
Ich bin ein Student der Informatik mit einem Nebenfach Informatik. Die CS-Abteilung meiner Universität hat die Java-Kool-Hilfe getrunken, daher kennen viele Studenten des Ingenieurprogramms nur Java (was für einen Programmierer ein trauriger Zustand ist, lernen Sie zumindest Python oder C ++, wenn Sie dies nicht tun Ich möchte C lernen ...), also hat einer meiner Professoren einen C-Spickzettel für Studenten mit einem Jahr Java-Erfahrung veröffentlicht. Es sind nur 75 Seiten; Ich schlage vor, Sie lesen oder überfliegen es, bevor Sie eine Entscheidung treffen. Meiner Meinung nach ist C die effizienteste, dauerhafteste und professionellste Sprache, um ein eingebettetes Projekt zu entwickeln.
Eine weitere zu berücksichtigende Alternative ist das Arduino- Framework. Es wird eine abgespeckte Version der Wiring- Sprache verwendet, die C ++ ohne Objekte oder Header ähnelt. Es kann auf vielen AVR-Chips laufen, es ist definitiv nicht auf deren Hardware beschränkt. Es gibt Ihnen eine einfachere Lernkurve als nur direkt in C zu springen.
Abschließend
Alt-Text: Ich habe fünf Versuche unternommen, den richtigen zu finden, aber am Ende habe ich es geschafft, unsere Nacht - wenn nicht das Boot - zu retten.