玩转物联网,首先需要使用这些嵌入式操作系统
温馨提示:这篇文章已超过377天没有更新,请注意相关的内容是否还可用!
嵌入式操作系统是指用于嵌入式系统的操作系统。嵌入式操作系统是一种用途广泛的系统软件,通常包括硬件底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。嵌入式系统分为4层:硬件层、驱动层、操作系统和应用层。嵌入式操作系统负责嵌入式系统所有软硬件资源的分配、任务调度、控制和并发活动的协调。它必须体现所在系统的特点,能够通过加载和卸载某些模块来实现系统所需的功能。它是一个用途广泛的系统软件。《感知中国》全面描述和定义了物联网产业的内涵。
嵌入式操作系统(EOS)是指用于嵌入式系统的操作系统。 嵌入式操作系统是一种用途广泛的系统软件,通常包括硬件底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。嵌入式系统分为4层:硬件层、驱动层、操作系统和应用层。 嵌入式操作系统负责嵌入式系统所有软硬件资源的分配、任务调度、控制和并发活动的协调。 它必须体现所在系统的特点,能够通过加载和卸载某些模块来实现系统所需的功能。 它是一个用途广泛的系统软件。
《感知中国》全面描述和定义了物联网产业的内涵。 从字面上理解,“感”就是信息收集(传感器); “知识”信息处理(计算、处理、控制、通信以及通过互联网进行信息传输和控制)。 这些都是嵌入式系统的特点。 如果用一句话来概括“感知中国”的含义,那就是通过嵌入式系统智能终端产品的联网过程,实现感知、知识的目的。
嵌入式操作系统的主要特点
1. 可拆卸。 开放、可扩展的架构。
2、实时性强。 EOS总体实时性较强,可用于各种设备控制。
3.统一接口。 提供了各种设备驱动程序接口。
4、操作方便简单,提供友好的图形GUI和图形界面,追求易学易用。
5、提供强大的网络功能,支持TCP/IP协议等协议,提供TCP/UDP/IP/PPP协议支持和统一的MAC接入层接口,为各种移动计算设备预留接口。
6.稳定性强,相互作用弱。 嵌入式系统一旦开始运行,就不需要太多的用户干预,这就要求负责系统管理的EOS具有很强的稳定性。 嵌入式操作系统的用户界面一般不提供操作命令,它通过系统调用命令为用户程序提供服务。
7. 固化代码。 在嵌入式系统中,嵌入式操作系统和应用软件固化在嵌入式系统计算机的ROM中。 辅助存储器在嵌入式系统中很少使用,因此,嵌入式操作系统的文件管理功能应该能够方便地拆解,并使用各种存储器文件系统。
8、更好的硬件适应性,即便携性好。
嵌入式操作系统的类型
世界上常见的嵌入式操作系统大约有40种,如:Linux、uClinux、WinCE、PalmOS、Symbian、eCos、uCOS-II、VxWorks、pSOS、Nucleus、ThreadX、Rtems、QNX、INTEGRITY、OSE、C Executive等。 它们基本上可以分为两类,一类是面向控制、通信等领域的实时操作系统,如winddriver公司的vxworks、isi的psos、qnx系统软件公司的qnx、ati的nucleus等。 ; 另一类是面向消费类电子产品的非实时操作系统,此类产品包括个人数字助理(PDA)、手机、机顶盒、电子书、网络电话等,系统包括微软的WinCE、3Com的Palm、Symbian 和 Google 的 Android。
1.VxWorks
VxWorks操作系统是美国WindRiver公司于1983年设计开发的嵌入式实时操作系统(RTOS),是Tornado嵌入式开发环境的关键组成部分。 良好的可持续开发能力、高性能的内核和友好的用户开发环境逐渐在嵌入式实时操作系统领域占据一席之地。
VxWorks实时操作系统由400多个相对独立、短小紧凑的目标模块组成。 用户可以根据自己的需求选择合适的模块来定制和配置系统; 它提供基于优先级的任务调度、任务之间的同步和通信、中断处理和定时器。 以及内存管理等功能,内置符合POSIX(便携式操作系统接口)规范的内存管理,以及多处理器控制程序; 并且拥有简洁易懂的用户界面,核心甚至可以缩小到8 KB。
2.WindowsCE
Windows CE与Windows系列具有良好的兼容性,这无疑是Windows CE推广的一大优势。 其中,WinCE3.0是面向小容量、移动、智能、32位、理解设备的模块化实时嵌入式操作系统。 提供功能丰富的操作系统平台,用于为手持设备、无线设备构建动态应用服务,它可以运行在多种处理器架构上,一般适合对内存占用有一定限制的设备。 它是一个多线程、全优先级、多任务操作系统,是为资源有限的平台整体设计的。 其模块化设计使其能够针对从 PDA 到专用工业控制器等消费电子产品进行定制。 操作系统的基本内核至少需要200KB的ROM。 由于嵌入式产品对尺寸和成本的要求更加严格,处理器部分占用的空间应尽可能小。 系统的可用内存和外部存储器的数量也有限,而嵌入式操作系统运行在有限的内存中(通常是ROM或闪存),因此对操作系统的规模和效率提出了更高的要求。 要求。 从技术角度来看,Windows CE作为嵌入式操作系统存在诸多缺陷:没有开源代码,导致应用开发者难以实现产品定制; 在效率和功耗方面的表现并不突出,与Windows相同。 系统内存占用过多,应用程序庞大; 版权授权费用也是厂商必须考虑的因素。
3.嵌入式Linux
这是嵌入式操作系统的新成员。 其最大的特点是源代码开放,遵循GPL协议。 近年来已成为研究热点。 据IDG预测,未来两年嵌入式Linux将占嵌入式操作系统的50%。 %。
Linux是开源代码,不存在黑盒技术,全世界众多Linux爱好者都拥有Linux开发者强大技术支持的优势; 而且Linux内核小而高效,内核更新速度很快。 Linux可以定制。 最小系统内核仅约134KB。 Linux也是一个免费的操作系统,在价格上非常有竞争力。 由于其开放性,所以对技术要求不高,只要懂Unix/Linux、C语言即可。 随着Linux在国内的普及,这样的人才越来越多。 因此,软件开发和维护的成本非常低。 优秀的网络性能在互联网时代显得尤为重要。 稳定性是Linux本身的一大优势。 内核功能强大,运行所需资源少,非常适合嵌入式应用。
支持的硬件数量巨大,嵌入式Linux和普通Linux没有本质区别。 嵌入式Linux几乎支持PC上使用的所有硬件,并且提供了各种硬件的驱动程序的源代码,这使得用户可以编写自己专有的硬件驱动程序,带来了极大的方便。
4.μC/OS-II
μC/OS-II是著名的实时内核,其源代码是开放的。 它专为嵌入式应用而设计,可用于8位、16位和32位微控制器或数字信号处理器(DSP)。 它在原来版本μC/OS的基础上进行了很大的改进和升级,已经使用了近十年,并且有很多成功应用这个实时内核的例子。 其主要特点如下:
1)开源代码,很容易将操作系统移植到不同的硬件平台;
2)可移植性,大部分源代码是用C语言编写的,很容易移植到其他微处理器上,并且可以固化;
3)可剪裁性,选择性地使用所需的系统服务,减少桶所需的存储空间;
4)抢占式,完全抢占式实时内核,即总是在就绪情况下运行最高优先级的任务;
5)多任务,可管理64个任务,任务的优先级必须不同,不支持时间片轮转调度方式;
6)确定性,函数调用和服务的执行时间是确定的,与任务数量无关;
7)实用性和可靠性,实时内核的成功应用是其实用性和可靠性的最好证明;
由于μC/OS-II只是一个实时内核,这意味着它与其他实时系统不同,它提供给用户的只是一些API函数接口,还有很多任务需要用户自己完成。
5.QNX
QNX是一个符合POSIX规范的商用类Unix实时操作系统,其目标市场主要是嵌入式系统。 QNX的应用范围很广,包括控制保时捷跑车的音乐和媒体功能、核电站和美国陆军无人Crusher坦克的控制系统,以及RIM的BlackBelly PlayBook平板电脑。 QNX 是一个分布式、嵌入式、可扩展的实时操作系统。 它遵循 POSⅨ。 1(程序接口)和POSⅨ。 2(Shell和工具),部分遵循POSⅨ。 1b(实时缩放)。
QNX操作系统的核心仅包括CPU任务调度、进程间通信、中断重定向和定时器。 另外,包括驱动程序、文件系统堆栈协议、用户应用程序在内的所有程序都属于在用户阶段执行的。 QNX操作系统有一个非常特殊的Proc阶段,它负责程序进程的建立和内存管理等交叉在系统微内核中的组件。 基本上,QNX的所有组件都可以通过消息传递的功能进行通信,并且拥有定义良好的通信机制也可以保证所有组件拥有完全独立且受保护的存储和执行空间。 因此,有问题的应用程序不会影响其他组件的稳定性,有问题的程序会自动终止并重新启动。
与传统操作系统架构相比,微内核架构使得嵌入式系统能够获得更快的平均回复时间(MTTR)。 当硬件驱动程序出现故障时,QNX可以在几毫秒内恢复驱动程序。 终止、回收资源和重新启动的步骤使嵌入式设备能够实现几乎无停机的性能。
然而,除了微核RTOS架构的优势之外,进程间的消息传输功能会占用内存带宽,影响校学的性能。 因此,在实际应用中,必须采用特殊的优化方法来避免损失。 消息传递功能造成的性能损失。
6. 核加
这种嵌入式操作系统的主要特点是轻、薄、短。 其架构的可扩展性可以将Nucleus RTOS占用的存储空间减少到只有13K左右,并且Nucleus Plus是一个不需要许可费用的操作系统,并且提供源代码。
Nucleus Plus 本身只是 Accerated Technology 完整解决方案的一部分。 这个RTOS的架构本身就属于预占式多任务设计。 超过95%的源代码是用标准ANSI C语言编写的,因此可以非常高效。 移植到各种不同的平台。 在CISC架构处理器中,Nucleus Plus核心部分占用存储空间约20KB,而在RISC处理器上约为40KB,核心数据结构仅占用约1.5KB。 具有多任务、多进程并行、代码开源等特点,广泛应用于国防、工业控制、航空航天、铁路、网络、POS、自动化控制、信息家电等领域。
与QNX一样,Nucleus Plus也可以根据目标产品的需求定制所需的系统功能,以达到减小尺寸的目的。 配有相应的编译器(Borland c/c++、Microsoft c/c++)、动态链接库和各种底层驱动,开发起来非常方便。 飞思卡尔、罗技、NEC、SK Telecom等公司均采用Nucleus Plus嵌入式操作系统作为其开发产品。
7.WinCE
WinCE 是微软嵌入式和移动计算平台的基础。 它是一个开放的、可升级的32位嵌入式操作系统,也是基于掌上电脑的电子设备操作系统。 它是Windows 95的精简版,Win CE的图形用户界面相当不错。 WinCE是一个多线程、完全优先级、多任务的操作系统,专为整体资源有限的平台而设计。 其模块化设计使其能够针对从 PDA 到专用工业控制器等消费电子设备进行定制。 操作系统的基本内核至少需要 200K 的 ROM。
一般来说,WinCE系统包括四层结构:应用程序、WinCE内核映像、板级支持包(BSP)和硬件平台。 基础软件平台主要由WinCE系统内核镜像(OS Image)和板级支持包(BSP)组成。 由于WinCE系统是一个软硬件紧密结合的系统,即使CPU处理器相同,如果开发板上的外围硬件不同,仍然需要修改BSP来完成新的BSP这次。 所以换句话来说,WinCE的移植过程主要是重写BSP的过程。
8.安卓
Android是专门针对移动设备的分层软件集,包括操作系统、中间件和一些重要的应用程序。 Android 作为一个完全开源的操作系统,是由操作系统 Linux、中间件和核心应用程序组成的软件堆栈。 通过Android SDK提供的API以及自己想要使用的开发工具,程序员可以轻松地在Android平台上开发应用程序。 应用。 整个系统由五部分组成:应用程序、应用程序框架、应用程序库、Android运行时库、Linux内核(Linux Kernel)。 Android 操作系统有一些内置应用程序,包括电子邮件客户端、短信程序、日历、地图、浏览器、地址簿和其他程序。 值得一提的是,所有这些程序都是用java编写的。
移植的主要工作是驱动程序和硬件抽象层的移植。 为了更好地理解和调试系统,还需要正确理解上层对硬件抽象层的调用。
9.嵌入式实时操作系统
在工业控制、军事装备、航空航天等领域,对系统的响应时间有严格的要求,这就需要使用实时系统。 当外部事件或数据产生时,能够以足够快的速度被接受和处理,处理结果可以控制生产过程或在指定时间内快速响应处理系统,并在一个时间内控制所有实时任务。协调方式运行嵌入式操作系统。 因此,对嵌入式实时操作系统的理解应该在对嵌入式系统的理解的基础上,加上对响应时间的要求。
10.FreeRTOS
FreeRTOS 是一个具有迷你操作系统内核的小型嵌入式系统。 作为一个轻量级操作系统,其功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能等,基本可以满足较小系统的需求。 FreeRTOS任务可以选择是否共享堆栈,并且任务数量没有限制,多个任务可以分配相同的优先级。 相同优先级任务的循环调度可以设置为可抢占核或非抢占核。
FreeRTOS的移植主要需要重写以下三个文件。 1.端口宏。 h2。 港口。 c3. 港口。 汇编
嵌入式操作系统与通用计算机系统的区别
嵌入式系统与通用计算机系统有着完全不同的技术要求和技术发展方向。 通用计算机系统的技术要求是高速、海量数值计算,其技术发展方向是总线速度的无限提高和存储容量的无限扩展; 而嵌入式计算机系统的技术要求是智能控制,其技术发展方向是与目标系统密切相关的渗透性能、控制能力和控制可靠性不断提高。
嵌入式操作系统与通用计算机系统的主要区别包括以下几点:
1、形式及类型:
通用计算机系统:真正的计算机。 按其体系结构、计算速度和规模可分为大型机、中型计算机、小型计算机和微型计算机; 嵌入式操作系统:“看不见的”计算机,形式多样,应用领域广泛,按应用领域分类。
2. 组成:
通用计算机系统:通用处理器、标准总线及外设,软件和硬件相对独立; 嵌入式操作系统:针对特定应用的微处理器,总线和外设一般都集成在处理器内部,软件和硬件紧密结合。
3、系统资源:
通用计算机系统:充足的系统资源、丰富的编译器、集成开发环境、调试器等; 嵌入式操作系统:系统资源匮乏,没有编译器等相关开发工具。
4、开发方法:
通用计算机系统:开发平台和运行平台均为通用计算机; 嵌入式操作系统:采用交叉编译方式,开发平台一般为通用计算机,运行平台为嵌入式系统。
5、二次开发:
通用计算机系统:应用程序可以重新编程; 嵌入式操作系统:一般不能重新编程进行开发。
六、发展目标:
通用计算机系统:具有编程功能的计算机将普遍进入社会; 嵌入式操作系统:成为专用计算机,实现“普适计算”。
以下为广告时间
即将举办的线下活动,
长按二维码了解近期线下活动并快速报名