VOOZH about

URL: https://www.coursera.org/learn/packt-embedded-systems-object-oriented-programming-in-c-and-c-gjdxd

⇱ Embedded Systems Object-Oriented Programming in C and C++ | Coursera


Embedded Systems Object-Oriented Programming in C and C++

Ends soon! Keep adding new skills with 10,000+ programs for $239 (usually $399). Save now.

Embedded Systems Object-Oriented Programming in C and C++

Included with

β€’

Learn more

Gain insight into a topic and learn the fundamentals.
Intermediate 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.
Intermediate level

Recommended experience

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

What you'll learn

  • Understand object-oriented principles and their application in firmware development

  • Apply object-oriented principles to write embedded C and C++ applications

  • Analyze firmware structures using polymorphism, inheritance, and encapsulation in C and C++

  • Evaluate and build robust firmware by applying object-oriented principles

Details to know

Shareable certificate

Add to your LinkedIn profile

Assessments

6 assignments

Taught in English

There are 12 modules in this course

Updated in May 2025.

This course now features Coursera Coach! A smarter way to learn with interactive, real-time conversations that help you test your knowledge, challenge assumptions, and deepen your understanding as you progress through the course. In this course, you will embark on a journey through the fundamentals and advanced techniques of embedded systems programming with a focus on object-oriented methodologies. Beginning with the setup of essential tools like Keil uVision and STM32CubeIDE, you will gain hands-on experience in configuring and using these powerful development environments. As you progress, the course delves into object-oriented firmware programming, starting with the creation of drivers and classes in both C and C++. You will learn to develop UART drivers, create LED classes, and implement inheritance, all while adhering to best practices. The course also explores the development of GPIO and UART libraries from scratch, providing a robust understanding of how to build and test reusable code components in an embedded context. Finally, the course covers advanced topics such as polymorphism and the extension of GPIO libraries to handle alternate functions. By the end of this course, you will have a comprehensive understanding of object-oriented programming in embedded systems, enabling you to create efficient, scalable, and maintainable firmware for a wide range of applications. This course is designed for embedded systems engineers, firmware developers, and hobbyists with a basic understanding of C programming. Familiarity with microcontrollers and basic electronics is recommended but not required.

In this module, we will provide an overview of the course, including its objectives and scope. You will learn how to download, install, and set up Keil uVision, ensuring you are ready to begin your journey in firmware programming.

What's included

5 videos1 reading

5 videosβ€’Total 23 minutes
  • Introduction to Object-Oriented Programming for Embedded Systemsβ€’1 minute
  • Downloading Keil Visionβ€’1 minute
  • Installing Keil uVisionβ€’6 minutes
  • Installing Packsβ€’4 minutes
  • Overview of Keil uVisionβ€’10 minutes
1 readingβ€’Total 10 minutes
  • Full Course Resourcesβ€’10 minutes

In this module, we will delve into object-oriented firmware programming by creating a UART driver and an LED class. You will learn to apply object-oriented principles in C and transition these concepts into C++ for enhanced firmware development.

What's included

4 videos

4 videosβ€’Total 129 minutes
  • Developing a UART Driver for Monitoring Resultsβ€’42 minutes
  • Creating an LED Class in Object-Oriented C (Part I)β€’30 minutes
  • Creating an LED Class in Object-Oriented C (Part II)β€’30 minutes
  • Creating an LED Class in C++β€’27 minutes

In this module, we will focus on implementing inheritance in both C and C++. You will learn how to create inherited classes, understand the advantages of using inheritance, and perform testing to ensure functionality in embedded systems.

What's included

4 videos1 assignment

4 videosβ€’Total 44 minutes
  • Inheriting a Class in Object-Oriented C (Part 1)β€’15 minutes
  • Inheriting a Class in Object-Oriented C (Part 2)β€’6 minutes
  • Inheriting a Class in Object-Oriented C (Part 3)β€’6 minutes
  • Implementing Inheritance in C++β€’17 minutes
1 assignmentβ€’Total 15 minutes
  • Assessment 1β€’15 minutes

In this module, we will guide you through the development of a GPIO driver and library in C from scratch. You will learn to build and test the necessary structures, integrate them into a comprehensive driver, and validate the complete library.

What's included

8 videos

8 videosβ€’Total 143 minutes
  • Implementing a Structure to Hold Registersβ€’37 minutes
  • Implementing the RCC Registers Structureβ€’24 minutes
  • Testing the Driverβ€’12 minutes
  • Adding all GPIO Ports to the Driverβ€’13 minutes
  • Creating the Interface and Implementation Filesβ€’3 minutes
  • Implementing the Libraryβ€’28 minutes
  • Implementing the Library Functionsβ€’21 minutes
  • Testing the Libraryβ€’5 minutes

In this module, we will explore polymorphism in embedded C and C++. You will learn to add new classes to your project, implement polymorphism, and use virtual functions to enhance the flexibility and scalability of your firmware.

What's included

3 videos

3 videosβ€’Total 69 minutes
  • Another Class to Our Firmware in Cβ€’15 minutes
  • Implementing Polymorphism in C (Part I)β€’30 minutes
  • Implementing Polymorphism in C (Part II)β€’24 minutes

In this module, we will extend the GPIO library to handle alternate functions. This optional section will allow you to apply advanced features to your GPIO driver, enhancing its overall functionality and versatility.

What's included

1 video1 assignment

1 videoβ€’Total 33 minutes
  • Extending the GPIO Library for Handling Alternate Functionsβ€’33 minutes
1 assignmentβ€’Total 15 minutes
  • Assessment 2β€’15 minutes

In this module, we will focus on developing a GPIO library in C++ from scratch. You will apply object-oriented principles to manage GPIOs effectively and ensure the library's functionality through thorough testing.

What's included

1 video

1 videoβ€’Total 48 minutes
  • Developing a General-Purpose Input / Output Library in C++β€’48 minutes

In this module, we will guide you through creating a UART driver and library in C. You will learn to implement UART register structures, develop the driver and library, and validate their functionality through comprehensive testing.

What's included

5 videos

5 videosβ€’Total 91 minutes
  • Implementing the UART Registers Structureβ€’21 minutes
  • Developing the UART Driverβ€’23 minutes
  • Developing the UART Library (PART I)β€’38 minutes
  • Developing the UART Library (PART II)β€’5 minutes
  • Testing the UART Libraryβ€’3 minutes

In this module, we will develop a UART library in C++ from scratch. You will apply object-oriented principles to manage UARTs effectively and ensure the library's functionality through thorough testing.

What's included

1 video1 assignment

1 videoβ€’Total 19 minutes
  • Developing the UART Library in C++β€’19 minutes
1 assignmentβ€’Total 15 minutes
  • Assessment 3β€’15 minutes

In this module, we will focus on creating a SysTick timer library in C. You will learn to implement the SysTick registers structure, develop and test the library, and then transition the implementation to C++ for enhanced functionality.

What's included

4 videos

4 videosβ€’Total 54 minutes
  • Implementing the SysTick Registers Structureβ€’15 minutes
  • Testing the SysTick Library Cβ€’9 minutes
  • Writing the SysTick Library Cβ€’14 minutes
  • Implementing the SysTick Library C++β€’16 minutes

In this module, we will guide you through setting up the STM32CubeIDE. You will learn to download, install, and configure the IDE, and then write and test a GPIO driver using the STM32CubeIDE environment.

What's included

6 videos1 assignment

6 videosβ€’Total 87 minutes
  • Download CubeIDEβ€’4 minutes
  • Setting Up STM32CubeIDEβ€’7 minutes
  • Installing Packagesβ€’6 minutes
  • STM32 CubeMX Overview: Project Setup and Configurationβ€’17 minutes
  • Writing a GPIO Driver from Scratch (Part I)β€’34 minutes
  • Writing a GPIO Driver from Scratch (Part II)β€’17 minutes
1 assignmentβ€’Total 15 minutes
  • Assessment 4β€’15 minutes

In this module, we will conclude the course by summarizing the key concepts covered. You will be encouraged to continue exploring and applying your firmware programming skills, and provided with contact information for any additional support or questions.

What's included

1 video2 assignments

1 video
  • Closing Remarksβ€’0 minutes
2 assignmentsβ€’Total 75 minutes
  • Full Course Practice Assessmentβ€’15 minutes
  • Full Course Assessmentβ€’60 minutes

Instructor

Packt
1,946 Coursesβ€’575,115 learners

Explore more from Software Development

Why people choose Coursera for their career

πŸ‘ Image

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."
πŸ‘ Image

Jennifer J.

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

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."
πŸ‘ Image

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."

Frequently asked questions

Yes, you can preview the first video and view the syllabus before you enroll. You must purchase the course to access content not included in the preview.

If you decide to enroll in the course before the session start date, you will have access to all of the lecture videos and readings for the course. You’ll be able to submit assignments once the session starts.

Once you enroll and your session begins, you will have access to all videos and other resources, including reading items and the course discussion forum. You’ll be able to view and submit practice assessments, and complete required graded assignments to earn a grade and a Course Certificate.

If you complete the course successfully, your electronic Course Certificate will be added to your Accomplishments page - from there, you can print your Course Certificate or add it to your LinkedIn profile.

This course is currently available only to learners who have paid or received financial aid, when available.

Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.

Financial aid available,