Zephyr 操作系统
来源:互联网 发布:java 计算时间差 分钟 编辑:程序博客网 时间:2024/06/06 05:01
概述
Zephyr
是由Linux
基金会托管的开源协作项目,目标是构建一个针对资源受限设备的小型、可裁剪的实时操作系统。Zephyr
项目非常适合构建简单的传感器网络、可穿戴设备以及小型物联网无线网关。系统采用模块化设计,支持多种CPU
架构,开发人员可以很容易的根据需求定制一个最优的解决方案。
Zephyr
相比其他开源物联网系统具有以下优点:
- 开源:使用
Apache 2.0
开源许可。 - 模块化:针对受限制的物联网设备而设计,可以通过
Kconfig
裁剪功能选项,从而实现用户自定义的最佳配置。 - 联网能力:系统中提供了多种针对低功耗、内存受限设备的连接协议,支持蓝牙、低功耗蓝牙(
BLE
)、wifi
、802.15.4
以及其他标准,包括6lowpan
、coap
、ipv4
、ipv6
和NFC
。 - 安全性:项目在开发过程中将安全因素考虑在内,该项目中提供了安全验证、模糊和渗透测试、代码审查、静态代码分析、威胁建模和审查等多种检测方法,用来防止代码中存在后门和漏洞。以上工作由专门的安全小组及维护人员进行监督和维护。
开发环境搭建
本章节将描述如何在 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 环境$ 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
阅读全文
1 0
- Zephyr 操作系统
- zephyr操作系统:第一节
- Zephyr 物联网操作系统环境搭建
- 物联网操作系统 zephyr 相关资源
- 物联网实时操作系统zephyr的电源管理子系统
- Zephyr 3
- Zephyr-Llinux基金会发布Zephyr项目
- Zephyr 教程:Zephyr 工程的介绍
- Zephyr 教程:Zephyr 内核原语
- Zephyr-项目介绍
- Zephyr-开发向导
- Zephyr微内核初探
- zephyr-开发应用
- zephyr-内核初级手册
- zephyr 环境设置
- Zephyr 文档教程:目录
- Zephyr 教程:入门指南
- Zephyr 教程:应用程序基础
- .Net框架与框架类库
- POJ 3468 A Simple Problem with Integers(线段树)
- Collection集合 ArrayList 集合 LinkedList集合的方法及其解释
- 开发一个基于ZXing库以及安卓Studio的二维码扫描小程序(一)
- C++动态规划算法之数字三角形系列问题:数塔及其变种
- Zephyr 操作系统
- 缓冲区溢出之环境变量
- 27. Remove Element
- mysql 把查询结果多行用逗号分隔组成一列
- 面试OR笔试8——字符最小分割
- python 继承重写父类方法
- R语言基础知识
- 利用Mysql数据库存储账户信息,C#编写登录界面
- 读书的五个境界