¿Es necesario aprender sobre la arquitectura del kernel y la programación del controlador del dispositivo para convertirse en un desarrollador integrado? ¿Cuál es la importancia de eso?

Personalmente, creo que siempre es mejor ir de manera secuencial. Es mejor convertirse en un maestro antes de dar el siguiente paso. Creo en eso y recomiendo lo mismo para todos mis estudiantes en mi academia.

En mi opinión, siempre es mejor comenzar con C. Mejorar las habilidades lógicas, las habilidades de resolución de problemas y las habilidades analíticas. Será maravilloso desarrollar de 2 a 3 proyectos desde cero aplicando principios de ingeniería de software. Uno debería convertirse en un maestro en eso.

Luego tome un microcontrolador y desarrolle la comprensión de lo interno. Uno debe tener una idea básica de la electrónica, puertas lógicas, registros, arquitectura de la computadora antes de tratar de entender el microcontrolador. Comience a desarrollar programas simples con entradas y salidas digitales. Intente agregar complejidad utilizando un teclado y una pantalla de matriz lcd. Explore los motores de CC, los motores paso a paso y cómo controlarlos con PWM. Explore los protocolos de comunicación en serie que comienzan con UART. Obtenga conocimiento de I2C y SPI. Es mejor pasar un tiempo considerable en esta fase para comprender la arquitectura del hardware, los esquemas, la resolución de problemas, la arquitectura del firmware, la depuración del código y la aplicación de todos los principios de ingeniería.

Al menos una persona debería ver todas estas cosas trabajando en proyectos reales durante un mínimo de 2 años. La mayoría de los proyectos integrados pertenecen a esta categoría.

Si quiere explorar sistemas basados ​​en Linux, es mejor comenzar después de 2 a 3 años de trabajar en proyectos reales con microcontroladores. Antes de acercarse a Linux, es mejor obtener un buen conocimiento de los principios operativos del sistema. ¿Cuál es la necesidad? gestión de proceso; comunicación entre procesos, resolviendo conflictos usando semáforos, mutex; Comprender cómo OS gestiona la memoria y mantiene el contexto de los procesos individuales.

Sin la exposición relevante y la comprensión conceptual, no hay ningún beneficio en obtener la comprensión de pocos comandos del kernel y pocos controladores de dispositivos.

Muchos recién graduados están siendo guiados (¿o engañados?) Por los institutos. Pocos estudiantes pueden hacer frente a esto y otros están luchando y terminan con más confusión sobre su futuro.

Lento y constante siempre es mejor. Es mejor convertirse en un maestro de algo en lugar de ser un gato de todos.

Todo lo mejor.

Respuesta corta – No.

Respuesta larga –

Incrustado es muy vasto. Como principiante, es posible que desee comenzar en el nivel de entrada.

Tomemos un ejemplo de conducción. Por lo general, un comienzo más fresco con el ciclo / 2 ruedas y luego pasar a un automóvil / cuatro ruedas. Para aprender a conducir, no necesita aprender a volar un helicóptero o un camión de varios ejes. Sin embargo, si desea comenzar a volar directamente, es posible.

Del mismo modo, los diseños integrados comienzan con un voltímetro de bajo costo que cuesta alrededor de USD 2 (INR 150 / -), Energy Meter USD 10 (INR 700 / -), Electrónica para horno de microondas, lavadora, Sistemas de seguridad de gama baja, etc., donde el costo de electrónica es de alrededor de USD 20 (aplicación INR 1500 / -). Casi todos están basados ​​en controladores de 8 bits.

En el extremo medio, tiene controladores de semáforos, elevadores de edificios, máquinas expendedoras, que se construyen con controladores ARM Cortex de 8 o 32 bits.

(Solo tengo experiencia en las categorías mencionadas anteriormente. También hay una gran escasez de ingenieros en este segmento)

En el extremo superior, también tiene decodificadores, Smart TV, enrutadores WiFi, puntos de recolección automática de tarifas Metro que usan controladores de brazo de 32 bits con Linux / Android como sistemas operativos. Mi conocimiento es muy limitado en este segmento. Sin embargo, necesita programación del núcleo y controladores de dispositivo para este tipo de productos.

Por lo tanto, debe aprender según el segmento que desea elegir. Todo lo que puedo decir es que incluso en los controladores tipo Arm Cortex de 8 bits / 32 bits, hay una gran demanda y una gran escasez de desarrolladores.