|
|
|
|
|
|
|
ac6 >> ac6-training >> Programming >> Real-Time >> Zephyr Real Time Programming |
![]() |
![]() |
![]() |
![]() |
RT5 | Zephyr Real Time Programming |
![]() |
Objectives
|
Exercise: | Hello World from Zephyr, configure and blink LEDs using Zephyr | |
Exercise: | Manage Zephyr linked list and understand container_of macro |
Exercise: | Create and manage threads | |
Exercise: | Create periodic threads | |
Exercise: | Create config overlay for visual trace diagnostics using Tracealyzer |
Exercise: | Understand dynamic memory allocation in Zephyr | |
Exercise: | Display threads information and detect stack overflow |
Exercise: | Implement mutual exclusion between threads |
Exercise: | The producer-consumer problem, synchronize and avoid concurrent access problems | |
Exercise: | Understanding event bit group by synchronizing several threads |
Exercise: | Create a print gatekeeper thread using message queue |
Exercise: | Understand how to wait on multiple events and interrupt safe APIs | |
Exercise: | Understand how to pass data using Queues from an interrupt to a thread | |
Exercise: | Create and submit work items from interrupts to custom WorkQueue |
Exercise: | Understand the use of one-shot and auto-reload timers |
Exercise: | Create a simple hello world module | |
Exercise: | Create a module that uses custom Kconfig options |
Exercise: | Create a driver that respects the Zephyr Device Driver Model and define devices | |
Exercise: | Writing in-tree drivers |
Exercise: | Create a driver that uses custom device tree and Kconfig |