Si no tiene experiencia en el campo de la programación de microprocesadores / microcontroladores, probablemente debería aprender C primero, para que pueda comprender cuándo y por qué Java es una mala elección para la mayoría de los proyectos de microcontroladores.
¿Leyó las restricciones en la JVM que vinculó? Incluye los siguientes problemas:
- Tan poco como 512 bytes de la memoria del programa (no KB, y definitivamente no MB)
- Tan solo 768 bytes de RAM (a donde van sus variables. Esta restricción lo limita a 768 caracteres de cadenas)
- Aproximadamente 20k códigos de operación Java por segundo en 8 Mhz AVR.
- Solo incluye java.lang.Object, java.lang.System, java.io.PrintStream, java.lang.StringBuffer, una clase de control JVM y una clase IO nativa. No podrá realizar una importación java.util. *; y obtenga todas las clases que no estén en esta lista.
Si no estás familiarizado con el significado de estas restricciones, asegúrate de tener un plan B si resulta que no puedes hacer el proyecto con Java debido a las restricciones de espacio y velocidad.
Si aún desea utilizar Java, tal vez porque espera que el dispositivo sea programado por muchas personas que solo conocen Java, sugeriría encarecidamente que el hardware sea más grande, probablemente algo que funcione con Linux integrado. Consulte esta página de Oracle para ver algunas especificaciones que debe buscar ejecutan la JVM incorporada, en las Preguntas frecuentes de su discusión, recomiendan un mínimo de 32 MB de RAM y 32 MB de Flash. Eso es aproximadamente 32,000 veces la memoria RAM y 1,0000 veces el Flash del AVR que está viendo. La página Intro Integrado de Java de Oracle incluye más detalles sobre las restricciones de JVM. Su tono de voz es, como puedes imaginar, mucho más compatible con Java que el mío. Tenga en cuenta que este tipo de hardware es mucho más difícil de diseñar que un AVR de 8 bits.
Soy un estudiante de ingeniería informática con un menor de informática. El departamento de CS de mi universidad ha bebido Java Kool-aid, por lo que muchos estudiantes en el programa de ingeniería solo conocen Java (lo cual es un estado triste para un programador, al menos aprende algo de Python o C ++ si no lo haces). quiero aprender C ...), por lo que uno de mis profesores publicó un Hoja de referencia de C para estudiantes con un año de experiencia en Java. Solo tiene 75 páginas; Le sugiero que lo lea o hojee antes de tomar una decisión. En mi opinión, C es el lenguaje más eficiente, duradero y profesional para desarrollar un proyecto integrado.
Otra alternativa a considerar es el marco Arduino . Utiliza una versión simplificada de la Cableado lenguaje, que es como C ++ sin objetos ni encabezados. Puede ejecutarse en muchos chips AVR, definitivamente no está restringido a su hardware. Te dará una curva de aprendizaje más fácil que simplemente saltar directamente a C.
En conclusión,
Texto alternativo: Me tomó cinco intentos para encontrar el correcto, pero al final logré salvar nuestra noche de fiesta, si no el bote.