
Install packs for the stm32 device and update device-specific packages for the stm32f4 variant on the nucleo board, then prepare startup files from the Sims driver core.
Create a new Keil IDE project for STM32 Nucleo, select the STM32 F446 variant, add startup code and a main file, and configure C++11 compilation and hex generation.
Explore why namespaces exist in embedded programming, learn the syntax and use cases, and see how namespaces enable modularity and avoid naming conflicts through hardware abstraction layers and led examples.
Explore the class concept in C++, including private and public access, constructors and destructors, and copy constructors with deep vs shallow copies, illustrated through practical examples.
Basic understanding of memory, for accessing the register of target peripheral in Cortex M3 microcontroller
Develop a simple STM32 gpio driver by configuring gpio a, enabling the RCC clock, and setting pa5 as an output with pull-up, using mode, pull-up/pull-down, and odr registers.
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 only the standard libraries are considered, for the sake of a clear and practical understanding of concepts.