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
Introduction to Embedded Systems and C++
- Exploring embedded systems architecture
- Key challenges in embedded software development
- Evaluating the suitability of C++ for microcontrollers and embedded platforms
- Striking a balance between abstraction, performance, and resource limitations
Embedded C++ Development Environment
- Configuring the embedded development toolchain
- Utilising compilers, debuggers, and build systems
- Interacting with target devices
- Building and deploying embedded applications
Object-Oriented Programming for Embedded Systems
- Core principles of object-oriented design
- Managing classes and objects within resource-constrained environments
- Leveraging encapsulation for modular design
- Effective application of object-oriented techniques in embedded contexts
Advanced C++ Features for Embedded Development
- Utilising inheritance and polymorphism
- Considering the runtime overhead of virtual functions
- Using templates while avoiding unnecessary code expansion
- Optimising performance through inline functions
Memory Management and Resource Optimisation
- Navigating memory constraints in embedded systems
- Strategic use of stack and heap memory
- Implementing effective dynamic memory management strategies
- Mitigating memory fragmentation and code bloat
Error Handling and Safety Considerations
- Managing exceptions in embedded environments
- Designing software for reliability and predictability
- Applying defensive programming techniques
- Addressing C++ specific concerns in safety-critical systems
C++ Standard Libraries and Embedded Usage
- Selecting suitable standard library features
- Minimising 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 sequence
- Managing initialisation routines
- Debugging C++ applications on target hardware
- Identifying and resolving performance and runtime issues
Real-Time Programming and Operating Systems
- Essentials of real-time systems
- Integrating with real-time operating systems (RTOS)
- Managing task scheduling and timing constraints
- Building responsive and deterministic applications
C and C++ Interoperability
- Merging C and C++ codebases
- Invoking C libraries from C++
- Managing mixed-language embedded projects
- Strategies for migrating from C to C++
Object-Oriented Modelling and UML
- Applying UML to embedded software design
- Modelling classes and system components
- Translating designs into efficient embedded code
- Enhancing maintainability through structured design
Practical Embedded C++ Application Workshop
- Developing a complete embedded application using C++
- Implementing optimisation and safety measures
- Conducting tests and debugging on a target device
- Reviewing best practices and future development steps
Requirements
- A foundational understanding of 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.