CEC – Transitioning from C to C++

The C Programming language has been a dominate tool in embedded systems since its inception but as compiler and microcontroller technologies have advanced, more modern and object-oriented languages are beginning to make much more sense. I this course, Jacob Beningo will walk attendees through an introduction to C++ and demonstrate how it can be used in a real-time application running on ARM Cortex-M microcontrollers. Attendees will walk away with an understanding on when, where and how to begin using C++ in their applications.

Session 1 – 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.

Registration and Playback located here (May require login to access)

Session 2 – 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.

Registration and Playback located here (May require login to access)

Session 3 – 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++.

Registration and Playback located here (May require login to access)

Session 4 – 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.

Registration and Playback located here (May require login to access)

Session 5 – 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.

Registration and Playback located here (May require login to access)

Course Resourses

  • Sign-Up for the Embedded Bytes Newsletter here
  • Embedded Software Design Techniques – An API Standard for MCU’s here
  • Developing Reusable Firmware – A Practical Guide to API’s, HAL’s and Drivers here
  • Doxygen C Templates Download can be here
  • DesignNews Blog Articles can be found here
  • Jacob’s YouTube Channel – here

Course Source Code Download

Course materials can be found on the Insights page located here.

One thought on “CEC – Transitioning from C to C++”

Leave a Reply to Alvin Schatte Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.