¿Cómo puedo aprender el sistema embebido?

5 pasos para comenzar con la programación integrada

1. Aprende C

Por una variedad de razones, la gran mayoría de las cadenas de herramientas integradas están diseñadas para admitir C como el idioma principal. Si desea escribir software incrustado para más que unas pocas plataformas de aficionados, tendrá que aprender C (y, con suerte, quizás Rust).

2. Aprende algo de electrónica básica

No te preocupes, no necesitas tomar una clase ni nada. Solo necesita una comprensión básica de voltaje, corriente, potencia, resistencia, ley de ohmios. Probablemente pueda hacerlo con solo unos pocos tutoriales en línea y algunos experimentando con simuladores en línea y / o circuitos reales.

3. Consigue el equipo básico.

Dado que se trata de un software integrado y que en realidad interactuará con el mundo físico, eventualmente necesitará algunos equipos físicos. Al menos necesitarás:

  • Soldador
  • Multímetro digital (DMM)
  • Un depurador de hardware / adaptador JTAG (como un adaptador ST-Link o OLMEX)

También recomiendo encarecidamente obtener un analizador lógico. Mi favorito es de Saleae, pero son muchos otros más baratos.

4. Elija un microcontrolador y una cadena de herramientas.

Bien, ahora que tenemos los fundamentos, ¡¿podemos ya programar ?!

Casi. Para realmente ejecutar sus programas, necesitará un microcontrolador para ejecutarlos, un compilador que pueda compilar sus programas para su microcontrolador objetivo y otras herramientas para cargar sus programas en su hardware y depurarlos.

Personalmente, me gusta la familia de microcontroladores STM32. Están bien soportados por mi cadena de herramientas incrustada favorita: arm-gcc junto con openOCD. Esta combinación no es tan fácil de usar como un Arduino, pero también es adecuada para muchas más aplicaciones del mundo real.

  • Una buena opción de inicio es obtener un kit de descubrimiento STM; Son baratos, relativamente accesibles y fáciles de comenzar.
  • ARM es, con mucho, la arquitectura más común para los micros incorporados (especialmente los micros de 32 bits), y arm-gcc puede apuntar a casi todos ellos.
  • openOCD es una pieza de software de código abierto que se comunicará con un depurador de hardware y proporcionará un servidor de depuración gdb para que pueda cargar un programa y recorrer su código que se ejecuta en target con gdb. Ni siquiera necesita ejecutar openOCD en la computadora en la que está desarrollando y ejecutando gdb.

5. Escoger componentes y cavar en sus hojas de datos

Ahora tienes suficiente para comenzar realmente con algo. Todo lo que tienes que hacer es seleccionar algunos componentes y luego juntarlos. Algunos buenos lugares para buscar componentes son la diversión con chispas y la fruta. Y para una selección más amplia y económica, también digikey y mouser.

Una vez que hayas encontrado algunos componentes que crees que harán lo que quieres, tendrás que profundizar en sus hojas de datos. Las hojas de datos son esencialmente los manuales para componentes electrónicos. Son la clave para descubrir cómo usar un componente y para asegurarse de que, de hecho, funcione para su aplicación. La mayoría de las preguntas que tiene sobre un componente pueden ser respondidas por sus hojas de datos. Pero las hojas de datos pueden ser complicadas. Bastante complicado que tengo mis propias 3 reglas de programación embebida:

  • 1a regla de la programación integrada: leer la hoja de datos.
  • 2ª regla de la programación integrada: leer la hoja de datos.
  • Tercera regla de la programación integrada: No confíe en la hoja de datos.

Las hojas de datos son la fuente de todos los conocimientos, pero tampoco son del todo intuitivas ni precisas. Recomiendo leer cómo leer una hoja de datos y el tutorial de la hoja de datos de Spark-fun para comenzar.

Menos mal, eso es mucho por lo que pasar, pero te dará una base bastante sólida cuando realmente lo superes. 🙂

Puede aprender acerca de los sistemas integrados de varios MOOCs.

1. Serie de videoconferencias de sistemas integrados por NPTEL coordinada por IIT Delhi.

http://nptel.ac.in/courses/10810

Serie 2.Lecture por University of Texas, Austin en edx.org . Personalmente, pocos de mis amigos han tomado esto y también han tenido experiencia práctica trabajando en varios planteamientos de problemas utilizando el microcontrolador de la corteza de Texas.

https://www.edx.org/course/embed

También puede consultar los cursos en línea de coursera y MIT open courseware in Embedded Systems.

¡Feliz aprendizaje! 🙂

  1. Lenguaje C (punteros y funciones de devolución de llamada) en el conocimiento profundo
  2. Lenguaje ensamblador (8085, 8086)
  3. Conocimiento microcontrolador 8051
  4. Conocimientos relacionados con microprocesadores y hardware (CPU, memoria, PCIe, etc.)
  5. Sistema operativo (sistema operativo en tiempo real), conocimiento del kernel y gestión de memoria
  6. Máquina de estados finitos
  7. La depuración de problemas en el sistema embebido es difícil

Cursos gratuitos

  1. Sistemas embebidos – Shape The World: entrada / salida de microcontroladores

Ve paso a paso 🙂