Experience Embedded

Professional Training, Consulting and Project Support

RTOS Basics and Application: RTOS Mechanisms and their Application in Runtime Architectures for Embedded and Real-time Systems
»NEW TRAINING«

The growing complexity of embedded software applications and the ever increasing performance of hardware has resulted in more and more real-time operating systems being included in software. The use of real-time operating systems poses new challenges for developers.

  • Content
     
  • Objectives
  • Participants

After the RTOS basic training, you know the mechanisms of sophisticated real-time operating systems (RTOS) and can use them to develop new software runtime architectures and maintain existing ones - independent of the concrete real-time system product. You are able to document and communicate software runtime architectures and make an informed choice about operating systems.

The RTOS training addresses programmers, software developers, software designers and software architects who are using or are planning to use a real-time operating system in their embedded software application.

General Introduction: Real-time Operating Systems

  • Key terminology (operating system, real-time, task, multitasking, scheduler)
  • Classification of embedded systems
  • Classification of operating system types
  • Requirements regarding operating system, hardware, development tools
  • License models
  • OSAL Operating System Abstraction Layer
  • Benefits, advantages and disadvantages when using an operating system
  • Practical example: Splitting an application into tasks

Process/Thread/Task Management

  • Differentiation between process, task and thread
  • Task states and transitions
  • Task properties and multiple instantiation
  • Specific tasks
  • Task context switch and hook routines
  • Design aspects for tasks
  • Schedulers and their algorithms (endless loop, time-triggerd, priority, time slice, round robin, EDF earliest deadline first)
  • Scheduler functionality and design aspects
  • Selecting the right scheduler
  • Typical applications in embedded software
  • API (application programming interface) examples
  • Exercise: Programming a task, instantiating it twice with different priority combinations; subsequent analysis of the behavior

Interrupt Management

  • Interrupt processing with and without operating system
  • Interrupt latency and interrupt blocking time
  • Prioritization
  • Interrupt service routines
  • Interrupt threads/tasks
  • Design notes
  • API (application programming interface) examples
  • Exercise: Programming an interrupt service routine and a task to service an AD converter

Time Management

  • System tick and configuration
  • Delay, timeout, interval, software watchdog, alarm timer
  • Typical applications in embedded software
  • API (application programming interface) examples
  • Exercise: Programming interval timer controlled task execution

Coordination Mechanisms: Synchronization

  • Events, signals: global, local, single, as group, with/ without parameters
  • Semaphore, promise and future
  • Typical applications in embedded software
  • API (application programming interface) examples
  • Exercise: Programming synchronization between an interrupt service routine and a task

Coordination Mechanisms: Resource Management

  • Race conditions
  • Resource: definition, granularity and blocking times
  • Semaphore, mutex, critical section, condition variable, spinlock
  • Problem scenarios: deadlock and priority inversion
  • Solutions: priority inheritance, priority ceiling etc.
  • Reader/ writer patterns
  • Typical applications in embedded software
  • API (application programming interface) examples
  • Exercise: Programming protected access to a resource shared by two tasks

Communication Mechanisms

  • Message concepts: system local and cross-system
  • Shared memory, mailboxes, queues, message buffer, pipes, message based, socket
  • Typical applications in embedded software
  • API (application programming interface) examples
  • Exercise: Programming communication between an interrupt service routine and a task and between two tasks using the mailbox concept

Memory Management

  • Memory segments (BSS, stack, heap)
  • Stack monitoring
  • Dynamic memory management
  • Memory pools and memory blocks
  • Pool allocation pattern: memory pools and memory blocks
  • MPU (memory protection unit) and MMP (memory management unit) support
  • Typical applications in embedded software
  • API (application programming interface) example
  • Identifying risks and avoiding pitfalls

Input/Output Management

  • Software layer architecture
  • Driver concepts
  • Examples with serial and Ethernet communication
  • Typical applications in embedded software
  • API (application programming interface) example

Debugging at Operating System Mechanism Level

  • Tracing at operating system level
  • Introduction and assessment of tracing and visualization alternatives
  • Presentation with logic analyzer and professional trace tools (Percepio Tracealyzer and ARM Keil MDK)

Embedded and Real-time Software Development Procedure

  • From the idea to the final runtime architecture
  • Runtime architecture patterns and their use for concrete tasks
  • Transformation of an existing software architecture without operating system to an architecture with operating system, with optimized utilization of the OS mechanisms
  • Introduction and comparison of different runtime architecture concepts - with and without operating system
  • Predictability and calculability of various runtime architecture concepts
  • Guidelines for selecting the "right" runtime concept
  • Practical example: Measurement device application
  • Exercise: Development of a suitable runtime architecture for a real embedded system based on drawn up textual requirements and a software architecture

Multicore and Multiprocessor Aspects

  • Hardware and software architectures
  • Task assignment
  • Possible operating system applications
  • Virtualization and hypervisor
  • Interrupt and driver concepts
  • Important design aspects

Documentation and Communication

  • Suitable modeling formats for a runtime architecture
  • Excerpts from UML (Unified Modeling Language)
  • Practical tips
  • Exercise: Using UML notations and diagrams for modeling the runtime architecture

Operating System Abstraction Layer OSAL

  • Description of benefits, advantages and disadvantages
  • Programming
  • Practical example with FreeRTOSTM

Operating System Selection Guidelines and Product Overview

  • Operating system selection guidelines
  • Practical tip: Operating system comparison
  • Current product overview for embedded software
  • Checklist with important selection criteria

Practical Exercises

  • Throughout the programming exercise, you will use operating systems mechanism for the step-by-step development of a measurement device application.
  • The exercise will be performed using the ARM Keil MDK (microcontroller development kit) along with real hardware based on an ARM CortexTM microcontroller.
  • For the real-time operating system, you choose between FreeRTOSTM and the ARM Keil implementation of the CMSIS-RTOS standard.
  • Development and documentation of a runtime architecture for a convenient electric motor control application using operating system mechanisms
  • The exercises .are performed using Enterprise Architect (Sparx Systems) or with paper and pencil

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.
  • For the measurement device application, you get the program code and a UML model as well as a UML model for the electric motor application.
  • You get a tool and software component overview including a current operating system overview.
  • You also get a checklist with operating system selection criteria.
  • 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

RTOS Application: Development of Runtime Architectures for Embedded and Real-time Systems
Training Code: E-RTOS-RTA

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

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

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

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


Related trainings

Trainings

DatePrice *Duration
15.01. – 18.01.20182.200,00 €4 days 
16.04. – 19.04.20182.200,00 €4 days 
16.07. – 19.07.20182.200,00 €4 days 
08.10. – 11.10.20182.200,00 €4 days 
21.01. – 24.01.20192.200,00 €4 days 
25.03. – 28.03.20192.200,00 €4 days 
Training code: E-RTOSARCH
* 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.

RTOS Basics and Application: RTOS Mechanisms and their Application in Runtime Architectures for Embedded and Real-time Systems

Content

General Introduction: Real-time Operating Systems

  • Key terminology (operating system, real-time, task, multitasking, scheduler)
  • Classification of embedded systems
  • Classification of operating system types
  • Requirements regarding operating system, hardware, development tools
  • License models
  • OSAL Operating System Abstraction Layer
  • Benefits, advantages and disadvantages when using an operating system
  • Practical example: Splitting an application into tasks

Process/Thread/Task Management

  • Differentiation between process, task and thread
  • Task states and transitions
  • Task properties and multiple instantiation
  • Specific tasks
  • Task context switch and hook routines
  • Design aspects for tasks
  • Schedulers and their algorithms (endless loop, time-triggerd, priority, time slice, round robin, EDF earliest deadline first)
  • Scheduler functionality and design aspects
  • Selecting the right scheduler
  • Typical applications in embedded software
  • API (application programming interface) examples
  • Exercise: Programming a task, instantiating it twice with different priority combinations; subsequent analysis of the behavior

Interrupt Management

  • Interrupt processing with and without operating system
  • Interrupt latency and interrupt blocking time
  • Prioritization
  • Interrupt service routines
  • Interrupt threads/tasks
  • Design notes
  • API (application programming interface) examples
  • Exercise: Programming an interrupt service routine and a task to service an AD converter

Time Management

  • System tick and configuration
  • Delay, timeout, interval, software watchdog, alarm timer
  • Typical applications in embedded software
  • API (application programming interface) examples
  • Exercise: Programming interval timer controlled task execution

Coordination Mechanisms: Synchronization

  • Events, signals: global, local, single, as group, with/ without parameters
  • Semaphore, promise and future
  • Typical applications in embedded software
  • API (application programming interface) examples
  • Exercise: Programming synchronization between an interrupt service routine and a task

Coordination Mechanisms: Resource Management

  • Race conditions
  • Resource: definition, granularity and blocking times
  • Semaphore, mutex, critical section, condition variable, spinlock
  • Problem scenarios: deadlock and priority inversion
  • Solutions: priority inheritance, priority ceiling etc.
  • Reader/ writer patterns
  • Typical applications in embedded software
  • API (application programming interface) examples
  • Exercise: Programming protected access to a resource shared by two tasks

Communication Mechanisms

  • Message concepts: system local and cross-system
  • Shared memory, mailboxes, queues, message buffer, pipes, message based, socket
  • Typical applications in embedded software
  • API (application programming interface) examples
  • Exercise: Programming communication between an interrupt service routine and a task and between two tasks using the mailbox concept

Memory Management

  • Memory segments (BSS, stack, heap)
  • Stack monitoring
  • Dynamic memory management
  • Memory pools and memory blocks
  • Pool allocation pattern: memory pools and memory blocks
  • MPU (memory protection unit) and MMP (memory management unit) support
  • Typical applications in embedded software
  • API (application programming interface) example
  • Identifying risks and avoiding pitfalls

Input/Output Management

  • Software layer architecture
  • Driver concepts
  • Examples with serial and Ethernet communication
  • Typical applications in embedded software
  • API (application programming interface) example

Debugging at Operating System Mechanism Level

  • Tracing at operating system level
  • Introduction and assessment of tracing and visualization alternatives
  • Presentation with logic analyzer and professional trace tools (Percepio Tracealyzer and ARM Keil MDK)

Embedded and Real-time Software Development Procedure

  • From the idea to the final runtime architecture
  • Runtime architecture patterns and their use for concrete tasks
  • Transformation of an existing software architecture without operating system to an architecture with operating system, with optimized utilization of the OS mechanisms
  • Introduction and comparison of different runtime architecture concepts - with and without operating system
  • Predictability and calculability of various runtime architecture concepts
  • Guidelines for selecting the "right" runtime concept
  • Practical example: Measurement device application
  • Exercise: Development of a suitable runtime architecture for a real embedded system based on drawn up textual requirements and a software architecture

Multicore and Multiprocessor Aspects

  • Hardware and software architectures
  • Task assignment
  • Possible operating system applications
  • Virtualization and hypervisor
  • Interrupt and driver concepts
  • Important design aspects

Documentation and Communication

  • Suitable modeling formats for a runtime architecture
  • Excerpts from UML (Unified Modeling Language)
  • Practical tips
  • Exercise: Using UML notations and diagrams for modeling the runtime architecture

Operating System Abstraction Layer OSAL

  • Description of benefits, advantages and disadvantages
  • Programming
  • Practical example with FreeRTOSTM

Operating System Selection Guidelines and Product Overview

  • Operating system selection guidelines
  • Practical tip: Operating system comparison
  • Current product overview for embedded software
  • Checklist with important selection criteria

Practical Exercises

  • Throughout the programming exercise, you will use operating systems mechanism for the step-by-step development of a measurement device application.
  • The exercise will be performed using the ARM Keil MDK (microcontroller development kit) along with real hardware based on an ARM CortexTM microcontroller.
  • For the real-time operating system, you choose between FreeRTOSTM and the ARM Keil implementation of the CMSIS-RTOS standard.
  • Development and documentation of a runtime architecture for a convenient electric motor control application using operating system mechanisms
  • The exercises .are performed using Enterprise Architect (Sparx Systems) or with paper and pencil

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.
  • For the measurement device application, you get the program code and a UML model as well as a UML model for the electric motor application.
  • You get a tool and software component overview including a current operating system overview.
  • You also get a checklist with operating system selection criteria.
  • You get helpful notation overviews for UML (Unified Modeling Language) and SysML (Systems Modeling Language) in DIN-A3 format.

Wishlist


No trainings