Zephyr 操作系统

来源:互联网 发布:java 计算时间差 分钟 编辑:程序博客网 时间:2024/06/06 05:01

概述

Zephyr 是由 Linux 基金会托管的开源协作项目,目标是构建一个针对资源受限设备的小型、可裁剪的实时操作系统。Zephyr 项目非常适合构建简单的传感器网络、可穿戴设备以及小型物联网无线网关。系统采用模块化设计,支持多种 CPU 架构,开发人员可以很容易的根据需求定制一个最优的解决方案。

zephyr rtos

Zephyr 相比其他开源物联网系统具有以下优点:

  • 开源:使用 Apache 2.0 开源许可。
  • 模块化:针对受限制的物联网设备而设计,可以通过 Kconfig 裁剪功能选项,从而实现用户自定义的最佳配置。
  • 联网能力:系统中提供了多种针对低功耗、内存受限设备的连接协议,支持蓝牙、低功耗蓝牙(BLE)、wifi802.15.4 以及其他标准,包括6lowpancoapipv4ipv6NFC
  • 安全性:项目在开发过程中将安全因素考虑在内,该项目中提供了安全验证、模糊和渗透测试、代码审查、静态代码分析、威胁建模和审查等多种检测方法,用来防止代码中存在后门和漏洞。以上工作由专门的安全小组及维护人员进行监督和维护。

开发环境搭建

本章节将描述如何在 ubuntu 系统中 搭建 Zephyr 开发环境

准备工作

# 系统升级$ sudo apt-get update$ sudo apt-get upgrade# 安装依赖库文件$ sudo apt-get install git make gcc g++ ncurses-dev \      doxygen dfu-util device-tree-compiler python3-ply python3-pip# 安装 python3 相关模块pip3 install --user -r scripts/requirements.txt

安装 Zephyr SDK

# 下载 SDK(0.9.1)$ wget https://github.com/zephyrproject-rtos/meta-zephyr-sdk/releases/download/0.9.1/zephyr-sdk-0.9.1-setup.run# 设置安装文件权限$ chmod +x zephyr-sdk-<version>-setup.run# 安装 SDK$ ./zephyr-sdk-<version>-setup.run# 设置环境变量$ cat <<EOF > ~/.zephyrrcexport ZEPHYR_GCC_VARIANT=zephyrexport ZEPHYR_SDK_INSTALL_DIR=/opt/zephyr-sdkEOF

下载 Zephyr 工程

# clone 工程$ git clone https://github.com/zephyrproject-rtos/zephyr.git# 切换分支$ cd zephyr$ checkout -b origin/v1.8-branch v1.8-branch # 使环境变量生效$ source zephyr-env.sh

基础示例

zephyr 项目中有很多示例代码,位于 <zephyr_prj>/samples/ 目录下,下面通过两个基础示例来描述 zephyr 的配置及编译过程,这里使用示例中的默认配置,用户也可以根据实际情况通过 make menuconfig 生成自己的配置文件 .config

QEMU 示例

# QEMU 环境$ cd samples/hello_world$ make run# 控制台输出:    To exit from QEMU enter: 'CTRL+a, x'    [QEMU] CPU: qemu32    qemu-system-i386: warning: Unknown firmware file in legacy mode: genroms/multiboot.bin    ***** BOOTING ZEPHYR OS v1.8.99 - BUILD: Aug 16 2017 06:25:30 *****    Hello World! x86

arduino 101 示例

arduino 101

# arduino 101 环境$ cd samples/net/coaps_client$ cp ../mbedtls_sslclient/prj_arduino_101.conf ./# 生成 zephyr.bin 文件$ make BOARD=arduino_101

固件下载及调试这里不做详细介绍,可参考官方文档:Arduino/Genuino 101

支持开发板列表

zephyr boards

zephyr 相关资源

  • zephyr 官网
  • zephyr sdk
  • zephyr git
  • zephyr jira
  • The Zephyr Project: RTOS for the Internet of Things
原创粉丝点击