Cómo convertirse en un buen programador integrado

Gracias por preguntar 🙂 Mayur

  • Aprenda C: El lenguaje fundamental del hardware que todavía es portátil (también en cierta medida). No solo lo aprenda, sino que se convierta en un experto de todas sus características, como volátil y por qué es importante para escribir controladores de dispositivos.
  • Comience con un buen kit de desarrollo como Arduino, pero como se dijo antes, aprenda otras arquitecturas una vez que tenga una buena idea. Afortunadamente, hay algunas placas compatibles con Arduino construidas con otros procesadores, de esa manera puede reescribir el mismo diseño en un uC diferente sin estropear todo su diseño mientras se siente algo nuevo.
  • Desafíate a reescribir tu código de manera más eficiente en términos de velocidad y uso de memoria.
  • Familiarizarse con diferentes estilos de arquitecturas de software de sistemas integrados. Comience con el procesamiento básico de interrupción / bucle en segundo plano, luego pase a los planificadores en segundo plano, luego a los sistemas operativos en tiempo real.
  • Incluso regístrese en algunos sitios de alojamiento de control de código fuente gratuitos como Sourceforge.net o Bitbucket.org para alojar su proyecto, incluso si usted es el único que trabaja en él. Realizarán una copia de seguridad de su código, por lo que no tiene que preocuparse de que el bloqueo ocasional del disco duro destruya todo El uso de un VCS distribuido es útil, ya que puede registrar los cambios en su disco duro y luego cargarlos en el sitio host cuando esté listo.
  • ¡Aprende nuevas técnicas y experimenta con ellas en tus diseños!
  • Aprenda a programar a la defensiva para detectar errores y verificar suposiciones (como usar aserción)
  • Cree una información de depuración en su código donde pueda, como generar el consumo de memoria o crear un código de perfil con temporizadores o usar pines de repuesto en el uC para alternar y medir la latencia de interrupción en un osciloscopio.

Aquí hay algunos libros:

  • El programador pragmático de Andrew Hunt y David Thomas: lectura más o menos necesaria para cualquier desarrollo de software práctico
  • Arduino práctico
  • Programación de sistemas integrados por Michael Barr
  • Bloques de construcción de sistemas integrados de Jean Labrosse
  • MicroC OS II Real Time Kernel de Jean Labrosse, gran introducción a RTOS en general junto con su sistema operativo.
  • Embedded Software Primer por David Simon: buena introducción al software incorporado

Aquí hay algunos sitios web:

  • Gurús incrustados
  • Ganssle Group Jack Ganssle tiene algunas historias históricas maravillosas que contar. Lee los artículos. Sin embargo, se pone un poco predicador sobre algunas cosas.
  • Embedded.com Buena información sobre las últimas técnicas y consejos de Ganssle, Barr y otros expertos de la industria.

Fuente: StackExchange

Programación Master C. A través de C, intente comprender todas las capas de abstracción (compilador, sistema operativo, procesador, conjunto de instrucciones, etc.). Dentro del compilador nuevamente, intente comprender los diferentes pasos (preprocesamiento, análisis léxico, verificación semántica, vinculación, carga, etc.). Debe estar en condiciones de comprender el proceso completo y los cambios que ocurren en cada paso. Se hará de manera práctica (no revisando literatura en internet). Deberá probar todos los aspectos del lenguaje con ejemplos adecuados. También debe intentar la depuración por pasos e intentar monitorear las variables. Debe aprender cómo se almacenan los símbolos en diferentes tipos de memoria. Obtenga también una buena base en los punteros. Debe ser bueno en la aritmética de punteros.

Una vez que haya ganado un buen terreno, obtenga una placa de controlador integrada (de TI. Microchip, ST o NXP). Es mejor optar por tableros simples con depurador incorporado. Intente experimentar con todos los periféricos como GPIO, UART, I2C / SPI, etc. En lugar de copiar ejemplos, intente leer el manual del usuario e intente comprender las descripciones de los registros. Esa es una habilidad muy importante.

Una vez que sea bueno en ambos, intente desarrollar mini proyectos que le darán una idea sobre cómo diseñar una solución. Deberías probar una idea simple como crear un modelo simplificado de ATM. Comience con módulos pequeños, intégrelos y cree el módulo completo. Esto te ayudará a mejorar tus habilidades arquitectónicas. Hay excelentes libros y material que le ayuda en esto.

Todo lo mejor.

Gracias por A2A ..

Para ser un buen programador integrado, debe tener un buen conocimiento de los lenguajes de programación como c, python, scripting de shell, etc.

Aparte de eso, debe tener algunos conocimientos básicos de microcontrolador.

Si no tiene estos conocimientos, compre un buen libro para un microcontrolador como M. Mazidi e intente resolver sus programas para los cuales debe conocer la programación en C.

La mejor opción es instalar un simulador y practicarlo y practicar cómo interconectar varios módulos con un microcontrolador utilizando algunos protocolos como I2C, SPI, etc.

Después de eso, intenta aprender ARM, después de tener una idea acerca de ARM, puede obtener trabajo fácilmente y mientras trabaja aprenderá cosas nuevas como la interfaz de Bluetooth, USB, etc. que lo guiarán hacia la programación del controlador del dispositivo (El campo que está en pico más alto hoy en día).

Aparte de esto, puede consultar algunas buenas búsquedas en Internet como Linux incrustado, Raspberry pi, etc.

Pero asegúrese de ser bueno programando porque sin conocer la programación no podrá hacer su espacio en el dominio incrustado.

More Interesting

¿Por qué se da mayor importancia a los proyectos en FPGA?

¿Cuál es la importancia del mapa de memoria para los programadores de sistemas integrados?

¿Cuáles son algunos dispositivos que usan un microcontrolador que tiene 3 entradas y salidas? ¿Y cuál es su función?

¿Cuál es la diferencia entre PIC, AVR, ARM y microcontroladores Arduino?

¿Cómo se suministra el agua automáticamente para el sistema de automatización de invernadero integrado?

¿Cuáles son las preguntas en tiempo real de un microcontrolador 8051 para la práctica de laboratorio?

¿Cuáles son las mejores prácticas de diseño de sistemas integrados?

¿Cuáles son los pros y los contras de las MCU stm32 frente a las MCU pic32?

¿Cuál es el siguiente paso para una persona que está interesada en los sistemas embebidos después de trabajar en placas ATmega, MSP430 o Arduino y construyó pocos proyectos de hardware decentes? ¿Qué hay de trabajar en Linux embebido?

¿Debo elegir sistemas embebidos o programación de juegos?

¿Existe una relación entre los sistemas integrados y el sistema de energía?

¿Cuántos bits requiere una instrucción enviada como mínimo, incluidos los operandos? (Microcontrolador AVR Atmel de 8 bits)

¿Cuál es el sistema operativo integrado más utilizado?

¿Cuáles son las oportunidades de carrera en sistemas embebidos?

¿Cuáles son las habilidades requeridas para un ECE más reciente para trabajar en el campo de sistemas integrados o en el campo VLSI en India?