Skip to content
CEC Semester Twelve 2017

Embedded System Design Techniques - Transitioning from C to C++

Jacob Beningo -
Embedded Software Consultant, Firmware Expert, Smallsat Flight Software
October 9,
2017
C++ Fundamentals
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.
Course Resources
Special Educational Materials
ISSIDDR3 Memory SolutionsDDR3 DRAM with ECC PTM
Download Archive (mp3 - audio only)
October 10,
2017
Designing a C++ Application
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.
Course Resources
Special Educational Materials
ISSI DDR3 Memory SolutionsDDR3 DRAM with ECC PTM
Download Archive (mp3 - audio only)
October 11,
2017
Beginning the Transition
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++.
Course Resources
Special Educational Materials
ISSIDDR3 Memory SolutionsDDR3 DRAM with ECC PTM
Download Archive (mp3 - audio only)
October 12,
2017
Real-time 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.
Course Resources
Special Educational Materials
ISSIDDR3 Memory SolutionsDDR3 DRAM with ECC PTM
Download Archive (mp3 - audio only)
October 13,
2017
Getting into the Bits and Bytes
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.
Course Resources
Special Educational Materials
ISISDDR3 Memory SolutionsDDR3 DRAM with ECC PTM
Download Archive (mp3 - audio only)
Instructor
Jacob Beningo
Embedded Software Consultant, Firmware Expert, Smallsat Flight Software

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.