Zenler Player
Your course is loading. Hang tight.
Mastering Zephyr RTOS with DeviceTree and Board Bring Up
Back to curriculum
0% Complete
0% Complete
Why Zephyr?
Zephyr RTOS setup [Windows]
Zephyr RTOS setup [Ubuntu]
Zephyr RTOS setup [MacOS]
Setting up Python virtual environment
Installing West
Clone Zephyr using West and install Python build tools
Installing Zephyr Python requirements via pip
Installing the Zephyr SDK
Course repository
Building and testing the Zephyr Hello World application on QEMU
Running the Zephyr Blinky application on real hardware.
Application development in Zephyr: introduction
Creating an application in Zephyr
Understanding the important files in a Zephyr application
Understanding the important files in a Zephyr application (continued)
prj.conf file and configuration items: menuconfig and .config explained
Application specific Kconfig file
Zephyr application 001: LED Blinky on a custom board
Creating a new application
What is DeviceTree and why it matters
Key DeviceTree files and types
Writing DeviceTree from scratch for your board
Creating a minimal DTS file layout
Updating DTS file includes
Understanding DeviceTree nodes
Understanding DeviceTree properties: 'reg' property and its significance
Using the 'compatible' property
How to select compatible strings and DT binding document
Compatible strings in a driver
About root level 'compatible' property
'phandle' property in DeviceTree
'phandles' property in DeviceTree
'phandle-array' type
Understanding specifier space of the 'phandle-array' type
Understanding LED blinking in Zephyr (App to driver layer)
Adding an LED node to the DTS file
Zephyr board directory setup: Part 1
Zephyr board directory setup: Part 2 (board Kconfig)
Zephyr board directory setup: Part 3 (board defconfig)
Build flow of zephyr application
Building and configuring the Zephyr application
Fixing DTS related issues
Manual Flash and SRAM configuration
Flash and RAM address setup: best practices
Flashing and testing the Blinky application on the custom board
About 'choosen' node
Using DT Macros
How Zephyr turns DeviceTree nodes into device instances
Zephyr GPIO APIs and macros to control GPIO pins
Configure stdout logs to UART console and test
Add a custom property to a standard DeviceTree node
Application overlays
Introduction
Basic setup
Configuring button and interrupt
Adding button node in DT
Button ISR implementation
Message queues and queues
Creating threads in zephyr
Thread handler implementation
About Workqueues
Using workqueues
Workqueue handler
Summary and build
Introduction
Game development plan explanation
Basic project setup
About AI assisted coding
Claude Code installation and basic setup
Adding Claude Code to VS code
About slash commands and project initialization
Creating specification document spec.md
Reading Schematic and user manual to extract key information using AI
Updating project features , gameplan and requirements in spec.md
Updating spec.md with device orientation details
Summary so far
Adding Kconfig items related to LCD orientation
Verifying LCD orientation Kconfig items in menuconfig
Display bringup plan with checkpoints
Implementing chekpoint 1 : DT nodes and smoke test for display
Understanding &spi1 device tree node
Understanding MIPI DBI controller and Display DT nodes
Display testing with smoke test code
Fixing colour issue
Display testing with different orientation
Implementing and testing game startup/splash screen
Implementing and testing game play screen
About slow display rendering
Generating plan to increase display rendering speed
Configuring PLL and RCC through Device Tree nodes to boost the system clock
Next : Implementing Game end screen and full game sequence
Zephyer workspace and toolchain setup
Why Zephyr?
Preview
Zephyr RTOS setup [Windows]
Preview
Zephyr RTOS setup [Ubuntu]
Preview
Zephyr RTOS setup [MacOS]
Preview
Setting up Python virtual environment
Installing West
Preview
Clone Zephyr using West and install Python build tools
Preview
Installing Zephyr Python requirements via pip
Installing the Zephyr SDK
Course repository
Build and run your first Zephyr application
Building and testing the Zephyr Hello World application on QEMU
Running the Zephyr Blinky application on real hardware.
Zephyr application structure and configuration basics
Application development in Zephyr: introduction
Creating an application in Zephyr
Understanding the important files in a Zephyr application
Understanding the important files in a Zephyr application (continued)
prj.conf file and configuration items: menuconfig and .config explained
Preview
Application specific Kconfig file
Zephyr application 001 LED Blinky on a custom board
Zephyr application 001: LED Blinky on a custom board
Creating a new application
What is DeviceTree and why it matters
Preview
Writing DeviceTree from scratch for a custom board
Key DeviceTree files and types
Writing DeviceTree from scratch for your board
Creating a minimal DTS file layout
Updating DTS file includes
Preview
Understanding DeviceTree nodes
Understanding DeviceTree properties: 'reg' property and its significance
Using the 'compatible' property
How to select compatible strings and DT binding document
Compatible strings in a driver
About root level 'compatible' property
'phandle' property in DeviceTree
'phandles' property in DeviceTree
'phandle-array' type
Understanding specifier space of the 'phandle-array' type
Preview
Zephyr Blinky on a custom board: board porting and bring up
Understanding LED blinking in Zephyr (App to driver layer)
Adding an LED node to the DTS file
Zephyr board directory setup: Part 1
Zephyr board directory setup: Part 2 (board Kconfig)
Zephyr board directory setup: Part 3 (board defconfig)
Build flow of zephyr application
Building and configuring the Zephyr application
Fixing DTS related issues
Manual Flash and SRAM configuration
Flash and RAM address setup: best practices
Flashing and testing the Blinky application on the custom board
About 'choosen' node
Zephyr application 001: writing the Blinky application for a custom Board
Using DT Macros
How Zephyr turns DeviceTree nodes into device instances
Zephyr GPIO APIs and macros to control GPIO pins
Configure stdout logs to UART console and test
Add a custom property to a standard DeviceTree node
Application overlays
Zephyr application 002: Interrupt driven LED burst with workqueue
Introduction
Basic setup
Configuring button and interrupt
Adding button node in DT
Button ISR implementation
Message queues and queues
Creating threads in zephyr
Thread handler implementation
About Workqueues
Using workqueues
Workqueue handler
Summary and build
Zephyr application 003: Tilt based brick breaker game with AI assisted coding
Introduction
Preview
Game development plan explanation
Basic project setup
About AI assisted coding
Claude Code installation and basic setup
Adding Claude Code to VS code
About slash commands and project initialization
Preview
Creating specification document spec.md
Reading Schematic and user manual to extract key information using AI
Updating project features , gameplan and requirements in spec.md
Updating spec.md with device orientation details
Summary so far
Adding Kconfig items related to LCD orientation
Verifying LCD orientation Kconfig items in menuconfig
Display bringup plan with checkpoints
Implementing chekpoint 1 : DT nodes and smoke test for display
Understanding &spi1 device tree node
Understanding MIPI DBI controller and Display DT nodes
Display testing with smoke test code
Fixing colour issue
Display testing with different orientation
Implementing and testing game startup/splash screen
Implementing and testing game play screen
About slow display rendering
Generating plan to increase display rendering speed
Configuring PLL and RCC through Device Tree nodes to boost the system clock
Next : Implementing Game end screen and full game sequence
×
This is an unpublished lesson. This lesson will not be shown for students unless you set it as Public.
Back to Dashboard
No contents are available in this lesson!
No lessons available !
Back to Dashboard
Lesson contents locked
Enroll to unlock this lesson.
Enroll to unlock
Next Lesson