Zephyr™項目是一個採用Apache 2.0協定許可,Linux基金會託管的協作項目。為所有資源受限設備,構建了針對低功耗、小型記憶體微處理器設備而進行最佳化的物聯網嵌入式小型、可擴展的實時作業系統(RTOS),支持多種硬體架構及多種開發板,可以在小至8 kB記憶體的系統上運行。
採用深入的安全開發生命周期:安全驗證,模糊和滲透測試,頻繁的代碼審查,靜態代碼分析,威脅建模和審查,以防止代碼中的後門。
支持Bluetooth, Bluetooth Low Energy, Wi-Fi, 802.15.4,6Lowpan, CoAP, IPv4, IPv6, 和 NFC 等標準,通過社區驅動的發展來改進和增強功能。
基本介紹
系統簡介
系統目標
系統支持者
系統特色
- 單個地址空間。將特定於應用程式的代碼與定製的核心組合在一起,以創建一個在系統硬體上載入並執行的單片圖像。應用程式代碼和核心代碼都在單個共享地址空間中執行。
- 高度可配置。允許應用程式只包含所需的功能,並指定它們的數量和大小。
- 編譯時資源定義。允許在編譯時定義系統資源,從而減少代碼大小並提高性能。
- 最小的錯誤檢查。提供最少的運行時錯誤檢查,以減少代碼大小並提高性能。提供了一個可選的錯誤檢查基礎結構來幫助在應用程式開發過程中進行調試。
- 廣泛的服務套件:Zephyr™作業系統為軟體開發提供了許多熟悉的服務,其中包含:
- 多執行緒服務 – 可以用於以優先權為基礎非搶占式的纖程,以及以優先權為基礎搶占式,可選輪詢時間分片的任務;
- 中斷服務 – 可以在編譯中和程式運行時處理中斷程式註冊;
- 執行緒間的同步服務 – 提供二進制信號量(Semaphore)、計數信號量、互斥信號量;
- 用於基本訊息佇列,增強訊息佇列和位元組流的執行緒間數據傳遞服務;
- 執行緒間的數據傳遞服務 - 提供基本訊息佇列、增強的訊息佇列和位元組流;
- 電源管理服務 – 不需計數的閒置狀態和先進的閒置基礎架構。
硬體體系架構支持
- x86(含x86_64體系)
- ARC
- NIOS II
- Xtensa
- Native POSIX
- RISC V
- Shields
功能子系統支持
- 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
- System Logging(系統記錄)
- Kernel Event Logging(核心時間記錄)
- Dual stack support(網路堆疊允許開發人員將系統配置為同時使用IPv6和IPv4)
- BSD Sockets API
- LWM2M
- Network Management API
- Multiple Network Technologies
- Minimal Copy Network Buffer Management
- IEEE 802.15.4
- Virtual LAN support
- Network traffic classification
核心版本
V1.6.0核心版本
- 引入統一核心,超微核心和微核心被廢除;
- 依舊支持原有的API,但是已經棄用;
- 將原有的測試和例程轉移到“tests/legacy”和“samples/legacy”中;
- 添加統一核心文檔,刪除原有的超微核心/微核心文檔;
- 增加支持ARM Cortex-M開發板;
- 增加支持USB大容量存儲和訪問檔案系統;
- 增加對本地藍牙控制器的支持,支持nRF51和nRF52。
V1.7.0核心版本
- 引入了一個新的原生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核心版本
- Tickless 核心
- BT 5.0功能
- 生態系統:支持通過第三方工具Tracing和Debugging
- 改進的Build和Debug
- 第三方編譯器支持
- Xtensa GCC支持
- 改進的Build on Mac / Windows
- MMU / MPU:初步支持(WIP)
- 擴展設備支持
V1.9.0核心版本
- 支持藍牙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核心版本
- 針對用戶空間做了更的記憶體保護
- 系統構建從原來的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核心版本
- 增加對原生的Microsoft Windows開發環境的支持
- 通過CMake構建系統和Python腳本語言
- 引入了一種新的連線技術—Thread協定
- 使用藍牙低功耗設備進行空中固件升級(OTA DFU)
V1.12.0核心版本
- 通過集成openmp的不對稱多處理(AMP)
- 包括Mesh在內的Bluetooth Low Energy的持久存儲支持
- 802.1Q - 乙太網上的虛擬區域網路(VLAN)流量
- 支持多個並發檔案系統設備,partitions和FS types
- 乙太網網路管理界面
- 基於每個連線的網路流量優先權
- 支持乙太網統計計數器
- 在本地POSIX連線埠上支持TAP網路設備
- 命令行Zephyr工具“west”
- SPI從屬支持
- 運行時非易失性配置數據存儲系統(設定)
V1.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提供基本的支持;
V1.14.0核心版本
- 核心和核心組件套用了MISRA-C代碼指南;
- 通過添加UART,USB和顯示驅動程式來增強本機POSIX連線埠;
- 增加具有上層鏈路層和下層鏈路層的實驗性BLE分離軟體控制器,用於支持多個BLE無線電硬體架構;
- 引入用於管理多個存儲庫的zephyr工具,並增強了對快閃記憶體和調試的支持;
- 在ARMv8m中添加了對應用程式用戶模式,應用程式記憶體分區和硬體堆疊保護的支持;
- 定時子系統經過重新設計和重新實現,極大地簡化了生成的驅動程式。TICKLESS_KERNEL模式是該版本所有體系結構的默認模式;
- 對稱多處理子系統中,增加了一個新的CPU affinity API,可以將執行緒“固定”到特定的核心或核心集;
- 對網路數據包net-pkt API進行大修,並將大多數組件和協定移至使用BSD套接字API;
- 電源管理子系統大量修復,以支持設備空閒電源管理,並將大部分電源管理邏輯從應用程式移回BSP層;
- 引入主要更新並對日誌記錄和shell子系統進行大修,支持多個後端,將日誌記錄集成到shell中,以及延遲日誌處理;