Experience Embedded

Professional Training, Consulting and Project Support

Embedded C++: Object-oriented Programming for Microcontrollers with C++/EC++ and UML

Master the challenges in software development for hard real-time systems: Modern embedded systems with complex microcontroller and processor architectures incorporate more and more software that has to be planned and implemented faster than ever. In many cases, requirements need to be met which are subject to standards and safety-critical aspects. Real-time capability, reusability, adjustability to changing basic conditions and readability are key factors in software.

  • Content
     
  • Objectives
  • Participants
  • Requirements

The EC++ workshop shows you how an object-oriented approach helps you develop higher-quality software even in an embedded environment in a shorter time. You get a compact overview of the entire development process of embedded real-time systems - software analysis, software design, software implementation and unit test - as a basis for you to implement projects with EC++. You know how to create the design of software systems through using UML and implementation in the programming language C++. You thus have the required knowledge base for meeting specific software quality requirements for embedded systems, e.g. regarding runtime and code efficiency. Programming guidelines, such as the MISRA-C++ standard, moreover help you avoid programming errors at an early stage. You can use state of the art object-oriented techniques to develop high-quality, complex software systems and, at the same time, save time and money.

The EC++ training addresses programmers, software developers, software designers and software architects who use C++ for embedded software applications based on object-oriented concepts.

A very good knowledge of C-programming is required; basic microcontroller knowledge of advantage.

Introduction: Object Oriented Programming Basics

  • Class and object
  • Attribute, operation, method
  • Encapsulation
  • Relation between classes
  • Benefits of the object-oriented approach using a hardware driver as an example

Object-oriented Programming in C

  • Classes, attributes, operations and objects
  • Encapsulation in C
  • Association, aggregation, composition and inheritance
  • Practical tips with proven implementation approaches

Introduction: The Programming Language C++ (EC++)

  • Migration from object-oriented C-programming to C++/EC++
  • Classes, attributes, operations and objects
  • Encapsulation in C
  • Constructors, destructor, overload
  • Modifier for data, operations and objects
  • Memory management for objects
  • Further C++ specific mechanisms and constructs
  • Assembler analysis of C++ constructs
  • Memory and runtime oriented assessment and optimization
  • Comparison with C
  • Enhancing quality features like maintainability and reusability
  • Identifying risks and avoiding pitfalls
  • Practical exercise: Implementing, instantiating and testing a class

Relations between Classes / Programming Classes in C++

  • Association
  • Aggregation
  • Composition
  • Inheritance
  • Selecting the suitable relation in your design
  • Implementation variants in C++
  • Implementation approaches in C
  • Assembler analysis of C++ constructs
  • Memory and runtime oriented assessment and optimization
  • Enhancing quality features like maintainability and reusability
  • Practical exercise: Implementing the relations association, inheritance and composition in the application and when using the builder pattern

Virtual Methods and Interfaces in C++

  • Dynamic (late) binding
  • Strictly virtual functions/ operations
  • Polymorphism
  • From the abstract class to the interface class
  • Software architecture with interfaces
  • Benefit, advantages and disadvantages of interface classes
  • Implementation with C++
  • Assembler analysis of C++ constructs
  • Memory and runtime oriented assessment and optimization
  • Enhancing quality features like maintainability and reusability
  • Practical exercise: Programming an interface class with strictly virtual functions, implementing and accessing this class

C++ for Embedded Applications

  • Using C++ in embedded software development
  • History
  • Recommendations, rules and standards
  • C++ compiler basics

C++ Class Libraries

  • Statistical versus dynamic class libraries
  • Generation and inclusion of class libraries
  • Advantages and disadvantages of using class libraries in embedded software
  • Demonstration of an example

State Machines in C++

  • Basic implementation approaches
  • Introduction: Table-based state machine processing
  • Demonstration of an example

Hardware Drivers and Interrupts in C++

  • Typical embedded SW architectures and their modeling (layer model, interfaces)
  • Object-oriented callback structures
  • Hardware drivers with peripheral register access object-oriented in C++
  • Interrupt concepts and interrupt service routines object-oriented in C++
  • Programming of state machines
  • Enhancing quality features like maintainability and reusability
  • Practical exercise: Applying an object-oriented timer driver along with a timer interrupt in your exercise application

Overview: Embedded Software Test

  • Software implementation and test
  • Test process
  • Checklist for testing object oriented software

Basic Notations with UML (Unified Modeling Language)

  • Modeling classes, objects and relations with UML
  • Use case, sequence, activity and state diagrams
  • Demonstration of the exercise in the UML model, with a focus on diagrams

From Project Planning to Implementation

  • Software development process
  • Quality of embedded software systems
  • Efficient modeling of an embedded application with UML
  • Demonstration of the exercise in the UML model, with a focus on model generation and setup

Practical Exercises in the Workshop

  • You will use the ARM Keil MDK (microcontroller development kit) along with real hardware, based on an ARM CortexTM M3 microcontroller throughout the exercise (watch application)

MicroConsult Plus:

  • All participants have the following options to further use their exercises and the solutions developed by MicroConsult from this workshop:
  • You take the files with you on a free USB stick provided by MicroConsult, or …
  • You e-mail the files to your account, or …
  • You get access to file download on request.
  • You get all examples for C and C++ in electronic format and can easily adjust them to your development environment.
  • You moreover get a tool and software component overview for developing embedded software.
  • You get helpful notation overviews for UML (Unified Modeling Language) and SysML (Systems Modeling Language) in DIN-A3 format.


The price includes lunch,

drinks, training documentation and certificate.


Information for HR

You can book up to 5 participants on one training with our online order form.
If you wish to book more participants on several trainings, please contact us!
Please also note our bonus program when booking several trainings and/or participants at once.


Information for HR

Related trainings

Embedded C++ Advanced: Object-oriented Programming for Microcontrollers with C++/EC++
Training Code: E-EC++/FOR

Embedded C Training: Programming Methods and Tools for Embedded Applications
Training Code: E-EMB-C

Embedded Multicore Microcontrollers: Practical Application
Training Code: E-µC-MULTI

UML Training: UML Basics and Introduction to Model-Based Software Development
Training Code: E-UML-G


Related trainings

Trainings

DatePrice *Duration
05.11. – 09.11.20182.250,00 €4.5 days 
14.01. – 18.01.20192.250,00 €4.5 days 
18.03. – 22.03.20192.250,00 €4.5 days 
Training code: E-EC++
* All prices are exclusive of applicable VAT.


> Registration form download (PDF)
> Training details as PDF

Inhouse Training

In customized workshops, we integrate your specific project tasks and our training program, considering your requirements as regards content, time, location, duration, technical environment and knowledge transfer methodology.

Please contact us for further information or an individual quotation.

> Training details as PDF

Coaching

Unsere Coaching-Angebote bieten den großen Vorteil, dass unsere Experten ihr Wissen und ihre Erfahrungen direkt in Ihren Lösungsprozess einbringen und damit unmittelbar zu Ihrem Projekterfolg beitragen.

Für Ihre Anfrage oder weiterführende Informationen stehen wir Ihnen gern zur Verfügung.

Embedded C++: Object-oriented Programming for Microcontrollers with C++/EC++ and UML

Content

Introduction: Object Oriented Programming Basics

  • Class and object
  • Attribute, operation, method
  • Encapsulation
  • Relation between classes
  • Benefits of the object-oriented approach using a hardware driver as an example

Object-oriented Programming in C

  • Classes, attributes, operations and objects
  • Encapsulation in C
  • Association, aggregation, composition and inheritance
  • Practical tips with proven implementation approaches

Introduction: The Programming Language C++ (EC++)

  • Migration from object-oriented C-programming to C++/EC++
  • Classes, attributes, operations and objects
  • Encapsulation in C
  • Constructors, destructor, overload
  • Modifier for data, operations and objects
  • Memory management for objects
  • Further C++ specific mechanisms and constructs
  • Assembler analysis of C++ constructs
  • Memory and runtime oriented assessment and optimization
  • Comparison with C
  • Enhancing quality features like maintainability and reusability
  • Identifying risks and avoiding pitfalls
  • Practical exercise: Implementing, instantiating and testing a class

Relations between Classes / Programming Classes in C++

  • Association
  • Aggregation
  • Composition
  • Inheritance
  • Selecting the suitable relation in your design
  • Implementation variants in C++
  • Implementation approaches in C
  • Assembler analysis of C++ constructs
  • Memory and runtime oriented assessment and optimization
  • Enhancing quality features like maintainability and reusability
  • Practical exercise: Implementing the relations association, inheritance and composition in the application and when using the builder pattern

Virtual Methods and Interfaces in C++

  • Dynamic (late) binding
  • Strictly virtual functions/ operations
  • Polymorphism
  • From the abstract class to the interface class
  • Software architecture with interfaces
  • Benefit, advantages and disadvantages of interface classes
  • Implementation with C++
  • Assembler analysis of C++ constructs
  • Memory and runtime oriented assessment and optimization
  • Enhancing quality features like maintainability and reusability
  • Practical exercise: Programming an interface class with strictly virtual functions, implementing and accessing this class

C++ for Embedded Applications

  • Using C++ in embedded software development
  • History
  • Recommendations, rules and standards
  • C++ compiler basics

C++ Class Libraries

  • Statistical versus dynamic class libraries
  • Generation and inclusion of class libraries
  • Advantages and disadvantages of using class libraries in embedded software
  • Demonstration of an example

State Machines in C++

  • Basic implementation approaches
  • Introduction: Table-based state machine processing
  • Demonstration of an example

Hardware Drivers and Interrupts in C++

  • Typical embedded SW architectures and their modeling (layer model, interfaces)
  • Object-oriented callback structures
  • Hardware drivers with peripheral register access object-oriented in C++
  • Interrupt concepts and interrupt service routines object-oriented in C++
  • Programming of state machines
  • Enhancing quality features like maintainability and reusability
  • Practical exercise: Applying an object-oriented timer driver along with a timer interrupt in your exercise application

Overview: Embedded Software Test

  • Software implementation and test
  • Test process
  • Checklist for testing object oriented software

Basic Notations with UML (Unified Modeling Language)

  • Modeling classes, objects and relations with UML
  • Use case, sequence, activity and state diagrams
  • Demonstration of the exercise in the UML model, with a focus on diagrams

From Project Planning to Implementation

  • Software development process
  • Quality of embedded software systems
  • Efficient modeling of an embedded application with UML
  • Demonstration of the exercise in the UML model, with a focus on model generation and setup

Practical Exercises in the Workshop

  • You will use the ARM Keil MDK (microcontroller development kit) along with real hardware, based on an ARM CortexTM M3 microcontroller throughout the exercise (watch application)

MicroConsult Plus:

  • All participants have the following options to further use their exercises and the solutions developed by MicroConsult from this workshop:
  • You take the files with you on a free USB stick provided by MicroConsult, or …
  • You e-mail the files to your account, or …
  • You get access to file download on request.
  • You get all examples for C and C++ in electronic format and can easily adjust them to your development environment.
  • You moreover get a tool and software component overview for developing embedded software.
  • You get helpful notation overviews for UML (Unified Modeling Language) and SysML (Systems Modeling Language) in DIN-A3 format.

Wishlist


No trainings