当前位置:首页 > 嵌入式 > 嵌入式软件

关键词:嵌入式 实时 操作系统 微内核 任务 中断 调度 目标系统

一 VxWorks实时操作系统背景

用户在开发具有日益复杂的32位嵌入式处理器的产品时,需要一个用来连接产品应用程序和底层硬件的操作系统。用户所寻求的操作系统应该具有的最重要的特点包括:

可靠性高的实时性能

可下载到最终产品的板上内存的丰富和灵活的功能模块集与全面的主机开发环境的可协同工作。

VxWorks操作系统是美国WindRiver公司于1987年设计开发的一种嵌入式实时操作系统(),是Tornado II嵌入式开发环境的关键组成部分。

VxWorks是Windriver公司开发专门为实时嵌入式系统设计开发的操作系统软件,为程序员提供了高效的实时任务调度、中断管理,实时的系统资源以及实时的任务间通信。应用程序员可以将尽可能多的精力放在应用程序本身,而不必再去关心系统资源的管理。该系统主要应用在单板机、数据网络(以太网交换机、路由器)和通信方面等多方面。通过对VxWorks的研究,可以使我们对嵌入式操作系统的研究和开发更进一步,尤其对国内的类似研制厂家有借鉴意义。

VxWorks操作系统的主要功能

目前VxWorks操作系统的版本为VxWorks 5.4,其核心功能主要有:

微内核wind

任务间通信机制

网络支持

文件系统和I/O管理

标准实时扩展

C++以及标准支持

这些核心功能可以与WindRiver系统的附件和Tornado合作伙伴的产品结合在一起使用。

二 VxWorks实时操作系统的简介

VxWorks实时操作系统包括微内核wind、网络支持、文件系统和I/O管理、C++和标准支持等核心功能。

1. 微内核设计

处于VxWorks实时操作系统核心的是高性能的微内核wind。这个微内核支持所有的实时特征:快速任务切换、中断支持、抢占式和时间片轮转调度等。微内核设计减少了系统开销,从而保证了对外部事件的快速、确定的反应。

运行环境也提供了有效的任务间通信机制,允许独立的任务在实时系统中与其行动相协调。开发者在开发应用程序时可以使用多种方法:用于简单数据共享的共享内存、用于单CPU的多任务间信息交换的消息队列和管道、套接口、用于网络通信的远程过程调用、用于处理异常事件的信号等。为了控制关键的系统资源,提供了三种信号灯:二进制、计数、有优先级继承特性的互斥信号灯。

2. 可裁剪的运行软件

VxWorks之所以设计为具有可裁剪性,是为了使开发者能够根据自己的应用程序需要,而不是根据操作系统的需要,来分配稀少的内存资源。从需要几个KB字节内存的深层嵌入式设计到需要更多的操作系统的功能的复杂的高端的实时系统,开发者也许需要从100多个不同的选项中进行选择以产生上百种的配置方式。许多独立的模块都是在开发时要使用而在产品中却不再使用。

而且,这些子系统本身也是可裁剪的,这样就允许开发者为最广泛的应用程序进行更为优化的VxWorks运行环境配置。例如,如果应用程序不需要某些功能模块,就可以将它移出 C运行库;如果应用程序不需要某些特定的内核同步对象,这些对象也可以忽略。还有,TCP、UDP、套接口和标准Berkeley服务也可以根据需要将之移出或移入网络协议栈。

这些配置选项可以通过Tornado II的项目工具图形接口轻易地选择。开发者也可以使用Tornado II的自动裁剪特性,自动地分析应用程序代码并合并合适的选项。

三 VxWorks操作系统的基本结构

VxWorks操作系统的基本构成部件主要有以下五个部分:

板级支持包BSP(Board )

微内核wind

网络系统

文件系统

I/O系统

VxWorks 操作系统包括了板级支持包BSP(Board )、进程管理、存储管理、设备管理、文件系统管理、网络协议及系统应用等几个部分。VxWorks只占用了很小的存储空间,并可高度裁减,保证了系统能以较高的效率运行。

1.板级支持包 BSP(Board )

板级支持包对各种板子的硬件功能提供了统一的软件接口,它包括硬件初始化、中断的产生和处理、硬件时钟和计时器管理、局域和总线内存地址映射、内存分配等等。每个板级支持包括一个 ROM 启动(Boot ROM)或其它启动机制。

2.高性能的实时操作系统核心 wind

[1].VxWorks 的核心,被称作 wind,包括多任务调度(采用优先级抢占方式),任务间的同步和进程间通信机制以及中断处理,看门狗和内存管理机制。一个多任务环境允许实时应用程序以一套独立任务的方式构筑,每个任务拥有独立的执行线程和它自己的一套系统资源。进程间通信机制使得这些任务的行为同步、协调。

[2].wind使用中断驱动和优先级的方式。它缩短了上下文转换的时间开销和中断的时延。在 VxWorks 中,任何例程都可以被启动为一个单独的任务,拥有它自己的上下文和堆栈。还有一些其它的任务机制可以使任务挂起、继续、删除、延时或改变优先级。

[3].wind 核提供信号量作为任务间同步和互斥的机制。在 wind 核中有几种类型的信号量,它们分别针对不同的应用需求:二进制信号量、计数信号量、互斥信号量和 信号量。所有的这些信号量是快速和高效的,它们除了被应用在开发设计过程中外,还被广泛地应用在 VxWorks 高层应用系统中。对于进程间通信,wind 核也提供了诸如消息队列、管道、套接字和信号等机制。

3.网络设施

VxWorks的网络结构如图所示,它提供了对其它网络和 TCP/IP 网络系统的"透明"访问,包括与BSD套接字兼容的编程接口,远程过程调用(RPC),(可选项),远程文件访问(包括客户端和服务端的NFS机制以及使用RSH,FTP 或 P的非NFS机制)以及 和 ARP 代理。无论是松耦合的串行线路、标准的以太网连接还是紧耦合的利用共享内存的背板总线,所有的 VxWorks 网络机制都遵循标准的 协议。

4.文件系统

VxWorks 提供的快速文件系统适合于实时系统应用。它包括几种支持使用块设备(如磁盘)的本地文件系统。这些设备都使用一个标准的接口从而使得文件系统能够被灵活地在设备驱动程序上移植。

VxWorks 也支持 磁带设备的本地文件系统。VxWorks I/O 体系结构甚至还支持在一个单独的 VxWorks 系统上同时并存几个不同的文件系统。

VxWorks 支持四种文件系统:

dosFs

rt11Fs

rawFs

tapeFs。

另一方面,普通数据文件,外部设备都统一作为文件处理。它们在用户面前有相同的语法定义,使用相同的保护机制。这样既简化了系统设计又便于用户使用。

5.I/O 系统

VxWorks 提供了一个快速灵活的与 C 兼容的 I/O 系统,包括

标准的缓冲 I/O

标准的异步 I/O

VxWorks 包括以下驱动程序:

网络驱动

管道驱动

RAM盘驱动

驱动

键盘驱动

显示驱动

磁盘驱动

并口驱动

四Tornado II系统开发工具

了解Vxworks操作系统的构成,对我们开发目标系统上的软件和调试有重要意义,同时也能链接其内核的许多功能方便共享。在Tornado集成环境上的开发其基本点是动态链接与加载,即Tornado允许开发者增量地将目标模块加载到目标系统上去,这种动态的链接和加载功能是Tornado系统的核心功能,可以使开发者省去通常的开发步骤:在主机上将应用程序与内核链接起来,然后将整个应用程序下载到目标系统上去。这样,编辑-测试-调试的周期会大为缩短;而且,所有的模块都是可以共享的,主机上的应用程序模块也不需要重新链接,所以,加载目标模块到运行中的VxWorks目标系统中以达到调试和重新配置的目的成为可能。关于如何调试VXWORKS目标系统本文不赘述。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭