93 lines
2.7 KiB
ReStructuredText
93 lines
2.7 KiB
ReStructuredText
|
.. _west:
|
||
|
|
||
|
West (Experimental)
|
||
|
###################
|
||
|
|
||
|
The Zephyr project is developing a swiss-army knife command line tool
|
||
|
named ``west``. (Zephyr is an English name for the Greek god of the
|
||
|
west wind.)
|
||
|
|
||
|
West is developed in its own `repository on GitHub`_. A copy is
|
||
|
currently maintained in Zephyr's :file:`scripts/meta/west` directory.
|
||
|
|
||
|
Usage
|
||
|
*****
|
||
|
|
||
|
West's usage is similar to Git's: general options are followed by a
|
||
|
command, which may also take options and arguments::
|
||
|
|
||
|
$ west [common-opts] <command-name> [command-opts] [<command-args>]
|
||
|
|
||
|
Usage guides for specific groups of subcommands are in the following
|
||
|
pages.
|
||
|
|
||
|
.. toctree::
|
||
|
|
||
|
flash-debug.rst
|
||
|
|
||
|
(This list will expand as additional features are developed.)
|
||
|
|
||
|
Planned Features
|
||
|
****************
|
||
|
|
||
|
Additional features are under development for future versions of
|
||
|
Zephyr:
|
||
|
|
||
|
- Building Zephyr images.
|
||
|
|
||
|
- Running Zephyr in emulation.
|
||
|
|
||
|
- Bootloader integration: bootloader-aware image building, signing,
|
||
|
and flashing, as well as building and flashing the bootloader itself.
|
||
|
|
||
|
- Multiple repository support: fetching and updating repositories that
|
||
|
integrate with Zephyr, such as `MCUboot`_, `OpenThread`_ and others.
|
||
|
|
||
|
See `Zephyr issue #6205`_ for more details and discussion.
|
||
|
|
||
|
.. _west-design-constraints:
|
||
|
|
||
|
Design Constraints
|
||
|
******************
|
||
|
|
||
|
West is:
|
||
|
|
||
|
- **Optional**: it is always *possible* to drop back to "raw"
|
||
|
command-line tools, i.e. use Zephyr without using West. It may not
|
||
|
always be *convenient* to do so, however. (If all of West's features
|
||
|
were already conveniently available, there would be no reason to
|
||
|
develop it.)
|
||
|
|
||
|
- **Compatible with CMake**: building, flashing and debugging, and
|
||
|
emulator support will always remain compatible with direct use of
|
||
|
CMake.
|
||
|
|
||
|
- **Cross-platform**: West is written in Python 3, and works on all
|
||
|
platforms supported by Zephyr.
|
||
|
|
||
|
- **Usable as a Library**: whenever possible, West features are
|
||
|
implemented as libraries that can be used standalone in other
|
||
|
programs, along with separate command line interfaces that wrap
|
||
|
them. West itself is a Python package named ``west``; its libraries
|
||
|
are implemented as subpackages.
|
||
|
|
||
|
- **Conservative about features**: no features will be accepted without
|
||
|
strong and compelling motivation.
|
||
|
|
||
|
- **Clearly specified**: West's behavior in cases where it wraps other
|
||
|
commands is clearly specified and documented. This enables
|
||
|
interoperability with third party tools, and means Zephyr developers
|
||
|
can always find out what is happening "under the hood" when using West.
|
||
|
|
||
|
.. _repository on GitHub:
|
||
|
https://github.com/zephyrproject-rtos/west
|
||
|
|
||
|
.. _MCUboot:
|
||
|
https://mcuboot.com/
|
||
|
|
||
|
.. _OpenThread:
|
||
|
https://openthread.io/
|
||
|
|
||
|
.. _Zephyr issue #6205:
|
||
|
https://github.com/zephyrproject-rtos/zephyr/issues/6205
|