SlideShare a Scribd company logo
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

What's hot

Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門
大樹 小倉
 
Rustを支える技術
Rustを支える技術Rustを支える技術
Rustを支える技術
Keisuke Umezawa
 
Java EE パフォーマンスTips #glassfish_jp
Java EE パフォーマンスTips #glassfish_jpJava EE パフォーマンスTips #glassfish_jp
Java EE パフォーマンスTips #glassfish_jp
Norito Agetsuma
 
Xamarin.forms入門
Xamarin.forms入門Xamarin.forms入門
Xamarin.forms入門
一希 大田
 
フィッシングとドメイン名・DNS
フィッシングとドメイン名・DNSフィッシングとドメイン名・DNS
フィッシングとドメイン名・DNS
Shiojiri Ohhara
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
 
今から始める Lens/Prism
今から始める Lens/Prism今から始める Lens/Prism
今から始める Lens/Prism
Naoki Aoyama
 
第1回 配信講義 計算科学技術特論A (2021)
第1回 配信講義 計算科学技術特論A (2021)第1回 配信講義 計算科学技術特論A (2021)
第1回 配信講義 計算科学技術特論A (2021)
RCCSRENKEI
 
WDM - Windows Driver Model overview
WDM - Windows Driver Model overviewWDM - Windows Driver Model overview
WDM - Windows Driver Model overview
Prasad Talekar
 
Fault, Error, Failure の違い
Fault, Error, Failure の違いFault, Error, Failure の違い
Fault, Error, Failure の違い
Mizuhiro Kaimai
 
C++20에서 리플렉션 기능 구현
C++20에서 리플렉션 기능 구현C++20에서 리플렉션 기능 구현
C++20에서 리플렉션 기능 구현
Bongseok Cho
 
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)Takeshi HASEGAWA
 
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
infinite_loop
 
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツオブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ増田 亨
 
Performance Wins with BPF: Getting Started
Performance Wins with BPF: Getting StartedPerformance Wins with BPF: Getting Started
Performance Wins with BPF: Getting Started
Brendan Gregg
 
UE4 Garbage Collection
UE4 Garbage CollectionUE4 Garbage Collection
UE4 Garbage Collection
QooJuice
 
Introduction to boost test
Introduction to boost testIntroduction to boost test
Introduction to boost test
Kohsuke Yuasa
 
Quine・難解プログラミングについて
Quine・難解プログラミングについてQuine・難解プログラミングについて
Quine・難解プログラミングについて
mametter
 
빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)
YEONG-CHEON YOU
 

What's hot (20)

Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門
 
Rustを支える技術
Rustを支える技術Rustを支える技術
Rustを支える技術
 
Java EE パフォーマンスTips #glassfish_jp
Java EE パフォーマンスTips #glassfish_jpJava EE パフォーマンスTips #glassfish_jp
Java EE パフォーマンスTips #glassfish_jp
 
Xamarin.forms入門
Xamarin.forms入門Xamarin.forms入門
Xamarin.forms入門
 
フィッシングとドメイン名・DNS
フィッシングとドメイン名・DNSフィッシングとドメイン名・DNS
フィッシングとドメイン名・DNS
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
 
今から始める Lens/Prism
今から始める Lens/Prism今から始める Lens/Prism
今から始める Lens/Prism
 
第1回 配信講義 計算科学技術特論A (2021)
第1回 配信講義 計算科学技術特論A (2021)第1回 配信講義 計算科学技術特論A (2021)
第1回 配信講義 計算科学技術特論A (2021)
 
WDM - Windows Driver Model overview
WDM - Windows Driver Model overviewWDM - Windows Driver Model overview
WDM - Windows Driver Model overview
 
Fault, Error, Failure の違い
Fault, Error, Failure の違いFault, Error, Failure の違い
Fault, Error, Failure の違い
 
C++20에서 리플렉션 기능 구현
C++20에서 리플렉션 기능 구현C++20에서 리플렉션 기능 구현
C++20에서 리플렉션 기능 구현
 
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
 
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
 
Binary indexed tree
Binary indexed treeBinary indexed tree
Binary indexed tree
 
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツオブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
 
Performance Wins with BPF: Getting Started
Performance Wins with BPF: Getting StartedPerformance Wins with BPF: Getting Started
Performance Wins with BPF: Getting Started
 
UE4 Garbage Collection
UE4 Garbage CollectionUE4 Garbage Collection
UE4 Garbage Collection
 
Introduction to boost test
Introduction to boost testIntroduction to boost test
Introduction to boost test
 
Quine・難解プログラミングについて
Quine・難解プログラミングについてQuine・難解プログラミングについて
Quine・難解プログラミングについて
 
빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)
 

Similar to Zephyr Project - West Overview

Switching to Git
Switching to GitSwitching to Git
Switching to Git
Stephen Yeargin
 
Introduction to GitHub, Open Source and Tech Article
Introduction to GitHub, Open Source and Tech ArticleIntroduction to GitHub, Open Source and Tech Article
Introduction to GitHub, Open Source and Tech Article
PRIYATHAMDARISI
 
MongoDB World 2019 Builder's Fest - Ready, Git set ... Go!
MongoDB World 2019 Builder's Fest - Ready, Git set ... Go!MongoDB World 2019 Builder's Fest - Ready, Git set ... Go!
MongoDB World 2019 Builder's Fest - Ready, Git set ... Go!
Stennie Steneker
 
Version Control Systems -- Git -- Part I
Version Control Systems -- Git -- Part IVersion Control Systems -- Git -- Part I
Version Control Systems -- Git -- Part I
Sergey Aganezov
 
Git, from the beginning
Git, from the beginningGit, from the beginning
Git, from the beginning
James Aylett
 
BLUG 2012 Version Control for Notes Developers
BLUG 2012 Version Control for Notes DevelopersBLUG 2012 Version Control for Notes Developers
BLUG 2012 Version Control for Notes Developers
Martin Jinoch
 
Sunshine php practical-zf1-zf2-migration
Sunshine php practical-zf1-zf2-migrationSunshine php practical-zf1-zf2-migration
Sunshine php practical-zf1-zf2-migration
Clark Everetts
 
Puppet control-repo 
to the next level
Puppet control-repo 
to the next levelPuppet control-repo 
to the next level
Puppet control-repo 
to the next level
Alessandro Franceschi
 
Zero to Zend Framework in 10 minutes
Zero to Zend Framework in 10 minutesZero to Zend Framework in 10 minutes
Zero to Zend Framework in 10 minutes
Jeremy Kendall
 
Git basics a starter on git and its ecosystem
Git basics  a starter on git and its ecosystemGit basics  a starter on git and its ecosystem
Git basics a starter on git and its ecosystem
François D'Agostini
 
Git Workflow With Gitflow
Git Workflow With GitflowGit Workflow With Gitflow
Git Workflow With Gitflow
Josh Dvir
 
Beginner's Guide to Version Control with Git
Beginner's Guide to Version Control with GitBeginner's Guide to Version Control with Git
Beginner's Guide to Version Control with Git
Robert Lee-Cann
 
DSD-INT 2015 - Delft3D 4 open source workshop - Adri Mourits
DSD-INT 2015 - Delft3D 4 open source workshop - Adri MouritsDSD-INT 2015 - Delft3D 4 open source workshop - Adri Mourits
DSD-INT 2015 - Delft3D 4 open source workshop - Adri Mourits
Deltares
 
GIT from n00b
GIT from n00bGIT from n00b
GIT from n00b
Supachai Vorrasing
 
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Fabrice Bernhard
 
Practical git for developers
Practical git for developersPractical git for developers
Practical git for developers
Wim Godden
 
ActiveLAMP Process
ActiveLAMP ProcessActiveLAMP Process
ActiveLAMP Process
Tom Friedhof
 
zebra & openconfigd Introduction
zebra & openconfigd Introductionzebra & openconfigd Introduction
zebra & openconfigd Introduction
Kentaro Ebisawa
 
JavaEdge 2008: Your next version control system
JavaEdge 2008: Your next version control systemJavaEdge 2008: Your next version control system
JavaEdge 2008: Your next version control system
Gilad Garon
 
No instrumentation Golang Logging with eBPF (GoSF talk 11/11/20)
No instrumentation Golang Logging with eBPF (GoSF talk 11/11/20)No instrumentation Golang Logging with eBPF (GoSF talk 11/11/20)
No instrumentation Golang Logging with eBPF (GoSF talk 11/11/20)
Pixie Labs
 

Similar to Zephyr Project - West Overview (20)

Switching to Git
Switching to GitSwitching to Git
Switching to Git
 
Introduction to GitHub, Open Source and Tech Article
Introduction to GitHub, Open Source and Tech ArticleIntroduction to GitHub, Open Source and Tech Article
Introduction to GitHub, Open Source and Tech Article
 
MongoDB World 2019 Builder's Fest - Ready, Git set ... Go!
MongoDB World 2019 Builder's Fest - Ready, Git set ... Go!MongoDB World 2019 Builder's Fest - Ready, Git set ... Go!
MongoDB World 2019 Builder's Fest - Ready, Git set ... Go!
 
Version Control Systems -- Git -- Part I
Version Control Systems -- Git -- Part IVersion Control Systems -- Git -- Part I
Version Control Systems -- Git -- Part I
 
Git, from the beginning
Git, from the beginningGit, from the beginning
Git, from the beginning
 
BLUG 2012 Version Control for Notes Developers
BLUG 2012 Version Control for Notes DevelopersBLUG 2012 Version Control for Notes Developers
BLUG 2012 Version Control for Notes Developers
 
Sunshine php practical-zf1-zf2-migration
Sunshine php practical-zf1-zf2-migrationSunshine php practical-zf1-zf2-migration
Sunshine php practical-zf1-zf2-migration
 
Puppet control-repo 
to the next level
Puppet control-repo 
to the next levelPuppet control-repo 
to the next level
Puppet control-repo 
to the next level
 
Zero to Zend Framework in 10 minutes
Zero to Zend Framework in 10 minutesZero to Zend Framework in 10 minutes
Zero to Zend Framework in 10 minutes
 
Git basics a starter on git and its ecosystem
Git basics  a starter on git and its ecosystemGit basics  a starter on git and its ecosystem
Git basics a starter on git and its ecosystem
 
Git Workflow With Gitflow
Git Workflow With GitflowGit Workflow With Gitflow
Git Workflow With Gitflow
 
Beginner's Guide to Version Control with Git
Beginner's Guide to Version Control with GitBeginner's Guide to Version Control with Git
Beginner's Guide to Version Control with Git
 
DSD-INT 2015 - Delft3D 4 open source workshop - Adri Mourits
DSD-INT 2015 - Delft3D 4 open source workshop - Adri MouritsDSD-INT 2015 - Delft3D 4 open source workshop - Adri Mourits
DSD-INT 2015 - Delft3D 4 open source workshop - Adri Mourits
 
GIT from n00b
GIT from n00bGIT from n00b
GIT from n00b
 
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
 
Practical git for developers
Practical git for developersPractical git for developers
Practical git for developers
 
ActiveLAMP Process
ActiveLAMP ProcessActiveLAMP Process
ActiveLAMP Process
 
zebra & openconfigd Introduction
zebra & openconfigd Introductionzebra & openconfigd Introduction
zebra & openconfigd Introduction
 
JavaEdge 2008: Your next version control system
JavaEdge 2008: Your next version control systemJavaEdge 2008: Your next version control system
JavaEdge 2008: Your next version control system
 
No instrumentation Golang Logging with eBPF (GoSF talk 11/11/20)
No instrumentation Golang Logging with eBPF (GoSF talk 11/11/20)No instrumentation Golang Logging with eBPF (GoSF talk 11/11/20)
No instrumentation Golang Logging with eBPF (GoSF talk 11/11/20)
 

Recently uploaded

Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
Neo4j
 
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
Edge AI and Vision Alliance
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
Safe Software
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
Edge AI and Vision Alliance
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
Jason Yip
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
operationspcvita
 
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Pitangent Analytics & Technology Solutions Pvt. Ltd
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
Ivo Velitchkov
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Precisely
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
saastr
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
DianaGray10
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 

Recently uploaded (20)

Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
 
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
 
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 

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