Get in Touch
 Duration 21 hours

Course Outline

Introduction to Embedded Systems and C++

  • Overview of embedded system architectures
  • Key challenges in embedded software development
  • Evaluating C++ suitability 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
  • Building and deploying embedded applications

Object-Oriented Programming for Embedded Systems

  • Core principles of object-oriented design
  • Implementing classes and objects in resource-constrained settings
  • Encapsulation and modular design strategies
  • Effectively applying object-oriented techniques in embedded contexts

Advanced C++ Features for Embedded Development

  • Inheritance and polymorphism concepts
  • Virtual functions and assessing runtime overhead
  • Templates and preventing unnecessary code expansion
  • Inline functions and performance optimization

Memory Management and Resource Optimization

  • Addressing memory constraints in embedded systems
  • Considerations for stack and heap usage
  • Strategies for dynamic memory management
  • Mitigating memory fragmentation and code bloat

Error Handling and Safety Considerations

  • Exception handling within embedded environments
  • Designing for reliability and predictability
  • Defensive programming methodologies
  • C++ specific concerns for safety-critical systems

C++ Standard Libraries and Embedded Usage

  • Selecting suitable standard library components
  • Minimizing resource consumption
  • Custom libraries and embedded-friendly alternatives
  • Writing code that is both efficient and maintainable

Startup, Hardware Interaction, and Debugging

  • Embedded application startup sequences
  • Initialization routines
  • Debugging C++ applications on target hardware
  • Identifying and resolving performance and runtime issues

Real-Time Programming and Operating Systems

  • Basics of real-time systems
  • Utilizing real-time operating systems (RTOS)
  • Task scheduling and adherence to timing constraints
  • Creating responsive and deterministic applications

C and C++ Interoperability

  • Integrating C and C++ codebases
  • Invoking C libraries from C++ code
  • Managing mixed-language embedded projects
  • Strategies for migrating from C to C++

Object-Oriented Modelling and UML

  • Utilizing 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 with C++
  • Applying optimization and safety measures
  • Testing and debugging on a target device
  • Review of best practices and subsequent steps

Requirements

  • A general familiarity with C++

Number of participants


Price per participant

Testimonials (2)

Upcoming Courses

Related Categories