Get in Touch
 Duration 21 hours

Course Outline

Introduction to Embedded Systems and C++

  • Foundations of embedded system architecture
  • Key challenges in embedded software development
  • Evaluating C++ suitability for microcontrollers and embedded platforms
  • Balancing abstraction levels against performance and resource limitations

Embedded C++ Development Environment

  • Configuring the embedded development toolchain
  • Utilizing compilers, debuggers, and build systems
  • Interfacing 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
  • Leveraging encapsulation and modular design
  • Effectively applying object-oriented techniques in embedded contexts

Advanced C++ Features for Embedded Development

  • Utilizing inheritance and polymorphism
  • Assessing virtual functions and their runtime overhead
  • Managing templates to prevent unnecessary code expansion
  • Optimizing performance with inline functions

Memory Management and Resource Optimisation

  • Navigating 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

  • Managing exception handling in embedded environments
  • Engineering reliable and predictable software behavior
  • Implementing defensive programming techniques
  • C++ specifics for safety-critical system requirements

C++ Standard Libraries and Embedded Usage

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

Startup, Hardware Interaction, and Debugging

  • Understanding the embedded application startup sequence
  • Designing initialization routines
  • Debugging C++ applications on physical target hardware
  • Identifying performance bottlenecks and runtime issues

Real-Time Programming and Operating Systems

  • Basics of real-time system behavior
  • Working with real-time operating systems (RTOS)
  • Managing task scheduling and strict timing constraints
  • Crafting responsive and deterministic applications

C and C++ Interoperability

  • Merging C and C++ codebases
  • Invoking C libraries from within C++
  • Managing projects that combine C and C++ components
  • Strategies for migrating from C to C++

Object-Oriented Modelling and UML

  • Using UML for embedded software architecture
  • Modelling classes and system components
  • Translating design models into efficient embedded code
  • Enhancing maintainability through structured design practices

Practical Embedded C++ Application Workshop

  • Building an embedded application with C++
  • Applying optimization and safety best practices
  • Conducting testing and debugging on target devices
  • Reviewing industry best practices and future development steps

Requirements

  • A general understanding of C++

Number of participants


Price per participant

Testimonials (2)

Upcoming Courses

Related Categories