Embedded Software: The Works

C is still the default language for embedded software development, but most modern engineers have some knowledge of C++, even if they have yet to apply it in this context. In this chapter, articles cover the broad topic of moving from C to C++, some specific language features are looked at in detail, and particular applications of C++ are outlined.
Engineers are often attracted by new technology. They are naturally enthusiastic about being on the leading edge using the latest programming techniques and languages, for example. Even though embedded developers are, on the whole, somewhat conservative, they ultimately have the same mind set. Managers, on the other hand, have an "if it ain't broke, don't fix it" attitude. In any embedded development environment, a healthy tension exists between these two cultures. I wrote this white paper a few years ago in answer to engineers' request: "How can I persuade my manager to pay for C++? I know it's what we need." (CW)
The technical pros and cons of using C++ for embedded systems applications are widely discussed. This paper considers the matter from the viewpoint of the manager. A software team leader is not concerned with the finer points of a programming language; he is interested only in the benefits that its adoption might yield.
In the early days of embedded systems development, the "team" would be just one engineer, who would design the hardware, build the prototype, and...