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++
- Foundations of embedded system architecture
- Key challenges in embedded software development
- Evaluating C++ suitability for microcontrollers and embedded platforms
- Balancing abstraction levels against performance and resource limitations
Embedded C++ Development Environment
- Configuring the embedded development toolchain
- Utilizing compilers, debuggers, and build systems
- Interfacing with target devices
- Building and deploying embedded applications
Object-Oriented Programming for Embedded Systems
- Core principles of object-oriented design
- Implementing classes and objects in resource-constrained settings
- Leveraging encapsulation and modular design
- Effectively applying object-oriented techniques in embedded contexts
Advanced C++ Features for Embedded Development
- Utilizing inheritance and polymorphism
- Assessing virtual functions and their runtime overhead
- Managing templates to prevent unnecessary code expansion
- Optimizing performance with inline functions
Memory Management and Resource Optimisation
- Navigating memory constraints in embedded systems
- Considerations for stack and heap utilization
- Strategies for dynamic memory management
- Mitigating memory fragmentation and code bloat
Error Handling and Safety Considerations
- Managing exception handling in embedded environments
- Engineering reliable and predictable software behavior
- Implementing defensive programming techniques
- C++ specifics for safety-critical system requirements
C++ Standard Libraries and Embedded Usage
- Selecting suitable standard library components
- Minimizing resource consumption
- Utilizing custom libraries and embedded-friendly alternatives
- Writing code that is both efficient and maintainable
Startup, Hardware Interaction, and Debugging
- Understanding the embedded application startup sequence
- Designing initialization routines
- Debugging C++ applications on physical target hardware
- Identifying performance bottlenecks and runtime issues
Real-Time Programming and Operating Systems
- Basics of real-time system behavior
- Working with real-time operating systems (RTOS)
- Managing task scheduling and strict timing constraints
- Crafting responsive and deterministic applications
C and C++ Interoperability
- Merging C and C++ codebases
- Invoking C libraries from within C++
- Managing projects that combine C and C++ components
- Strategies for migrating from C to C++
Object-Oriented Modelling and UML
- Using UML for embedded software architecture
- Modelling classes and system components
- Translating design models into efficient embedded code
- Enhancing maintainability through structured design practices
Practical Embedded C++ Application Workshop
- Building an embedded application with C++
- Applying optimization and safety best practices
- Conducting testing and debugging on target devices
- Reviewing industry best practices and future development 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.