C++ For Embedded Developers (Beginning of 2023)

Goal

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.

Object Oriented Programming

Standard Template Library

Exercise Series

Exercise series ideas …

  • Sensors

    • 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

  • Display(s)

    • Another interface in the system

    • Display measurement values

    • Concrete implementation: a software PWM using a timer and a GPIO

C++11 Outlook

Teams Meeting 2022-12-06

  • 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

    • array !!!!!

    • optimierungskapitel?

    • new operator overload?

    • smart ptr

    • Global objects initialization order

  • Zeitpunkt

    • März

    • Präsent