Opciones de programación distintas a C ++


14

¿Puedo programar mi Arduino usando cualquier lenguaje de programación que no sea C ++? Si es así, ¿qué lenguajes de programación? ¿Qué software necesitaría para compilar y cargar mi código en el Arduino?



Desafortunadamente, este es un duplicado efectivo de una pregunta que no es de Arduino.SE: vea aquí , creo que la pregunta que vinculé debería moverse aquí después de que finalice la beta, pero aún no.
apnorton

@anorton Esa pregunta es sobre IDEs alternativas. Esta pregunta no es un duplicado porque habla de lenguajes de programación alternativos.
tstew

@ user2202326 Lo siento ... Parecía recordar que más personas respondían con diferentes idiomas que IDEs en ese hilo, pero, aparentemente, estaba equivocado. Continua.
apnorton

Puede consultar Netduino si está familiarizado con C # (Visual Studio es el camino a seguir, pero hay otras formas de compilar código C #). Sin embargo, no sé qué placa tiene y si es compatible. netduino.com
Jason Down

Respuestas:


5

Algunos conocidos comúnmente:

En teoría, debería poder extender avr-gcc para admitir otros idiomas, aunque esto no es una tarea pequeña. También debo advertir que el soporte para lenguajes que no sean C generalmente viene con algunas restricciones bastante pesadas sobre los componentes del lenguaje; por ejemplo, incluso con C ++ se desaconseja crear instancias de nuevos objetos mallocy freees extremadamente costoso tanto en espacio de memoria como en ciclos.

Además de usar Google, se aplican las siguientes referencias Haga clic aquí.


8

En teoría, se podría usar cualquier compilador que genere ensamblaje AVR (limitaciones de módulo en el tamaño del código, uso de ram, etc.).

Existen backends AVR para LLVM y GCC , por lo que, en teoría, con un poco de esfuerzo, la mayoría de los lenguajes compatibles con LLVM y los front-end de GCC podrían compilarse en AVR. Una gran pregunta será el soporte de la biblioteca, etc.

Sin embargo, aquí hay un par de opciones extrañas para el espíritu de la pregunta, en lugar de su letra [1].

  • AMForth , un cuarto dialecto se puede mostrar en un Arduino.
  • AVR-Ada : Ada para microcontroladores AVR.
  • BÁSICO : ¡Trae de vuelta el Goto!

¡Ah, y podrías escribir Asamblea AVR sin procesar !

[1] - ¡No he probado esto sin embargo!


2

También hay algunas personas que trabajan en sistemas basados en Javascript node.js. Uno que ya está disponible públicamente es Espruino y otro es Tessel, que se lanzará en la primavera de 2014.


1

Debido a que avr-g ++ debería admitir todas las construcciones estándar de C / C ++, es posible codificar el ensamblaje en línea. Más información sobre este hilo del foro arduino.cc


El ensamblaje en línea no es parte de los estándares C / C ++, pero gcc y el compilador de microsoft c lo admiten, aunque de manera incompatible.
tbodt

cierto, y también lo hace avr_gcc.
Faux_Clef

No hay nada mejor que escribir código ejecutable en hexadecimal de todos modos.
Faux_Clef

1

¡Me sorprende que nadie haya mencionado la Asamblea AVR !

No se suele pensar que el ensamblaje sea el método de programación más interesante, o incluso fácil, pero no obstante, es 100% posible con todos los arduino basados ​​en AVR. Es probable que las placas SAM no funcionen con este sabor, pero aún es posible usar el ensamblaje en su programación.

Todas las placas Arduino (a partir de la publicación) admiten la programación de ensamblaje a través de Atmel Studio , el SDK hecho para chips basados ​​en Atmel.

El ensamblaje es compatible de forma ingenua con todos los dispositivos Atmel y no requiere un cargador de arranque para funcionar, por lo que todos los programas son inherentemente en tiempo real.


2
Tenga en cuenta que el ensamblaje también es compatible con la cadena de herramientas gcc, que se incluye en la instalación de Arduino IDE.
Edgar Bonet

@EdgarBonet Correcto, por eso __asm__("Assembly code here")funciona agregar un ensamblaje en línea a cualquier boceto. Sin embargo, para la mayoría de los programas, esta es una mala idea, ya que es difícil lograr la independencia de la plataforma con este método.
tuskiomi
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.