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++
- Fundamentals of embedded system architecture
- Key challenges in embedded software development
- Assessing C++ compatibility with microcontrollers and embedded platforms
- Managing the trade-offs between abstraction, performance, and resource limitations
Embedded C++ Development Environment
- Configuring the embedded development toolchain
- Utilizing compilers, debuggers, and build systems
- Interaction with target devices
- Building and deploying embedded applications
Object-Oriented Programming for Embedded Systems
- Core tenets of object-oriented design
- Implementing classes and objects within resource-constrained contexts
- Utilizing encapsulation and modular architecture
- Effective application of OOP techniques in embedded scenarios
Advanced C++ Features for Embedded Development
- Leveraging inheritance and polymorphism
- Evaluating virtual functions and their runtime overhead
- Using templates while preventing excessive code expansion
- Optimizing performance with inline functions
Memory Management and Resource Optimization
- Addressing memory constraints in embedded contexts
- Considerations for stack and heap utilization
- Strategies for dynamic memory management
- Mitigating memory fragmentation and code bloat
Error Handling and Safety Considerations
- Handling exceptions in embedded environments
- Designing software that is both reliable and predictable
- Applying defensive programming methods
- Specific C++ requirements for safety-critical systems
C++ Standard Libraries and Embedded Usage
- Selecting suitable standard library components
- Minimizing resource consumption
- Exploring custom libraries and embedded-friendly alternatives
- Crafting code that is both efficient and maintainable
Startup, Hardware Interaction, and Debugging
- Understanding the embedded application startup process
- Managing initialization routines
- Debugging C++ code 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)
- Task scheduling and adhering to timing constraints
- Creating responsive and deterministic applications
C and C++ Interoperability
- Merging C and C++ codebases
- Invoking C libraries from within C++
- Managing projects with mixed-language components
- Strategies for migrating from C to C++
Object-Oriented Modeling and UML
- Applying UML for embedded software design
- Modeling 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++
- Implementing optimization and safety measures
- Testing and debugging on target devices
- Reviewing best practices and future steps
Requirements
- A foundational 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.