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 specific to embedded software development
- Evaluation of C++ suitability for microcontrollers and embedded platforms
- Balancing abstraction levels, performance metrics, and resource limitations
Embedded C++ Development Environment
- Configuration of the embedded development toolchain
- Utilization of compilers, debuggers, and build systems
- Interacting with target hardware
- Building and deploying embedded applications
Object-Oriented Programming for Embedded Systems
- Core principles of object-oriented design
- Implementation of classes and objects in resource-limited environments
- Use of encapsulation and modular architecture
- Effective application of object-oriented techniques in embedded contexts
Advanced C++ Features for Embedded Development
- Concepts of inheritance and polymorphism
- Virtual functions and assessment of runtime overhead
- Templates and strategies to prevent unnecessary code expansion
- Inline functions and methods for performance optimisation
Memory Management and Resource Optimisation
- Addressing 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
- Exception handling mechanisms in embedded environments
- Designing for software reliability and predictability
- Application of defensive programming techniques
- Specific C++ considerations for safety-critical systems
C++ Standard Libraries and Embedded Usage
- Selection of suitable standard library components
- Minimization of resource consumption
- Custom libraries and embedded-compatible alternatives
- Creation of efficient and maintainable codebases
Startup, Hardware Interaction, and Debugging
- Sequence of embedded application startup
- Initialisation routines
- Debugging C++ applications on target hardware
- Diagnosis of performance and runtime issues
Real-Time Programming and Operating Systems
- Foundations of real-time systems
- Operation within real-time operating systems (RTOS)
- Task scheduling and adherence to timing constraints
- Development of responsive and deterministic applications
C and C++ Interoperability
- Integration of C and C++ codebases
- Invoking C libraries from C++
- Management of mixed-language embedded projects
- Strategies for migrating from C to C++
Object-Oriented Modelling and UML
- Application of UML in embedded software design
- Modelling of classes and system components
- Translation of designs into efficient embedded code
- Enhancement of maintainability through structured design
Practical Embedded C++ Application Workshop
- Development of an embedded application using C++
- Implementation of optimisation and safety techniques
- Testing and debugging on target devices
- Review of best practices and future steps
Requirements
- A general proficiency in 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.