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
- Challenges in embedded software development
- Evaluating 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
- 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 environments
- Encapsulation and modular design strategies
- Effectively applying object-oriented techniques in embedded applications
Advanced C++ Features for Embedded Development
- Inheritance and polymorphism
- Virtual functions and runtime overhead implications
- Templates and preventing unnecessary code expansion
- Inline functions and performance optimization
Memory Management and Resource Optimization
- Memory constraints inherent 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 reliable and predictable software
- Techniques for defensive programming
- C++ specific considerations for safety-critical systems
C++ Standard Libraries and Embedded Usage
- Selecting suitable standard library features
- Minimizing resource consumption
- Custom libraries and embedded-friendly alternatives
- Writing efficient and maintainable code
Startup, Hardware Interaction, and Debugging
- Startup sequences for embedded applications
- Initialization routines
- Debugging C++ applications on target hardware
- Identifying 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 timing constraints
- Developing responsive and deterministic applications
C and C++ Interoperability
- Integrating C and C++ codebases
- Invoking C libraries from C++
- Managing embedded projects with mixed languages
- Strategies for migrating from C to C++
Object-Oriented Modelling and UML
- Utilizing 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 a target device
- Reviewing best practices and subsequent steps
Requirements
- A general understanding of C++
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.