Course Outline
Introduction to Embedded Systems and C++
- Overview of embedded systems architecture
- Challenges of embedded software development
- Suitability of C++ for microcontrollers and embedded platforms
- Balancing abstraction, performance, and resource constraints
Embedded C++ Development Environment
- Setting up the embedded development toolchain
- Compilers, debuggers, and build systems
- Working with target devices
- Developing and deploying embedded applications
Object-Oriented Programming for Embedded Systems
- Principles of object-oriented design
- Classes and objects in resource-constrained environments
- Encapsulation and modular design
- Applying object-oriented techniques effectively in embedded applications
Advanced C++ Features for Embedded Development
- Inheritance and polymorphism
- Virtual functions and runtime overhead considerations
- Templates and avoiding unnecessary code expansion
- Inline functions and performance optimisation
Memory Management and Resource Optimisation
- Memory constraints in embedded systems
- Stack and heap usage considerations
- Dynamic memory management strategies
- Avoiding memory fragmentation and code bloat
Error Handling and Safety Considerations
- Exception handling in embedded environments
- Designing reliable and predictable software
- Defensive programming techniques
- C++ considerations for safety-critical systems
C++ Standard Libraries and Embedded Usage
- Selecting appropriate standard library features
- Minimising resource usage
- Custom libraries and embedded-friendly alternatives
- Writing efficient and maintainable code
Startup, Hardware Interaction, and Debugging
- Embedded application startup sequence
- Initialisation routines
- Debugging C++ applications on target hardware
- Diagnosing performance and runtime issues
Real-Time Programming and Operating Systems
- Fundamentals of real-time systems
- Working with real-time operating systems (RTOS)
- Task scheduling and timing constraints
- Developing responsive and deterministic applications
C and C++ Interoperability
- Integrating C and C++ codebases
- Calling C libraries from C++
- Managing mixed-language embedded projects
- Migration strategies from C to C++
Object-Oriented Modelling and UML
- Applying UML for embedded software design
- Modelling classes and system components
- Translating designs into efficient embedded code
- Improving maintainability through structured design
Practical Embedded C++ Application Workshop
- Developing an embedded application using C++
- Applying optimisation and safety techniques
- Testing and debugging on a target device
- Review of best practices and next steps
Requirements
- A general understanding of C++
Custom Corporate Training
Training solutions designed exclusively for businesses.
- Customized Content: We adapt the syllabus and practical exercises to the real goals and needs of your project.
- Flexible Schedule: Dates and times adapted to your team's agenda.
- Format: Online (live), In-company (at your offices), or Hybrid.
Price per private group, online live training, starting from 3900 € + VAT*
Contact us for an exact quote and to hear our latest promotions
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.