top of page

Real Time Programming with Eclipse ThreadX

Price

Inquiry

Duration

3 Days

Real Time Programming with Eclipse ThreadX

Course Description

Real-time programming applied to ThreadX (previously Azure RTOS)

Objectives

  • Get an overview on Cortex-M architecture

  • Discover the concepts of real time multithreading

    • Understand Real Time constraints

    • Determinism

    • Preemption

    • Interrupts

  • Understand the Azure RTOS architecture

  • Discover the various Azure RTOS services and APIs

  • Learn how to develop Azure RTOS applications

  • Learn how to debug Azure RTOS applications



Day One

Cortex-M Overview

  • ARMv7-M Architecture

  • Cortex-M Architecture

  • Registers and Execution States

  • Privileges, Mode and Stacks

  • Reset Behavior

  • Exception and Interrupts

  • The System Timer

  • Memory Model

  • Power Management

  • Cortex-M Advanced Features

    • ARM v7/v8 MPU

    • TrustZone Security Extension

Exercise: 

Create a new project

Exercise: 

Interrupt Management

Real-Time Concepts

  • Base real time concepts

  • The Real Time constraints

  • Multi-task and real time

  • Tasks and Task Descriptors

    • Content of the task descriptor

    • List of task descriptors

  • Context Switch

  • Task Scheduling and Preemption

    • Tick based or tickless scheduling

  • Scheduling systems and schedulability proof

    • Fixed priorities scheduling

    • RMA and EDF scheduling

  • Scheduling

    • Deterministic preemptive scheduling

    • Scheduling strategies

    • Cooperative scheduling

    • Hybrid scheduling

Exercise: 

Context Switch

Introduction to Azure RTOS

  • The Azure ThreadX

  • Azure RTOS Ecosystem

  • Azure RTOS Features

  • Installation and use of Azure RTOS

Day Two

Thread Management

  • Thread Control Block

  • Thread States

  • Thread Creation

  • Thread Deletion

  • Preemption-Threshold

  • Changing Thread Priority

    • Suspending Threads

    • Resume Thread Execution

    • Thread Sleep

  • Terminate Thread Execution

  • Time-Slice

  • Thread States and Thread Design

  • Thread Statistics

  • Visual trace diagnostics using Tracealyzer

Exercise: 

Thread Management

Exercise: 

Periodic Threads

Exercise: 

Time-slice change

Exercise: 

Thread Statistics

Memory Management in Azure RTOS

  • Azure RTOS Memory Managers

    • Memory Byte Pool

    • Memory Block Pool

  • Out of Memory management

  • Stack overflow detection

Exercise: 

Context Switch Measurement and memory problems detection

Resource Management

  • Mutual Exclusion

  • Critical Sections

  • Mutexes

    • Recursive mutexes

  • Gatekeeper Threads

  • Lock-Free Data Structures

Exercise: 

Implement mutual exclusion between tasks


Day Three

Synchronization Primitives

  • Queues

  • Synchronization

  • Semaphores

    • Binary and counting semaphores

  • Events and Event Groups

  • The Readers/writer problem

Exercise: 

Sending messages between tasks

Exercise: 

Synchronizing a task with another one (Producer – Consumer problem)

Exercise: 

Readers Writer Problem

Interrupt Management

  • Threads and Interrupts

    • Synchronization between threads and interrupts

  • Interrupts on ARM Cortex-M

  • Handler thread

  • Azure RTOS Primitives Within An ISR

    • Queues Within An ISR

  • Low Power Support

Exercise: 

Interrupt Management – Deferred interrupt processing

Exercise: 

Tickless and Low Power Mode

Application Timers

  • Application Timers

  • System Timer Thread

  • One-shot timers

  • Auto-reload timers

  • Application Timer Commands

Exercise: 

Implement Soft Timers – Synchronize a task with a timer

Data Structures

  • FIFO

  • Linked list

Memory Management and Real-Time

  • Memory Management

  • Memory Errors

CMSIS – RTOS

  • Overview

  • Kernel Information and Control

  • Threads Management

  • Generic Wait Functions

  • Communication and Resource Sharing

    • Semaphores

    • Mutex

    • Message Queue

    • Signal Events

    • Event Flags

    • Memory Pool

    • Mail Queue

  • Timer Management



Nohau Training Partner

This course is provided by a Nohau Training Partner, a trusted provider of hands-on training for professionals in embedded systems, software development, and engineering.

Nohau Training Partner
bottom of page