- Home
- Engineering Services
- Embedded Software Training Courses
- Embedded Systems Programming in C++
Course Overview
Embedded Systems Programming in C++
This course will teach you how to use C++ to write efficient and maintainable embedded programs. You'll learn how to leverage C++'s classes and templates to write readable, yet efficient, abstractions to represent and manipulate peripheral hardware in a bare metal environment.
C++ has a lot to offer to embedded programmers. Classes can be very helpful in hiding the messy details of interacting with hardware behind clean APIs. Templates and inheritance can help you capture commonality and promote reuse. Overloading and user-defined type conversions can support friendlier and safer user interfaces. Modern C++ offers additional tools to increase readability, prevent run-time errors, and improve execution time.
This course emphasizes programming styles and idioms that turn potential run-time errors into compile-time errors. It takes you “under the hood” to see how compilers and linkers implement C++ language features, giving you the insight you need to avoid many performance pitfalls. It focuses primarily on coding techniques that use standard features of the C++ programming language, but of necessity it also occasionally employs non-standard approaches.
Programming exercises designed to reinforce the lessons presented are included.
Topics covered during this course include:
- Enumeration and Class Types
- The const and volatile Qualifiers
- Nested Constants and Types
- Function and Operator Overloading
- Inheritance
- Templates
- Language Linkage
- Hardware Interfacing
- Interrupt Handling
- Error Handling
This course is appropriate for:
- Embedded software developers interested in leveraging the features of C++
- C++ programmers seeking to enhance their hardware interfacing skills
Prerequisites: You should arrive with experience programming in C. You need not have much experience programming in C++, but you should be familiar with the following core features of C++: the “C” part of C++, classes, constructors and destructors, and function name and operator overloading. You should also have some exposure to the const qualifier, namespaces, new- and delete-expressions, reference types, single inheritance, static class members, virtual functions, and templates.
Prior experience writing hardware interfaces is helpful, but not necessary.
For on-site training, a 3-day version of this course is also available for audiences with experience in C++ development.