Packt

Advanced C++ Template Metaprogramming for Embedded Systems

Développez des compétences très recherchées grâce à un abonnement d'un an à Coursera Plus, désormais à 239 $. Profitez-en dès maintenant.

Ce cours n'est pas disponible en Français (France)

Nous sommes actuellement en train de le traduire dans plus de langues.
Packt

Advanced C++ Template Metaprogramming for Embedded Systems

Inclus avec Coursera PlusEn savoir plus

Obtenez un aperçu d'un sujet et apprenez les principes fondamentaux.
niveau Avancées

Expérience recommandée

2 semaines à compléter
à 10 heures par semaine
Planning flexible
Apprenez à votre propre rythme
Obtenez un aperçu d'un sujet et apprenez les principes fondamentaux.
niveau Avancées

Expérience recommandée

2 semaines à compléter
à 10 heures par semaine
Planning flexible
Apprenez à votre propre rythme

Ce que vous apprendrez

  • Apply templates to embedded firmware design

  • Use constexpr and CRTP for zero-cost abstractions

  • Design type-safe reusable peripheral drivers

Compétences que vous acquerrez

  • Catégorie : Maintainability
  • Catégorie : Code Reusability
  • Catégorie : Development Environment
  • Catégorie : Embedded Systems
  • Catégorie : Verification And Validation
  • Catégorie : Object Oriented Programming (OOP)
  • Catégorie : Embedded Software
  • Catégorie : Serial Peripheral Interface
  • Catégorie : Object Oriented Design
  • Catégorie : Peripheral Devices

Outils que vous découvrirez

  • Catégorie : Integrated Development Environments
  • Catégorie : C++ (Programming Language)
  • Catégorie : C (Programming Language)

Détails à connaître

Certificat partageable

Ajouter à votre profil LinkedIn

Récemment mis à jour !

octobre 2026

Évaluations

19 devoirs

Enseigné en Anglais

Découvrez comment les employés des entreprises prestigieuses maîtrisent des compétences recherchées

 logos de Petrobras, TATA, Danone, Capgemini, P&G et L'Oreal

Il y a 18 modules dans ce cours

This module introduces the foundational concepts of C++ template metaprogramming and its practical application in embedded firmware development. Learners will explore the importance of generic drivers and how they enable flexible and efficient code design. By the end, students will have a clear understanding of how to apply these principles in real-world scenarios.

Inclus

2 vidéos1 devoir

This module explores the use of template metaprogramming in C++ to enhance the structure and efficiency of embedded systems. Learners will gain an understanding of how compile-time techniques can be applied to optimize firmware development. The content includes practical applications of function and class templates.

Inclus

3 vidéos1 devoir

This module explores how to use C++ templates to create efficient and flexible peripheral drivers for embedded systems. Learners will gain insight into template metaprogramming, specialization, and variadic templates to improve firmware structure and reusability.

Inclus

3 vidéos1 devoir

This module explores advanced C++ techniques for optimizing embedded firmware through template metaprogramming. Learners will understand the trade-offs between static polymorphism and virtual functions, and how to apply CRTP for efficient code structure. The focus is on improving performance and maintainability in real-world embedded systems.

Inclus

3 vidéos1 devoir

This module provides learners with the essential skills to set up and configure development environments for embedded systems. It covers downloading and installing tools, accessing documentation, and verifying the setup for practical implementation. By the end, learners will be prepared to begin hands-on development tasks.

Inclus

5 vidéos1 devoir

This module focuses on the implementation and testing of embedded firmware drivers, including UART, SPI, I2C, and system timebase components. Learners will gain hands-on experience with analyzing technical documentation, structuring code, and validating peripheral functionality in a real-world context.

Inclus

35 vidéos1 devoir

This module explores the transition from procedural C to object-oriented programming in the context of embedded firmware development. Learners will gain an understanding of key principles for refactoring C code into C++ and how these techniques fit into larger C++ template metaprogramming workflows.

Inclus

1 vidéo1 devoir

This module focuses on building a C++ class driver for GPIO functionality in embedded systems. Learners will explore how to structure and implement firmware-based C++ code, including private members, constructors, and pin control methods. The module also covers best practices for separating interface and implementation files.

Inclus

7 vidéos1 devoir

This module focuses on the implementation of a UART C++ class driver, covering private members, constructors, public methods, and testing strategies. Learners will gain hands-on experience in developing and verifying firmware components using structured programming techniques.

Inclus

4 vidéos1 devoir

This module explores the practical application of C++ function templates in embedded firmware development. Learners will gain hands-on experience with template syntax, parameter handling, and workspace configuration. The focus is on improving code efficiency and reusability through compile-time techniques.

Inclus

8 vidéos1 devoir

This module explores the fundamentals of working with class templates, including their structure, implementation, and validation. Learners will gain hands-on experience in defining and testing class templates in a firmware development context. The focus is on understanding and applying template declarations and method implementations.

Inclus

6 vidéos1 devoir

This module explores advanced C++ techniques for optimizing embedded firmware through non-type templates, focusing on improving code efficiency and structure at compile time.

Inclus

1 vidéo1 devoir

This module explores the application of variadic templates in C++ to enhance the structure and efficiency of embedded firmware. It guides learners through the implementation, testing, and validation of variadic templates in real-world programming scenarios. By the end, students will have a solid understanding of how to use these advanced techniques effectively.

Inclus

4 vidéos1 devoir

This module covers the implementation of LED drivers using C++ template metaprogramming, focusing on register information, firmware structure, and validation techniques. Learners will gain practical skills in developing and testing embedded systems with a structured approach.

Inclus

10 vidéos1 devoir

This module explores the process of defining and organizing memory addresses for embedded systems using C++ template metaprogramming. Learners will gain hands-on experience in analyzing peripheral base addresses, deriving AHB1 and RCC registers, and configuring GPIO interfaces. The content bridges theoretical knowledge with practical firmware development tasks.

Inclus

8 vidéos1 devoir

This module explores the use of C++ template classes for register access in embedded firmware development. Learners will gain insight into how templates enhance code flexibility and reusability in hardware-related programming. It covers practical implementation strategies and parameter handling techniques.

Inclus

2 vidéos1 devoir

This module explores the configuration and control of GPIO pins in embedded systems using C++ template metaprogramming. Learners will understand how to enable clock access, set pins as outputs, and toggle them for practical firmware applications.

Inclus

3 vidéos1 devoir

This module covers the implementation and validation of dynamic register mapping using a firmware-focused approach. Learners will gain hands-on experience with bit-field structures and template-based designs, ensuring correct functionality in embedded systems.

Inclus

3 vidéos2 devoirs

Instructeur

Packt - Course Instructors
Packt
2 654 Cours769 102 apprenants

Offert par

Packt

Pour quelles raisons les étudiants sur Coursera nous choisissent-ils pour leur carrière ?

Felipe M.

Étudiant(e) depuis 2018
’Pouvoir suivre des cours à mon rythme à été une expérience extraordinaire. Je peux apprendre chaque fois que mon emploi du temps me le permet et en fonction de mon humeur.’

Jennifer J.

Étudiant(e) depuis 2020
’J'ai directement appliqué les concepts et les compétences que j'ai appris de mes cours à un nouveau projet passionnant au travail.’

Larry W.

Étudiant(e) depuis 2021
’Lorsque j'ai besoin de cours sur des sujets que mon université ne propose pas, Coursera est l'un des meilleurs endroits où se rendre.’

Chaitanya A.

’Apprendre, ce n'est pas seulement s'améliorer dans son travail : c'est bien plus que cela. Coursera me permet d'apprendre sans limites.’

Qu’est-ce qui vous amène sur Coursera aujourd’hui ?

Foire Aux Questions