249 lines
8.9 KiB
ReStructuredText
249 lines
8.9 KiB
ReStructuredText
.. _installing_zephyr_win:
|
|
|
|
Development Environment Setup on Windows
|
|
########################################
|
|
|
|
This section describes how to configure your development environment and
|
|
to build Zephyr applications in a Microsoft Windows environment.
|
|
|
|
This guide was tested by building the Zephyr :ref:`hello_world` sample
|
|
application on Windows versions 7, 8.1, and 10.
|
|
|
|
Update Your Operating System
|
|
****************************
|
|
|
|
Before proceeding with the build, ensure that you are running your
|
|
Windows system with the latest updates installed.
|
|
|
|
.. _windows_requirements:
|
|
|
|
Installing Requirements and Dependencies
|
|
****************************************
|
|
|
|
Using MSYS2 (recommended)
|
|
=========================
|
|
|
|
The simplest way to install a development environment on Windows is to use
|
|
MSYS2, a modern UNIX environment for Windows. Follow the steps below to set it
|
|
up:
|
|
|
|
1. Download and install :program:`MSYS2`. Download the appropriate (32 or
|
|
64-bit) MSYS2 installer from the `MSYS2 website`_ and execute it. On the
|
|
final installation screen, check the "Run MSYS2 now." box to start up an
|
|
MSYS2 shell when installation is complete. Follow the rest of the
|
|
installation instructions on the MSYS2 website to update the package
|
|
database and core system packages. You may be advised to "terminate MSYS2
|
|
without returning to shell and check for updates again". If so, simply
|
|
close the ``MSYS2 MSYS`` desktop app and run it again to complete the update.)
|
|
|
|
#. Launch the ``MSYS2 MSYS`` desktop app from your start menu (if it's not still open).
|
|
|
|
#. If you're behind a corporate firewall, you'll likely need to specify a
|
|
proxy to get access to internet resources::
|
|
|
|
$ export http_proxy=http://proxy.mycompany.com:123
|
|
$ export https_proxy=$http_proxy
|
|
|
|
#. Install the dependencies required to build Zephyr:
|
|
|
|
.. code-block:: console
|
|
|
|
$ pacman -S git make gcc diffutils ncurses-devel python2 python3
|
|
|
|
#. The build system should now be ready to work with any toolchain installed in
|
|
your system. In the next step you'll find instructions for installing
|
|
toolchains for building both x86 and ARM applications.
|
|
|
|
#. Install cross compiler toolchain:
|
|
|
|
* For x86, install the 2017 Windows host ISSM toolchain from the Intel
|
|
Developer Zone: `ISSM Toolchain`_. Use your web browser to
|
|
download the toolchain's ``tar.gz`` file.
|
|
|
|
You'll need the tar application to unpack this file. In an ``MSYS2 MSYS``
|
|
console, install ``tar`` and use it to extract the toolchain archive::
|
|
|
|
$ pacman -S tar
|
|
$ tar -zxvf /c/Users/myusername/Downloads/issm-toolchain-windows-2017-01-15.tar.gz -C /c
|
|
|
|
substituting the .tar.gz path name with the one you downloaded.
|
|
|
|
.. note::
|
|
|
|
The ISSM toolset only supports development for Intel® Quark™
|
|
Microcontrollers, for example, the Arduino 101 board. (Check out the
|
|
"Zephyr Development Environment
|
|
Setup" in this `Getting Started on Arduino 101 with ISSM`_ document.)
|
|
Additional setup is required to use the ISSM GUI for development.
|
|
|
|
|
|
* For ARM, install GNU ARM Embedded from the ARM developer website:
|
|
`GNU ARM Embedded`_ (install to :file:`c:\\gccarmemb`).
|
|
|
|
#. From within the `MSYS2 MSYS Shell`, clone a copy of the Zephyr source into
|
|
your home directory using Git:
|
|
|
|
.. code-block:: console
|
|
|
|
$ cd ~
|
|
$ git clone https://gerrit.zephyrproject.org/r/zephyr
|
|
|
|
#. Also within the MSYS console, set up environment variables for the installed
|
|
tools and for the Zephyr environment (using the provided shell script):
|
|
|
|
For x86:
|
|
|
|
.. code-block:: console
|
|
|
|
$ export ZEPHYR_GCC_VARIANT=issm
|
|
$ export ISSM_INSTALLATION_PATH=/c/issm0-toolchain-windows-2017-01-25
|
|
|
|
Use the path where you extracted the ISSM toolchain.
|
|
|
|
For ARM:
|
|
|
|
.. code-block:: console
|
|
|
|
$ export ZEPHYR_GCC_VARIANT=gccarmemb
|
|
$ export GCCARMEMB_TOOLCHAIN_PATH=/c/gccarmemb
|
|
|
|
And for either, run the provided script to set up zephyr project specific
|
|
variables:
|
|
|
|
.. code-block:: console
|
|
|
|
$ unset ZEPHYR_SDK_INSTALL_DIR
|
|
$ source ~/zephyr/zephyr-env.sh
|
|
|
|
#. Finally, you can try building the :ref:`hello_world` sample to check things
|
|
out.
|
|
|
|
To build for the Intel® Quark™ (x86-based) Arduino 101:
|
|
|
|
.. code-block:: console
|
|
|
|
$ cd $ZEPHYR_BASE/samples/hello_world
|
|
$ make BOARD=arduino_101
|
|
|
|
To build for the ARM-based Nordic nRF52 Development Kit:
|
|
|
|
.. code-block:: console
|
|
|
|
$ cd $ZEPHYR_BASE/samples/hello_world
|
|
$ make BOARD=nrf52_pca10040
|
|
|
|
|
|
This should check that all the tools and toolchain are set up correctly for
|
|
your own Zephyr development.
|
|
|
|
|
|
Using MinGW (not recommended)
|
|
=============================
|
|
|
|
To install the software components required to build Zephyr applications on
|
|
Windows, you will need to build or install a toolchain:
|
|
|
|
1. Install :program:`GIT`. Go to `GIT Download`_ to obtain the latest copy of
|
|
the software (2.12.0). Install into the :file:`C:\\Git` folder and use the
|
|
default configuration options for the rest.
|
|
|
|
2. Install :program:`Python 2.7`. Go to `Python Download`_ to obtain the
|
|
software (version 2.7.13) and use the default installation options.
|
|
|
|
3. Install :program:`MinGW`. MinGW is the minimalist GNU development environment
|
|
for native Windows applications. The Zephyr build system will execute on top
|
|
of this tool set. Visit the site `MinGW Home`_ and install the
|
|
following packages with their installer `mingw-get-setup.exe` (you'll need
|
|
to open the "All Packages" tab to enable installing the msys packages listed
|
|
here):
|
|
|
|
* mingw-developer-toolkit
|
|
* mingw32-base
|
|
* msys-base
|
|
* msys-binutils
|
|
* msys-console
|
|
* msys-w32api
|
|
|
|
4. Launch the `MSYS console` from a cmd window. The installer does not create
|
|
shortcuts for you so you'll need to run the script
|
|
in :file:`C:\\MinGW\\msys\\1.0\\msys.bat.`
|
|
|
|
5. The Zephyr build process has a dependency on the Pthread and GNU regex
|
|
libraries. Msys provides its own GNU library implementation that can be
|
|
downloaded from the MinGW and Msys official repository:
|
|
`MinGW Repository`_ with the following commands:
|
|
|
|
.. code-block:: console
|
|
|
|
$ mingw-get update
|
|
$ mingw-get install libpthread msys-libregex-dev --all-related
|
|
|
|
|
|
When done, move libregex files (``libregex.a``, ``libregex.dll.a``,
|
|
``libregex.la``)
|
|
from ``C:\Git\mingw32\msys\1.0\lib`` to ``C:\Git\mingw32\lib``
|
|
|
|
6. We need to edit :file:`/etc/fstab` to create an entry mapping from the Win32
|
|
path ``c:/mingw`` to the mount point ``/mingw``
|
|
The easiest way to do this is just copy the file :file:`fstab.sample` as
|
|
:file:`fstab` and ``cat /etc/fstab`` to confirm that the mapping was added.
|
|
|
|
|
|
7. The build system should be able to work with any toolchain installed in your
|
|
system. For instance, the Zephyr build system was tested using the mingw
|
|
MSYS console (as described below) with the toolchain
|
|
provided with the ISSM 2016 (Intel System Studio for Microcontrollers)
|
|
installation. Install ISSM toolchain from the Intel Developer Zone:
|
|
`ISSM Toolchain`_
|
|
|
|
.. note::
|
|
|
|
The ISSM toolset only supports development for Intel® Quark™
|
|
Microcontrollers, for example, the Arduino 101 board. (Check out the
|
|
"Zephyr Development Environment
|
|
Setup" in this `Getting Started on Arduino 101 with ISSM`_ document.)
|
|
Also, additional setup is required to use the ISSM GUI for
|
|
development.
|
|
|
|
8. From within the MSYS console, clone a copy of the Zephyr source into your
|
|
home directory using Git:
|
|
|
|
.. code-block:: console
|
|
|
|
$ cd ~
|
|
$ git clone https://gerrit.zephyrproject.org/r/zephyr
|
|
|
|
9. Also within the MSYS console, set up environment variables for installed
|
|
tools and for the Zephyr environment (using the provided shell script):
|
|
|
|
.. code-block:: console
|
|
|
|
$ export PATH=$PATH:/c/python27/
|
|
$ export MINGW_DIR=/c/mingw
|
|
$ export ZEPHYR_GCC_VARIANT=issm
|
|
$ export ISSM_INSTALLATION_PATH=C:/IntelSWTools/ISSM_2016.1.067
|
|
$ unset ZEPHYR_SDK_INSTALL_DIR
|
|
$ source ~/zephyr/zephyr-env.sh
|
|
|
|
10. Finally, you can try building the :ref:`hello_world` sample to check things
|
|
out. In this example, we'll build the hello_world sample for the Arduino
|
|
101 board:
|
|
|
|
.. code-block:: console
|
|
|
|
$ cd $ZEPHYR_BASE/samples/hello_world
|
|
$ make BOARD=arduino_101
|
|
|
|
This should check that all the tools and toolchain are setup correctly for
|
|
your own Zephyr development.
|
|
|
|
|
|
.. _GNU ARM Embedded: https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads
|
|
.. _MSYS2 website: http://www.msys2.org/
|
|
.. _GIT Download: https://git-scm.com/download/win
|
|
.. _Python Download: https://www.python.org/downloads/
|
|
.. _MinGW Home: http://www.mingw.org/
|
|
.. _MinGW Repository: http://sourceforge.net/projects/mingw/files/
|
|
.. _ISSM Toolchain: https://software.intel.com/en-us/articles/issm-toolchain-only-download
|
|
.. _Getting Started on Arduino 101 with ISSM: https://software.intel.com/en-us/articles/getting-started-arduino-101genuino-101-with-intel-system-studio-for-microcontrollers
|