+ +
- -
Online Training
 
Calendar  Details
Operating Systems
 
Calendar  Details
Programming
Calendar  Details
Processors
 
Calendar  Details
Communication
 
 
 
Calendar  Details
+ +
> >
- -

 
ac6 >> ac6-training >> Programming >> Real-Time >> Zephyr Real Time Programming Download Catalog Download as PDF Write us Printable version

RT5 Zephyr Real Time Programming

Real-time programming applied to the Zephyr operating system

formateur
Objectives
  • Overview of the Cortex-M (ARM v7/v8-M Architecture)
  • Discover the concepts of real time multitasking
  • Understand Real Time constraints
    • Determinism
    • Preemption
    • Interrupts
  • Understand the Zephyr kernel Services
  • Learn how to develop and debug Zephyr applications
Course environment
  • Convenient course material
  • ST STM32L562E-DK Discovery
  • Example code, labs and solutions are provided to the attendees
Prerequisites
Duration
  • Total: 4 days
  • From 40% to 50% of training time is devoted to practical activities
  • Some Labs may be completed between sessions and are checked by the trainer on the next session

First Day
Cortex-M Overview
  • Introduction to ARM v7/v8-M Architecture
  • ARM Cortex-M core
  • Exceptions
  • Interrupts
  • Security Extension
  • Memory Protection Unit
  • Synchronization and Semaphores
Introduction to Real Time
  • Base real time concepts
  • The Real Time constraints
  • Multi-task and real time
Getting Started with Zephyr
  • Overview
  • Source Tree Structure
  • Creating an application
  • Application Configuration
  • Building an application
  • Run an application
  • Custom Board, Devicetree and SoC definition
  • Debug
Data Structures
  • Single-linked List
  • Double-linked List
  • Multi producer Consumer Packet Buffer
  • Balanced Red/black Tree
  • Ring Buffers
Second Day
Scheduling
  • Concepts
  • Scheduling Algorithm
  • Cooperative Time Slicing
  • Preemptive Time Slicing
  • Scheduler Locking
  • Thread Sleeping
  • Busy Waiting
Threads
  • Thread Control Block
  • Creating Threads
  • Threads Priorities
  • Thread States
  • Main and Idle Threads
  • Delays
  • Changing Thread Priority
  • Suspending Threads
  • Kernel Structures
  • Thread Custom Data
  • Scheduling Traces
Thread safe data structures
  • Need for specific data structures
  • Thread safe data structures
    • Linked lists
    • Circular lists
    • FIFOs
    • Stacks
Third Day
Memory Management
  • Memory Managers
  • Dynamic memory managers
    • K_heap
    • System heap
    • Memory Slabs
    • Memory Blocks
  • Heap Listeners
  • Stack Overflow detection
Resource Management
  • Mutual Exclusion
  • Critical Sections
  • Mutexes
  • Gatekeeper threads
  • Atomic
  • Lock-Free Data Structures
  • SpinLocks
Synchronization Primitives
  • Synchronization
  • Semaphores
  • The Readers/Writer Problem
  • Events and Event Groups
  • Queues
Fourth Day
Interrupts
  • Concepts
    • Multi-Level Interrupt handling
    • Preventing Interruptions
    • Offloading ISR
  • Implementation
    • Defining a regular ISR
    • Defining a ‘direct’ ISR
    • Implementation Details
Timing
  • Kernel Timing
  • Timers
    • Defining a Timer
    • Using a Timer Expiry Function
    • Using a Timer Status Synchronization
Trouble Shooting and Logging
  • Checking for stack problems
  • Common pitfalls
  • Logging
    • Usage
    • Logging Panic
    • Limitations and recommendations