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.
Course Outline
Foundations of Embedded Systems and C++
- Architecture of embedded systems
- Challenges in embedded software engineering
- Evaluating C++ suitability for microcontrollers and embedded platforms
- Managing the balance between abstraction, performance, and resource limits
Setting Up the Embedded C++ Environment
- Configuring the embedded development toolchain
- Utilizing compilers, debuggers, and build systems
- Interacting with target devices
- Building and deploying embedded applications
Applying Object-Oriented Programming to Embedded Systems
- Core tenets of object-oriented design
- Managing classes and objects in resource-constrained settings
- Encapsulation and modular architecture
- Effectively implementing object-oriented methods in embedded contexts
Advanced C++ Features for Embedded Contexts
- Utilizing inheritance and polymorphism
- Assessing virtual functions and their runtime overhead
- Using templates while preventing unnecessary code expansion
- Leveraging inline functions for performance optimization
Memory Management and Resource Efficiency
- Navigating 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 Protocols
- Exception handling within embedded environments
- Designing for software reliability and predictability
- Employing defensive programming practices
- Addressing C++ specificities for safety-critical systems
Utilizing C++ Standard Libraries in Embedded Settings
- Selecting suitable standard library components
- Reducing resource consumption
- Developing custom libraries and embedded-friendly alternatives
- Writing code that is both efficient and maintainable
Startup Sequences, Hardware Interaction, and Debugging
- The startup process for embedded applications
- Initialization routines
- Debugging C++ code on physical target hardware
- Identifying and resolving performance and runtime issues
Real-Time Programming and Operating Systems
- Core concepts 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
- Integrating C and C++ codebases
- Invoking C libraries from within C++
- Managing embedded projects with mixed language code
- Strategies for migrating from C to C++
Object-Oriented Modeling and UML
- Using UML for embedded software architecture
- Modeling classes and system components
- Translating designs into efficient embedded code
- Enhancing maintainability through structured design
Hands-On Embedded C++ Workshop
- Developing a complete embedded application in C++
- Implementing optimization and safety techniques
- Testing and debugging on target devices
- Reviewing best practices and future steps
Requirements
- A general proficiency in C++
21 Hours
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.