系統簡介
Zephyr項目是一個Linux基金會託管的協作項目 ,這是一個開源合作項目,聯合了業內領先企業,為所有資源受限設備構建了針對資源受限設備進行最佳化的最佳小型可擴展實時作業系統(RTOS)。
Zephyr核心源自Wind River VxWorks的商用VxWorks Microkernel Profile。 Microkernel Profile已經從稱為Virtuoso的DSP RTOS技術發展了20多年。RTOS已被用於多種商業套用,包括衛星,軍事指揮和控制通信,雷達,電信和圖像處理。該技術成功的最新例子就是裝載了WindRiver公司VxWorks實時作業系統的Rosetta comet probe(羅塞塔號彗星探測器)於2014年11月12日在67P/Churyumov-Gerasimenko(67P/楚留莫夫-格拉希門克彗星)成功著陸。
系統目標
Zephyr RTOS的目標是成為針對連線的資源受限設備的最佳開源RTOS,並且考慮到安全性。
系統支持者
支持者
Zephyr 項目的初創成員有:英特爾公司(包括收購的Altera Corporation 和 Wind River)、恩智浦半導體公司(包括最近併購的 Freescale)和Synopsys公司。
2016年,Linaro加入Zephyr項目,與Intel,NXPSemiconductors和Synopsys初創成員都為白金會員。
2017年2月,Runtime.io和Nordic半導體公司加入Zephyr項目,成為其白銀會員。oticon也為白銀會員。
支持者對於項目的發言
“英特爾相信,Zephyr 項目將會在互聯、嵌入式設備市場產生重大影響。通過提供可擴展、可定製、安全且開源的作業系統,Zephyr 項目將滿足互聯設備開發不斷演變的需求。我們計畫與 Zephyr 社區合作開發安全高效的作業系統以推動創新。”
——Mark Skarpness,英特爾開源技術中心嵌入式作業系統工程副總裁兼軟體和服務集團總監
“我們堅信 Zephyr 將成為全球領先的易用物聯網平台之一,它專門針對互聯世界的安全性進行了設計。我們致力於為開發人員提供最好的工具和支持來開發創新解決方案。”
——Geoff Lees,恩智浦高級副總裁兼微控制器總經理
“Zephyr 項目能夠滿足行業對開源 RTOS 日益增長的需求,這種 RTOS 符合當今資源受限的安全物聯網設備的要求。我們很高興能夠參與到這個協作項目中,並為該項目盡一份力,包括為基於 Synopsys ARC 的物聯網 IP 項目提供支持。”
——John Koeter,新思科技 IP 和原型設計副總裁
系統特色
單個地址空間。將特定於應用程式的代碼與定製的核心組合在一起,以創建一個在系統硬體上載入並執行的單片圖像。應用程式代碼和核心代碼都在單個共享地址空間中執行。
高度可配置。允許應用程式只包含所需的功能,並指定它們的數量和大小。
編譯時資源定義。允許在編譯時定義系統資源,從而減少代碼大小並提高性能。
最小的錯誤檢查。提供最少的運行時錯誤檢查,以減少代碼大小並提高性能。提供了一個可選的錯誤檢查基礎結構來幫助在應用程式開發過程中進行調試。
廣泛的服務套件:Zephyr™作業系統為軟體開發提供了許多熟悉的服務,其中包含:
1.單個地址空間
2.高度可配置
3.編譯時資源定義
4.最小的錯誤檢查
5.廣泛的服務套件:
•多執行緒服務 – 可以用於以優先權為基礎非搶占式的纖程,以及以優先權為基礎搶占式,可選輪詢時間分片的任務;
•中斷服務 – 可以在編譯中和程式運行時處理中斷程式註冊;
•執行緒間的同步服務 – 提供二進制信號量(Semaphore)、計數信號量、互斥信號量;
•用於基本訊息佇列,增強訊息佇列和位元組流的執行緒間數據傳遞服務;
•執行緒間的數據傳遞服務 - 提供基本訊息佇列、增強的訊息佇列和位元組流;
•電源管理服務 – 不需計數的閒置狀態和先進的閒置基礎架構。
硬體體系架構支持
•ARM
•x86
•ARC
•NIOS II
•Xtensa
•Native POSIX
•RISC V
社區將不斷添加新的架構支持。
功能子系統支持
1. 藍牙子系統
•Bluetooth5.0 compliant (ESR10)
•Bluetooth Low Energy Controller support (LE Link Layer)
•Generic Access Profile (GAP) with all possible LE roles
•GATT (Generic Attribute Profile)
•Pairing support, including the Secure Connections feature from Bluetooth 4.2
•IPSP/6LoWPAN for IPv6 connectivity over Bluetooth LE
•Basic Bluetooth BR/EDR (Classic) support
•Clean HCI driver abstraction
•Raw HCI interface to run Zephyr as a Controller instead of a full Host stack
•Verified with multiple popular controllers
•Highly configurable
2. 標準C庫
3. 設備固件升級
4. 記錄子系統
•System Logging(系統記錄)
•Kernel Event Logging(核心時間記錄)
5. 網路子系統
•IPv6
•IPv4
•Dual stack support(網路堆疊允許開發人員將系統配置為同時使用IPv6和IPv4)
•UDP
•TCP
•BSD Sockets API
•HTTP
•MQTT
•CoAP
•LWM2M
•RPL
•DNS
•Network Management API
•Multiple Network Technologies
•Minimal Copy Network Buffer Management
•IEEE 802.15.4
•Virtual LAN support
•Network traffic classification
6. 電池管理子系統
7. 感測器子系統
8. Shell子系統
9. 測試子系統
10. USB設備堆疊
11. 非易失性存儲子系統
社區將不斷添加更多網路及通信支持。
核心版本
V1.6.0核心版本
2017年1月推出最新的V1.6.0核心版本
Zephyr v1.6.0核心版本採用統一的核心代替了原來分離的超微核心和微核心,並且簡化了Zephyr整體架構和編程接口。其所支持的架構增加了ARM Cortex-M0/M0+系列,並且擴展了對Cortex-M板的支持。另外,新版本對文檔、基礎設施構建和測試做了很多改進。
主要的升級內容包括:
•引入統一核心,超微核心和微核心被廢除;
•依舊支持原有的API,但是已經棄用;
•將原有的測試和例程轉移到“tests/legacy”和“samples/legacy”中;
•添加統一核心文檔,刪除原有的超微核心/微核心文檔;
•增加支持ARM Cortex-M開發板;
•增加支持USB大容量存儲和訪問檔案系統;
•增加對本地藍牙控制器的支持,支持nRF51和nRF52。
V1.7.0核心版本
2017年3月推出最新的V1.7.0核心版本
Zephyr V1.7.0核心版本繼續對統一的核心進行細化,簡化整個的Zephyr架構和編程接口。新版本將繼續支持V1.5.0或更早版本發布的超微核心和微核心遺留API,也將是最後一個支持該功能的版本。
主要升級內容:
•引入了一個新的原生IP堆疊,用以替換原有的uIP堆疊,新IP協定棧的實現維持原有的功能,添加額外的功能,並便於未來改進;
•增加了對RISC V和Xtensa架構的支持,一共可以支持6種架構:X86架構、ARC架構、ARM架構、NIOS II 架構、RISC V架構和Xtensa架構;
•引進Device Tree機制配置各個平台特定的設備信息;
•基於ARM的平台最先使用Device Tree,記錄的信息包括flash/sram的基礎地址,UART設備;
•使用Device Tree的平台包括NXP Kinetis平台,ARM Beetle,TI CC3200 LaunchXL, 以及STML32L476平台。
V1.8.0核心版本
2017 年 6 月推出最新的 V1.8.0 核心版本
專為資源受限設備開發的Zephyr物聯網作業系統宣布推出最新的1.8版本,對比上一版本,v1.8的主要更新包括以下幾點:
•Tickless 核心
•BT 5.0功能
•生態系統:支持通過第三方工具Tracing和Debugging
•改進的Build和Debug
•第三方編譯器支持
•Xtensa GCC支持
•改進的Build on Mac / Windows
•MMU / MPU:初步支持(WIP)
•擴展設備支持
V1.9.0核心版本
2017年9月Zephyr推出最新的V1.9.0核心版本
Zephyr V1.9.0核心版本專門為物聯網套用做了最佳化,是一款小型化、可擴展、支持多架構、高安全性的RTOS。新版本所支持的開發板數量持續穩定增長,同時連線性和安全性也做了新的完善。
主要升級內容:
•支持藍牙5.0(除了Advertising Extensions全部支持)
•藍牙認證合格的藍牙BLE控制器
•低功耗藍牙BLE Mesh
•支持LwM2M
•Pthreads兼容API
•BSD插座兼容API, 允許使用眾所周知的跨平台API編寫/移植簡單的網路應用程式
•設備樹支持擴展到更多架構
•改進測試套件,增加覆蓋面
•支持堆疊前哨Stack Sentinel
•增加了對安裝了SecureShield MPU的ARC EM Starter 套件的支持(具有MPU的ARC EM7D)
•支持更多開發板:Atmel 的SAM4S Xplained, Olimex STM32-E407 和 STM32-P405, STM32F412 Nucleo, STM32F429I-DISC1, TI 的SensorTag, VBLUno51 和 VBLUno52 開發板
•MMU / MPU(續):在原有的基礎上進行執行緒隔離初始工作,開發者可在低許可權水平運行應用程式,以及只訪問自身的數據或明確共享的數據,敏感的應用程式數據可以受到保護。同時,系統的穩健性增強,編程錯誤難以被惡意利用
V1.10.0核心版本
2017年12月Zephyr推出最新的1.10.0核心版本
Zephyr V1.10.0核心版本的構建工具從原來的Kbuild遷移到跨平台的CMake,使應用程式開發人員讓Zephyr更容易用於需要不同開發環境的不同平台的開發。
主要升級內容:
•針對用戶空間做了更的記憶體保護
•系統構建從原來的Kbuild切換到跨平台的CMake
•支持Newtron Flash檔案系統(NFFS)
•與MCUBOOT引導載入程式集成
•增加測試程式的覆蓋範圍,並將大部分測試示例遷移到ztest目錄
•增加更多的SoC、開發板、和感測器與驅動的程式支持
•改進了nrf52系列SOC的電源管理
•添加了LWM2M多分片網路數據包支持
•新的CoAP庫實現,支持更長的網路數據包
•添加了mDNS(組播DNS)支持
•改進IEEE 802.15.4、TCP,RPL,ARP,DNS,LWM2M等穩定性
•改進藍牙、藍牙Mesh穩定性
•支持BLE控制器中的PA / LNA放大器
V1.11.0核心版本
2018年3月Zephyr推出最新的V1.11.0核心版本
增加 對原生 的Microsoft Windows開發環境的支持
很多嵌入式開發者依賴並信任Microsoft Windows,將其作為自身的作業系統選擇。Zephyr在過去的幾個版本中開始建立對Windows的支持,該版本是第一個可以完全在微軟平台上構建的版本。
通過CMake構建系統和Python 腳本 語言
為確保最佳性能以及與本地開發工具無縫互動,該版本通過CMake構建系統和Python腳本語言的強大力量,以交付一個可擴展的、面向未來的、完全跨平台的構建系統。
引入 了一 種新 的連線技術— Thread 協定
該版本將流行的OpenThread執行集成到Zephyr中,以便用戶使用熟悉的Zephyr網路API無縫地與Thread網路互動,並可重複使用現有的802.15.4驅動程式。
使用 藍牙低功耗設備進行 空中 固件升級(OTA DFU )
該版本將一個新框架與一個熟悉的MCUboot載入程式集成來支持MCUmgr,以便Zephyr圖像通過BLE連線傳送和編程,並添加一個管理層,可以訪問檔案系統並遠程檢索核心統計信息。
支持 架構更新
從該版本開始,對稱多處理可用於Tensilica Xtensa構架,允許程式核心同時在多個CPU核心上運行。同時可以在Arm架構和ARC架構上支持執行緒水平記憶體保護,以前只能用於x86架構。
V1.12.0核心版本
2018年6月Zephyr推出最新的V1.12.0核心版本。
主要升級內容:
•通過集成openmp的不對稱多處理(AMP)
•包括Mesh在內的Bluetooth Low Energy的持久存儲支持
•802.1Q - 乙太網上的虛擬區域網路(VLAN)流量
•支持多個並發檔案系統設備,partitions和FS types
•乙太網網路管理界面
•基於每個連線的網路流量優先權
•支持乙太網統計計數器
•在本地POSIX連線埠上支持TAP網路設備
•命令行Zephyr工具“west”
•SPI從屬支持
•運行時非易失性配置數據存儲系統(設定)
V1.13.0核心版本
2018年9月ZephyrV1.13.0核心版本
該版本主要增強的功能包括:
·可擴展和可插拔的跟蹤支持;
·分區套用記憶體組織;
·Logging系統大修;
·引入BSD socket API的系統調用;
·支持IEEE 802.1AS-2011通用的精確時間協定generalized Precision Time Protocol(gPTP);
·支持鏈路層發現協定(LLDP)TX;
·使用BSD socket API支持TLS和DTLS;
·支持鏈路層組播名稱解析Link Layer Multicast Name Resolution(LLMNR);
·引入重新設計的ADC API和已經更新的Nordic、NXP、Atmel和Synopsys DesignWare驅動程式;
·支持OS驅動的電源管理框架;
·在Armv8-M中對Arm TrustZone提供基本的支持;