¿Cuál es el mejor lenguaje de programación para sistemas embebidos?

Como la mayoría de las respuestas comienzan, depende. Si quieres una respuesta algo precisa de bala de plata, entonces es C.

La razón por la cual C es el lenguaje preferido / popular está muy directamente relacionado con el diseño rápido del compilador. C tiene una gramática muy concisa. Esto hace que la escritura y la optimización del compilador sean más rápidas y fáciles. Esto hace que la mayoría de los proveedores de hardware siempre proporcionen el compilador de C junto con el hardware.

Imagine escribir un compilador Python / C ++ / Java para microcontroladores FRDM pequeños o hardware especial en 2 meses. Aunque es posible, pero el costo es mucho en comparación con C. Por lo tanto, los proveedores de hardware prefieren C. Además de C ++ para la mayoría de los otros lenguajes, de todos modos tendrá que construir primero un compilador de C. Entonces, ¿por qué gastar ciclos de software creando un compilador para otro idioma a menos que tenga un mercado de compradores muy grande y exigente?

Entonces, esencialmente puede ser cualquier idioma para el que tenga un compilador disponible que en el mundo de hoy es principalmente C. Puede decidir construir su propio compilador para su idioma favorito, pero tiene que haber una razón convincente para hacerlo.

Integrado vs Desarrollo de aplicaciones
El desarrollo de aplicaciones es una programación de alto nivel donde aparece un lenguaje más sofisticado como Java , C #. A pesar de que resumen muchas cosas subyacentes que no le dan tanto poder a un programador, donde incrustado hay más poder para comunicarse con el hardware en lugar de una codificación de alto nivel para que estos lenguajes modernos no encajen.

Embedded C es la opción más adecuada.

También con la introducción de Ardunio y Raspberry pi, hace la vida más fácil de codificar.

Confesión: ¡NO SOY UN EXPERTO INCREMENTADO!

C, C ++, Java, Python son principalmente lenguajes utilizados.

Según la encuesta, hoy en día la mayoría de los sistemas integrados e Internet de las cosas (IoT) están utilizando la programación C.

Vamos a saber … ¿Por qué C …?

  • Lenguaje orientado a procedimientos (sin objetos).
  • Disposición de insertar los códigos del lenguaje ensamblador en la línea intermedia para obtener un control de hardware directo.
  • Es un ‘nivel medio’, con características de ‘alto nivel’ (acceso al hardware a través de punteros).
  • La aplicación se puede escribir en C más fácilmente que el lenguaje ensamblador
  • El programador no necesita ser muy minucioso con la arquitectura del procesador.
  • El código desarrollado en C es más portátil y eficiente.
  • Gestión de la memoria

El compilador C estándar se comunica con los componentes de hardware a través del sistema operativo de la máquina, pero el compilador C para el sistema integrado se comunica directamente con el procesador y sus componentes.

Desde el punto de vista de un ingeniero de verificación de diseño de CPU, Asamblea es la respuesta. Razones:

  • La CPU solo entiende binarios. El ensamblaje es el siguiente nivel de abstracción. Usar C es como involucrar un tercer nivel y una etapa más de traducción.
  • mirando las instrucciones nos dice el estado del procesador y los periféricos directamente.
  • Durante la depuración, los códigos C todavía tendrán que desglosarse para desmontarlos para ver el código de ensamblaje traducido y ver el estado del procesador.

Pero escribo solo casos de prueba limitados para verificar la funcionalidad de la CPU. Así que felizmente puedo seguir usando .asm.

Para crear software embebido, escribir en ensamblado no es práctico. Miles de líneas de código y muchos saltos en el código, el seguimiento de ubicaciones de memoria variable, etc. será demasiado. Entonces, diría, gracias a Dios que a alguien se le ocurrió C, para que tengamos todo el software integrado que vemos hoy.

La cosa es que es un campo tan amplio.

El hardware de gama alta contiene PC con Linux o Windows. Simplemente escribe código en cualquier idioma.

Avionics todavía usa ADA, que yo sepa.

Los chips de gama baja pueden ser compatibles con C ++ y, si no, casi con certeza C.

Todos los chips admiten su propio lenguaje ensamblador.

Raspberry Pis tiene un buen Python en ellos.

¡No hay una respuesta única!

Yo, tomaré el lenguaje de más alto nivel que se ejecuta en el chip de destino cada vez.

Gracias A2A

Con mucho, C es el mejor lenguaje para ejecutarse en sistemas embebidos, ya que es lo más cercano que puede llegar al hardware después del ensamblaje.

Lo siguiente que creo es C ++. Es un subconjunto de C, es decir, tiene todas las funciones de C más algunas de las funciones orientadas a objetos también.

Java, para su uso en Android.

Python para su uso en Raspberry Pi. De hecho, este es el idioma oficial de Pi.

Espero haber ayudado.

Salud.

Me atreveré a decir que el lenguaje ensamblador es el mejor lenguaje de programación para sistemas embebidos.

Lo sé, sé que no es la mejor práctica, pero el nivel de optimización que puedes lograr es tremendo. La NASA solía escribir todos sus códigos en ensamblador incluso cuando C estaba disponible.

Por ahora, C se usa principalmente. A veces C ++ también. También, ahora, tenemos compiladores que proporcionan una muy buena optimización de código. 🙂

Para la programación de algunos dispositivos integrados, se utiliza principalmente Embedded C.

Pero nuevamente diciendo que depende de los diferentes tipos de microcontrolador / microprocesador. Por ejemplo

  • Raspberry Pi: Python se usa principalmente debido a su flexibilidad
  • Microcontrolador Atmel AVR – C incorporado
  • Arduino – C, C ++, Asamblea
  • ESP8266 NodeMcu – lenguaje de programación LUA
  • PIC10Fxx – Montaje

de la lista anterior de microcontroladores, NodeMCU es muy barato y cuesta aproximadamente $ 4, que es equivalente a Arduino, solo puede programarse con LUA y el microcontrolador de la familia PIC es muy barato y cuesta menos de $ 1 solo puede programarse con lenguaje ensamblador.

Si desea un proyecto pequeño, debe usar el controlador NodeMCU o PIC para reducir el costo del proyecto. En este caso, debe usar solo LUA o Ensamblado en lugar de C o Embedded C.

Los sistemas integrados tienen pocos recursos en comparación con las computadoras reales. Es por eso que en la mayoría de ellos el código está escrito en C, C ++ o directamente con ensamblaje para bucles críticos.

Son los idiomas que utilizamos en mi empresa para su sistema integrado.

C es el lenguaje de programación integrado más utilizado, con compiladores disponibles para casi todos los microprocesadores, microcontroladores y núcleos de procesadores del mercado.

Aunque C es un lenguaje estructurado, ofrece una gran flexibilidad, lo que permite escribir código que es bastante legible, pero con la ofuscación una opción fácilmente disponible.

C con ensamblaje es el lenguaje de programación más preferido para sistemas embebidos:

El mejor lenguaje de programación para sistemas integrados.

¿Sugerencias para el lenguaje más apropiado (el mejor) para programar un sistema embebido?

En nuestro caso, utilizamos los siguientes lenguajes de programación para el desarrollo integrado:

1. C

2. C ++

3. PHP (ejecutándose en el servidor Apache)

4. Lenguaje ensamblador

Casi todos los sistemas integrados están escritos en C o C ++. Unos pocos, particularmente en el área militar, están en Ada. He hecho sistemas embebidos en Pascal, y he oído hablar de sistemas en Forth. Pero C es el favorito abrumador.

Muchos idiomas se utilizan para sistemas integrados de manera diferente.

En primer lugar, debes aprender a ensamblar y programar en C.

Las mejores prácticas para principiantes para seguir la programación de Embedded C.

Aquí puede encontrar el artículo sobre Programación Embedded C.

Hay varias opciones como:

  • C
  • C ++
  • Java
  • Python (creo que en frambuesa pi)

Pero la convención más extendida y el verdadero negocio es
“C”, eso es todo.

/ * No sé por qué quora hizo colapsar mi respuesta. Quiero decir que es absurdo escribir ensayos y párrafos largos, aunque la respuesta podría haber sido una sola palabra.
* /

1) C ++

2) Python

3) C # y Java

He usado los 4 de estos y ahora lo estoy clasificando en función de la facilidad de uso, la facilidad para hacer el código fuente y la depuración de errores, el tiempo que lleva la ejecución (mientras realizo operaciones a gran escala).

No existe el mejor lenguaje de programación: puede decir qué idioma es mejor para su aplicación en particular. Depende completamente de lo que desee hacer, qué tan robusto desee su código o cuánta flexibilidad necesite. Hay otras cosas como la cantidad de tiempo que pasa y cuán complejo será. También es posible que desee ver qué tan reutilizable desea que sea su código para futuros proyectos. Puedes confundirte.

Por ejemplo, un sistema integrado que controle su automóvil necesitará una codificación muy crítica y precisa en comparación con algo que vaya a un juguete.

Tanto C como C ++ son igualmente adecuados para sistemas integrados. Estoy trabajando en el dominio de Avionics y está lleno de sistemas integrados.
A lo largo de los años, he visto que C ++ se adopta ampliamente para muchos productos de aviónica sobre C, debido principalmente a su enfoque orientado a objetos. El uso de C se reduce relativamente. Pero eso no significa que C no sea bueno. Todavía codifico en C y me encanta.

Lea este artículo [http://bit.ly/2Dmojke] para obtener más detalles sobre qué aprender a ser un buen ingeniero de diseño integrado.

Hay C, Assembler, Ruby and Go

Debería probar el marco de trabajo de Golang para robótica, informática física e Internet de las cosas (IoT)

C segundo mejor para el montaje. Ofrece un control más preciso sobre los recursos del sistema con el menor uso del mismo.