¿C ++ es viable para una línea de sistemas integrados? Me encanta C ++ por su flexibilidad, pero ¿crees que se corta en esa línea? Si es así, ¿por dónde empiezo?

Yo diría que un subconjunto razonable de C ++ 17 es realmente perfecto para la programación integrada. Probablemente desee deshabilitar las excepciones y probablemente no pueda usar la Biblioteca estándar de C ++, pero todo lo demás es un juego justo.

La optimización se beneficia de las funciones constexpr, plantillas simples, destructores y un aumento general en la legibilidad que supera con creces cualquier legado que C traería.

He programado microcontroladores en C89 y C ++ 03, por lo que realmente no veo ningún beneficio de ‘degradar’ a C, porque un compilador de C ++ siempre puede compilar fragmentos de C.

Otras personas son más supersticiosas y odian C ++ con pasión por alguna extraña razón: nunca he entendido realmente a esas personas. Resulta que incluso los programadores son solo personas y pueden expresar odio ignorante contra cosas que no entienden. La mayoría de las veces, los programadores C integrados desalientan C ++ simplemente porque no entienden sus paradigmas.

Dan Saks en realidad explica esto perfectamente; No es un problema de software, es un problema de personas. Le recomiendo que use lo que le resulte cómodo e ignore el odio; al final, lo único que importa es si su código es más corto, más rápido y menos propenso a errores.

Además, aquellos que piensan que C es más rápido que C ++ en dispositivos integrados, aquí hay un gran video que muestra cómo C ++ puede ser más rápido que C si lo usa un experto:

C ++ usa pilas más grandes y más asignación de memoria que C.

Eso lo hace menos adecuado para el desarrollo integrado. También hace menos creación dinámica de objetos en sistemas embebidos, y ahí es donde C ++ tiene una ventaja sobre C.

En general, para el desarrollo integrado, C es mejor que C ++.

La gente usualmente usa C, creo.

La palabra “incrustado” a veces puede ser un poco vaga porque puede describir una amplia gama de configuraciones de hardware. Si el sistema “incorporado” ejecuta un sistema operativo como Linux o CE, entonces C ++ debería estar bien. Si el hardware tiene significativamente menos recursos, es posible que C ++ no sea apropiado. Podría verse obligado a usar C, independientemente.

Me siento más viejo que la suciedad, a veces; para mí, la palabra “incrustado” significa “microcontrolador”. Yo uso ensamblaje para esos. Recuerdo lo sorprendido que estaba el día que supe que 386 se estaban utilizando en sistemas embebidos.

¿C ++ es viable para una línea de sistemas integrados? Me encanta C ++ por su flexibilidad, pero ¿crees que se corta en esa línea? Si es así, ¿por dónde empiezo?

More Interesting

¿Los sistemas integrados son parte de IoT?

¿Qué son los makefiles en el mundo del hardware y cómo se importa Arduino a un tercer SoC ARM como Nordic?

¿Cómo es el crecimiento profesional en sistemas embebidos para una nueva en Robert Bosch, Bangalore? También tengo un trabajo de software que paga más que Bosch, ¿alguna sugerencia?

¿Qué dispositivo debo usar? Arduino o RaspberryPi?

¿Realmente necesitamos conocer todo el hardware del microcontrolador para desarrollar un sistema integrado con diferentes placas de microcontrolador de código abierto disponibles en el mercado?

¿Cuál es la mejor manera de aprender C incrustado?

¿Qué es una plataforma integrada asequible para practicar la programación de firmware para protocolos de red inalámbrica?

¿Puedo grabar el programa 8051 en atmega8?

¿Qué es Embedded Computer Vision y en qué se diferencia de Embedded Systems en términos de aplicaciones y carreras?

¿Qué curso es mejor, sistemas integrados o PLC y SCADA?

Estoy interesado en continuar en el dominio incrustado y actualizarme con nuevas tecnologías. ¿Qué industrias / empresas puedo abordar?

¿Cuál es el mejor entre los sistemas embebidos y el diseño VLSI para un estudiante completado y cómo?

¿Qué son los microcontroladores y cómo se utilizan para operar una máquina?

¿Qué conceptos de sistemas integrados debería saber como gerente de producto?

Mirando el SOC de los microprocesadores y microcontroladores, creo que no hay diferencia entre los dos, ya que ambos pueden reemplazarse entre sí. ¿Es correcto este entendimiento?