Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
Duration 21 hours
Course Outline
Introduction to Embedded Systems and C++
- Overview of embedded system architectures.
- Key challenges in embedded software development.
- Evaluating C++'s suitability for microcontrollers and embedded platforms.
- Striking a balance between abstraction, performance, and resource limitations.
Embedded C++ Development Environment
- Configuring the embedded development toolchain.
- Utilizing compilers, debuggers, and build systems.
- Interacting with target devices.
- Process of developing and deploying embedded applications.
Object-Oriented Programming for Embedded Systems
- Core principles of object-oriented design.
- Managing classes and objects within resource-constrained environments.
- Leveraging encapsulation for modular design.
- Effective application of OOP techniques in embedded contexts.
Advanced C++ Features for Embedded Development
- Implementing inheritance and polymorphism.
- Considering runtime overhead associated with virtual functions.
- Using templates while preventing unnecessary code expansion.
- Optimizing performance with inline functions.
Memory Management and Resource Optimisation
- Addressing memory constraints in embedded systems.
- Considerations for stack and heap usage.
- Strategies for dynamic memory management.
- Preventing memory fragmentation and code bloat.
Error Handling and Safety Considerations
- Managing exception handling in embedded environments.
- Designing for reliability and predictability.
- Employing defensive programming techniques.
- C++ specific considerations for safety-critical systems.
C++ Standard Libraries and Embedded Usage
- Selecting appropriate features from the standard library.
- Minimizing resource consumption.
- Developing custom libraries and embedded-friendly alternatives.
- Writing code that is both efficient and maintainable.
Startup, Hardware Interaction, and Debugging
- Understanding the startup sequence of embedded applications.
- Implementing initialisation routines.
- Debugging C++ applications on target hardware.
- Diagnosing performance bottlenecks and runtime issues.
Real-Time Programming and Operating Systems
- Foundations of real-time systems.
- Working effectively with real-time operating systems (RTOS).
- Managing task scheduling and timing constraints.
- Developing responsive and deterministic applications.
C and C++ Interoperability
- Integrating C and C++ codebases.
- Calling C libraries from C++ environments.
- Managing mixed-language embedded projects.
- Strategies for migrating from C to C++.
Object-Oriented Modelling and UML
- Applying UML for embedded software design.
- Modelling classes and system components.
- Translating design models into efficient embedded code.
- Enhancing maintainability through structured design.
Practical Embedded C++ Application Workshop
- Building an embedded application using C++.
- Applying optimization and safety best practices.
- Testing and debugging on target devices.
- Review of best practices and future steps.
Requirements
- A general familiarity with the C++ programming language.
Testimonials (2)
The trainer really adapted the training to our level and took a lot of time and efforts to make sure the presentation was well adapted.
Nicolas Guerette-Berthiaume - Trilliant
Course - C++ for Embedded Systems
Interactivity, time for self-contained programming. I learn easier if I have the chance to find out the answer and not just telling me it. It was also a very good thing that the training was well-planned, we kept coffee pauses and the training did not lose my attention. The trainer had very deep knowledge in C++, we felt we could ask anything.