
Bienvenue sur le cours vidéo "Modern Embedded Systems Programming".
Dans ce cours, vous apprendrez à programmer les microcontrôleurs intégrés de la manière moderne, des bases jusqu'à la pratique de programmation intégrée moderne contemporaine.
L'approche unique de ce cours est de descendre fréquemment au niveau de la machine et de vous montrer exactement ce qui se passe à l'intérieur de votre microcontrôleur intégré. Cette compréhension plus approfondie vous permettra d'appliquer les concepts plus efficacement et avec une plus grande confiance.
Si vous recherchez un cours pratique, pratique, bien structuré et approfondi expliquant les concepts essentiels dans la programmation intégrée , ce cours gratuit vous convient.
Le cours a déjà commencé en 2013, donc une question légitime est: "Est-ce toujours pertinent?" La réponse est oui, peut-être encore plus qu'en 2013, pour deux raisons principales:
Ce cours se concentre sur les concepts essentiels et fondamentaux de la programmation intégrée, qui ne se démode jamais. Tous les concepts prédéfinis sont couverts en profondeur et incluent:
Ce cours se concentre sur l'architecture ARM Cortex-M courante, qui, au cours de la dernière décennie, est devenue indemnité dominante sur le marché MCU intégré. La familiarité avec ARM Cortex-M est la compétence la plus recherchée que les employeurs recherchent.

Processeurs ARM, y compris la famille Cortex-M
Le cours est conçu et enseigné par Miro Samek - un expert en logiciel intégré avec plus de 30 ans d'expérience. Miro aime l'enseignement, et ce cours vidéo, ses livres, articles et conférences pour conférences ont aidé de nombreux développeurs à améliorer leurs compétences, à passer des entretiens d'embauche difficiles et à être embauché pour des postes de programmation intégrés.

Miro Samek
Le cours commence par les bases, mais cette partie est courte et axée sur les aspects intégrés de la programmation dans C. Par conséquent, vous devrez peut-être compléter ce cours par une étude générale du langage de programmation C. Vous voudrez peut-être également apprendre un peu sur le fonctionnement d'un CPU.
De plus, ce cours est pratique, ce qui signifie que pour tirer le meilleur parti de ce cours que vous pouvez et que vous devez suivre et exécuter les projets discutés sur votre PC. Pour ce faire, vous aurez besoin du matériel (une carte intégrée) et du logiciel (un ensemble d'outils de développement intégré).
NOTE
Plusieurs premières leçons utilisent un simulateur et vous n'avez donc pas besoin de la carte intégrée immédiatement. Des leçons plus avancées, où vous interagissez avec les périphériques MCU (comme GPIO, etc.) nécessitent une carte intégrée.
La principale carte intégrée utilisée tout au long du parcours est la carte LaunchPad TIVAC (AKA, EK-TM4C123GXL) basée sur le microcontrôleur ARM Cortex-M4F de Texas Instruments. Le conseil d'administration est bon marché et est toujours disponible à l'achat auprès de plusieurs distributeurs électroniques. Il est autonome et fournit un débogueur / programmeur matériel intégré (Stellaris ICDI) qui permet le débogage en une seule étape et l'inspection de l'état interne.

TIVAC LaunchPad (EK-TM4C123GXL)
Les téléchargements de cours contiennent désormais également des versions de projet pour le Nucleo-C031C6 STM32, basé sur le bras Cortex-M0 + MCU. Le conseil d'administration est également peu coûteux, autonome et comprend un débogueur matériel intégré encore plus polyvalent (ST-Link) qui permet un débogage en une seule étape et l'inspection de l'état interne.

STM32 Nucleo-C031C6
NOTE
Des projets de cours pour d'autres conseils intégrés bon marché seront ajoutés à l'avenir.
Afin de construire et d'exécuter le code présenté dans ce cours, vous aurez besoin de l'un des ensembles d'outils intégrés suivants:
Le cours a commencé avec l'IAR Embedded Workbench for ARM (EWARM), qui est utilisé dans les leçons 1-19 . Iar Ewarm est un ensemble d'outils professionnel avec un bon compilateur et un débogueur stable.

Iar ewarm avec l'un des projecs
NOTE
Iar Ewarm était disponible sous une licence de kickstart gratuite et limitée en taille, mais récemment, IAR Systems a cessé d'offrir des licences gratuites. La seule option gratuite qui reste est une licence d'évaluation de 2 semaines. Les projets pour IAR EWARM ont été mis à jour dans les nouvelles versions de l'ensemble d'outils et sont fournis pour les leçons 1-19.
Keil MDK (kit de développement de microcontrôleur) est un autre ensemble d'outils de développement professionnel utilisé dans ce cours vidéo. Contrairement à Iar Ewar, Keil MDK est proposé sous une licence de plus en plus permissive, y compris l'édition gratuite de la communauté Keil MDK V6.

Keil Uvision ide avec l'un des projecs
NOTE
Les projets Keil MDK sont désormais disponibles pour toutes les leçons de ce cours. Cela comprend les leçons 1-21, qui ont été présentées à l'origine pour IAR EWARM ou TI CCS.
En raison de la demande populaire, deux leçons du cours (19 et 20) démontrent le Code Composer Studio (CCS) IDE de Texas Instruments. Le seul aspect précieux ici est l'utilisation du compilateur et de l'éditeur de liaison open source.
NOTE
Code Composer Studio (CCS) 11 utilise le compilateur TI par défaut et ne vient plus avec le compilateur GNU-Arm installé. Mais la chaîne à outils GNU-Arm peut être installée via le menu: "Aide | Installer des outils de compilateur de bras GCC ..."

Éclipse Code Composer Studio IDE avec l'un des projecs
L'IDE CCS est basé sur Eclipse et pour cette raison, il est douloureusement lent à lancer et à utiliser. Les projets Eclipse sont donc difficiles à partager car ils se composent de plusieurs fichiers et répertoires. De plus, les projets ne peuvent pas être simplement ouverts dans l'IDE mais doivent plutôt être "importés". Les messages d'erreur générés sont souvent déroutants. Enfin, le débogage est lent et instable.
Ce référentiel fournit les téléchargements de projet que vous pouvez ouvrir dans un ensemble d'outils embarqué spécifiques et exécuter sur votre PC à la maison. Les projets sont organisés comme illustré dans l'arbre d'annuaire annoté suivant:
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
Tous les projets pour ARM / Keil UVision ont été mis à jour du compilateur obsolète-5 au nouveau compilateur-6.
Si vous souhaitez discuter de ce cours ou des sujets connexes, veuillez poster vos questions ou commentaires sur YouTube, dans la section des recommandations sous chaque leçon vidéo concernant.
De nombreuses ressources pour le cours vidéo sont disponibles via la page Web Companion à:
www.state-machine.com/video-cours
Entre autres, vous pouvez y trouver:
Si vous aimez ce projet, s'il vous plaît:

Passez le mot sur les vidéos que vous aimez (par exemple, en publiant sur d'autres sites Web fréquentés par des gens intégrés)
Donnez à ce référentiel GitHub une étoile (dans le coin supérieur droit de la fenêtre de votre navigateur):
