Cómo aprender sistemas integrados de microprocesador

Creo que la mejor manera es poseer un hardware de microprocesador y jugar con él. El enfoque dependerá de sus antecedentes.

Si tienes experiencia en electrónica y quieres aprender más sobre programación, entonces el mejor enfoque es comenzar a comprar un kit de desarrollo para 8051, Cortex M0 o Cortex M3 o Arduino … O puedes seleccionar el Kit que se ajuste a tus intereses, como IOT, BLE … Los del kit de desarrollo se pueden comprar fácilmente en SparkFun Electronics, Mouser Electronics – Distribuidor de componentes electrónicos …

Habrá un manual de usuario que viene con el Kit que lo guiará sobre cómo comenzar a escribir una aplicación básica, como imprimir un Hello Word en una aplicación complicada, como reproducir un archivo mp3 desde la tarjeta SD … Simplemente siga el manual, comenzará a aprender Sobre el microprocesador.

Si tiene experiencia en software, es posible que desee comenzar desde el sistema que está cerca del sistema de escritorio. Una placa Raspberry PI parece una buena opción, la placa vendrá con el manual del usuario sobre cómo configurar un sistema Linux completo. Empecemos desde allí y luego intentemos jugar con la aplicación para controlar LED, botones, USB, …

Finalmente, necesitará mejorar su conocimiento sobre electrónica, lenguaje de programación C y C ++ (básicamente), ensamblaje, arquitectura de microprocesador, sistema operativo …

Supongo que está hablando de habilidades y no de un examen claro en incrustado.

De la misma manera que aprende a conducir automóviles (o a nadar o cocinar)

Identifique a un senior que ha estado haciendo incrustado. Observador él / ella. Compra el material requerido. Comience a hacerlo bajo la guía de su mentor. Evite los libros y las clases de teoría durante los primeros meses. (Gracias a internet, también puedes obtener un mentor en línea)

Nadie estudia sobre la teoría de cómo funciona el automóvil o la química detrás de la cocina o la física detrás de la natación.

Después de desarrollar más de 200 productos comerciales, todavía no soy perfecto en C o no conozco aspectos internos de ningún microcontrolador.

Esto es lo que me lo hizo más fácil:

  1. Comprenda la lógica digital primero. Hay algunas lecciones fáciles de seguir en la red que explican, por ejemplo, las puertas NAND y cómo se pueden convertir en toda la lógica necesaria para construir una computadora. Una vez que comienzas a ver cómo los letales simples 1 y 0 pueden pasar por una puerta NAND simple mortal para generar respuestas del mundo real, los uC son más fáciles de obtener. Si puede seguir la lógica digital a través de secuenciadores (desplazador de anillo o decodificador de contador / decimal) y aritmética y lógica, será / realmente / ayuda.
  2. Toque en lenguaje de máquina / lenguaje ensamblador. Solo lo suficiente para entender que el uC está tomando un número de la primera ubicación en la memoria, decodificando los bits en ese número para seleccionar qué circuitos activar, luego seleccionando el siguiente número según lo indexado por el contador del programa, y ​​esto es lo que hace que un programa trabajo. Hay estos momentos de “¡ajá!” Cuando ves la verdadera simplicidad / belleza / complejidad cuidadosamente construida del sistema.
  3. Ahora trabaje con un simulador o un uC con un depurador que le permita avanzar de manera confiable por un programa y ver los resultados de todas y cada una de las instrucciones. Intenta escribir tus primeros programas simples allí. Hagas lo que hagas, NO intentes escribir incluso programas simples en algo como un Arduino donde no tienes una forma sangrienta de ver lo que está sucediendo y, por lo tanto, entender lo que está yendo mal. El simulador Microchip MPLAB es bastante bueno si desea una opción de costo cero. TI MSP430 con depurador FET ($$) y CCS (iniciador gratuito). Puede probar Cypress PSoC para una opción de muy bajo costo (en realidad no lo he usado, simplemente se ve bastante bien). NO comience con un Arduino … Sin depuración. Sin simulador Sin suerte.
  4. Estudie los métodos de solución de problemas y depuración antes de pasar a un código más complejo. En la programación incrustada, las cosas muy (muy) a menudo no funcionan de la manera esperada. No poder entender por qué las cosas salieron mal realmente desanima a muchos programadores de firmware nuevos. Obtenga información acerca de cómo colocar mensajes / LED de depuración como mínimo (“¿el programa está llegando aquí?”) Y si tiene un uC con un depurador, conozca los puntos de interrupción, ver las declaraciones y todas las otras herramientas maravillosas que los depuradores pueden aportar. En este punto, Arduino comienza a ser viable, si es doloroso.
  5. Lea el código de programadores experimentados. Busque las partes “¿por qué lo hicieron así?” E intente resolverlas. Hay todo tipo de gottchas. Google “Leer, modificar, escribir, problema” y “Filtrado digital” y si usted es rico, compre un oscopio digital con una función de analizador lógico incorporada para que pueda ver lo que están haciendo los cables fuera de la UC. SmartScope es un buen comienzo. Únase a un foro o grupo de usuarios o comunidad de algún tipo.

Supongo que me gusta mucho el consejo de otras personas aquí … No puedo hablar de su experiencia, pero gano mucho dinero haciendo esto.

Comience con un Arduino Uno. Esta es la introducción más suave posible a las pequeñas computadoras basadas en microcontroladores.