First Day
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
Introduction to Azure RTOS
- The Azure ThreadX
- Azure RTOS Ecosystem
- Azure RTOS Features
- Installation and use of Azure RTOS
Second Day
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
- Gatekeeper Threads
- Lock-Free Data Structures
Exercise: |
Implement mutual exclusion between tasks |
Third Day
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
- 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
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
- Interrupt Service Routines
|