Packt

Advanced Embedded Object-Oriented Programming in C++

Build in-demand skills with a full year of Coursera Plus, now $239. Save now.

Packt

Advanced Embedded Object-Oriented Programming in C++

Included with Coursera PlusLearn more

Gain insight into a topic and learn the fundamentals.
Advanced level

Recommended experience

2 weeks to complete
at 10 hours a week
Flexible schedule
Learn at your own pace
Gain insight into a topic and learn the fundamentals.
Advanced level

Recommended experience

2 weeks to complete
at 10 hours a week
Flexible schedule
Learn at your own pace

What you'll learn

  • Build C++ driver classes for STM32 peripherals

  • Apply encapsulation to hardware-facing firmware

  • Use RAII techniques for safer embedded resources

Details to know

Shareable certificate

Add to your LinkedIn profile

Recently updated!

November 2026

Assessments

15 assignments

Taught in English

See how employees at top companies are mastering in-demand skills

 logos of Petrobras, TATA, Danone, Capgemini, P&G and L'Oreal

There are 14 modules in this course

This module introduces the foundational concepts of object-oriented C++ firmware design, including course goals, learning path, and essential driver logic. Learners will gain an understanding of how to structure and implement firmware using C++ principles.

What's included

2 videos1 assignment

This module explores the application of object-oriented programming (OOP) principles in embedded firmware development using C++. It covers when and how to apply OOP effectively while considering microcontroller constraints, and compares OOP with procedural programming approaches.

What's included

5 videos1 assignment

This module explores the limitations of dynamic memory allocation in embedded systems and how to apply object-oriented programming principles to optimize firmware development under microcontroller constraints. Learners will gain insights into efficient memory management and the transition from procedural to object-oriented C++.

What's included

2 videos1 assignment

This module guides learners through the essential steps of setting up a development environment, including downloading, installing, and configuring tools and documentation necessary for hands-on practice. Learners will gain practical skills in preparing their workspace and accessing technical resources for firmware development.

What's included

5 videos1 assignment

This module covers the development of embedded firmware drivers, including UART, SPI, I2C, and system timebase drivers, with a focus on analyzing documentation, implementing functions, and testing driver functionality. Learners will gain hands-on experience in writing and validating firmware components for embedded systems.

What's included

35 videos1 assignment

This module explores key principles for refactoring embedded C code into C++ and introduces object-oriented design concepts relevant to firmware development. Learners will gain insight into improving code structure, reusability, and maintainability through OOP techniques. It bridges the gap between procedural and object-oriented programming in embedded systems.

What's included

1 video1 assignment

This module explores how to develop efficient peripheral drivers using C++ classes, focusing on object-oriented design principles, resource management, and encapsulation techniques. Learners will gain practical skills in implementing constructors, destructors, and RAII patterns for embedded systems. The content emphasizes best practices for firmware development in microcontroller environments.

What's included

5 videos1 assignment

This module guides learners through the process of developing a GPIO C++ class driver, covering workspace setup, class structure, and firmware implementation best practices. It focuses on object-oriented design and practical coding techniques for embedded systems development.

What's included

7 videos1 assignment

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

What's included

4 videos1 assignment

This module focuses on the implementation of a C++ class driver for the FPU, emphasizing structured firmware development practices. Learners will gain hands-on experience in coding and organizing FPU-related functionality. The content builds practical skills in software design and system integration.

What's included

1 video1 assignment

This module focuses on the implementation of a SysTick Timer C++ class driver, covering the structure and functionality of firmware components. Learners will gain hands-on experience in designing and writing interface files and class drivers for embedded systems.

What's included

2 videos1 assignment

This module focuses on building and testing a C++ class driver for an Analog-to-Digital Converter (ADC). Learners will gain hands-on experience with implementing private members, constructors, initialization methods, and read functions, while ensuring the class behaves correctly in a real-world setup.

What's included

5 videos1 assignment

This module covers the development of C++ class drivers for SPI and accelerometer interfaces, focusing on structured firmware implementation and method design. Learners will gain hands-on experience in analyzing embedded-C drivers and implementing class-based solutions for hardware communication. The content emphasizes practical coding skills and system integration techniques.

What's included

15 videos1 assignment

This module explores how to implement operator overloading in C++ for hardware interaction in embedded systems. Learners will gain hands-on experience in defining method prototypes, implementing firmware-specific operations, and validating their code on real hardware setups.

What's included

5 videos2 assignments

Instructor

Packt - Course Instructors
Packt
2,654 Courses769,102 learners

Offered by

Packt

Why people choose Coursera for their career

Felipe M.

Learner since 2018
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."

Jennifer J.

Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."

Larry W.

Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."

Chaitanya A.

"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."

What brings you to Coursera today?

Frequently asked questions