
本帖最后由 watershade 于 2017-3-22 22:47 编辑 ( v! r, `) x% G* p4 P 最近逛网页,忽然发现这个关键词:zephyr 有些印象,可是压根不知道是什么。这就百度一下,这一下不得了。发现有一款RTOS浮出水面了。 我们都知道,VxWorks,freeRTOS及其衍生品吗,ucos,RTX,QNX等等。可是这玩意是干嘛呐?4 C: f0 p2 _. t6 }4 R, o' p3 u4 n6 B7 T 这是官方网址:! M* | P( z0 ` http://www.zephyrproject.org/2 y4 F4 [/ w1 T+ T 你何不瞧瞧?为了激起你的兴趣,上一张图: U1 ]% ?% H8 V6 U2 D5 m7 ]4 g( A ] ![]() . q' X0 i! z- ^6 c5 Q6 u 因为是Intel最初主导这个项目,但是现在有Linux基金会托管了。所以板子支持x86,Quark,Altera,Arduino 101并不奇怪。( E* h2 A& m- t% K 好在它竟然多款ARM板子,甚至Arduino Due等。 . e S1 M. `0 i 对于我们ST来说,它支持几款流行的Nucleo板子。可惜没有M3内核的。当然也支持Freescale的K64这款比较流行的板子。 如果它只是为世界多了一款RTOS,那没什么意思。他总有些特点或者买点吧? 第一是small-footprint。这个单词最初形容芯片,现在竟然形容系统。哎 第二它自称比别的small-footprint牛叉一些: 1、single address-space 就是说内核空间和映容空间共享地址空间。这和linux完全不同。将应用的到吗和定制的内核生成一个映像(image)$ s8 I: \0 q7 Z 2、Highly configurable 简而言之,只取我所需 3、Compile-time resource definition 用于系统资源在编译器定义。这减少了代码尺寸,并提高性能 4、Minimal Error Checking 提供最小的运行时错误检查以减小代码尺寸提高性能。在应用开发期间通过可配置的错误检查机制协助调试。(就是少将错误消灭在编译阶段,运行时候错误就少了。)# b2 K% Z* i, n2 u+ ` 5、Extensive suite of services 提供多项常用的服务。比如:! t: p& m' c* E ~ 基于优先级的多线程服务。支持抢占和非抢占优先级。也支持round robin这种分时机制。(kao,这那个RTOS没有) ~ 为中断处理提供编译时注册的中断处理服务程序 (这个有些拗口。就是说在编译时选择中断处理函数,这个有些不一样)1 F/ k4 l: n7 I) ]/ {( h Z! R ~ 动态分控内存空间。 ~ 通过二值信号量、计数信号量和互斥信号量来实现线程内同步服务 ~ 通过基本的消息队列,增强的消息队列和字节流的方式实现线程间数据传输 (这两个不是每个RTOS都有吗)7 S/ I& U5 G4 F, ~ ~ 功能强大的锅里服务,比如tickless idle和高级的idling机制(这个我记得许多RTOS都有) (PS:除了编译时干了些事情外,也都是常有的RTOS功能) 对了,支持在三大操作系统上进行开发。目前版本已经到了1.7.99(这小版本号也看出来做了多少修补)7 o6 ?- _ M( }" H/ I4 l 不过在windows上略为难受。要安装很多依赖项。要装个shell。建议在Linux开发/ a+ y; l7 n3 k+ O3 m8 f# t 对了ST,Zephyr支持ST-Link/v2-1调试接口。但是看编译过程实际使用的是openocd这种linux上的方式。 不过看着开发方式和mbed os等嵌入式操作系统有些类似。十分繁琐呀。 & Y5 ~& c% F: A/ v% Y0 S 6 }3 s6 V& B" s" { |