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++
- Fundamental architecture of embedded systems
- Technical challenges inherent in embedded software development
- Applicability of C++ for microcontrollers and embedded platforms
- Strategies for balancing abstraction, performance, and resource limitations
Embedded C++ Development Environment
- Configuration of the embedded development toolchain
- Utilization of compilers, debuggers, and build systems
- Integration with target hardware devices
- Development and deployment procedures for embedded applications
Object-Oriented Programming for Embedded Systems
- Core principles of object-oriented design
- Implementation of classes and objects in resource-constrained environments
- Encapsulation and modular architectural design
- Effective application of object-oriented techniques within embedded contexts
Advanced C++ Features for Embedded Development
- Inheritance and polymorphism mechanisms
- Virtual functions and assessment of runtime overhead
- Templates and mitigation of excessive code expansion
- Inline functions for performance optimization
Memory Management and Resource Optimisation
- Constraints regarding memory availability in embedded systems
- Evaluation of stack and heap usage implications
- Strategies for dynamic memory management
- Mitigation of memory fragmentation and code bloat
Error Handling and Safety Considerations
- Exception handling protocols in embedded environments
- Design principles for reliable and predictable software
- Implementation of defensive programming techniques
- C++ considerations for safety-critical systems, particularly for government applications
C++ Standard Libraries and Embedded Usage
- Selection of appropriate standard library components
- Methods for minimizing resource consumption
- Custom libraries and embedded-compatible alternatives
- Practices for writing efficient and maintainable code
Startup, Hardware Interaction, and Debugging
- Sequence of embedded application initialization
- Configuration of initialisation routines
- Debugging C++ applications on target hardware
- Diagnosis of performance and runtime anomalies
Real-Time Programming and Operating Systems
- Core concepts of real-time systems
- Integration with real-time operating systems (RTOS)
- Task scheduling and adherence to timing constraints
- Development of responsive and deterministic applications for government operations
C and C++ Interoperability
- Integration of C and C++ codebases
- Invocation of C libraries from C++ environments
- Management of mixed-language embedded projects
- Strategies for migration from C to C++
Object-Oriented Modelling and UML
- Application of UML for embedded software design
- Modelling of classes and system components
- Translation of designs into efficient embedded code
- Enhancement of maintainability through structured design practices
Practical Embedded C++ Application Workshop
- Development of an embedded application using C++
- Implementation of optimization and safety techniques
- Testing and debugging on target devices
- Review of best practices and identification of next steps for government use cases
Requirements
- A foundational knowledge of C++ programming for government applications.
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.