Get in Touch
 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++

Number of participants


Price per participant

Testimonials (2)

Upcoming Courses

Related Categories