Se você não tem experiência no campo de programação microprocessador / microcontrolador, provavelmente deve aprender C primeiro, para entender quando e por que Java é uma má escolha para a maioria dos projetos de microcontroladores.
Você leu as restrições na JVM que você vinculou? Inclui os seguintes problemas:
- Tão pouco quanto 512 bytes de memória de programa (não KB, e definitivamente não MB)
- Tão pouco quanto 768 bytes de RAM (para onde vão suas variáveis. Você está limitado a 768 caracteres de cadeias por esta restrição.)
- Aproximadamente 20k opcodes Java por segundo no 8 Mhz AVR.
- Inclui apenas java.lang.Object, java.lang.System, java.io.PrintStream, java.lang.StringBuffer, uma classe de controle da JVM e uma classe IO nativa. Você não poderá fazer uma importação java.util. *; e obtenha todas as classes que não estão nesta lista.
Se você não estiver familiarizado com o significado dessas restrições, verifique se possui um plano B, caso não consiga executar o projeto com Java devido às restrições de espaço e velocidade.
Se você ainda deseja usar o Java, talvez porque espere que o dispositivo seja programado por muitas pessoas que conhecem apenas o Java, sugiro fortemente que obtenha hardware maior, provavelmente algo que execute o Linux incorporado. Consulte esta página da Oracle para obter algumas especificações a serem executadas para executar a JVM incorporada. Nas perguntas frequentes de suas discussões, eles recomendam um mínimo de 32 MB de RAM e 32 MB de Flash. Isso é cerca de 32.000 vezes a RAM e 1.0000 vezes o Flash do AVR que você está vendo. A página Java Embedded Intro da Oracle detalha as restrições da JVM. O tom de voz deles é, como você pode imaginar, muito mais amigável a Java do que o meu. Esteja ciente de que esse tipo de hardware é muito mais difícil de projetar do que um AVR de 8 bits.
Eu sou um estudante de engenharia da computação com um menor de ciência da computação. O departamento de CS da minha universidade bebeu o Java Kool-aid, então muitos estudantes do programa de engenharia conhecem apenas Java (o que é um estado triste para um programador, pelo menos aprenda um pouco de Python ou C ++, se você não deseja aprender C ...), então um de meus professores publicou uma C Cheat Sheet para estudantes com um ano de experiência em Java. São apenas 75 páginas; Sugiro que você o leia ou remova antes de tomar uma decisão. Na minha opinião, C é a linguagem mais eficiente, durável e profissional para desenvolver um projeto incorporado.
Outra alternativa a considerar é a estrutura do Arduino . Ele usa uma versão simplificada da linguagem Wiring , que é como C ++ sem objetos ou cabeçalhos. Pode ser executado em muitos chips AVR, definitivamente não está restrito ao seu hardware. Isso lhe dará uma curva de aprendizado mais fácil do que apenas pular direto para C.
Em conclusão,
Alt text: Levei cinco tentativas para encontrar a certa, mas consegui salvar nossa noite fora - se não o barco - no final.