Course Outline
Introduction to Embedded Systems and C++
- Overview of embedded systems architecture
- Challenges in embedded software development
- Evaluating C++ for microcontrollers and embedded platforms
- Balancing abstraction, performance, and resource limits
Embedded C++ Development Environment
- Configuring the embedded development toolchain
- Utilizing compilers, debuggers, and build systems
- Interacting with target devices
- Creating and deploying embedded applications
Object-Oriented Programming for Embedded Systems
- Core principles of object-oriented design
- Classes and objects in resource-constrained settings
- Encapsulation and modular architecture
- Effective application of OOP in embedded contexts
Advanced C++ Features for Embedded Development
- Inheritance and polymorphism
- Virtual functions and their runtime overhead implications
- Templates and strategies to avoid unnecessary code expansion
- Inline functions and performance tuning
Memory Management and Resource Optimisation
- Memory constraints within embedded systems
- Considerations for stack and heap usage
- Strategies for dynamic memory management
- Mitigating memory fragmentation and code bloat
Error Handling and Safety Considerations
- Exception handling in embedded environments
- Designing for reliability and predictability
- Defensive programming practices
- C++ specifics for safety-critical systems
C++ Standard Libraries and Embedded Usage
- Selecting suitable standard library features
- Minimizing resource consumption
- Custom libraries and embedded-friendly alternatives
- Crafting efficient and maintainable code
Startup, Hardware Interaction, and Debugging
- Embedded application startup sequences
- Initialization 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
- Merging C and C++ codebases
- Invoking C libraries from C++
- Managing mixed-language embedded projects
- Strategies for migrating from C to C++
Object-Oriented Modelling and UML
- Utilizing UML for embedded software design
- Modeling classes and system components
- Translating designs into efficient embedded code
- Enhancing maintainability through structured design
Practical Embedded C++ Application Workshop
- Building an embedded application using C++
- Applying optimization and safety techniques
- Testing and debugging on a target device
- Reviewing 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 4350 € + 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.