SlideShare a Scribd company logo
5
Most read
7
Most read
12
Most read
Building with Zephyr?
West overview
Marti Bolivar, Nordic Semiconductor
Outline: Presenter: Marti Bolivar
- Zephyr and west developer
- What we’re doing today:
- Overview of what’s available in west
- Good starting points for experimenting and getting help
- Helpful if you’ve already gone through the Zephyr Getting Started Guide
for v2.3.0, but not required:
https://docs.zephyrproject.org/2.3.0/getting_started/index.html
What is west?
Zephyr’s “meta-tool” or “swiss army knife,” used for many common
development workflows.
An extensible command line tool for managing a Zephyr workspace:
https://docs.zephyrproject.org/2.3.0/guides/west/index.html
Recommended but not required:
https://docs.zephyrproject.org/2.3.0/guides/west/without-west.html
Developed in its own git repository:
https://github.com/zephyrproject-rtos/west
West “proper” vs. Zephyr uses
West “proper”
● Workspace commands
(init, update, etc.)
● Configuration command
(config)
● APIs for adding extension
commands (external plug-
ins)
Zephyr’s west usage and
extensions
● Zephyr module integration
● Extension commands
(build, flash, debug,
etc.)
In the zephyr repositoryIn the west repository
Creating a workspace: west init
● zephyrproject: the west workspace’s top
level directory, or topdir. The .west
directory marks the topdir.
● zephyr: the manifest repository (in this
example)
● .west/config: the workspace local
configuration file; tells west that “zephyr”
is the manifest repository
● west.yml: the manifest file; says what
other git repositories should be pulled in via
west update
Vocabulary
$ west init -m https://github.com/zephyrproject-rtos/zephyr 
--mr v2.3.0 zephyrproject
Results (simplified)
zephyrproject
├── .west
│ └── config
└── zephyr
└── west.yml
Manifest file, west.yml
Simplified contents of
zephyr/west.yml in v2.3.0.
• remotes: where projects
can be fetched
• projects: a list of git
repositories in the
workspace
• self: configures the
manifest repository
(zephyr) itself
Manifest file semantics
zephyrproject-rtos/zephyr
west.yml
manifest:
projects:
- ...
- …
- ...
zephyrproject-rtos/<project>
zephyrproject-rtos/<project>
zephyrproject-rtos/<project>
Every element of the projects list is another Git repository that is included in the
upstream Zephyr project distribution.
Updating a workspace: west update
● Modules: third-party code with Zephyr
integration, can be integrated into Zephyr
applications, device drivers, etc.
● Includes things like file systems, vendor
HALs, etc.
● A small number west projects live outside
the modules directory. Currently just the
mcuboot bootloader and some additional
developer tools repositories
Vocabulary
$ west update # run inside the “zephyrproject” workspace
Results (simplified)
zephyrproject
├── bootloader
│ └── mcuboot
├── modules
│ └── fs
│ └── fatfs
├── .west
│ └── config
└── zephyr
└── west.yml
Other workspace commands
Some additional workspace management commands:
list print information about projects in the west manifest
manifest slice and dice the west manifest
diff "git diff" for one or more projects
status "git status" for one or more projects
forall run a command in one or more local projects
For a complete list of commands, including extensions, run:
$ west help
Zephyr extension commands
Some additional Zephyr development extension commands:
build compile zephyr applications
flash flash a compiled application to a board
debug flash an application and enter a debugger (usually GDB)
debugserver flash an application and start a debug server
attach attach a debugger to a board without flashing
Most common extension issue
If you see this when running an extension like west build:
west: error: argument <command>: invalid choice: 'build'
(...)
Then you’re not in your workspace, so the extension can’t be found.
See this item on the troubleshooting page:
https://docs.zephyrproject.org/2.3.0/guides/west/troubleshooting.html#invalid
-choice-build-or-flash-etc
West configuration files
● “INI-like” (Python configparser syntax)
● We saw .west/config earlier; that’s the workspace configuration file
● You can also set user- and system-wide configuration values
● Run west config to manage your configuration
● See also: https://docs.zephyrproject.org/2.3.0/guides/west/config.html
Help and troubleshooting
Documentation: West page in the Zephyr guides and Troubleshooting
west. Also:
$ west help
List all commands and one line help for each (including extensions).
$ west <command> help
Help for a specific <command>, like west help init
$ west -v <command>
Enable verbose output for <command>, like west -v init

More Related Content

PDF
Zephyr-Overview-20230124.pdf
PDF
Splash screen for Embedded Linux 101: How to customize your boot sequence
PDF
Bee Secure Radar 2023
PDF
Mon Projet Fin d'étude: Conception et développement d'une application de géol...
ODP
Linux boot-time
PPTX
DPDK
PDF
Zephyr Introduction - Nordic Webinar - Sept. 24.pdf
Zephyr-Overview-20230124.pdf
Splash screen for Embedded Linux 101: How to customize your boot sequence
Bee Secure Radar 2023
Mon Projet Fin d'étude: Conception et développement d'une application de géol...
Linux boot-time
DPDK
Zephyr Introduction - Nordic Webinar - Sept. 24.pdf

What's hot (20)

PPTX
建構嵌入式Linux系統於SD Card
PDF
Pfe conception et développement d'une application web GMAO JEE
PDF
Android open source project build system phi innovations - android summit 2015
PDF
Introduction to systemd
PDF
Conception et développement d&rsquo;une place de marché B2C
PDF
Fuel level sensors. How to measure fuel volume in the tank. Technoton webinar...
PDF
Role et missions de l'AIGF pour un developpement efficient du secteur des TIC...
PPTX
Présentation PFE "Refonte et déploiement d’une solution de messagerie en util...
PPTX
Linux Device Tree
DOCX
Travaux pratiques corrigé logiciel ARENA
PDF
NSA Journal of Information Warfare
PPTX
PART-2 : Mastering RTOS FreeRTOS and STM32Fx with Debugging
PPT
Implementing ISO 26514 in Your Workplace
PDF
QNX Software Systems
PDF
Presentation systemc
PPTX
Sistema Operativo Canaima
PDF
AUTOMOTIVE CYBER SECURITY PPT
ODP
Noyau temps réel freertos cheriet mohammed el amine
PDF
Introduction to yocto
PDF
The ultimate guide to software updates on embedded linux devices
建構嵌入式Linux系統於SD Card
Pfe conception et développement d'une application web GMAO JEE
Android open source project build system phi innovations - android summit 2015
Introduction to systemd
Conception et développement d&rsquo;une place de marché B2C
Fuel level sensors. How to measure fuel volume in the tank. Technoton webinar...
Role et missions de l'AIGF pour un developpement efficient du secteur des TIC...
Présentation PFE "Refonte et déploiement d’une solution de messagerie en util...
Linux Device Tree
Travaux pratiques corrigé logiciel ARENA
NSA Journal of Information Warfare
PART-2 : Mastering RTOS FreeRTOS and STM32Fx with Debugging
Implementing ISO 26514 in Your Workplace
QNX Software Systems
Presentation systemc
Sistema Operativo Canaima
AUTOMOTIVE CYBER SECURITY PPT
Noyau temps réel freertos cheriet mohammed el amine
Introduction to yocto
The ultimate guide to software updates on embedded linux devices
Ad

Similar to Zephyr Project - West Overview (9)

PDF
Zephyr: Creating a Best-of-Breed, Secure RTOS for IoT
PDF
Zephyr RTOS in One Hour | HARDWARIO @ IoT North UK
PDF
Open Source Tools for Leveling Up Operations FOSSET 2014
PDF
Updated non-lab version of Level Up. Delivered at LOPSA-East, May 3, 2014.
PDF
Mwalls velocity levelup
PDF
Getting Git Right
PDF
Continuous Integration Testing for Plone Using Hudson
PDF
SFSCON23 - Yuri D'Elia - Automating git for development on large distributed ...
PDF
#PDR15 - waf, wscript and Your Pebble App
Zephyr: Creating a Best-of-Breed, Secure RTOS for IoT
Zephyr RTOS in One Hour | HARDWARIO @ IoT North UK
Open Source Tools for Leveling Up Operations FOSSET 2014
Updated non-lab version of Level Up. Delivered at LOPSA-East, May 3, 2014.
Mwalls velocity levelup
Getting Git Right
Continuous Integration Testing for Plone Using Hudson
SFSCON23 - Yuri D'Elia - Automating git for development on large distributed ...
#PDR15 - waf, wscript and Your Pebble App
Ad

Recently uploaded (20)

PDF
Approach and Philosophy of On baking technology
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Machine Learning_overview_presentation.pptx
PDF
Getting Started with Data Integration: FME Form 101
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Network Security Unit 5.pdf for BCA BBA.
Approach and Philosophy of On baking technology
Per capita expenditure prediction using model stacking based on satellite ima...
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Diabetes mellitus diagnosis method based random forest with bat algorithm
Dropbox Q2 2025 Financial Results & Investor Presentation
Advanced methodologies resolving dimensionality complications for autism neur...
SOPHOS-XG Firewall Administrator PPT.pptx
MYSQL Presentation for SQL database connectivity
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Encapsulation_ Review paper, used for researhc scholars
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Machine Learning_overview_presentation.pptx
Getting Started with Data Integration: FME Form 101
Unlocking AI with Model Context Protocol (MCP)
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Programs and apps: productivity, graphics, security and other tools
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Group 1 Presentation -Planning and Decision Making .pptx
“AI and Expert System Decision Support & Business Intelligence Systems”
Network Security Unit 5.pdf for BCA BBA.

Zephyr Project - West Overview

  • 1. Building with Zephyr? West overview Marti Bolivar, Nordic Semiconductor
  • 2. Outline: Presenter: Marti Bolivar - Zephyr and west developer - What we’re doing today: - Overview of what’s available in west - Good starting points for experimenting and getting help - Helpful if you’ve already gone through the Zephyr Getting Started Guide for v2.3.0, but not required: https://docs.zephyrproject.org/2.3.0/getting_started/index.html
  • 3. What is west? Zephyr’s “meta-tool” or “swiss army knife,” used for many common development workflows. An extensible command line tool for managing a Zephyr workspace: https://docs.zephyrproject.org/2.3.0/guides/west/index.html Recommended but not required: https://docs.zephyrproject.org/2.3.0/guides/west/without-west.html Developed in its own git repository: https://github.com/zephyrproject-rtos/west
  • 4. West “proper” vs. Zephyr uses West “proper” ● Workspace commands (init, update, etc.) ● Configuration command (config) ● APIs for adding extension commands (external plug- ins) Zephyr’s west usage and extensions ● Zephyr module integration ● Extension commands (build, flash, debug, etc.) In the zephyr repositoryIn the west repository
  • 5. Creating a workspace: west init ● zephyrproject: the west workspace’s top level directory, or topdir. The .west directory marks the topdir. ● zephyr: the manifest repository (in this example) ● .west/config: the workspace local configuration file; tells west that “zephyr” is the manifest repository ● west.yml: the manifest file; says what other git repositories should be pulled in via west update Vocabulary $ west init -m https://github.com/zephyrproject-rtos/zephyr --mr v2.3.0 zephyrproject Results (simplified) zephyrproject ├── .west │ └── config └── zephyr └── west.yml
  • 6. Manifest file, west.yml Simplified contents of zephyr/west.yml in v2.3.0. • remotes: where projects can be fetched • projects: a list of git repositories in the workspace • self: configures the manifest repository (zephyr) itself
  • 7. Manifest file semantics zephyrproject-rtos/zephyr west.yml manifest: projects: - ... - … - ... zephyrproject-rtos/<project> zephyrproject-rtos/<project> zephyrproject-rtos/<project> Every element of the projects list is another Git repository that is included in the upstream Zephyr project distribution.
  • 8. Updating a workspace: west update ● Modules: third-party code with Zephyr integration, can be integrated into Zephyr applications, device drivers, etc. ● Includes things like file systems, vendor HALs, etc. ● A small number west projects live outside the modules directory. Currently just the mcuboot bootloader and some additional developer tools repositories Vocabulary $ west update # run inside the “zephyrproject” workspace Results (simplified) zephyrproject ├── bootloader │ └── mcuboot ├── modules │ └── fs │ └── fatfs ├── .west │ └── config └── zephyr └── west.yml
  • 9. Other workspace commands Some additional workspace management commands: list print information about projects in the west manifest manifest slice and dice the west manifest diff "git diff" for one or more projects status "git status" for one or more projects forall run a command in one or more local projects For a complete list of commands, including extensions, run: $ west help
  • 10. Zephyr extension commands Some additional Zephyr development extension commands: build compile zephyr applications flash flash a compiled application to a board debug flash an application and enter a debugger (usually GDB) debugserver flash an application and start a debug server attach attach a debugger to a board without flashing
  • 11. Most common extension issue If you see this when running an extension like west build: west: error: argument <command>: invalid choice: 'build' (...) Then you’re not in your workspace, so the extension can’t be found. See this item on the troubleshooting page: https://docs.zephyrproject.org/2.3.0/guides/west/troubleshooting.html#invalid -choice-build-or-flash-etc
  • 12. West configuration files ● “INI-like” (Python configparser syntax) ● We saw .west/config earlier; that’s the workspace configuration file ● You can also set user- and system-wide configuration values ● Run west config to manage your configuration ● See also: https://docs.zephyrproject.org/2.3.0/guides/west/config.html
  • 13. Help and troubleshooting Documentation: West page in the Zephyr guides and Troubleshooting west. Also: $ west help List all commands and one line help for each (including extensions). $ west <command> help Help for a specific <command>, like west help init $ west -v <command> Enable verbose output for <command>, like west -v init