surgir - ¿Qué es un buen lenguaje de scripting para un pequeño sistema embebido?
sistemas embebidos programables (9)
Estoy buscando un lenguaje de secuencias de comandos que pueda incluirse en un sistema integrado para permitir al usuario configurar previamente el comportamiento de la unidad en función de los eventos del sistema (cambios de puerto de E / S, eventos de tiempo ...). El tipo de control requerido es
if (some_event)
{
do some stuff
delay N seconds
do more stuff
if (some condition)
{
do something
}
else
{
delay until condition
do something else
}
}
Cada una de las partes de "hacer cosas" normalmente consistiría en cambiar el estado de la IO o permitir / rechazar el procesamiento de uno o más eventos.
No hay requisitos para el procesamiento de texto o el manejo de archivos a menos que la implementación del lenguaje de scripting lo requiera internamente.
El procesador que estoy usando tiene unos 8K de RAM y 20K de tienda de programas disponibles después de que se haya construido el código de operación normal. El firmware está escrito en C, por lo que cualquier fuente para el lenguaje de scripting también debe estar en C.
Espero que estos te ayuden a incrustar el script perl en aplicaciones c
http://www.ibm.com/developerworks/linux/tutorials/l-perlscript/index.html
Solo búscalo en Google para obtener más información. Creo que Perl te ayuda mucho en la búsqueda de patrones (cadenas). Para aprender perl sigue este tutorial.
http://mj12net.org/courses/perl/Teach%20Yourself%20Perl%20in%2021%20Days.pdf
Es un buen tutorial, puedes explorar más de lo que piensas. Gracias
Hay cuatro idiomas bastante comunes para incrustar (sin ningún orden en particular):
De estos, Lisp y Forth son posiblemente los menos amigables para el usuario final. Actualmente, Lua parece ser el más popular (es muy popular en el mundo de los videojuegos), podría decirse que el Tcl es el más sencillo de aprender (solo 12 reglas para todo el idioma) y es el lenguaje de facto en el mundo EDA.
Le daría una oportunidad a Lua, ya que es un lenguaje de script muy pequeño. Puede ser totalmente integrado
Lua es un motor de lenguaje rápido con un tamaño reducido que puede integrar fácilmente en su aplicación. Lua tiene una API simple y bien documentada que permite una fuerte integración con el código escrito en otros idiomas. Es fácil extender Lua con bibliotecas escritas en otros idiomas. También es fácil extender programas escritos en otros idiomas con Lua. Lua se ha utilizado para extender programas escritos no solo en C y C ++, sino también en Java, C #, Smalltalk, Fortran, Ada, Erlang e incluso en otros lenguajes de scripting, como Perl y Ruby.
Para sistemas embebidos, intente eLua .
También puedes probar JavaScript, el motor V8 de Google es muy fácil de incrustar. Además, el lenguaje en sí mismo es muy pequeño, por lo que puedes adaptarlo a algo que sea adecuado para tu dominio.
Tuve una buena experiencia con el uso de peones ( http://www.compuphase.com/pawn/pawn.htm ) en un proyecto anterior. Una derivada de esto también se usa en el entorno de escritorio "E17", lo llaman "embrión". ( https://trac.enlightenment.org/e/wiki/Embryo ).
Una opción tradicional es Forth . Los sistemas embebidos pequeños, como los microcontroladores, son la plataforma elegida por Forth. Hay muchas implementaciones de Forth con diversas características, plataformas de destino y licencias. El Forth Interest Group tiene una lista de implementaciones comerciales e implementaciones no comerciales .
Usamos Squirrel para este trabajo. Es similar a Lua , pero la referencia se contabiliza en lugar de la basura recogida, por lo que tiende a funcionar mejor en la memoria muy limitada . En el lado negativo, su comunidad es mucho más pequeña.
También he visto Lisp incrustado con éxito, particularmente un derivado similar a un esquema.
Vea también esta otra pregunta de : ¿Cuáles son los idiomas interactivos disponibles que se ejecutan en una pequeña memoria?
Lua es mi primera opción como lenguaje incrustado. Está escrito en C, es fácil exponer sus propias funciones a Lua, y por su aspecto, se ha realizado un trabajo para que funcione en sistemas integrados .