入门指南¶
使用本文档开始您的 Zephyr 开发之旅吧!
设置开发环境¶
Zephyr 项目支持如下操作系统:
- Linux
- Mac OS
- Windows 8.1
您可以按照下面的步骤搭建一个新的开发环境。
匿名检出源代码¶
Zephyr 托管在 Linux 基金会的 Gerrit 后台上,支持通过 git 匿名克隆。
要匿名克隆 Zephyr 的代码仓库,请输入:
$ git clone https://gerrit.zephyrproject.org/r/zephyr zephyr-project
然后,您将在您的本地机器上成功地检出源代码的副本。
如果您打算贡献代码,请先到 Gerrit Accounts 创建一个 Linux 基金会账户。
编译、运行应用程序¶
下面的章节将利用一个简单的 ‘Hello World’ 作为基础模型,向您展示创建一个 Zephyr 应用程序所涉及到的内容。
各种操作系统上编译、运行 Zephyr 应用程序的过程是类似的。尽管如此,不同操作系统的命令会略有区别。本节所有的命令都是基于 Linux 开发环境的,如果您使用的是 Mac OS,请使用该操作系统所对应的命令。
编译一个简单的例子¶
请按照下面的步骤编译一个简单的应用程序例程:
export 下列环境变量,以确保您的环境被正确地设置。以 Linux 为例,输入:
$ export ZEPHYR_GCC_VARIANT=zephyr $ export ZEPHYR_SDK_INSTALL_DIR=<sdk installation directory>
进入项目主目录:
$ cd zephyr-project
对环境变量文件执行 source 操作,使其生效:
$ source zephyr-env.sh
编译 hello_world 例程。输入:
$ cd $ZEPHYR_BASE/samples/hello_world $ make
上面的 make 命令将使用在应用程序 Makefile 中的定义编译 hello_world 例程。您可以通过指定变量 BOARD 为不同的开发板编译不同的程序,例如:
$ make BOARD=arduino_101
关于 Zephyr 所支持的开发板,请参考 这里。您也可以输入以下命令查看 Zephyr 所支持的开发板。
$ make help
目录 $ZEPHYR_BASE/samples
下包含了 Zephyr 各种功能特性的例程工程。当应用程序编译成功后,您可以在应用程序根目录下的 outdir
子目录中看到编译生成的文件。
编译系统默认会生成名为 zephyr.elf
的可执行文件。您也可以在应用程序的配置文件中进行配置,为不同的硬件和开发板指定不同的可执行文件名字。
使用自定义/三方交叉编译器¶
为了便于使用,Zephyr 提供了一套软件开发工具(SDK)。Zephyr SDK 为所有所支持的操作系统都提供了交叉编译器,因此您无需进行额外的配置。
如果您想使用自定义的交叉编译器,或者如果您想使用厂家提供的 SDK,您可以按照下列步骤进行设置:
为了避免与 Zephyr SDK 冲突,先输入如下命令:
$ unset ZEPHYR_GCC_VARIANT $ unset ZEPHYR_SDK_INSTALL_DIR
我们以 GCC ARM Embedded 编译器为例。从 GCC ARM Embedded 下载一个适合您的操作系统的软件包,然后将其解压到您的文件系统中。假设该编译器被解压到:
~/gcc-arm-none-eabi-5_3-2016q1/
。进入项目主目录:
$ cd zephyr-project
对项目环境文件执行 source 操作:
$ source zephyr-env.sh
编译 hello_world 例程,且在命令行指明 CROSS_COMPILE:
$ export GCCARMEMB_TOOLCHAIN_PATH="~/gcc-arm-none-eabi-5_3-2016q1/" $ export ZEPHYR_GCC_VARIANT=gccarmemb $ cd $ZEPHYR_BASE/samples/hello_world $ make CROSS_COMPILE=~/gcc-arm-none-eabi-5_3-2016q1/bin/arm-none-eabi- BOARD=arduino_due
上面的命令将使用您从 GCC ARM Embedded 下载的工具链编译应用例程。
您也可以已存在的支持 GCC ARM Embedded 的工具链:
$ export GCCARMEMB_TOOLCHAIN_PATH="~/gcc-arm-none-eabi-5_3-2016q1/" $ export ZEPHYR_GCC_VARIANT=gccarmemb $ cd zephyr-project $ source zephyr-env.sh $ cd $ZEPHYR_BASE/samples/hello_world $ make BOARD=arduino_due
在 QEMU 中运行应用程序例程¶
为了在开发环境中进行快速测试,您可以使用能够 qemu 仿真器。qemu 仿真器支持 x86 和 ARM Cortex-M3。进行 qemu 仿真非常简单,您只需要在编译应用程序时指定一个目标,编译系统会自动调用 QEMU 进行编译。
如果要使用 x86 qemu 仿真开发板配置(qemu_x86)编译应用程序,输入:
$ make BOARD=qemu_x86 run
如果要使用 ARM qemu_cortex_m3 开发板配置编译应用程序,输入:
$ make BOARD=qemu_cortex_m3 run
QEMU 并非支持所有的开发板和 SoC。当为一个特定硬件开发应用时,您需要在实际的硬件平台上进行测试,而不要仅仅依赖于 QEMU 仿真环境。