Embedded C ++ se está apoderando del mundo incrustado. C ya no es un lenguaje muy bueno para programar microcontroladores. C ++ es mucho mejor, y en realidad puede generar código más pequeño que C debido a las optimizaciones modernas del compilador. Debe aprender el desarrollo impulsado por pruebas incrustadas usando Google Test (GTest) con Google Mock.
mbed es una de las mejores API de C ++ integradas; Está hecho por ARM y es una de las mejores soluciones de IoT. Descubrí que reduce drásticamente el tiempo de comercialización. Si necesita optimizar algo, proporcionan fuente de C con envoltorios de C ++ para que pueda descargar el código y modificar la biblioteca mbed de bajo nivel muy rápidamente. Estoy trabajando en un marco de simulación de código abierto para mbed usando GTest llamado mbedBug, pero no se lanzará hasta julio de 2016.
Una de las mejores cosas de C ++ es que puede usar una interfaz virtual pura con implementaciones privadas (PImpl) para crear plataformas de prueba potentes muy robustas. Es mucho más rápido desarrollar software embebido en x86 nativo dentro de Visual Studio o Eclipse con hardware burlado; especialmente si también estás haciendo una aplicación. Una gran cantidad de código para el que realmente no necesita un tiempo estricto, por lo que puede salirse con un PImpl que registra sus llamadas de función a través de GTest. Puede intercambiar sus interfaces virtuales en la fase de enlace para emular requisitos de tiempo estrictos. ¿Por qué usaría un analizador lógico cuando puede falsificar el hardware y dibujar los datos directamente en la pantalla? Es más fácil depurar en la consola en lugar de un terminal serie o un depurador MCU.
- Amo programar y he aprendido programación solo. Creo que puedo aprender a programar solo. ¿Es un desperdicio si hago un título en ingeniería informática en lugar de un título en ingeniería electrónica?
- ¿Los diseñadores de enfriadores de computadoras portátiles conocen el umbral de vibración de las computadoras portátiles?
- Soy un ingeniero eléctrico (de circuitos) voluntario para ayudar a los estudiantes de secundaria a fabricar un robot. ¿Qué necesito saber teniendo en cuenta que solo hago circuitos?
- ¿Qué cursos en un colegio o universidad necesito tomar para convertirme en ingeniero de hardware?
- ¿Debo hacer una licenciatura en ingeniería informática mientras mi interés era la mecatrónica y la robótica?
Python también es muy útil para las secuencias de comandos. mbed lo usa para pruebas automatizadas. Muchos ingenieros me contaron historias exitosas de cómo Python salvó el día. Python se usa en Google Test, así como en SCons. Python es bueno para configurar scripts de prueba para servidores para productos IoT. Cuando necesita ejecutar una prueba, usa Python para intercambiar su base de datos con sus datos de prueba. Recomendaría el Bitnami Django Stack para todas sus necesidades de Python de IoT.
Este es el mejor video que he encontrado en C ++ TDD incorporado.