Zephyr Kernel v1.7.0 - Mar 11, 2017 发布,实时操作系统

Zephyr 简介

      Zephyr 是 Linux 基金会于 2016 年 2 月发布的物联网操作系统,主要面向资源受限的物联网设备。类似这样的 RTOS如 mbed OS, FreeRTOS, Contiki,  µC/OS等。来自 Linux 基金会的实时操作系统 Zephyr 最新发布了 v1.7.0 内核。

           We are pleased to announce the release of Zephyr kernel version 1.7.0. This release continues refinement of the unified kernel introduced with the 1.6.0 kernel release, simplifying the overall Zephyr architecture and programming interfaces. This is the last release that will support the deprecated legacy nano- and micro-kernel APIs found in the 1.5.0 release and earlier.

This release introduces a new native IP stack, replacing the legacy uIP stack, maintaining the legacy functionality, adding additional capabilities, and allowing future improvements.

We have introduced support for the RISC V and Xtensa architectures and now support 6 architectures in total.

Device tree support for ARM based boards added. The initial device tree support includes flash/sram base address and UART devices. Board support includes NXP Kinetis based SoCs, ARM Beetle, TI CC3200 LaunchXL, and STML32L476 based SoCs. Plan is to add support for other architectures and expand device support in upcoming Zephyr releases.





轻量级

几乎每一个 RTOS 都会说自己是“轻量级”的,要不怎么能够跑在资源受限的微控制器(MCU) 上呢?Zephyr 可在 RAM 大小为 8KB 的 MCU 上流畅运行,经过裁剪甚至可在 RAM 为最小的 2KB 时运行。

支持多种硬件架构

关于支持多种硬件架构,Zephyr 可能可以稍微拉开一点差距,毕竟能够同时支持 ARM Cortex-M, Intel x86, ARC(DSP 内核), NIOS II(FPGA 软核) 以及 RISC V 这些架构的 RTOS 并不多。这里顺便看下 Zephyr 支持这些架构下的开发板,可见 ARM 已经占据了半壁江山:

$ tree -L 2
.
├── Kconfig
├── Makefile
├── arc
│   ├── arduino_101_sss
│   ├── em_starterkit
│   ├── panther_ss
│   └── quark_se_c1000_ss_devboard
├── arm
│   ├── 96b_carbon
│   ├── 96b_nitrogen
│   ├── arduino_101_ble
│   ├── arduino_due
│   ├── bbc_microbit
│   ├── cc3200_launchxl
│   ├── curie_ble
│   ├── frdm_k64f
│   ├── frdm_kw41z
│   ├── hexiwear_k64
│   ├── mps2_an385
│   ├── nrf51_blenano
│   ├── nrf51_pca10028
│   ├── nrf52832_mdk
│   ├── nrf52840_pca10056
│   ├── nrf52_blenano2
│   ├── nrf52_pca10040
│   ├── nucleo_f103rb
│   ├── nucleo_f334r8
│   ├── nucleo_f401re
│   ├── nucleo_f411re
│   ├── nucleo_l476rg
│   ├── olimexino_stm32
│   ├── qemu_cortex_m3
│   ├── quark_se_c1000_ble
│   ├── sam_e70_xplained
│   ├── stm3210c_eval
│   ├── stm32373c_eval
│   ├── stm32_mini_a15
│   └── v2m_beetle
├── boards.rst
├── nios2
│   ├── altera_max10
│   └── qemu_nios2
├── riscv32
│   ├── qemu_riscv32
│   └── zedboard_pulpino
├── x86
│   ├── arduino_101
│   ├── galileo
│   ├── minnowboard
│   ├── panther
│   ├── qemu_x86
│   ├── quark_d2000_crb
│   ├── quark_se_c1000_devboard
│   └── tinytile
└── xtensa
    └── xt-sim

可裁剪、配置灵活

Zephyr 为了灵活配置,在内核编译配置上借鉴了 Linux 的 Kconfig 机制,使用该机制能够很方便地选择编译哪些功能。在终端,通过运行以下命令,可利用界面操作的方式对内核选项进行配置:

$ make [BOARD=<type>] menuconfig

支持多种物联网协议

物联网没有统一的通信协议,现状是多种协议并存,主流的协议就有:ZigBee, Thread, 6LoWPAN, BLE, Wi-Fi, NFC, 3GPP 等等。作为一个很有野心的物联网操作系统,如果不能很好地支持这些协议,就有点说不过去了。在多协议方面,mbed OS 算是做了很好的表率,在之前的一篇文章「是的,mbed OS 5 可以用了」已有介绍,这里就不多说了。Zephyr 在这方面也不赖,而且在将要发布的 v1.7.0 应该会增加更多关于协议栈的内容。


支持 JavaScript

你没看错,就是你认为会跑得很慢的 JavaScript。个人对这种在 MCU 上跑 JavaScript 的做法还是有点偏爱的,也写了两篇文章:

Zephyr 在这方面的动作也不少,这是在一个演讲里讲到的东西,未来他们还要围绕 JavaScript 做挺多事情的,搬个小板凳继续围观围观:



了解更多内容,可访问 Zephyr 官方网站: https://www.zephyrproject.org/downloads

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值