Embedded Programming With C++

Posted By: ELK1nG

Embedded Programming With C++
Published 7/2023
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 2.81 GB | Duration: 6h 10m

Advanced C++ concepts for embedded project development

What you'll learn

Use the C++ concepts of generic programming and object oriented programming principles for writing firmware

Debug the code and make the appropriate changes

Understand the datasheet and reference manual of cortex microcontroller

Understand the way to write peripheral driver and memory management using C++ features

Learn the ways to verify concepts using debugging principles

Requirements

Basic experience in C programming is required

Description

As there are many features and intricate details incorporated in C++ language, embedded developers are finding it a fascinating topic in recent years. The present course will essentially give a practical understanding to write software for the ARM cortex microcontrollers, along with modern C++ features.In the present course, the author has mainly concentrated to teach a way to leverage the C++ features along with object-oriented principles for microcontroller software. The C++ 11 version has been considered, for writing the drivers to peripherals and memory management of the STM32F446RE microcontroller. In section-1, the discussion is all about understanding the build process, KEIL, and DEV IDE installation. Such that reader will get comfortable with using ARM version-6 compiler for writing software to Cortex devices. Throughout the course, the community edition of those IDE’s are used for exploring the subject and it is free.In section-2, the discussion is all about giving some insight into the key topics related to C++ 11, such as templates and classes. For a better understanding, real-time examples were considered.  In addition, some focus is given to the scalability, modularity, and performance of software.In section-3, we have discussed the topic of register access,  by simply using both macros and explicit casting. In addition, the concept templates were also considered for understanding real-time usage.In section-4, the discussion is all about creating a GPIO peripheral driver and then a custom library using advanced C++ topics for controlling the Led connected to STM32F446RE. The listener will understand the usage of UML and generic programming concepts while designing the code.The section-5 is all about heap usage and custom memory management in the microcontroller, by using C++ concepts. Here we have only standard libraries are considered, for the sake of a clear and practical understanding of concepts.

Overview

Section 1: Introduction

Lecture 1 Introduction and Overview

Lecture 2 KEIL IDE download

Lecture 3 KEIL IDE installation

Lecture 4 Package installation for STM32 device

Lecture 5 Creating a project in KEIL

Lecture 6 Dev C++ installation

Section 2: C++ topics

Lecture 7 concept of "constexpr"

Lecture 8 Use of 'namespaces' in embedded program

Lecture 9 Use of 'explicit conversions' in embedded program

Lecture 10 Intro to class: lec-1

Lecture 11 Intro to class: lec-2

Lecture 12 use of "dynamic polymorphism"

Lecture 13 Intro to template: lec-1

Lecture 14 Intro to template: lec-2

Lecture 15 Intro to template: lec-3

Section 3: Register Access

Lecture 16 Memory model of Cortex-M3 microcontroller

Lecture 17 Accessing a register using macro

Lecture 18 Accessing a register using “reinterpret_cast”

Lecture 19 Accessing a register using “template class”

Section 4: GPIO Driver

Lecture 20 GPIO peripheral explanation

Lecture 21 GPIO driver development

Lecture 22 Adding template class to GPIO driver

Lecture 23 OOP based GPIO driver

Section 5: Custom Memory Management

Lecture 24 Basic heap usage

Lecture 25 Custom Pool Allocator

Firmware developers,hobbyists,Students and Instructors,Embedded software developers,Researchers