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.
