Quiero empezar a hacer dispositivos y Leo sobre microcontroladores y otras cosas en Internet. Me pregunto si hay otros idiomas al programa microcontroladores con además de C.
Respuestas
¿Demasiados anuncios?Los Chips no utilizan directamente el C a todos. Tienen conjuntos de instrucciones que varían enormemente entre los diferentes arquitecturas.
Como un muy bajo nivel de abstracción de estos conjuntos de instrucciones, la mayoría de los fabricantes proporcionan un ensamblador, a través del cual se puede traducir programas escritos en la correspondiente asamblea de la lengua (que es aproximadamente un más legible de las instrucciones de la máquina) en forma binaria que se puede cargar a su chip.
En el siguiente nivel superior, hay lenguajes como C. C es por lejos el más dominante del lenguaje para programación de microcontroladores en este nivel. Para algunas arquitecturas, también se encuentra el extraño Pascal, BASIC o tal vez compilador de Fortran.
En teoría, la única cosa que usted necesita para utilizar una determinada lengua en una determinada arquitectura es un compilador adecuado (aunque algunos, como Java, C#, etc generalmente dependen de los entornos de tiempo de ejecución, y estos son prohibitivamente hambrientos de recursos para la mayoría de las uCs). En la práctica, no hay muchos compiladores disponibles.
Como las otras respuestas decir, la mayoría de la uC, vienen con toolchains que soporte C y algunos otros lenguajes similares, debido a las grandes lenguas, especialmente aquellos con la recolección de basura, son recursos muy hambriento.
Pero, en el espíritu de Atwood de la Ley: "Todo lo que eventualmente será portado a Javascript", yo les doy el Espruino, "El primero en el mundo del JavaScript microcontrolador para principiantes o expertos.":
Como us2012 dijo, un µc, en realidad, no ejecute el lenguaje C en todo. Que en su lugar se ejecuta el lenguaje de máquina, que es una representación binaria del conjunto de instrucciones del µc, con los campos de un código de operación (qué hacer), y registrar los prescriptores y/o direcciones (donde se recuperan los datos desde y/o almacenados.) El lenguaje ensamblador es una representación simbólica de este binario en lenguaje máquina.
En el caso del lenguaje C, estas instrucciones de máquina generado por un compilador de C, que casi siempre se ejecuta en un equipo independiente de la µc (una excepción es Linux embebido, que incluye el compilador gcc, que se ejecuta en un µc con los recursos suficientes para ejecutar un compilador).
Cuando el compilador se ejecuta en un PC, esto se conoce como compilación cruzada. Cada archivo de código fuente que contiene el C instrucciones de lenguaje que se compila por separado, y la salida de cada uno se combinan en un único archivo descargable por el enlazador programa. Este archivo descargable contiene las instrucciones en lenguaje máquina se mencionó anteriormente, y se puede ejecutar directamente en el µc.
Si desea ejecutar un idioma diferente en el µc, que se necesita un compilador diferente para ese idioma. Sin embargo, hay un número de idiomas que no son compilados a código máquina, sino que se compila a bytecode; estos no pueden ser ejecutados directamente por el µc pero en lugar de tener que ser ejecutado por un intérprete que se ejecutan en el µc (una variante es compilar el bytecode en lenguaje de máquina la primera vez que son ejecutados por el intérprete).
Otro candidato lenguaje para la programación de los microcontroladores es Ada. Ofrece muy buenas instalaciones para los de bajo nivel de la programación, así como mejoras en la detección de ciertos tipos de error antes de llegar a la etapa de la ejecución del programa, que me parece que me ayuda a desarrollar considerablemente más rápido que en C. El ejecutable resultante puede ser tan pequeño como C, no es tan sorprendente cuando te das cuenta de que la mayoría de la Gnat compilador Ada es el mismo que el optimizador de sitios y generador de código como el más común el compilador de C (gcc).
Otra ventaja es que el código puede ser mucho más legible que C; otra manera de hacer que los problemas más fáciles de eliminar.
Más allá de los más pequeños microcontroladores, también ofrece buenos.orientado a objetos y la multitarea instalaciones; el equivalente de un RTOS es incorporado en el lenguaje.
Dos desventajas:
Ada tiene un inmerecidamente mala reputación heredado de un 30 años de edad, versión que es raro encontrar hoy en día - puede que oiga muy emocional reacciones en contra. Ada-2005 es un idioma muy diferente...
Y no todo el microcontrolador tiene un compilador Ada y herramientas. Dos de las más populares que hacer, son los Atmel AVR (así que usted puede programar sus placas Arduino en Ada) y el de Texas Instruments MSP430 de la serie. También hay Gnat construye disponible para muchas variedades de el procesador ARM, incluyendo la Raspberry Pi distribución Debian.
Cualquier otro GCC objetivo potencialmente puede soportar Ada, aunque la creación de GCC que no es, generalmente, un proyecto trivial...
Como uno de los otros usuarios comentó debajo de tu pregunta, Arduino es muy popular y versátil en términos de proyectos y aplicaciones. Tiene su propio lenguaje que es muy similar a C... por ejemplo declarando las variables, las bibliotecas y hacer llamadas a funciones. Sin embargo, tiene algunas de sus propias funciones inherentes que tendrás que aprender la sintaxis de.