Define lo que quieres decir con cosas de nivel superior. Escribir controladores y cualquier otro tipo de software que se comunique con el hardware es probablemente lo que la mayoría de la gente piensa cuando menciona el software incorporado. Si bien eso es parte de eso, es solo una pequeña parte. Una vez que tenga toda esa configuración, todavía queda toda la aplicación para escribir que probablemente nunca hable directamente con el hardware y, lo más probable, en la mayoría de los casos, esta es la mayor parte del esfuerzo de desarrollo. En cierto nivel, esto puede ser comparable a la programación de nivel "superior". Sin embargo, en el mundo incrustado probablemente esté trabajando bajo algunas restricciones, especialmente en términos de potencia computacional y memoria. Aquí hay una lista de cosas en las que pienso a diario que probablemente tengan menos importancia en el desarrollo de nivel superior en la mayoría de los casos.
- Concurrencia de hilos (protección y tiempo)
- Asignación de memoria y desasignación y uso
- Gestión de montón (evitando fragmentación)
- Cumplimiento de plazos en tiempo real
- Hilo de priorización
- Rendimiento I / 0
- Transferencias DMA
- Tamaños de pila
- Rendimiento de la biblioteca
- Funciones de idioma (las excepciones aumentan su código)
Además, las plataformas integradas tienden a ser altamente especializadas para lograr un objetivo específico en oposición a una PC que está diseñada para ser una plataforma para la computación de heterogeneidad general. Esto significa que probablemente tenga una gran cantidad de código personalizado que puede ser portátil o no.
Sospecho que está buscando trabajos donde "incrustado" significa "computadora en una caja", generalmente uno que realiza una tarea específica. Es muy probable que ejecute la mayoría de una distribución de Linux o un sistema operativo de Microsoft, pero será bastante completa y podrá usar IDE de GUI estándar, etc. La parte incrustada realmente viene cuando el dispositivo se envía como una grabadora de video multicanal, dispositivo de transmisión de medios o alarma antirrobo.
En estos días, puede hacer mucho procesamiento en un dispositivo de 1W, por lo que la definición de incrustado ha crecido en consecuencia. Pero incluso hace 20 años teníamos dispositivos integrados alimentados por batería que ejecutaban DOS bastante estándar y desarrollamos programas para ellos utilizando el IDE del día (los escáneres de códigos de barras Symbol tenían bibliotecas para C y Pascal, por ejemplo, así que utilizamos Turbo Pascal en Win3.1 para construir los ejecutables). Pero también enviamos "PC industriales" que arrancaron DOS y luego nuestro software, y la entrada se limitó a unos pocos botones impermeables grandes montados en una caja de acero inoxidable. La pantalla LCD de 15 "detrás del vidrio en esa caja significaba que teníamos muchas opciones de salida, pero conectar un teclado significaba abrir la caja (dentro de una fábrica de alimentos). Estas podrían considerarse integradas desde algunas perspectivas. Principalmente que el usuario tenía pocas opciones de recuperación de errores - Ciclo de potencia o no.
fuente