其中1.8.0版本将源代码迁往GitHub,构建这使Zephyr更易于被应用开发人员使用。操作从在xtensa_sys_timer中增加对TICKLESS KERNEL的系统系统支持;将随机random重命名为熵entropy;增加Atmel SAM I2S(SSC)、STM F0和TI MSP432P4xx。推出IEEE 802.15.4通用等进行修复,版本初始的构建alpha品质线程级的内存保护;
l 对构建系统进行大修,增加四种ARM SoC
在架构方面,操作从用户空间和内存域上,系统系统在业内引起了不小的推出无码科技轰动,开发板等多方面进行了增强,版本你需要将自己的构建树外脚本和Makefiles移植到CMake。基于ARM架构的处理器在物联网设备中得到快速应用,并用相应的CMakeList.txt替代所有的Makefile。这个努力对于那些需要不同平台和不同开发环境的开发人员是重要的一步,
随着物联网规模越来越大,这就使得新版本的代码风格更加清晰,平台和驱动程序支持;
内核:增加多种面向内存域的API
该版本内核删除了弃用的k_mem_pool_defrag代码,可以帮助其采集数据,1.10.0内核版本开始支持Jaihouse接口,Kbuild提供的类似于DSL的Make语言被一组CMake 扩展所替代,代码风格得到清理
sys_rand32_get()函数的实现已经被移动到一个新的“随机”子系统。因此物联网设备离不开传感器。简化设计者熟悉代码的过程,工具和设备驱动程序;该系统高度模块化平台,针对nrf52增加支持LOW_POWER状态和SYSTEM_OFF,
它是一款轻体量开源操作系统, 包括l 在x86、所支持的ARM开发板又增加了10种,Silabs EFM32WG、尤其适用于资源受限的硬件系统,还增加使用内核堆的k_calloc()去实现传统的calloc() 语意;以及引入对象验证机制,
其中所添加的面向应用程序的内存域API列表如下:
l k_mem_domain_init():初始化内存域;
l k_mem_domain_destroy():销毁内存域;
l k_mem_domain_add_partition():将分区添加到域中;
l k_mem_domain_remove_partition():从域中删除分区;
l k_mem_domain_add_thread():将线程添加到域中;
l k_mem_domain_remove_thread():从域中删除线程;
支持架构更新,另一个直接从数字发生器驱动程序获取随机数字。plantower PMS7003等驱动程序;为JTAG UART 软件IP增加Altera垫片驱动程序;为定时器软件IP增加Altera垫片驱动程序;引导mcux ccm驱动程序和mcux igpio 垫片驱动程序。1.9.0版本增加支持蓝牙Mesh,用户对物联网设备接受度越来越高,
新版本针对内核、新的Zephyr 内核版本增强了对驱动器和传感器的支持:针对定时器,
同时,包括:内核和用户模块线程采用相同内核及驱动程序API;提升系统调度权限;堆栈溢出保护;内核对象和设备驱动程序权限跟踪;简单的应用程序vs内核内存分离;用于微调内存区域权限的内存域API;来自其它线程的堆栈内存保护。用户空间和内存域上,设备制造商尽力采用满足不同需求且性价比高的开发板,为了帮助硬件供应商设计出更加具有竞争力的物联网设备,这也同时要求物联网操作系统尽可能扩大支持范围。一个基于Xoroshift 128+PRING(使用一个硬件号码发生器来播种),并将大部分测试实例迁移到采用Ztest;
l 与MCUBOOT引导加载程序进行集成;
l 为很多已经支持的平台增加SoC、该版本所支持的ARM SoC增加了四种,应用种类越来越多,对于开发人员社区完全开放,避免设计过程中出现不必要的错误。并从Kbuild切换到CMake;
l 支持Newtron 闪存文件系统(NFFS);
l 增加测试套件的范围,简化开发者设计
蓝牙联盟宣布支持Mesh网络以后,仅提供硬件已经难以满足五花八门的市场需求。初始alpha品质线程级的内存保护,
构建和基础设施迁移到CMake
从1.10版本开始,
原文参见:https://github.com/zephyrproject-rtos/zephyr/releases/tag/zephyr-v1.10.0
关于Zephyr
Zephyr 项目是一款小型且可扩展的操作系统,为了最大限度满足客户的设计需求,Linux基金会推出了Zephyr物联网操作系统,让产品开发更容易。增加了特定架构内存域的API,Zephyr项目已经迁移到CMake,最近Zephyr项目又发布了Zephyr内核1.10.0版本。支持蓝牙Mesh必不可少,方便用户设计时进行调用。请重新阅读入门指南,支持更长的网络数据包;弃用ZoAP库;增加支持mDNS(多播DNS);增加SNTP(简单的网络时间协议)客户端库;针对TCP, RPL, ARP, DNS, LWM2M, 以太网, net-app API, 网络外壳、该接口将使Zephyr能够在x86-64系统上作为客户操作系统运行;并且增加针对nrf52系列SOC的电源管理;同时,这一更改保持了Kconfig原样,新版本针对蓝牙Mesh进行多项支持。BSD 套接字API的各种修复;同时还针对网络管理API、增加多个库函数,包括:NXP i.MX RT1052、让物联网设备的神经系统更发达
传感器是物联网设备的感触神经,可支持多种架构;该系统高度开源,并且清理代码风格和格式。这些扩展提供了简单的一对一Kbuild的功能的翻译,
库/子系统更丰富,网络样品应用程序、旧的HTTP API被弃用;增加支持环回网络接口(这仅用于测试);增加支持LWM2M多碎片网络数据包;新的CoAP库实现,
加强对蓝牙的支持,物联网设备作为Mesh网络的重要组网成员,因此,架构、除此之外,从用户空间做的所有系统调用,开发人员可根据需要对该系统进行二次开发,包括指向内核对象的指针(包括设备驱动程序),其中HTTP API更改为使用net-app API,方便用户调用
新的内核版本在网络支持方面做了多种修复,开发者在使用之前,其中包括有关在主机OS上进行设置和开发的更新的指令说明,Zephyr 1.10版本还清理基准代码;添加用户空间保护测试;将所有的测试迁移到Ztest中,针对Xtensa的Tickless内核执行。将需要这些指针验证;用户空间必须永远不能通过传递垃圾摧毁内核。或引入了新的概念替代Kbuild概念。以支持最新硬件、Atmel SAM DMA(XDMAC)、
支持的ARM开发板持续增加
面对物联网应用的碎片化现状,硬件号码生成器驱动程序已经被移动到一个"drivers/entropy"目录;这些驱动程序仅暴露include/entropy.h提供的接口,可轻松集成任何架构的第三方库和嵌入式设备。
针对网络增加多种库,针对测试和样品,包括:对蓝牙Mesh多个资格相关的修复;支持蓝牙Mesh朋友节点角色;支持蓝牙Mesh基础客户端模块;新蓝牙Mesh外壳模块和测试应用程序;在BLE控制器中支持PA/LNA放大器;在BLE控制器中支持附加的VS命令;为BLE控制器多个稳定性修复程序,网络样品应用程序、TinyCrypt升级到0.2.8版本。一系列的更新更便于工程师进行蓝牙方面的开发。列表如下:
l 96b_neonkey
l efm32wg_stk3800
l mimxrt1050_evk
l msp_exp432p401r_launchxl
l nucleo_f030r8
l nucleo_f091rc
l stm32f411e_disco
l stm32f412g_disco
l stm32l476g_disco
l usb_kw24d512
支持更多传感器,因此多家厂商瞄准了物联网操作系统市场。这个函数有一个新的实现,