Embedded System Design Techniques - Transitioning from C to C++
CEC Archives | CEC Semester Twelve 2017 | Embedded System Design Techniques - Transitioning from C to C++
Developers are very familiar with C but when it comes to C++, many developers have either never touched the language or forgotten everything they have learned. In this session, attendees will get a brief refresher course on critical object-oriented concepts such as object and classes, encapsulation, inheritance and polymorphism. Attendees will have the opportunity to write a C++ program without the need for any specialized hardware.
Developers working in C typically think in a very functional or procedural mindset. When working with an object-oriented language, developers need to think in terms of objects and operations. In this session, attendees will learn how to design a C++ application by performing functional decomposition. Attendees will walk away with a new mindset on how to design application and how to encourage more reuse and portability from their software.
In this session, attendees will examine how to get C++ up and running on a target development board and create their first embedded C++ applications. We will discuss the various tools developers should be using and get an LED blinky program up and running on hardware. Attendees will walk away with real world C++ experience along with ideas on how they can start transitioning their own code over to C++.
In the past, many complaints about using C++ rather than C were related to performance or code size issues. In many cases, this simply was due to the developer using language features that are not appropriate for a real-time system. In this session, we will continue to build on our LED blinky program by examining inheritance, dynamic polymorphism, pure and virtual abstractions and how they can affect the applications real-time performance.
In this final session, we will examine the concepts and techniques developers require to map their application into the low-level hardware. Attendees will examine how to access microcontroller registers, create drivers and the template class. At the end of the course developers will know enough C++ to intelligently design applications and understand the potential pitfalls with different language constructs.

Jacob Beningo is an embedded software consultant who currently works with clients in more than a dozen countries to dramatically transform their businesses by improving product quality, cost and time to market. He has published more than 300 articles on embedded software development techniques, has published several books, is a sought-after speaker and technical trainer and holds three degrees which include a Masters of Engineering from the University of Michigan.