首页 理论教育 ARM体系结构与嵌入式C语言编程技术:学习嵌入式操作系统

ARM体系结构与嵌入式C语言编程技术:学习嵌入式操作系统

时间:2023-10-19 理论教育 版权反馈
【摘要】:嵌入式操作系统负责嵌入式系统的全部软、硬件资源的分配,任务调度以及控制、协调并发活动。嵌入式Linux既继承了Internet上无限的开放源代码资源,又具有嵌入式操作系统的特性。

ARM体系结构与嵌入式C语言编程技术:学习嵌入式操作系统

嵌入式操作系统(Embedded Operating System,EOS)是指用于嵌入式系统的操作系统。嵌入式操作系统是一种用途广泛的软件系统,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口通信协议、图形界面、标准化浏览器等。嵌入式操作系统负责嵌入式系统的全部软、硬件资源的分配,任务调度以及控制、协调并发活动。它必须体现其所在系统的特征,能够通过装卸某些模块达到系统所要求的功能。目前在嵌入式领域广泛使用的嵌入式操作系统有:嵌入式实时操作系统uC/OS-Ⅱ、嵌入式Linux、Windows CE、VxWorks等,以及面向物联网设备和应用软件的mbed OS、Android Things、Windows 10 IoT Core、AliOS Things、Lite OS等物联网操作系统。

1.uC/OS-Ⅱ

uC/OS-Ⅱ是著名的源代码公开的实时内核,是专为嵌入式应用设计的,可用于8位、16位和32位单片机或DSP处理器。它在原版本的基础上作了重大改进与升级,并有了近十年的使用实践,有许多成功应用实例。它的主要特点如下:

(1)公开源代码:能够比较容易地把操作系统移植到各个不同的硬件平台上;

(2)可移植:绝大部分源代码是用C语言编写的,便于移植到其他嵌入式微处理器上;

(3)可固化;

(4)可裁剪:可有选择地使用需要的系统服务,以减少所需的存储空间;

(5)占先式:完全是占先式的实时内核,即总是运行就绪条件下优先级最高的任务;

(6)多任务:可管理64个任务,任务的优先级必须是不同的,不支持时间片轮转调度法;

(7)可确定性:函数调用与服务的执行时间具有可确定性,不依赖于任务的多少;

(8)实用性和可靠性:成功应用该实时内核的实例,是其实用性和可靠性的最好证据。

由于uC/OS-Ⅱ仅是一个实时内核,它提供给用户的只是一些API函数接口,还有很多工作需要用户自己完成。

2.嵌入式Linux

嵌入式Linux是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式系统上运行的一种操作系统。嵌入式Linux既继承了Internet上无限的开放源代码资源,又具有嵌入式操作系统的特性。

嵌入式Linux最大的特点是源代码公开并且遵循GPL协议。也正是因为其源代码公开,人们可以任意修改,以满足自己的应用,并且查错也很容易。它具备以下几个特点:

(1)有大量的应用软件可用,这些软件大部分都遵循GPL协议,是开放源代码和免费的,可以稍加修改后应用于用户自己的系统。

(2)有大量免费的、优秀的开发工具,且都遵循GPL协议,是开放源代码的。

(3)有庞大的开发人员群体,其无须专门的人才,只要掌握Unix/Linux和C语言即可。随着Linux的普及,这类人才越来越多,所以软件的开发和维护成本很低。

(4)具有优秀的网络功能,这在Internet时代尤其重要。

(5)稳定,这也是Linux本身的一个很大优点。

(6)内核精悍,运行所需资源少,十分适合嵌入式应用。

(7)支持的硬件数量庞大。嵌入式Linux和普通Linux并无本质区别,嵌入式Linux几乎支持PC上用到的任何硬件。

当然,在嵌入式系统上运行Linux的一个缺点是Linux体系提供实时性能需要添加实时软件模块,而这些模块运行的内核空间正是操作系统实现调度策略、硬件中断异常和执行程序的部分。由于这些实时软件模块是在内核空间运行的,因此代码错误可能破坏操作系统从而影响整个系统的可靠性,这对于实时应用是一个非常严重的弱点。

3.Windows CE

Windows CE(Windows Embedded Compact)是微软公司嵌入式、移动计算平台的基础,它是一个开放的、可升级的32位嵌入式操作系统,是基于平板电脑类的电子设备操作系统。它为建立针对掌上设备、无线设备的动态应用程序和服务提供了一种功能丰富的操作系统平台,能在多种处理器体系结构上运行,并且通常适用于那些对内存占用空间具有一定限制的设备。它是从整体上为有限资源的平台设计的多线程、完整优先权、多任务的操作系统。它的模块化设计允许它对从掌上电脑到专用的工业控制器的用户电子设备进行定制。

从技术角度讲,Windows CE作为嵌入式操作系统有很多缺陷:不开放源代码,使应用开发人员很难实现产品的定制;在效率、功耗方面的表现并不出色,而且和Windows一样占用过多的系统内存,运行程序庞大;版权许可费也是厂商不得不考虑的因素。(www.xing528.com)

4.VxWorks

VxWorks是美国风河系统(WindRiver)公司于1983年设计开发的一种实时多任务操作系统,是Tornado嵌入式开发环境关键组成部分。它具有良好的持续发展能力、高性能的内核以及友好的用户开发环境,在多任务实时操作系统领域逐渐占据一席之地。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域,如卫星通信军事演习、弹道制导、飞机导航等。

VxWorks具有以下特点:

(1)可裁剪微内核结构;

(2)高效的任务管理;

(3)灵活的任务间通信;

(4)微秒级的中断处理;

(5)支持POSIX 1003.1b实时扩展标准;

(6)支持多种物理介质及标准的、完整的TCP/IP网络协议等。

VxWorks的价格比较高,由于操作系统本身以及开发环境都是专有的,通常需花费1万元人民币以上才能建起一个可用的开发环境,并且对每一个应用一般还要另外收取版税。同时,由于它是专用操作系统,需要专门的技术人员掌握开发和维护技术,所以软件的开发和维护成本都非常高。

5.mbed OS

mbed OS是一种专为物联网(IoT)中的“物体”而设计的开源嵌入式操作系统。它包含基于ARM Cortex-M处理器开发产品所必需的全部功能,非常适合涉及智能城市、智能家庭和穿戴式设备等领域的应用程序。简单来说,mbed OS是一个基于ARM Cortex-M系列的单片机开发平台。

mbed OS可提供核心操作系统,稳健的安全基础,基于标准的通信功能以及针对传感器、I/O设备和连接性开发的驱动程序,能够加快从初始创意到部署产品的进程。mbed OS是模块化的可配置软件堆栈,能够对目标开发设备实现操作系统的自定义,以及通过排除不必要的软件组件降低内存要求。

6.Android Things

Android Things是谷歌公司为Google Brillo更改名称后的新版系统,后者是谷歌公司在2015年推出的一款物联网操作系统。尽管Google Brillo的核心是Android系统,但是它的开发和部署明显不同于常规Android开发。Google Brillo把C++作为主要开发环境,而Android Things则面向所有Java开发者,不管开发者有没有移动开发经验。

Android Things整合了物联网设备通信平台Weave,Weave SDK嵌入设备进行本地和远程通信。Weave Server用来处理设备注册、命令传送、状态存储以及与谷歌助手等谷歌服务整合的云服务。这意味着智能设备没必要非得将Android系统作为其操作系统,只要能够使用Weave进行通信即可。这为一大批厂商将Weave集成到物联网产品中敞开了大门。

7.Windows 10 IoT

Windows 10 IoT是面向各种智能设备的Windows 10版本系列,涵盖了小的行业网关以至大的复杂设备(如销售点终端和ATM),种类繁多。结合最新的Microsoft开发工具和Azure IoT服务,合作伙伴可以收集、存储和处理数据,从而打造可行的商业智能和有效的业务结果。

由于Windows 10 IoT是全新产品,它在用户群和经验丰富的开发者方面显然落后于其他物联网操作系统。但是,这款操作系统大有潜力,如果想在内部开发应用程序则更是如此。最终,那些习惯使用Visual Studio和Azure物联网服务,针对Windows从事开发工作的人会被整套的Windows 10 IoT方案吸引。

8.AliOS Things

AliOS Things是面向物联网领域的轻量级物联网嵌入式操作系统。其致力于搭建云端一体化物联网基础设备,具备极致性能、极简开发、云端一体、丰富组件、安全防护等关键能力,并支持终端设备连接到阿里云Link,可广泛应用在智能家居、智慧城市、新出行等领域。

9.Lite OS

Lite OS是华为公司面向物联网领域开发的一个基于实时内核的轻量级操作系统。其属于华为物联网操作系统基础内核源码,现有代码支持任务调度、内存管理、中断机制、队列管理、事件管理、IPC机制、时间管理、软定时器以及双向链表等常用数据结构

Lite OS是目前世界上最轻量级的物联网操作系统,其系统体积轻巧到10KB级,具备零配置、自组网、跨平台的能力。Lite OS具有能耗最低、体积最小、响应最快的特点,已推出全开放开源社区。

Lite OS主要应用于智能家居、穿戴式设备、车联网、智能抄表、工业互联网等领域的智能硬件,数据采集、实时控制等是其典型使用环境。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈