¿En qué escenarios se puede preferir C ++ sobre C en el desarrollo de sistemas integrados?

Usar C ++ para sistemas embebidos es muy común. Lo he usado yo mismo para dispositivos médicos de clase III que eran de metal desnudo.

Para usar C ++ en incrustado, considere sus limitaciones como lo haría para cualquier diseño. En un extremo, si está muy limitado, evite usar bibliotecas innecesarias, manténgase alejado de ‘nuevo / eliminar’, no use excepciones y oculte sus constructores predeterminados y de copia para evitar instancias ocultas. Luego, disfrute de la poderosa semántica orientada a objetos de C ++ sin costo adicional sobre C.

Si no tiene limitaciones de memoria o rendimiento, puede usar todas las herramientas de C ++ y ahorrar mucho tiempo durante el desarrollo, al tiempo que aumenta la solidez y la capacidad de mantenimiento de su sistema. Las excepciones son un gusto adquirido, así que no las use si no las quiere.

Básicamente, C ++ le brinda la capacidad de programar objetos independientes con interfaces claramente definidas. Puede ver cómo esto impacta positivamente todo, desde la prueba de la unidad hasta las actualizaciones.

Si está escribiendo un código incrustado simple y no está familiarizado con C ++, probablemente será más rápido e igual de sólido usar C. Pero si tiene múltiples piezas interactivas, la inversión en aprender a hacer codificación OO será rentable fuera una y otra vez.

En los sistemas embebidos en tiempo real, como los sistemas de armas donde hay una gran cantidad de sensores y subsistemas, se prefiere C ++. Porque, el sistema necesita una arquitectura complicada basada en el sistema operativo y un lenguaje orientado a objetos (C ++) satisface este requisito.

“¿En qué escenarios se puede preferir C ++ sobre C en el desarrollo de sistemas integrados?”

Respuesta: Siempre que su SDK y frameworks admitan C ++.

No es inusual que el compilador para el sistema integrado sea compatible con C ++, incluso para un sistema de metal desnudo. No necesita preocuparse por el uso de la memoria y el tamaño del código. Al compilador moderno le está yendo muy bien en la optimización.

Creo que si hubiera incorporado Linux, o tal vez Windows CE, con una gran cantidad de RAM y soporte de memoria virtual, junto con una aplicación grande y complicada, C ++ podría ser una buena opción.