Get in Touch

Course Outline

Introduction to Embedded Systems and C++

  • Overview of embedded systems architecture
  • Challenges of embedded software development
  • Suitability of C++ for microcontrollers and embedded platforms
  • Balancing abstraction, performance, and resource constraints

Embedded C++ Development Environment

  • Setting up the embedded development toolchain
  • Compilers, debuggers, and build systems
  • Working with target devices
  • Developing and deploying embedded applications

Object-Oriented Programming for Embedded Systems

  • Principles of object-oriented design
  • Classes and objects in resource-constrained environments
  • Encapsulation and modular design
  • Applying object-oriented techniques effectively in embedded applications

Advanced C++ Features for Embedded Development

  • Inheritance and polymorphism
  • Virtual functions and runtime overhead considerations
  • Templates and avoiding unnecessary code expansion
  • Inline functions and performance optimisation

Memory Management and Resource Optimisation

  • Memory constraints in embedded systems
  • Stack and heap usage considerations
  • Dynamic memory management strategies
  • Avoiding memory fragmentation and code bloat

Error Handling and Safety Considerations

  • Exception handling in embedded environments
  • Designing reliable and predictable software
  • Defensive programming techniques
  • C++ considerations for safety-critical systems

C++ Standard Libraries and Embedded Usage

  • Selecting appropriate standard library features
  • Minimising resource usage
  • Custom libraries and embedded-friendly alternatives
  • Writing efficient and maintainable code

Startup, Hardware Interaction, and Debugging

  • Embedded application startup sequence
  • Initialisation routines
  • Debugging C++ applications on target hardware
  • Diagnosing performance and runtime issues

Real-Time Programming and Operating Systems

  • Fundamentals of real-time systems
  • Working with real-time operating systems (RTOS)
  • Task scheduling and timing constraints
  • Developing responsive and deterministic applications

C and C++ Interoperability

  • Integrating C and C++ codebases
  • Calling C libraries from C++
  • Managing mixed-language embedded projects
  • Migration strategies 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
  • Improving maintainability through structured design

Practical Embedded C++ Application Workshop

  • Developing an embedded application using C++
  • Applying optimisation and safety techniques
  • Testing and debugging on a target device
  • Review of best practices and next steps

Requirements

  • A general understanding of C++
 21 Hours

Testimonials (2)

Related Categories