Software for embedded systems is becoming ever more complex. This requires a radical rethinking in the embedded software development community, comparable to the Assembler to-C transition years ago. Even in many smaller embedded system development projects, the days of the one-engineer “software team” are counted, if not all over. Object-oriented software development is a proven solution for taming software complexity. While, at least to a certain degree, object-oriented principles can also be applied to C programming, a programming language with inherent support for object-oriented programming brings many advantages.