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
Second Day
Scheduling
- Concepts
- Scheduling Algorithm
- Cooperative Time Slicing
- Preemptive Time Slicing
- Scheduler Locking
- Thread Sleeping
- Busy Waiting
Threads
- Lifecycle
- Thread States
- Thread Stack objects
- Thread Priorities
- Thread Options
- Thread Custom Data
- Implementation
- Runtime statistics
- Configuration options
Thread safe data structures
- Need for specific data structures
- Thread safe data structures
- Linked lists
- Circular lists
- FIFOs
- Stacks
Third Day
|
Memory Management
- Memory Heaps
- Synchronized Heap Allocator
- Low Level Heap Allocator
- Multi-Heap Wrapper Utility¶
- System Heap
- Memory Slabs
- Concepts
- Defining a Memory Slab
- Allocating and Releasing a Memory Block
Interrupts
- Concepts
- Multi-Level Interrupt handling
- Preventing Interruptions
- Offloading ISR
- Implementation
- Defining a regular ISR
- Defining a ‘direct’ ISR
- Implementation Details
Data Structures
- Single-linked List
- Double-linked List
- Multi producer Consumer Packet Buffer
- Balanced Red/black Tree
- Ring Buffers
Fourth Day
Resource Management
- Concepts
- Atomic Services
- Semaphore
- Mutex
- Queues and Message Queues
- Mailboxes
- FIFOs and LIFOs
- Stacks
- Pipes
- Condition Variables
- Events
- Symmetric Multiprocessing
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
|