Si vous êtes inexpérimenté dans le domaine de la programmation des microprocesseurs / microcontrôleurs, vous devriez probablement apprendre le C en premier, afin de pouvoir comprendre quand et pourquoi Java est un mauvais choix pour la plupart des projets de microcontrôleurs.
Avez-vous lu les restrictions sur la machine virtuelle Java que vous avez liée? Il comprend les problèmes suivants:
- Aussi peu que 512 octets de mémoire de programme (pas Ko, et certainement pas Mo)
- Aussi peu que 768 octets de RAM (où vont vos variables. Vous êtes limité à 768 caractères de chaînes par cette restriction.)
- Environ 20 000 opcodes Java par seconde sur 8 Mhz AVR.
- Comprend uniquement java.lang.Object, java.lang.System, java.io.PrintStream, java.lang.StringBuffer, une classe de contrôle JVM et une classe IO native. Vous ne pourrez pas faire une importation java.util. *; et obtenez toutes les classes qui ne figurent pas dans cette liste.
Si vous ne savez pas ce que ces restrictions signifient, assurez-vous d'avoir un plan B s'il s'avère que vous ne pouvez pas réellement faire le projet avec Java en raison des restrictions d'espace et de vitesse.
Si vous voulez toujours utiliser Java, peut-être parce que vous vous attendez à ce que l'appareil soit programmé par beaucoup de gens qui ne connaissent que Java, je vous suggère fortement d'obtenir un matériel plus gros, probablement quelque chose qui exécute Linux embarqué. Voir cette page d'Oracle pour quelques spécifications à utiliser pour exécuter la JVM intégrée, dans la FAQ de leur discussion, ils recommandent un minimum de 32 Mo de RAM et 32 Mo de Flash. C'est environ 32 000 fois la RAM et 1 000 fois le flash de l'AVR que vous regardez. La page Java Embedded Intro d' Oracle explique plus en détail les restrictions de la JVM. Leur ton de voix est, comme vous pouvez le deviner, beaucoup plus compatible avec Java que le mien. Sachez que ce type de matériel est beaucoup plus difficile à concevoir qu'un AVR 8 bits.
Je suis un étudiant en génie informatique avec une mineure en informatique. Le département CS de mon université a bu le Java Kool-aid, donc beaucoup d'étudiants du programme d'ingénierie ne connaissent que Java (ce qui est une triste situation pour un programmeur, apprenez au moins du Python ou du C ++ si vous ne le faites pas). voulez apprendre le C ...), alors un de mes professeurs a publié une feuille de triche C pour les étudiants ayant un an d'expérience Java. C'est seulement 75 pages; Je vous suggère de le lire ou de le parcourir avant de prendre une décision. À mon avis, C est le langage le plus efficace, le plus durable et le plus professionnel pour développer un projet intégré.
Une autre alternative à considérer est le framework Arduino . Il utilise une version allégée du langage de câblage , qui est comme C ++ sans objets ni en-têtes. Il peut fonctionner sur de nombreuses puces AVR, ce n'est certainement pas limité à leur matériel. Cela vous donnera une courbe d'apprentissage plus facile que de sauter directement en C.
En conclusion,
texte Alt: Il m'a fallu cinq essais pour trouver le bon, mais j'ai réussi à sauver notre soirée - sinon le bateau - à la fin.