El diseño de sistemas integrados es tan complejo como el proyecto / aplicación, al igual que la programación de aplicaciones estándar.
Mi primer proyecto para mi segundo empleador fue tan simple como leer 4 GPIO y encender 8 LED basados en combinaciones de GPIO activados. Básicamente fue esto:
int input = 0;
- ¿SemVer solo es bueno para icebergs (software con una pequeña API expuesta)?
- ¿Cuáles son sus actividades diarias como ingeniero de DevOps en su proyecto actual?
- ¿Cuánto dinero se necesita para vivir en Nueva Zelanda durante un año?
- ¿Por qué no podemos tener un lenguaje de programación para gobernarlos a todos?
- ¿Por qué es tan popular Google Guice para la inyección de dependencia durante la primavera?
mientras que (1) {
input = read_gpio (PORTA) & 0xF;
interruptor (entrada) {
caso 0x1:
write_gpio (PORTB, 0x1);
rotura;
//pronto…
defecto:
write_gpio (PORTB, 0);
}
}
a partir de ahí, pasé a proyectos que son muy complejos en varios grados, desde sistemas de control para máquinas críticas para la seguridad hasta prototipos de productos de consumo.
Pero de todos ellos, este sencillo con código simple fue el más difícil. No porque no haya recibido capacitación ni nada, sino porque tengo un plazo estricto para un aparato que funcione, esté lleno y listo para desplegar. Básicamente tuve un día para organizar las piezas, armarlas, colocarlas en su estructura mecánica, empacar todo, prepararlo para el envío, todo por mi cuenta (tuve ayuda). Fuera de esa programación fue una fracción.
En los sistemas embebidos, escribirás principalmente en C. Por lo tanto, las clases y las abstracciones no son algo de lo que debas preocuparte. La dificultad y la complejidad provienen de lidiar con el hardware directamente. Significa examinar las hojas de datos y los manuales y luego hacer que todo funcione bien con todo lo demás. Créeme cuando te digo que lidiar con hardware te hará desear tener que lidiar solo con abstracción, clases y demás. Además de eso, los sistemas embebidos requieren más ingeniería que programación. Tengo que buscar las calificaciones actuales más de lo que tengo que buscar la documentación de la API.