Course Outline
Introduction to Embedded Systems and C++
- Overview of embedded systems architecture
- Key challenges in embedded software development
- Evaluating C++ suitability for microcontrollers and embedded platforms
- Balancing abstraction, performance, and resource limitations
Embedded C++ Development Environment
- Configuring the embedded development toolchain
- Utilizing compilers, debuggers, and build systems
- Interaction with target devices
- Developing and deploying embedded applications
Object-Oriented Programming for Embedded Systems
- Fundamentals of object-oriented design
- Managing classes and objects in resource-constrained environments
- Encapsulation and modular architecture
- Effective application of OOP techniques in embedded contexts
Advanced C++ Features for Embedded Development
- Inheritance and polymorphism
- Virtual functions and assessing runtime overhead
- Templates and preventing unnecessary code expansion
- Inline functions and performance optimization
Memory Management and Resource Optimization
- Addressing memory constraints in 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 within embedded environments
- Designing for software reliability and predictability
- Defensive programming practices
- C++ specific concerns for safety-critical systems
C++ Standard Libraries and Embedded Usage
- Selecting suitable standard library components
- Reducing resource consumption
- Custom libraries and embedded-friendly alternatives
- Writing code that is both efficient and maintainable
Startup, Hardware Interaction, and Debugging
- The startup sequence for embedded applications
- Initialization routines
- Debugging C++ applications on target hardware
- Diagnosing performance and runtime issues
Real-Time Programming and Operating Systems
- Basics of real-time systems
- Working with Real-Time Operating Systems (RTOS)
- Task scheduling and adhering to timing constraints
- Building 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
- Using UML for embedded software design
- Modelling classes and system components
- Converting designs into efficient embedded code
- Enhancing maintainability through structured design
Practical Embedded C++ Application Workshop
- Building an embedded application with C++
- Applying optimization and safety techniques
- Testing and debugging on the target device
- Review of best practices and subsequent 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 4800 € + 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.