Si no tiene experiencia en el campo de programación de microprocesadores / microcontroladores, probablemente debería aprender C primero, para que pueda entender cuándo y por qué Java es una mala elección para la mayoría de los proyectos de microcontroladores.
¿Leíste las restricciones en la JVM que vinculaste? Incluye los siguientes problemas:
- Tan poco como 512 bytes de memoria de programa (no KB, y definitivamente no MB)
- Tan poco como 768 bytes de RAM (donde van sus variables. Está limitado a 768 caracteres de cadenas por esta restricción).
- Alrededor de 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á importar java.util. *; y obtener todas las clases que no están en esta lista.
Si no está familiarizado con lo que significan estas restricciones, asegúrese de tener un plan B si resulta que en realidad no puede hacer el proyecto con Java debido a las restricciones de espacio y velocidad.
Si todavía desea utilizar Java, tal vez porque espera que el dispositivo sea programado por muchas personas que solo conocen Java, le sugiero encarecidamente que obtenga un hardware más grande, probablemente algo que ejecute Linux incorporado. Consulte esta página de Oracle para obtener algunas especificaciones para ejecutar 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 RAM y 1,0000 veces el Flash del AVR que estás viendo. La página de Introducción Incrustada Java de Oracle entra en más detalles sobre las restricciones de la JVM. Su tono de voz es, como puede suponer, mucho más amigable 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 especialización en informática. El departamento de CS de mi universidad ha bebido el Java Kool-aid, por lo que muchos estudiantes en el programa de ingeniería solo conocen Java (lo cual es un triste estado de cosas para un programador, al menos aprende Python o C ++ si no lo haces). quiero aprender C ...), entonces uno de mis profesores publicó una Cheat Sheet C para estudiantes con un año de experiencia en Java. Son solo 75 páginas; Le sugiero que lo lea o lea 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 del cableado de la lengua, que es como C ++ y sin objetos o cabeceras. Puede ejecutarse en muchos chips AVR, definitivamente no está restringido a su hardware. Le dará una curva de aprendizaje más fácil que simplemente saltar directamente a C.
En conclusión,
texto alternativo: me llevó cinco intentos encontrar el correcto, pero al final pude salvar nuestra noche, si no el bote.