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++
- Architectural overview of embedded systems
- Key challenges in embedded software development
- Evaluating C++ for microcontrollers and embedded platforms
- Striking a balance between abstraction, performance, and resource limitations
Setting Up the Embedded C++ Development Environment
- Configuring the embedded development toolchain
- Utilizing compilers, debuggers, and build systems
- Interacting with target hardware
- Building and deploying embedded applications
Applying Object-Oriented Programming to Embedded Systems
- Core principles of object-oriented design
- Managing classes and objects in resource-constrained environments
- Leveraging encapsulation and modular architecture
- Effectively implementing object-oriented techniques in embedded applications
Leveraging Advanced C++ Features in Embedded Development
- Utilizing inheritance and polymorphism
- Considering the runtime overhead of virtual functions
- Using templates while avoiding excessive code expansion
- Optimizing performance with inline functions
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
- Handling exceptions in embedded environments
- Designing for reliability and predictability
- Implementing defensive programming techniques
- C++ specifics for safety-critical systems
C++ Standard Libraries in Embedded Contexts
- Selecting the right standard library features
- Reducing resource consumption
- Employing custom libraries and embedded-friendly alternatives
- Writing code that is both efficient and maintainable
Startup Processes, Hardware Interaction, and Debugging
- The embedded application startup sequence
- Writing initialization routines
- Debugging C++ applications on target hardware
- Identifying and resolving performance and runtime issues
Real-Time Programming and Operating Systems
- Basics of real-time systems
- Working with real-time operating systems (RTOS)
- Managing task scheduling and timing constraints
- Creating responsive and deterministic applications
Interoperability Between C and C++
- Merging C and C++ codebases
- Invoking C libraries from C++
- Managing embedded projects with mixed languages
- Strategies for migrating from C to C++
Object-Oriented Modeling and UML
- Using 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 with C++
- Applying optimization and safety techniques
- Testing and debugging on target hardware
- Reviewing best practices and future steps
Requirements
- A general knowledge 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.