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++
- Overview of embedded systems architecture
- Challenges inherent in embedded software development
- Assessing 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
- Utilizing compilers, debuggers, and build systems
- Interacting with target devices
- Creating and deploying embedded applications
Object-Oriented Programming for Embedded Systems
- Core principles of object-oriented design
- Implementing classes and objects in resource-constrained environments
- Applying encapsulation and modular design
- Effectively integrating object-oriented techniques into embedded applications
Advanced C++ Features for Embedded Development
- Understanding inheritance and polymorphism
- Evaluating virtual functions and their runtime overhead
- Managing templates to prevent unnecessary code expansion
- Using inline functions for performance optimization
Memory Management and Resource Optimization
- Navigating memory constraints in embedded systems
- Considering stack and heap usage
- Strategies for dynamic memory management
- Preventing memory fragmentation and code bloat
Error Handling and Safety Considerations
- Exception handling within embedded environments
- Designing for reliable and predictable software behavior
- Applying defensive programming techniques
- Addressing C++ considerations for safety-critical systems
C++ Standard Libraries and Embedded Usage
- Selecting appropriate 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
- The embedded application startup sequence
- Initialization routines
- Debugging C++ applications on target hardware
- Identifying and diagnosing performance and runtime issues
Real-Time Programming and Operating Systems
- Fundamentals of real-time systems
- Working with real-time operating systems (RTOS)
- Managing task scheduling and timing constraints
- Developing responsive and deterministic applications
C and C++ Interoperability
- Integrating 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 for 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 an embedded application using C++
- Applying optimization and safety techniques
- Testing and debugging on a target device
- Review of best practices and future 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.