Course Outline
Introduction to Embedded Systems and C++
- Overview of embedded system architectures
- Challenges inherent in embedded software development
- Evaluation of C++ 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
- Interfacing with target devices
- Developing and deploying embedded applications
Object-Oriented Programming for Embedded Systems
- Core principles of object-oriented design
- Implementing classes and objects within resource-constrained environments
- Leveraging encapsulation and modular design patterns
- Effectively applying object-oriented techniques in embedded contexts
Advanced C++ Features for Embedded Development
- Utilizing inheritance and polymorphism
- Assessing virtual functions and runtime overhead implications
- Managing templates to avoid unnecessary code expansion
- Optimizing performance through 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
- Handling exceptions in embedded environments
- Designing for software 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
- Utilizing custom libraries and embedded-friendly alternatives
- Writing code that is both efficient and maintainable
Startup, Hardware Interaction, and Debugging
- Understanding the embedded application startup sequence
- Implementing initialization routines
- Debugging C++ applications on target hardware
- Diagnosing performance bottlenecks and runtime issues
Real-Time Programming and Operating Systems
- Fundamentals of real-time systems
- Working 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
- Invoking C libraries from within C++
- Managing projects that involve mixed-language programming
- Strategies for migrating from C to C++
Object-Oriented Modelling and UML
- Applying UML in embedded software design
- Modelling classes and system components
- Translating design models into efficient embedded code
- Enhancing maintainability through structured design approaches
Practical Embedded C++ Application Workshop
- Developing an embedded application using C++
- Applying optimization and safety measures
- Conducting testing and debugging on target devices
- Reviewing best practices and outlining next steps
Requirements
- A general familiarity with 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.