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++
- Fundamentals of embedded systems architecture
- Key challenges in embedded software development
- Evaluating C++ for microcontrollers and embedded platforms
- Reconciling abstraction, performance, and resource limitations
Embedded C++ Development Environment
- Configuring the embedded development toolchain
- Utilizing compilers, debuggers, and build systems
- Interacting with target hardware
- Creating and deploying embedded applications
Object-Oriented Programming for Embedded Systems
- Core principles of object-oriented design
- Implementing classes and objects in resource-limited settings
- Leveraging encapsulation and modular architecture
- Effective application of object-oriented methods in embedded contexts
Advanced C++ Features for Embedded Development
- Utilizing inheritance and polymorphism
- Managing virtual functions and runtime overhead
- Using templates while preventing excessive code expansion
- Optimizing performance with inline functions
Memory Management and Resource Optimisation
- Addressing memory constraints in embedded systems
- Considerations for stack and heap utilization
- Strategies for dynamic memory management
- Preventing memory fragmentation and code bloat
Error Handling and Safety Considerations
- Managing exceptions in embedded environments
- Engineering reliable and predictable software
- Implementing defensive programming practices
- C++ nuances for safety-critical systems
C++ Standard Libraries and Embedded Usage
- Choosing suitable standard library components
- Reducing resource consumption
- Employing custom libraries and embedded-friendly alternatives
- Crafting efficient and maintainable code
Startup, Hardware Interaction, and Debugging
- Embedded application boot sequences
- Initialization routines
- Debugging C++ applications on target hardware
- Identifying and resolving performance and runtime issues
Real-Time Programming and Operating Systems
- Basics of real-time systems
- Integration with real-time operating systems (RTOS)
- Task scheduling and timing requirements
- Building responsive and deterministic applications
C and C++ Interoperability
- Merging C and C++ codebases
- Invoking C libraries from C++
- Managing embedded projects with mixed languages
- Approaches for migrating from C to C++
Object-Oriented Modelling and UML
- Using UML for embedded software design
- Modelling 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 subsequent steps
Requirements
- A general 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.