¿Cómo aprender el sistema integrado por mi cuenta? Desde donde debería comenzar

Mucho antes de completar la lectura a continuación, C / C ++ es un requisito previo para cualquier curso incorporado, si no ha programado con wither antes, le recomiendo que se familiarice con los conceptos básicos (condicional, bucles, estructura, funciones, matrices y punteros )

Suponiendo que tiene un conocimiento básico de C / C ++, no pierda su tiempo leyendo, compre un kit y trabaje en él y luego presente una serie de proyectos simples que utilicen lo que ha aprendido. Elija un microcontrolador, lea sus especificaciones e intente programarlo. Al principio eso puede sonar difícil, dado que no tiene un fondo sólido, por lo que recomiendo este recurso, uno que es muy popular entre los ingenieros interesados ​​en ese campo:

Sistemas integrados: Shape the World: entrada / salida de microcontrolador

En mi opinión, ese es el mejor recurso que he encontrado; es ligero, comienza desde el principio y aumenta gradualmente para desafiarte, y cada lección tiene un laboratorio que puedes enviar mediante simulación o un tablero real. Recomiendo comprar su kit de herramientas y trabajar directamente en un tablero real.

Una vez que haya terminado con esto, automáticamente estará listo para asumir la parte 2:

Sistemas embebidos – Shape the World: Interfaz de subprocesos múltiples

Y finalmente, debes desafiarte con este curso:

Redes Bluetooth en tiempo real: forma el mundo

Cuando estaba tomando el curso de Sistemas Embebidos en la universidad, estábamos trabajando con un microcontrolador diferente, sin embargo, los conceptos básicos aún persisten para cada MC, solo necesita uno y luego puede leer fácilmente la hoja de datos para cualquier MC y programarlo.

Finalmente, una vez que tenga mucha experiencia práctica con los MC y la programación, tal vez pueda comenzar a comprender a fondo la arquitectura interna de los microcontroladores y los microprocesadores que usan, debe tropezar con términos como (RISC / CISC, ARM, AVR, .. etc.) y muchos términos importantes con los que debe estar familiarizado, sin embargo, eso necesitaría una pregunta completamente diferente para una respuesta más elaborada.

En conclusión, enfatizo mucho trabajar con sus manos, completar laboratorios y trabajar en proyectos a pequeña escala.

Algunas buenas respuestas aquí, pero en mi experiencia, los recursos que existen no te enseñan de inmediato el primer truco.

Cuando comience a programar un sistema integrado, desea dividir la tarea en dos. Tienes un primer plano y un fondo. El fondo es donde haces todas las cosas que no es necesario manejar de inmediato. Ese es su ciclo de programación principal: todo lo que cuelga de main ().

El primer plano es manejadores de interrupciones y manejadores de eventos. En un sistema normal que no es en tiempo real, esos solo colocan cosas en buffers para que el bucle principal llegue más tarde. En un sistema en tiempo real, puede usarlo para hacer un trabajo real. Pero no puede hacer tanto trabajo que termina bloqueando las otras interrupciones o privando a la tarea en segundo plano del tiempo de CPU. Entonces, por ejemplo, si tiene una grúa que se mueve por una pista y golpea el interruptor de límite al final de la pista, puede activar una interrupción en ese interruptor y la rutina de servicio de interrupción puede apagar el motor que conduce la grúa (y probablemente establezca una bandera para decir que ya está hecho). Pero encender el motor y decidir en qué dirección quiere ir es un trabajo para la tarea en segundo plano.

En cuanto al hardware, no puedes equivocarte con un Arduino y un Raspberry Pi. Se complementan muy bien. El Pi es bueno para la interfaz de usuario, bluetooth y WiFi y el Arduino es bueno para lo básico de la programación de un sistema embebido rápido sin un sistema operativo para sostener tu mano. Es posible hacer que Arduino haga muchas de esas cosas, pero es más lento y costaría mucho dinero comprar todos los escudos que necesitarías. Es posible que desee comenzar con el Pi para acostumbrarse a programar interfaces de hardware y luego cambiar al Arduino una vez que se sienta cómodo con eso. En última instancia, puede construir un sistema embebido muy capaz utilizando ambos, con Arduino haciendo todo el trabajo intrincado en tiempo real y Pi haciendo control de supervisión, trabajo de base de datos y GUI o interfaz de usuario en red. Hay grandes cantidades de apoyo comunitario para ambas juntas.

En primer lugar , aprenda C, el lenguaje de programación principal utilizado en todos los sistemas integrados.

C es intuitivo pero tiene sus propios trucos y cosas, te tomará alrededor de 2 semanas estar cómodo para escribir con él.

Puedes aprenderlo aquí:

Amazon.com: C Programming: A Modern Approach, 2nd Edition (8601300250168): KN King: Books

o aquí :

C – Programación para ingenieros


Paso 2, Aprenda sistemas integrados y electrónica.

Sugiero comenzar con Aprender en SparkFun Electronics y luego ver libros como El arte de la electrónica: Paul Horowitz, Winfield Hill: 9780521370950: Amazon.com: Libros y una introducción unificada de hardware / software


Paso 3,

Comience a aplicar en tableros como Atmel o Microchip, si desea aprender sistemas embebidos reales, manténgase alejado de Arduino, pero es genial para prototipos.

El primer paso es obtener el hardware y otros componentes. Puedes comenzar con un Arduino. Aprende los elementos básicos del tablero. Luego construya algo que resuelva un problema práctico. Una vez que esté familiarizado con el frío, comience a diseñar sus propias bibliotecas. Aquí es donde el desarrollo real del firmware del sistema integrado. Esta etapa generalmente demora seis meses y seis meses en llegar. Una vez que se sienta cómodo con el entorno, comience por actualizar su controlador a complejos. Esta es una tarea de paciencia y determinación. Y este es el punto donde la mayoría de los estudiantes se rinden. Creo que ya hay muchas otras respuestas con buenos enlaces compartidos.

Sería mejor si se inscribe en un curso en línea sobre sistemas integrados, siempre que tenga conocimientos de programación en C.

Este es el sitio que recomiendo Sistemas integrados: Shape The World: entrada / salida de microcontroladores y sistemas integrados: Shape The World: Interfaz multiproceso.
El curso es gratuito, pero puede obtener un certificado verificado si lo desea por 50 USD.

Yo también opté por este curso, me encantó.

Comenzaría con algo como un Beagle Board o algún otro SBC que ejecute Linux. A partir de ahí, miraría la programación de ejemplo y escribiría una pequeña aplicación que haga cosas como controlar los pines del puerto o leer los pines del puerto. Encienda y apague los LED, etc. A partir de ahí descubra cómo controlar los puertos serie. Y finalmente, escriba un controlador que use un ISR.

Necesitarías el SBC y un kit de desarrollo. Cosas bastante fáciles de comprar e instalar.