环境搭建
<h3>Windows</h3>
<ol>
<li>若有公司防火墙,则设置访问internet代理
<pre><code>set HTTP_PROXY=http://user:password@proxy.mycompany.com:1234
set HTTPS_PROXY=http://user:password@proxy.mycompany.com:1234</code></pre></li>
<li>
<p>安装<code>Chocolatey</code>包管理器
参考<a href="https://chocolatey.org/install"><a href="https://chocolatey.org/install">https://chocolatey.org/install</a></a>
在<code>cmd.exe</code>执行</p>
<pre><code>@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"</code></pre>
</li>
<li>
<p>关闭全局确认来避免安装过程需要确认安装的程序</p>
<pre><code>choco feature enable -n allowGlobalConfirmation</code></pre>
</li>
<li>
<p>安装<code>CMAKE</code></p>
<pre><code>choco install cmake --installargs 'ADD_CMAKE_TO_PATH=System'</code></pre>
</li>
<li>
<p>安装其他工具</p>
<pre><code>choco install ninja dtc-msys2 gperf</code></pre>
<blockquote>
<p>git,python3已经安装了不用再安装</p>
</blockquote>
</li>
<li>
<p>关闭管理员命令行窗口</p>
</li>
<li>
<p>下载Zephyr仓库</p>
<pre><code>git clone https://github.com/zephyrproject-rtos/zephyr</code></pre>
</li>
<li>
<p>安装python依赖</p>
<pre><code># Linux
pip3 install --user -r zephyr/scripts/requirements.txt
# macOS and Windows
pip3 install -r zephyr/scripts/requirements.txt</code></pre>
<blockquote>
<p>使用<code>--user</code>安装在基于Debian-based发行版中是默认的,在Linux系统中使用它可以防止与系统包管理器安装的python包产生冲突.</p>
<p><code>linux</code>系统中<code>python user</code>安装目录在<code>~/.local/bin</code>下,并且<code>~/.local/bin</code>必须在PATH变量最前面</p>
<p>升级setuptools,<code>pip install -U setuptools</code></p>
<p><code>pyocd</code>使用最新版本</p>
</blockquote>
</li>
<li>
<p>配置工具链
<code>Windows</code>系统将<code>set</code>放到%userprofile%\zephyrrc.cmd.</p>
<ul>
<li><a href="https://developer.arm.com/open-source/gnu-toolchain/gnu-rm" title="GNU ARM工具链">GNU ARM工具链</a>
下载工具将其放到无空格的目录下如<code>C:\gnu_arm_embedded</code>,设置环境变量</li>
</ul>
<pre><code># Linux or macOS
export ZEPHYR_TOOLCHAIN_VARIANT=gnuarmemb
export GNUARMEMB_TOOLCHAIN_PATH="~/gnu_arm_embedded"
# Windows in cmd.exe
set ZEPHYR_TOOLCHAIN_VARIANT=gnuarmemb
set GNUARMEMB_TOOLCHAIN_PATH=C:\gnu_arm_embedded</code></pre>
</li>
</ol>
<ul>
<li>
<p>其他交叉编译器</p>
<ol>
<li>安装交叉编译器
<pre><code># On Debian or Ubuntu
sudo apt-get install gcc-arm-none-eabi
# On Fedora or Red Hat
sudo dnf install arm-none-eabi-newlib</code></pre></li>
<li>配置环境变量
<pre><code>export ZEPHYR_TOOLCHAIN_VARIANT=cross-compile
export CROSS_COMPILE=/usr/bin/arm-none-eabi-</code></pre></li>
</ol>
</li>
<li>
<p>自定义<code>CMake</code>工具链</p>
<pre><code># Linux and macOS
export ZEPHYR_TOOLCHAIN_VARIANT=<toolchain name>
export TOOLCHAIN_ROOT=<path to toolchain>
# Windows
set ZEPHYR_TOOLCHAIN_VARIANT=<toolchain name>
set TOOLCHAIN_ROOT=<path to toolchain></code></pre>
<p><code>Zephry</code>将包含<code><path to toolchain>/cmake/toolchain/<toolchain name>.cmake</code>.</p>
</li>
</ul>