C++ For Embedded Developers (Beginning of 2023)¶
Give an idea how an experienced C programmer can benefit from the C++ toolcase. The following aspects are covered, accompanied with many exercises.
C++ is an object oriented language. That term alone has many facets, and a solid understanding of each is given. Constructors, destructors, automatic pointer/base-class conversion, late binding (“abstract”?), and all that.
C++ also brings a rich toolset in form of its standard library. After a short conceptual introduction, containers and algorithms are something that is immediately useful for non-OO programmers.
C++ does not stop there; starting from its 2011 definition, the language has undergone a major revolution. An overview is given.
Pointer Arithmetic Recap: Pointers and Arrays
Sorted Array Algorithms
Exercise series ideas …
A sensor abstract base class - an interface
A number of concrete sensor implementations
A configured set of those, measuring live data
Live data is posted via another interface
Another interface in the system
Display measurement values
Concrete implementation: a software PWM using a timer and a GPIO
C++11 intro screenplay verlinken
OO Intro (Point etc.)
HAL/C -> C++ wrappers
Timer management in Linux: Signals vs. Thread
GPIO in Linux
-> Software PWM (as opposed to hardware PWM </trainings/material/soup/linux/hardware/pwm/topic>)
Work environment: WSL links
Punkte von Stefan
C++ >= 11
new operator overload?
Global objects initialization order