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
- Zephyr Kernel v1.7.0
- Zephyr Kernel 设备驱动和设备模型(一)
- Zephyr Kernel 设备驱动和设备模型(二)
- Zephyr 3
- Zephyr 操作系统
- Sysersoft.Syser.Kernel.Debugger.Enterprise.v1.97.1900.1038-ArCADE
- 2009.08.22 Syser Kernel Debugger v1.99.1900.1165 Release
- nfs-kernel-server v1.2.0的小问题
- nfs-kernel-server v1.2.0的小问题
- Zephyr-Llinux基金会发布Zephyr项目
- Zephyr 教程:Zephyr 工程的介绍
- Zephyr 教程:Zephyr 内核原语
- Zephyr-项目介绍
- Zephyr-开发向导
- Zephyr微内核初探
- zephyr-开发应用
- zephyr-内核初级手册
- zephyr 环境设置
- Golang优雅退出http server
- springMVC 返回Json实体类属性自定义格式转换
- 虚拟机ubuntu16.04 安装caffe
- 图论算法-建图和最短路
- 入力規則とVisualforce DmlException
- Zephyr Kernel v1.7.0
- 【TX1学习与开发系列】交换空间与磁盘容量增加(二)
- SHA1算法实现及详解
- js基本知识比较系列二:DOM操作
- 离殇
- 题目1454:Piggy-Bank
- EXCEL-VBA:弹出对话框,打开文件(指定扩展名)
- LeetCode 564: Find the Closest Palindrome(python)
- UIButton循环创建