Como programador principiante, solo he trabajado con la programación de aplicaciones basadas en computadora, pero una pregunta se me viene a la cabeza muy a menudo desde que comencé a programar y no puedo responderla correctamente.
Las máquinas no actúan solas, ese es el trabajo del programador, él le dice qué hacer y cuándo hacerlo, pero mi curiosidad se encuentra debajo de las computadoras. Tomaré los ejemplos de un software de cajero automático en esta publicación, pero tenga en cuenta que hay muchos otros, como una pantalla de lavadora o un televisor, teléfono móvil, lo que sea.
¿Cómo se construye exactamente el software para este tipo de máquinas? Me imagino que no puede ser idéntico a la programación basada en computadora. ¿Qué lenguaje usan para hacer que tales cosas funcionen y cómo se hace el trabajo? ¿Hay programadores especializados en este tipo de programación? ¿Cuál es el proceso de hacer que estas máquinas cobren vida?
fuente
Respuestas:
Se conoce como Sistemas Embebidos o Desarrollo de Software Embebido. Recomiendo este libro si desea saber más sobre el proceso general sin tener que ir demasiado hacia ninguna arquitectura. Incluso te ofrece un sistema operativo en tiempo real para jugar.
La programación integrada depende mucho de la arquitectura. Por lo general, está trabajando con una respuesta seria, el tamaño del programa, la recuperación de errores y las restricciones de costos. Por ejemplo, puede tener un z80 (procesador de 8 bits, están en todas partes) y quizás un par de kilobytes de memoria para jugar. Es posible que solo tenga una ROM para indicarle al sistema qué hacer y cómo configurar el programa. También podría tener solo un par de kilobytes de tamaño. ¿Por qué tan poco recuerdo? Bueno, si fabricas 15 millones de pequeños retoños; cada centavo se convierte en $ 150,000.
Te sugiero jugar con algo como Arduino o Scribbler Robots si quieres aprender más haciendo. En lo que respecta a los lenguajes, C, C ++ y Assembly son el conjunto típico, aunque se puede usar Java (y, de hecho, se diseñó originalmente para este dominio si se puede soportar ese pensamiento). Lisp y ML están siendo desplegados.
Aprenda todo lo que pueda sobre arquitectura también porque, como dije, la asignación de memoria y las operaciones bit a bit comienzan a ser realmente importantes.
fuente
Definitivamente hay un ángulo incrustado aquí. Pero en estos días está viendo plataformas cada vez más avanzadas en lo que tradicionalmente se llamarían dispositivos integrados. Por ejemplo, los televisores LG y Samsung ahora tienen API y tiendas de aplicaciones. Los televisores Sony ejecutarán Android.
fuente
He visto dos cajeros automáticos abiertos en Denver, Colorado. Ambos eran (entonces) cajeros automáticos de Compass Bank, y ambos eran Windows XP bajo el duro caso. Le pregunté al técnico qué, específicamente, uno de ellos corrió, y él dijo algo así como "XP Embedded".
Por lo tanto, apuesto a que la programación de cajeros automáticos se parece menos a la programación integrada en estos días y más al desarrollo estándar de Windows.
fuente
Estos tipos de dispositivos se programan mediante programación integrada . Este es un tipo de programación de muy bajo nivel que se ocupa en gran medida de la lógica y las puertas.
Si está interesado en aprender programación incrustada de forma práctica, le recomendaría que busque en arduino .
fuente