Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Coursera

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

Packt via Coursera

Overview

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.

Syllabus

  • Introduction to the course
    • 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.
  • Object-Oriented Firmware Programming
    • 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.
  • Implementing Inheritance in Embedded C and C++
    • 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.
  • Developing an Object-Oriented GPIO Driver and Library in C from Scratch
    • 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.
  • Implementing Polymorphism in Embedded C and C++
    • 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.
  • More General-Purpose Input/Output (GPIO) Features (Optional)
    • 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.
  • Developing an Object-Oriented GPIO Driver and Library in C++ From Scratch
    • 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.
  • Developing an Object-Oriented UART Driver and Library in C from Scratch
    • 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.
  • Developing an Object-Oriented UART Driver and Library in C++ from Scratch
    • 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.
  • Developing an Object-Oriented SysTick Timer Library in C from Scratch
    • 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.
  • Setting Up Option 2 - STM32CubeIDE
    • 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.
  • Closing Remarks
    • 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.

Taught by

Packt - Course Instructors

Reviews

Start your review of Embedded Systems Object-Oriented Programming in C and C++

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.