Zephyr Kernel v1.7.0

来源:互联网 发布:黑帽seo劫持博客违法吗 编辑:程序博客网 时间:2024/06/03 16:08

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 的做法还是有点偏爱的,也写了两篇文章:

  • JavaScript 很少为人所知的玩法
  • 为玩转 JavaScript 而生的硬件

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



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

0 0
原创粉丝点击