JavaRush /Blog Java /Random-ES /En teoría sobre bytecode, JVM y microcontroladores | Códi...
Gro
Nivel 19
Минск

En teoría sobre bytecode, JVM y microcontroladores | Código Java para MK

Publicado en el grupo Random-ES
Proyecto de artículo. En última instancia, escribiré varios artículos tipo wiki, de acuerdo con el siguiente esquema:

Tema: Dónde y cómo funciona Java
- Acerca de la estructura de Java
- Acerca del hardware
- Cómo funciona este software en el hardware

El artículo trataba sobre los problemas que encontré. Habiendo estudiado la información, la complementé con respuestas.
Es una mezcla de los temas anteriores.

¡Hola!

Prefacio (Offtopic)
Tenía y todavía tengo un deseo creciente de construir algún tipo de unidad completamente física.
Una unidad basada en una idea simple que me absorbió por completo.
Una idea que marcó el rumbo de mi desarrollo durante los próximos diez años.
En teoría, el diseño de un dispositivo ya está medio listo, implementando una pequeña parte de las capacidades de ese coloso planeado.

Ahora mismo, al finalizar el diseño semiacabado, después de sumergirme en los componentes con más detalle, me encontré con la necesidad de controlar los servomotores y, en consecuencia, programar algunos "cerebros".

Aquí es donde entran una serie de preguntas, que se pueden resumir en “¿Es posible y cómo forzar al MK a ejecutar código Java?”




Cuerpo. Detalles sobre las preguntas.
Recordemos que el código java que escribimos se convierte en código de bytes, que, a su vez, es interpretado por la JVM en código máquina, código formado por comandos entendidos por el hardware. Todo el mundo entiende el motivo de esta situación particular: portabilidad/portabilidad junto con una mayor velocidad (en comparación con los lenguajes de interpretación simple).

Después de descubrir esto, tuve preguntas que quedaron sin respuesta, surgieron y ahora se complementaron con otras nuevas.
1. ¿Es posible, utilizando herramientas JVM estándar, convertir completamente todo el código de bytes en código de máquina a la vez/compilarlo?
Si es falso, ¿existen herramientas de terceros? ¿Al menos de alguna manera?

2. ¿La JVM admite microcontroladores/controladores? (No sé mucho sobre los “cerebros” de hierro; si alguien lo sabe, por favor dímelo).
Si es cierto, ¿existen diferencias/características especiales al trabajar en nuestras PC habituales?




¡Actualizado! 09.04
Acerca de 1. No es posible ejecutar el código a la velocidad de la máquina usando una herramienta estándar (es decir, JVM), al menos eso es lo que nos dice la wiki , pero a partir de ahí quedó claro que existe una herramienta de terceros: GCJ . Es una alternativa a la JVM y tiene una gran ventaja en su arsenal. No pude encontrar información exacta sobre las plataformas (hardware) para las que se admite la compilación: "muchas".
La diferencia entre código de bytes y código nativo:
1) el nativo se inicia más rápido
2) No hay garantías de que el nativo funcione más rápido
3) Como creo, el nativo no soportará el sistema operativo ni la JVM, lo que afecta significativamente la cantidad requerida para funcionamiento del programa ROM .

Quizás esta solución pueda actuar como alternativa a la versión ME .
(Pregunta importante, porque:
1) No se sabe si GCJ admite plataformas de hardware de bajo rendimiento.
2) No hay información sobre el rendimiento de este código.

Actualizado. 11.04
Acerca de 2. Cualquier versión del lenguaje Java, ya sea ME, SE o Embedded, funciona en conjunto con el JRE y se interpreta. Excepto el caso anterior y los dos futuros que se describen a continuación.
En primer lugar, hubo intentos de sacar el sistema operativo de la cadena, reemplazándolo con su propia herramienta exclusivamente orientada a Java. Sobre lo que es, aquí .
En segundo lugar, resultó que existen procesadores orientados a Java, su característica es un coprocesador incorporado que interpreta el código de bytes en el hardware (! no en el software) y lo envía para su ejecución.
Lea más sobre Jazelle .
Es rico aquí .


Offtopic
La idea en cuestión es la “retroalimentación”, un tipo específicamente implementado en el futuro prototipo: presión/resistencia a la presión.
Toma esta oportunidad para. Leyendo a personas de niveles 15-25, creemos una pequeña comunidad para la comunicación/tete-a-tete. Porque solo no hay agallas y, lo que es más, horror total.

Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION