Get in Touch

Course Outline

Introduction to Embedded Systems and C++

  • Exploring embedded systems architecture
  • Key challenges in embedded software development
  • Evaluating 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
  • Utilising compilers, debuggers, and build systems
  • Interacting with target devices
  • Building and deploying embedded applications

Object-Oriented Programming for Embedded Systems

  • Core principles of object-oriented design
  • Managing classes and objects within resource-constrained environments
  • Leveraging encapsulation for modular design
  • Effective application of object-oriented techniques in embedded contexts

Advanced C++ Features for Embedded Development

  • Utilising inheritance and polymorphism
  • Considering the runtime overhead of virtual functions
  • Using templates while avoiding unnecessary code expansion
  • Optimising performance through inline functions

Memory Management and Resource Optimisation

  • Navigating memory constraints in embedded systems
  • Strategic use of stack and heap memory
  • Implementing effective dynamic memory management strategies
  • Mitigating memory fragmentation and code bloat

Error Handling and Safety Considerations

  • Managing exceptions in embedded environments
  • Designing software for reliability and predictability
  • Applying defensive programming techniques
  • Addressing C++ specific concerns in safety-critical systems

C++ Standard Libraries and Embedded Usage

  • Selecting suitable standard library features
  • Minimising resource consumption
  • Exploring custom libraries and embedded-friendly alternatives
  • Crafting code that is both efficient and maintainable

Startup, Hardware Interaction, and Debugging

  • Understanding the embedded application startup sequence
  • Managing initialisation routines
  • Debugging C++ applications on target hardware
  • Identifying and resolving performance and runtime issues

Real-Time Programming and Operating Systems

  • Essentials of real-time systems
  • Integrating with real-time operating systems (RTOS)
  • Managing task scheduling and timing constraints
  • Building responsive and deterministic applications

C and C++ Interoperability

  • Merging 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 to 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 a complete embedded application using C++
  • Implementing optimisation and safety measures
  • Conducting tests and debugging on a target device
  • Reviewing best practices and future development steps

Requirements

  • A foundational understanding of C++
 21 Hours

Testimonials (2)

Upcoming Courses

Related Categories