Maquinas virtuales dentro de Microcontroladores

Muchos de los usuarios tienen experiencias de la utilización de una máquina virtual. Estas máquinas virtuales son muy útiles para los desarrolladores que tienen que trabajar sobre múltiples plataformas OS. Hay muchas máquinas virtuales corriendo en microcontroladores embebidos, también. Estas máquinas virtuales incorporados están dedicados a un propósito específico. Una gran cantidad de aplicaciones integradas de palanca para reducir la complejidad del sistema, espacio en la memoria, y desplegar el diseño rápidamente. Suena incorrecto, puesto que ejecuta la máquina virtual requiere de recursos adicionales incorporados microcontrolador, y exige conocimientos de programación extra, ya sea. Sin embargo VM incorporados de hecho puede ayudar a los desarrolladores para lograr esos objetivos.
Pcode de PicoWeb
Vamos a ver un proyecto de código abierto, ligero PicoWeb de Ingeniería. Se trata de un proyecto de Ethernet incorporados, se ejecuta en un microcontrolador AVR con una tarjeta Ethernet Realtek. Hace varios años, incrustado conectividad era muy popular, ya que la conectividad de red es una tecnología para permitir que la era de Internet. PicoWeb es uno de ellos, que desarrolló una pequeña versión de la pila TCP / IP y un servidor que ejecuta incrustados en microcontroladores. Tengo que decir a estos tipos son brillantes. Pero PicoWeb es más atractiva entre estos proyectos. Porque he encontrado que todos los contenidos personalizados, no sólo las páginas HTML, sino también los scripts CGI, se almacenan en la EEPROM y se ejecuta en una máquina virtual. Antes de que yo sabía, yo solía pensar cada servidor incrustado debe ser programado individualmente para su propia tarea, y el código y el contenido tenía que ser reprogramados tan pronto como el requisito cambiado. Gracias a la tecnología VM, el HTML / CGI se pueden almacenar en el interior o exterior EEPROM, el firmware en el microcontrolador es idéntico para todos los servidores embebidos. Este enfoque reduce drásticamente la exigencia de personalizados cambio, el tamaño del código y simplifica el tiempo de ejecución de la estructura del programa, en comparación con el código nativo .
Pcode, como el VM de PicoWeb, es un binario VM. El concepto es el mismo que Java. Un desarrollador puede escribir el código con Pcode pseudo código, compilarlo en Pcode binario final. Entonces, el binario Pcode se descarga a EEPROM, un Pcode VM intérprete leerá el Pcode en la EEPROM y ejecutarlo. Por supuesto se puede discutir con VM que me enfoque más a la complejidad de la máquina virtual en tiempo de ejecución adicionales y compilador de apoyo. Sí, de hecho. Sin embargo, es digno. Vamos a navegar por la Pcode instrucciones, usted encontrará una gran cantidad de servicios regulares de bajo nivel de instrucciones (es decir, MOV, XOR, OR, NOT, y JMP CLR), así como algunos de alto nivel de aplicación las instrucciones específicas. Desde Pcode está diseñado para un servidor incrustado, que ha raíz de una solicitud específica de alto nivel instrucciones:
- ps2ee: Copia de SRAM EEPROM,
- ps2see: Copia de SRAM externa EEPROM,
- pwreebi: Escribir a Byte EEPROM,
- pcrlf: Imprimir CR, LF
- psgetcto: Obtener puerto de serie con tiempo de carácter
- pprintse: Imprimir EEPROM serie de la cadena de longitud n
- poksetip: Compruebe si "establecer el período de investigación" permite la operación
- purl2int: Convertir caracteres en la URL a la línea de entero de 16 bits
- ps2x: Mover bytes de memoria para transmitir Ethernet de amortiguación
- y más instrucciones enumerados en la http://www.picoweb.net/download/pw1_pcode.pdf
Entonces podemos concluir cómo y por qué este enfoque reduce la complejidad del software del sistema y reducir el tamaño del código. En el interior del microcontrolador, sólo podemos poner un tiempo real del núcleo, los conductores, y un tiempo de ejecución Pcode motor. Una gran cantidad de nativos específicos de la aplicación de códigos se resumieron y re-programados en Pcode instrucciones, que se almacenan en EEPROM externa. Además, el desarrollador puede incluso ocultar su competencia básica en el interior del microcontrolador con el planteamiento, al tiempo que ofrece flexibilidad en el cambio exterior así como EEPROM. Para obtener más información acerca PicoWeb, por favor, visite www.picoweb.com. Algunos otros diseños de la electrónica pueden beneficiarse de esta idea, como el diseño de la interfaz de usuario personalizada, PLC, aplicaciones y cualquier necesidad de diseño personalizado.
Por supuesto, hay muchos proyectos similares, ya sea de legado o de tecnologías más avanzadas.
- JavaCard de Sun, Java VM en tiempo de ejecución, aplicaciones personalizadas están escritas en Java, descargado y se ejecuta en tarjetas inteligentes. Embedded Java es un tema candente como así. Usted puede encontrar fácilmente proyectos de código abierto para Java. http://java.sun.com/productos/javacard/
- El compilador de BASIC de Intel. El proyecto es bastante antiguo, pero aún mantenego el código. Si cualquier desarrollador está interesado en él, que tiene que portarlo a la plataforma existente, ya que la versión original fue diseñado para funcionar en una SRAM externa. Y desarrollador debe entender el código 8051 de montaje muy bien, porque todos los códigos son elaborados por el compilador 8051. El enfoque de Intel es diferente del de PicoWeb, el usuario de código debe ser en forma de código fuente, el VM de BASIC analiza el código fuente y empieza a interpretar y ejecutar.
- Sello de Basic de Parallax, un compilador comercial para BASIC usado en la Educación, la robótica. http://www.parallax.com/
- NESC de TinyOS, una alternativa en tiempo de ejecución para la creación de redes de sensores. http://www.tinyos.net/
- blog de froa0112
- Inicie sesión o regístrese para enviar comentarios
- %count lecturas

