Modern Bare-Metal Embedded C++ Programming from Ground Up™
No Libraries used, Embedded C++, ADC,UART,TIMERS, GPIO,SPI,I2C, Template Programming etc.
Watch Promo
Welcome to the Modern Embedded C++ Bare Metal course.
This is a practical programming course on embedded systems programming using the C++ programming language. Key features of C++ such as template programming and object-oriented programming can greatly improve embedded software portability, in recent years this has made C++ very attractive to embedded developers.
The goal of this course is to teach you how to navigate the microcontroller reference manual and datasheet to extract the right information to professionally build peripheral drivers and firmware. To achieve this goal, no libraries are used in this course, purely bare-metal Embedded-C++ and register manipulations.
By the end of this course you will be able write drivers for peripherals like ADC, UART, PWM, GPIO, TIMER,I2C, SPI, etc. You will also master the ARM architecture and how to build professional embedded firmware for ARM processors.
Furthermore, you will master C++ key features like Object-Oriented methods, Template Programming, and optimization.
Frequently Asked Questions
Course Curriculum
-
StartConfiguring our UART driver for displaying results (Part I) (43:23)
-
StartConfiguring our UART driver for displaying results (Part II) (26:44)
-
StartUnderstanding Classes and Objects (10:18)
-
StartDynamic Allocation (13:32)
-
StartVariable References (7:16)
-
StartUnderstanding Function Templates (10:58)
-
StartUsing Default Arguments (3:11)
-
StartUnderstanding Pass by Reference and Pass by Value (5:32)
-
StartUnderstanding Pass by Address (1:33)
-
StartReturn by Address (6:11)
-
StartClass Property Functions (9:15)
-
StartClass Constructors (7:04)
-
StartUnderstanding Scope Resolution (10:38)
-
StartUnderstanding "this" Pointer (5:03)
-
StartDifferences between Class and Struct (3:59)
-
StartThe function "friend" (7:04)
-
StartClass Inheritance (10:57)
-
StartUnderstanding Access Specifiers (7:37)
-
StartClass Pointers (9:37)
-
StartFunction Overriding (5:51)
-
StartVirtual Functions (5:36)
-
StartPolymorphism (Part I) (8:46)
-
StartPolymorphism (Part II) (2:26)
-
StartThe class "friend" (7:36)
-
StartStatic Variables (4:45)
-
StartStatic Functions (2:08)
-
StartClass Template (14:34)
-
StartUnderstanding namespaces (5:26)
-
StartClass Deconstructors (7:13)
-
StartClass virtual deconstructors (6:03)
-
StartIntroduction to Microcontroller Template Programming (21:24)
-
StartDeveloping a Template for accessing Microcontroller Registers (Version 1) (50:21)
-
PreviewDeveloping a Template for accessing Microcontroller Registers (Version 2) (12:51)
-
StartRegister Bit-mapping (Part I) (7:09)
-
StartRegister Bit-mapping (Part II) (5:35)
-
StartApplying Register Bit-mapping to Register Access Class Template (10:12)
-
StartDeveloping a Microcontroller Port Class Template (30:12)
Your Instructor
EmbeddedExpertIO represents a vibrant collective dedicated to the mastery of sophisticated embedded systems software development for professionals.
Our core objective is to equip individuals and organizations with the indispensable skills to thrive in the swiftly evolving embedded systems sector. We achieve this by providing immersive, hands-on education under the guidance of seasoned industry specialists. Our ambition is to emerge as the favored learning platform for embedded systems development professionals across the globe.