
Bienvenido al curso de video "Programación de sistemas integrados modernos".
En este curso, aprenderá cómo programar microcontroladores integrados de la manera moderna, desde lo básico hasta la práctica de programación integrada moderna contemporánea.
El enfoque único de este curso es bajar al nivel de la máquina con frecuencia y mostrarle exactamente lo que sucede dentro de su microcontrolador incrustado. Esta comprensión más profunda le permitirá aplicar los conceptos de manera más eficiente y con mayor confianza.
Si está buscando un curso práctico, práctico, bien estructurado y en profundidad que explique los conceptos esenciales en la programación integrada , este curso gratuito es adecuado para usted.
El curso comenzó ya en 2013, por lo que una pregunta legítima es: "¿Sigue siendo relevante?" La respuesta es sí, tal vez incluso más que en 2013, por dos razones principales:
Este curso se centra en los conceptos esenciales y fundamentales en la programación integrada, que nunca pasan de moda. Todos los conceptos preestimados están cubiertos en profundidad e incluyen:
Este curso se centra en la prevalente arquitectura del brazo Cortex-M , que en la última década se volvió inquebrantable dominat en el mercado de MCU integrado. La familiaridad con el brazo Cortex-M es la habilidad más buscada que los empleadores están buscando.

Procesadores de brazo, incluida la familia Cortex-M
El curso está diseñado y enseñado por Miro Samek , un experto en software integrado con más de 30 años de experiencia. Miro disfruta de la enseñanza, y este curso de video, sus libros, artículos y charlas de conferencias ayudaron a muchos desarrolladores a mejorar sus habilidades, aprobar entrevistas de trabajo difíciles y ser contratados para puestos de programación integrados.

Miro Samek
El curso comienza con lo básico, pero esta parte es corta y se centra en los aspectos integrados de la programación en C. Por lo tanto, es posible que deba complementar este curso con un estudio general del lenguaje de programación C. Es posible que también desee aprender un poco sobre cómo funciona una CPU.
Además, este curso es práctico, lo que significa que para aprovechar al máximo este curso puede y debe seguir y ejecutar los proyectos discutidos en su PC. Para hacer esto, necesitará algo de hardware (una placa integrada) y software (un conjunto de herramientas de desarrollo integrado).
NOTA
Varias lecciones tempranas usan un simulador y, por lo tanto, no necesita la placa integrada de inmediato. Las lecciones más avanzadas, donde interactúas con los periféricos de MCU (como GPIO, etc.) requieren un tablero integrado.
La placa integrada principal utilizada en todo el curso es la placa Tivac LaunchPad (también conocida como, EK-TM4C123GXL) basado en el microcontrolador Cortex-M4F del brazo de Texas Instruments. El tablero es económico y todavía está disponible para la compra de múltiples distribuidores electrónicos. Es autónomo y proporciona un depurador/programador de hardware incorporado (Stellaris ICI) que permite la depuración de un solo paso e inspeccionar el estado interno.

Tivac LaunchPad (EK-TM4C123GXL)
Las descargas del curso ahora también contienen versiones de proyecto para el STM32 NucleO-C031C6, basado en el brazo Cortex-M0+ MCU. El tablero también es económico, autónomo e incluye un depurador de hardware incorporado aún más versátil (ST-Link) que permite la depuración de un solo paso e inspeccionar el estado interno.

STM32 Nucleo-C031C6
NOTA
Se agregarán proyectos de curso para otras juntas integradas de bajo costo en el futuro.
Para construir y ejecutar el código presentado en este curso, necesitará uno de los siguientes conjuntos de herramientas integradas:
El curso comenzó con el banco de trabajo IAR integrado para ARM (eWarm), que se usa en las lecciones 1-19 . IAR EWARM es un conjunto de herramientas profesionales con un buen compilador y depurador estable.

Iar ewarm con uno de los proyectos
NOTA
IAR EWARM solía estar disponible bajo una licencia gratuita de Kickstart, pero recientemente, los sistemas IAR dejaban de ofrecer licencias gratuitas. La única opción gratuita que queda es una licencia de evaluación de 2 semanas. Los proyectos para IAR EWARM se han actualizado a las versiones más nuevas del conjunto de herramientas y se proporcionan para las lecciones 1-19.
Keil MDK (Kit de desarrollo de microcontroladores) es otro conjunto de herramientas de desarrollo profesional utilizado en este curso de video. A diferencia de IAR EWAR, Keil MDK se ofrece bajo licencias cada vez más permisivas, incluida la edición comunitaria gratuita de Keil MDK V6.

Keil Uvision IDE con uno de los Projecs
NOTA
Los proyectos KEIL MDK ahora están disponibles para todas las lecciones de este curso. Esto incluye las lecciones 1-21, que originalmente se presentaron para IAR EWARM o TI CCS.
Debido a la demanda popular, dos lecciones del curso (19 y 20) demuestran el IDE de Code Composer Studio (CCS) de Texas Instruments. El único aspecto valioso aquí es el uso del compilador y enlazador GNU-ARM de código abierto.
NOTA
Code Composer Studio (CCS) 11 usa el compilador TI de forma predeterminada y ya no viene con el compilador GNU-Arm instalado. Pero la cadena de herramientas GNU-Arm se puede instalar a través del menú: "Ayuda | Instale las herramientas del compilador de brazo GCC ..."

Code Composer Studio IDE basado en Eclipse con uno de los Projecs
El IDE CCS se basa en Eclipse y, por esa razón, es dolorosamente lento de lanzar y usar. Los proyectos de Eclipse son más difíciles de compartir porque consisten en múltiples archivos y directorios. Además, los proyectos no se pueden abrir simplemente en el IDE, sino que deben ser "importados". Los mensajes de error generados a menudo son confusos. Finalmente, la depuración es lenta e inestable.
Este repositorio proporciona las descargas del proyecto que puede abrir en un conjunto de herramientas integrado específico y ejecutar en su PC en casa. Los proyectos se organizan como se ilustra en el siguiente árbol de directorio anotado:
modern-embedded-programming-course/
+---lesson-01/ // lesson number
| +---simulator-iar/ // simulator with IAR EWARM
| | workspace.eww // IAR workspace
| |
| ---simulator-keil/ // simulator with KEIL MDK
| ---RTE/ // Run Time Environment for KEIL MDK
| lesson.uvprojx // uVision project
|
+---lesson-.../
|
+---lesson-04/
| +---stm32c031-keil/ // STM32C031 board with KEIL-MDK
| | ---RTE/ // Run Time Environment for KEIL MDK
| +---tm4c123-iar/ // TM4C123 board with IAR EWARM
| | workspace.eww // IAR workspace
| |
| ---tm4c123-keil/ // TM4C123 board with KEIL MDK
| ---RTE/ // Run Time Environment for KEIL MDK
| lesson.uvprojx // uVision project
|
+---lesson-...
|
+---lesson-19
| ---tm4c123-ccs // TM4C123 board with CCS
| +---ek-tm4c123gxl/ // board-specific code
| ---targetConfigs/ // CCS project directory
| .ccsproject // CCS project file
| .csproject // Eclispe project file
| .project // Eclipse project file
Todos los proyectos para UVISION ARM/KEIL se han actualizado desde el Compilador Obsolete-5 al nuevo Compilador-6.
Si desea discutir este curso o materias relacionadas, publique sus preguntas o comentarios en YouTube, en la sección de recomendación en cada lección de video relacionado.
Numerosos recursos para el curso de video están disponibles a través de la página web complementaria en:
www.state-machine.com/video-dourse
Entre otros, puedes encontrar allí:
Si le gusta este proyecto, por favor:

Extienda la voz sobre los videos que le gustan (por ejemplo, publicando en otros sitios web frecuentados por personas integradas)
Dale a este repositorio de GitHub una estrella (en la esquina superior derecha de la ventana de tu navegador):
