文档库 最新最全的文档下载
当前位置:文档库 › VxWorks介绍及编程

VxWorks介绍及编程

VxWorks介绍及编程
VxWorks介绍及编程

VxWork介绍及编程

一.嵌入式操作系统VxWorks简介

VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。在美国的 F-16、FA-18 战斗机、B-2 隐形轰炸机和爱国者导弹上,甚至连1997年4月在火星表面登陆的火星探测器上也使用到了VxWorks。

WindRiver公司网址

实时操作系统和分时操作系统的区别

从操作系统能否满足实时性要求来区分,可把操作系统分成分时操作系统和实时操作系统。

分时操作系统按照相等的时间片调度进程轮流运行,分时操作系统由调度程序自动计算进程的优先级,而不是由用户控制进程的优先级。这样的系

统无法实时响应外部异步事件。

实时操作系统能够在限定的时间内执行完所规定的功能,并能在限定的时间内对外部的异步事件作出响应。分时系统主要应用于科学计算和

一般实时性要求不高的场合。实时性系统主要应用于过程控制、数据采集、

通信、多媒体信息处理等对时间敏感的场合。

VxWorks的特点

?可靠性

操作系统的用户希望在一个工作稳定,可以信赖的环境中工作,所以操作系统的可靠性是用户首先要考虑的问题。而稳定、可靠一直是VxWorks

的一个突出优点。自从对中国的销售解禁以来,VxWorks以其良好的可靠性

在中国赢得了越来越多的用户。

?实时性

实时性是指能够在限定时间内执行完规定的功能并对外部的异步事件作出响应的能力。实时性的强弱是以完成规定功能和作出响应时间的长短

来衡量的。

VxWorks 的实时性做得非常好,其系统本身的开销很小,进程调度、进程间通信、中断处理等系统公用程序精练而有效,它们造成的延迟很短。

VxWorks 提供的多任务机制中对任务的控制采用了优先级抢占(Preemptive

Priority Scheduling)和轮转调度(Round-Robin Scheduling)机制,也

充分保证了可靠的实时性,使同样的硬件配置能满足更强的实时性要求,为

应用的开发留下更大的余地。

?可裁减性

用户在使用操作系统时,并不是操作系统中的每一个部件都要用到。

例如图形显示、文件系统以及一些设备驱动在某些嵌入系统中往往并不使

用。

VxWorks 由一个体积很小的内核及一些可以根据需要进行定制的系统模块组成。VxWorks 内核最小为 8kB,即便加上其它必要模块,所占用的空间也很小,且不失其实时、多任务的系统特征。由于它的高度灵活性,用户可以很容易地对这一操作系统进行定制或作适当开发,来满足自己的实际应用需要。

对一个实时内核的要求

一个实时操作系统内核需满足许多特定的实时环境所提出的基本要求,这些包括:

多任务:由于真实世界的事件的异步性,能够运行许多并发进程或任务是很重要的。多任务提供了一个较好的对真实世界的匹配,因为它允许对应于许多外部事件的多线程执行。系统内核分配CPU给这些任务来获得并发性。

抢占调度:真实世界的事件具有继承的优先级,在分配CPU的时候要注意到这些优先级。基于优先级的抢占调度,任务都被指定了优先级,在能够执行的任务(没有被挂起或正在等待资源)中,优先级最高的任务被分配CPU资源。换句话说,当一个高优先级的任务变为可执行态,它会立即抢占当前正在运行的较低优先级的任务。

任务间的通讯与同步:在一个实时系统中,可能有许多任务作为一个应用的一部分执行。系统必须提供这些任务间的快速且功能强大的通信机制。内核也要提供为了有效地共享不可抢占的资源或临界区所需的同步机制。

任务与中断之间的通信:尽管真实世界的事件通常作为中断方式到来,但为了提供有效的排队、优先化和减少中断延时,我们通常希望在任务级处理相应的工作。所以需要杂任务级和中断级之间存在通信。

二.基本概念

关于BSP

BSP: Provides VxWorks with primary interface to

hardware environment.

作用:

?在通电后,初始化硬

件.

?支持VxWorks和硬件驱

动通信.

?使

hardware-dependen

t 和

hardware-independ

ent在VxWorks系统

中很好的结合.

嵌入式系统的比较

嵌入式系统的比较 简单介绍ecos, uc/OS,uClinux,RTlinux,Linux 到目前为止接触过QNX、RTLinux、uC/OS-II、Nucleus Plus、VRTX、VxWorks、eCos,总结下来有以下特点: Ecos:多任务抢占机制,可配置(特色),可配置文件系统 uc/OS:代码很少,多任务抢占机制,需自己扩展文件系统 uClinux:非抢占式,没有MMU管理存储器,有文件系统等许多功能 RTlinux:通过在L inux内核与硬件中断之间增加一个精巧的可抢先的实时内核,把标准的Linux内核作为实时内核的一个进程与用户进程一起调度,标准的L inux内核的优先级最低,可以被实时进程抢断。正常的Linux进程仍可以在Linux内核上运行。 Linux:有MMU管理存储器。 1:QNX 的可靠性很好,协议栈、各种外设驱动稳定,只是运行所需资源有些多,需要MMU。如果需要高可靠性应用,QNX可能是最好的选择。 2:RTLinux的实时性与其它RTOS相比有些差。但是,因为好多Linux资源可以利用,是RTLinux的优点。但是运行所需资源比QNX还多,也是需要MMU。可以选用开源的RTLinux 或内容新的商用RTLinux。 3:uC/OS-II比较小巧,移植容易,网上资源很多,核心可以做得很小。但不是免费的,并且驱动需要自己编写,协议栈、图形驱动都要另外加。 4:Nucleus Plus比uC/OS-II庞大,另外提供了文件系统、协议栈、图形界面等许多东西。当然也是分开卖的,不是免费的东西。使用起来比较容易上手。 5:VRTX 是一款比较早的RTOS,现在使用的人已经很少。运行还是比较可靠。配套的文件、协议栈等模块很少。 6:VxWorks是RTOS中的大牛,国内外用的人很多,开发工具功能强大,使用方便,但是价格昂贵。也有基于MMU的高可靠性的产品。所需资源比QNX小,比uC/OS、eCos 多。对于一些私企或者好似小公司来说,可用性值得商榷。 7:eCos是开源的RTOS。针对不同的CPU已经做了许多现成的移植。代码尺寸比Nucleus 的略大。如果不用USB host等,并且不想花费太多的金钱,应该是不错的选择。 μC/OS和uClinux的比较 引言 随着现代计算机技术的飞速发展和互联网技术的广泛应用,从PC时代过渡到了以个人数字助理、手持个人电脑和信息家电为代表的3C(计算机、通信、消费电子)一体的后PC 时代。后PC时代里,嵌入式系统扮演了越来越重要的角色,被广泛应用于信息电器、移动设备、网络设备和工控仿真等领域。 嵌入式系统是以嵌入式计算机为核心,面向用户、面向产品、面向应用,软硬件可裁减的,适用于对功能、可靠性、体积、成本、功耗等综合性能有严格要求的计算机系统。随着

嵌入式实时操作系统VxWorks入门

嵌入式实时操作系统VxWorks入门 VxWorksVxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。在美国的 F-16、FA-18 战斗机、B-2隐形轰炸机和爱国者导弹上,甚至连1997年4月在火星表面登陆的火星探测器上也使用到了VxWorks。VxWorks原先对中国区禁止销售,自解禁以来,在我们的军事、通信、工业控制等领域得到了非常广泛的应用。 VxWorks的实时性体现在能于限定的时间内执行完所规定的功能,并能在限定的时间内对外部的异步事件作出响应。因此,实时性系统主要应用于过程控制、数据采集、通信、多媒体信息处理等对时间敏感的场合。本文将对这个操作系统进行一个入门级的、全面的介绍。为力求展示其全貌,全文共分五章: (1)搭建VxWorks嵌入式开发环境; (2)简要介绍VxWorks的基本组成,内核的基本结构; (3)概述VxWorks板级支持包(BSP)的概念及VxWorks的启动过程; (4)介绍VxWorks设备驱动的架构及编写方法; (5)指明VxWorks应用开发的思路,任务调度及任务同步、中断与任务的同步机制。 以上各章中将贯穿着许多实例,由于本文定位于入门级教程,所以文中的实例都将十分简单。下面我们进入第一章内容的讲解。 嵌入式系统的调试调试方法一般为通过PC(宿主机)上的集成开发环境交叉编译针对特定电路板(目标机)的程序,然后将程序通过目标板的JTAG、串口或网口等途径下载到目标板上运行。因此,为了构造一个嵌入式系统的学习环境,拥有一块包含CPU、存储器及I/O 电路(构造计算机系统)的目标电路板往往是必要的。虽然许多集成开发环境附带模拟软件,但仅限于指令集的模拟,均无法模拟物理的目标机硬件平台,因而在其上只能进行应用程序的象征性模拟开发。但是,并非所有人都能拥有一块物理的电路板。在这种情况下,我们如何构造一个模拟的开发环境,其学习效果就如同拥有完全真实的电路板一样呢?本文试图解答此问题,主体内容包括四个方面: (1) 利用VMware等软件模拟真实的目标机; (2) 构建VMware虚拟PC上VxWorks BSP,建立Bootrom和OS映像; (3) 修改Tornado相关设置,连接宿主机与目标机,建立调试通道; (4) 写一个简单的应用程序并下载到目标系统运行。 图1 嵌入式系统的调试 本章工作的最终目标为: (1)VxWorks在VMware启动成功并顺利运行,的开发模型: 图4 PC作为目标机 很遗憾,这种方法实际上非常麻烦,同时开动两台PC进行调试将使你和你的室友饱受折磨,既然他如此地热切于游戏和上网。因此,我们可以借助VMware来在本机上虚拟出另一PC。 VMware的确是天才的作品!在同一PC上,利用VMware几乎可以安装所有的操作系统,而且操作系统之间的切换不需要重新启动电脑。VM的意义是Virtual Machine,即虚拟出一个逻辑的电脑,它可以提供基于Intel CPU的虚拟PC系统环境,包括CPU、内存、BIOS、硬盘和其他外围硬件设备。 下面我们讲解用VMware来建立一台虚拟PC的步骤: (1)并安装VMware; (2)使用VMware向导建立一个针对VxWorks的虚拟机;

vxWorks学习笔记

vxWorks学习笔记 vxWorks学习笔记 2006-07-20 11:141.VxWorks开发方式:交叉开发,即将开发分为主机(host)和目标机(target)两部分。 类似于dos下C语言程序的开发。 合并开发的优点:简单 缺点:资源消耗量大,CPU支持,非标准体系的支持 host (Tornado) target(vxWork) 小程序模块 vxWorks实际采用开发模式 Tornado提供:编辑,编译,调试,性能分析工具,是vxWorks 的开发工具 vxWorks:面向对象可以剪裁的实际运行操作系统 2.vxWorks启动方式 Rom方式(vxWork_rom) vxWorks直接烧入rom Rom引导方式(bootrom+vxWorks) 其中bootrom烧入rom,vxWorks可以通过从串口,网口,硬盘,flash等下载!这里的bootrom不是开发环境中的bootable,在开发环境里bootable指的是vxWorks,downloadable指application 3.调试

attach 用来在多任务调试时将调试对象绑定到某个任务 任务级调试(attach taskName) 单个任务的调试不会影响到其他任务的运行,主要用来调用户的应用程序。 全局断点:在调另一任务或本任务时,系统运行本任务断点,则停下。各任务要配合使用。 任务断点:调本任务时,系统运行到本任务断点,则停下。如果没有attach到本任务,不起作用。 一次性断点:跑到一次之后自动删除。 系统级调试(attach system) 把所有task和系统core、中断看成一个整体,可用于调试系统和中断。对中断调试,如果不是系统级调试,无论是那种断点都不起作用 !wdbAgent不在调试范围内,当任务级调试时工作在中断方式,系统级调试工作在轮询方式。 !可是使用命令行方式的调试,参看crossWind教程。 4.调度 优先级调度(无条件) 时间片:同优先级,如果时间片没有打开,任务采取先到先运行,运行完毕在交出cpu,如果打开,则轮流使用cpu。!死循环使比它优先级低的任务都不能运行。

常见的嵌入式操作系统

常见的嵌入式操作系统 分类:嵌入式操作系统2012-12-11 10:06 459人阅读评论(1) 收藏举报嵌入式操作系统 嵌入式操作系统与通用的操作相比较主要特点在于: 1.小内核,稳定可靠。 2.需要可装卸、可裁剪,以便能灵活应对各种不同的硬件平台。 3.面向应用,强实时性,可用于各种设备控制当中。 国际上常见的嵌入式操作系统大约有40种左,右如:Linux、uClinux、WinCE、PalmOS、Symbian、eCos、uCOS-II、VxWorks、pSOS、Nucleus、ThreadX 、Rtems 、QNX、INTEGRITY、OSE、C Executive 。他们基本可以分为两类,一类是面向控制、通信等领域的实时操作系统,如windriver公司的vxworks、isi的psos、qnx系统软件公司的qnx、ati的nucleus等;另一类是面向消费电子产品的非实时操作系统,这类产品包括个人数字助理(pda)、移动电话、机顶盒、电子书、webphone等,系统有Microsoft的WinCE,3Com 的Palm,以及Symbian和Google的Android等。 一、VxWorks VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是T ornado嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌人式实时操作系统领域逐渐占据一席之地。VxWorks具有可裁剪微内核结构;高效的任务管理;灵活的任务间通讯;微秒级的中断处理;支持POSIX 1003.1b实时扩展标准;支持多种物理介质及标准的、完整的TCP/IP网络协议等。 然而其价格昂贵。由于操作系统本身以及开发环境都是专有的,价格一般都比较高,通常需花费10万元人民币以上才能建起一个可用的开发环境,对每一个应用一般还要另外收取版税。一般不通供源代码,只提供二进制代码。由于它们都是专用操作系统,需要专门的技术人员掌握开发技术和维护,所以软件的开发和维护成本都非常高。支持的硬件数量有限。 二、Windows CE Windows CE与Windows系列有较好的兼容性,无疑是Windows CE推广的一大优势。其中WinCE3.0是一种针对小容量、移动式、智能化、32位、了解设备的模块化实时嵌人式操

vxWorks开发环境构建步骤及开发资源

vxWorks开发环境构建步骤及开发资源 技创科技(Technique Innovator Inc.) https://www.wendangku.net/doc/b7551349.html, 一、Tornado集成开发环境构成 Tornado是集成开发环境的名称,主要由帮助及参考文档、操作系统vxWorks、开发工具(编译器、调试器、编辑器、target server等,据统计,挂接在Tornado下的可选工具和第三方有数百个)等三部分构成,分别对应三个目录: i.docs/ 所有文档都集中在该目录中, books.html是根索引,入门级开发请务必查看 以下文档: ●如果要熟悉使用界面及Tornado使用、创建工程,请参考:Tornado用户手册 及Tornado集成开发环境的HELP->content调出来的联机帮助文档; ●vxWorks的编译是使用标准GNU Makefile来编译连接的,要了解Makefile语 法请参考”GNU Make”;具体的Make rules存放在target/h/make/目录下。 ●如何调试?请参考“Debugging with GDB” ●vxWorks构成、特点及kernel,编程等:请参考:VxWorks Programmer's Guide, 系统调用、库函数接口标准等,请参考:VxWorks Reference Manual ●有关BSP(board support package)的构成、初始化、底层驱动等,请参考“BSP Reference” ●网络应用编程指南(socket编程): “VxWorks Network Programmer's Guide” ii.host/ 该部分存放主机端(开发机)的工具,如Tornado.exe,make.exe,编译器、调试器及TCL命令解释器等等,开发中要用到的工具都存放在目录 host\x86-win32\bin 下,部分命令是.exe文件,部分是.bat的,其中有torvars.bat文 件,是设置Tornado集成开发环境的环境变量用的,在使用其他工具前,要运行它 设置正确的环境变量及可执行文件搜索路径。 iii.target/ vxWorks操作系统、源码、BSP、设备驱动、头文件、配置文件等config/ BSP的存放地方,底层开发者绝大部分时间在该目录下度过,该目录下除了all/和comps/外,其他每个目录对应一种硬件板的BSP,开发者在 做BSP开发时,原则上除了对应BSP目录能修改外,target/目录下的其他 所有目录都不应该作出改动,否则会影响到其他BSP,常用BSP有: pid7t/ →ARM公司推出的pid7 ARM7TDMI评估板的BSP integratorX/ →ARM公司推出的integratorXXX评估板的BSP tk4510a/ →我们要使用的S3C4510B板的BSP SNDS100/ →三星公司推出的SNDS100(KS3C50100/S3C4510B)板的 BSP h/ 头文件存放地点,包括vxWorks的及所有其他组件的 arch/arm/ ARM体系结构相关头文件 make/ 编译连接时要用到的规则都存放在这里 vxWorks.h wind Kernel(vxWorks的核心”Wind Kernel”的API及常量说明) lib/ vxWorks是一个商用操作系统,其不开放源码部分的.o文件及.a(库文件)文件存放在这里(当然,除了config/目录外,所有其他目录下的*.c源码在编

物联网操作系统的必备特性

物联网操作系统的必备特性 物联网所带来的机遇与挑战都是空前的。要抓住机遇,迎接挑战,是否拥有最佳的操作系统做为基础是极为关键的问题。 那么,物联网环境对操作系统提出了哪些不同于以往的需求?产品开发商采用怎样的操作系统,拥有哪些特征或技术,最有可能在物联网的发展中把握先机?基本上,今后的RTOS 不仅必须具备传统的实时性、确定性和可靠性,还必须提供高度互联、全面安全、远程管理等物联网环境所要求的全新能力。最近,风河公司推出了VxWorks7,对这套在嵌入式领域主导多年的RTOs(实时操作系统)进行了再次创新,其目标正是“物联网市场已达 实时操作系统 (The RTOS for thelnternet of Things) ”。实时性依然是物联网操作系统的必备特性 实时操作系统( RTOS,RealTimeOperation System)是指能够在确定的时间对内部或者外部的事件做出正确的响应。在实时操作系统中,进程执行结果的正确与否不仅与逻辑运算或数学计算结果的正确性相关,而且与得出这个正确结果的时间有关。也就

是说,在实时系统 中,如果一个进程的运算结果虽然 是正确的,但是由 于它完成的时间超出了给定的最后期限,那么这个结果就是毫无意义的。 例如汽车中使用的气囊。当报告车辆碰撞的传感器通知CPu 后,操作系统应快速地发出打开气囊的任务,并且不允许任何其他非实时处理进行干扰,晚一秒钟展开气囊比没有气囊的情况更糟糕,这就是一个典型的实时系统。 通常认为,实时操作系统要求速度非常快。但实际上,实时操作系统强调的不仅仅是速度,而是时间关系的次序和确定性。例如,一条货轮在码头等待各地的卡车运来货物之后装船运往海外,规定好了离港启航的时间。那么,如果有一辆卡车在货轮离港时间之后才把货物运到了码头,逻辑上它虽然完成了陆地货运任务,但已经没有任何意义了。货车行驶速度和气囊打开速度当然不可相提并论,但就它与货轮配合的时间顺序而言具有同样都是实时系统,都必须要满足的是时序确定性,而跟速度有多快不一定相关! 再例如,如果使用足够高性能的CPU,Windows 可以提供非常快的速度。但是,当某些后台任务正在运行时,有时候响应会变得非常漫长,以至于某一个简单的读取文件的任务也会很长时间无响应。并不是说Windows 不够

几种主流嵌入式操作系统分析

几种主流嵌入式操作系统分析 1.嵌入式Linux 嵌入式Linux(Embedded Linux)是指对标准Linux经过小型化裁剪处理之后,能够固化 在容量只有几KB或者几MB 字节的存储器芯片或者单片机中,是适合于特定嵌入式应用场合的专用Linux操作系统。在目前已经开发成功的嵌入式系统中,大约有一半使用的是Linux。 这与它自身的优良特性是分不开的。 嵌入式Linux 同Linux 一样,具有低成本、多种硬件平台支持、优异的性能和良好的网络支持等优点。另外,为了更好地适应嵌入式领域的开发,嵌入式Linux 还在Linux 基础上 做了部分改进,如下所示。 ? 改善的内核结构 Linux 内核采用的是整体式结构(Monolithic),整个内核是一个单独的、非常大的程序,这____________样虽然能够使系统的各个部分直接沟通,提高系统响应速度,但与嵌入式系统存储容量小、 资源有限的特点不相符合。因此,在嵌入式系统经常采用的是另一种称为微内核(Microkernel) 的体系结构,即内核本身只提供一些最基本的操作系统功能,如任务调度、内存管理、中断 处理等,而类似于文件系统和网络协议等附加功能则运行在用户空间中,并且可以根据实际 需要进行取舍。这样就大大减小了内核的体积,便于维护和移植。 ? 提高的系统实时性 由于现有的Linux 是一个通用的操作系统,虽然它也采用了许多技术来加快系统的运行 和响应速度,但从本质上来说并不是一个嵌入式实时操作系统。因此,利用Linux 作为底层 操作系统,在其上进行实时化改造,从而构建出一个具有实时处理能力的嵌入式系统,如RT-Linux 已经成功地应用于航天飞机的空间数据采集、科学仪器测控和电影特技图像处理等 各种领域。 嵌入式Linux 同Linux 一样,也有众多的版本,其中不同的版本分别针对不同的需要在内核等方面加入了特定的机制。嵌入式Linux 的主要版本如表4.1所示。 表4.1 嵌入式Linux主要版本 版本简单介绍 μCLinux 开放源码的嵌入式Linux 的典范之作。它主要是针对目标处理器没有存储管理单元 MMU,其运行稳定,具有良好的移植性和优秀的网络功能,对各种文件系统有完备 的支持,并提供标准丰富的API RT-Linux 由美国墨西哥理工学院开发的嵌入式Linux硬实时操作系统。它已有广泛的应用 Embedix 根据嵌入式应用系统的特点重新设计的Linux发行版本。它提供了超过25种的Linux 《嵌入式Linux应用程序开发详解》——第4章、嵌入式系统基础 系统服务,包括Web服务器等。此外还推出了Embedix的开发调试工具包、基于图 形界____________面的浏览器等。可以说,Embedix是一种完整的嵌入式Linux解决方案

风河Workbench3.0_VxWorks6.6应用程序开发使用说明V1.0

说明:由于开发经验和英语水平有限,在本文档中肯定存在偏差和谬误。在有疑问的地方,请以风河的官方文档为准。欢迎联系,指正错误。QQ:1039309823。 风河Woorkbench3.0/VxWorks6.6使用说明 第一章工程视图(Projects Overview) Workbench利用工程( Projects)就像逻辑容器和积木块——它们能够连接在一起创建一个软件系统。工程( Projects)窗口可以直观地组织工程结构反映在内部的依赖关系上,以及编译和链接的次序。 前期配置的各种不同的工程允许在后面建立或添加工程时使用与之前的工程相同的配置和建立方式,因而只需要极小的输入。 一、Workspace/Project 的设置 Wind River Workbench并不知道使用者的源文件在哪一个地方,在开始的使用的时候Wind River Workbench在安装目录下有一个默认的工作空间(workspace )的目录。但是这不是必需的或者说并不一定是合理的,当使用者的工作空间因为产品升级或者更改安装目录已经完全存储在当前的安装目录树之外的时候! 通常,使用者需要把workspace目录设置在当前的源文件树的根目录下并且在此创建Workbench工程。对于各种不同的源文件树,可以使用不同的工作空间(workspaces)。 当决定在什么地方建立工程(projects)要做以下考虑: 1.在workspace建立工程 如果使用者想要新建一个工程在workspace下,通常的情况有 A.所建的工程还没有建立源文件。 B.所建的工程已经存在源文件,但需要添加进工程。 C.所建的工程不允许设置在源文件目录处。

嵌入式操作系统的种类与特点

1.3.1 嵌入式操作系统的种类、特点与发展 1.嵌入式操作系统的种类 一般情况下,嵌入式操作系统可以分为两类: 非实时操作系统:面向消费电子产品等领域,这类产品包括个人数字助理(PDA)、移动电话、机顶盒、电子书等。 实时操作系统RTOS(Real-Time Embedded Operating System):面向控制、通信等领域,如windriver公司的vxworks、isi的psos、qnx系统软件公司的qnx等。 (1)非实时操作系统 早期的嵌入式系统中没有操作系统的概念,程序员编写嵌入式程序通常直接面对裸机及裸设备。在这种情况下,通常把嵌入式程序分成两部分,即前台程序和后台程序。前台程序通过中断来处理事件,其结构一般为无限循环;后台程序则掌管整个嵌入式系统软、硬件资源的分配、管理以及任务的调度,是一个系统管理调度程序。这就是通常所说的前后台系统。一般情况下,后台程序也叫任务级程序,前台程序也叫事件处理级程序。在程序运行时,后台程序检查每个任务是否具备运行条件,通过一定的调度算法来完成相应的操作。对于实时性要求特别严格的操作通常由中断来完成,仅在中断服务程序中标记事件的发生,不再做任何工作就退出中断,经过后台程序的调度,转由前台程序完成事件的处理,这样就不会造成在中断服务程序中处理费时的事件而影响后续和其它中断。 实际上,前后台系统的实时性比预计的要差。这是因为前后台系统认为所有的任务具有相同的优先级别,即是平等的,而且任务的执行又是通过FIFO队列排队,因而对那些实时性要求高的任务不可能立刻得到处理。另外,由于前台程序是一个无限循环的结构,一旦在这个循环体中正在处理的任务崩溃,使得整个任务队列中的其它任务得不到机会被处理,从而造成整个系统的崩溃。由于这类系统结构简单,几乎不需要RAM/ROM的额外开销,因而在简单的嵌入式应用被广泛使用。 (2)实时操作系统 所谓实时性,就是在确定的时间范围内响应某个事件的特性。而实时系统是指能在确定的时间内执行其功能并对外部的异步事件做出响应的计算机系统。其操作的正确性不仅依赖于逻辑设计的正确程度,而且与这些操作进行的时间有关。“在确定的时间内”是该定义的核心。也就是说,实时系统是对响应时间有严格要求的。 实时系统对逻辑和时序的要求非常严格,如果逻辑和时序出现偏差将会引起严重后果。实时系统有两种类型:软实时系统和硬实时系统。软实时系统仅要求事件响应是实时的,并不要求限定某一任务必须在多长时间内完成;而在硬实时系统中,不仅要求任务响应要实时,而且要求在规定的时间内完成事件的处理。通常,大多数实时系统是两者的结合。实时应用软件的设计一般比非实时应用软件的设计困难。实时系统的技术关键是如何保证系统的实时性。实时操作系统可分为可抢占型和不可抢占型两类。 嵌入式实时操作系统在目前的嵌入式应用中用得越来越广泛,尤其在功能复杂、系统庞大的应用中显得愈来愈重要。 从某种意义上说,没有操作系统的计算机(裸机)是没有用的。在嵌入式应用中,只有把CPU嵌入到系统中,同时又把操作系统嵌入进去,才是真正的计算机嵌入式应用。 操作系统的实时性在某些领域是至关重要的,比如工业控制、航空航天等领域。想像飞机正在空中飞行,如果嵌入式系统不能及时响应飞行员的控制指令,那么极有可能导致空难事故。有些嵌入式系统应用并不需要绝对的实时性,比如PDA播放音乐,个别音频数据丢失并不影响效果。这可以使用软实时的概念来衡量。

VxWorks实时操作系统SIGNAL机制的应用

[摘要] 介绍VXWORKS实时操作系统的信号机制以及各种处理方法,特别是利用该机制实现异常情况的恢复和处理。 1.概述 信号可用来在同一任务内部或不同任务之间实现异步通信,从而改变对多个任务的控制流程。所有任务或中断服务程序均能向指定的任务发送信号,该信号的接收任务将立刻挂起当前的执行线程,而激活任务指定的信号处理程序。信号处理程序是由用户定义的,它关联与特定的信号,而且任务接收到该指定信号时的所有必要处理都在该程序中实现。信号的这种机制使得它特别适合于用来实现差错和异常处理。 2.信号屏蔽 在信号处理时,可通过信号屏蔽来选择需要进行处理的信号,接收到被屏蔽的信号,即使指定了相应的处理程序,也不作任何处理。 为了实现对信号的屏蔽,需要定义数据类型为sigset_t的变量,同时必须包含头文件“signal.h”。 下面介绍实现这一功能的函数: int sigemptyset ( sigset_t *pSet ) 该函数初始化信号集,使得该信号集不包含任何信号; int sigfillset ( sigset_t *pSet ) 该函数初始化信号集,使得该信号集包含所有信号; int sigaddset ( sigset_t *pSet , int signo ) 该函数向信号集中增加新的信号; int sigdelset ( sigset_t *pSet , int signo ) 该函数删除信号集中的信号; int sigismember ( sigset_t *pSet , int signo ) 该函数用来判断信号集是否包含某信号; int sigprocmask ( int how, const sigset_t *pSet, sigset_t *pOset ) 该函数用来设置信号屏蔽;这里,pSet为新的信号集,pOset为当前的 信号集,而how则指示处理方式,其取值与处理方式对应关系如下: SIG_BLOCK 结果信号集为当前信号集和指定信号集二者的并集,通过这种方式,可向当前信号集增添指定的元素; SIG_UNBLOCK 结果信号集为指定信号集的补集和当前信号集二者的交集;通过这种方式,可从当前信号集删除指定的元素;

几种嵌入式实时操作系统的研究分析与比较

几种嵌入式实时操作系统地分析与比较 2008-07-04 20:54 VxWorks、μClinux、μC/OS-II和eCos是4种性能优良并被广泛应用地实时操作系统.本文通过对这4种操作系统地主要性能进行分析与比较,归纳出它们地选型依据和适用领域. 1. 4种操作系统地介绍 (1)VxWorks VxWorks是美国WindRiver公司地产品,是目前嵌入式系统领域中应用很广泛,市场占有率比较高地嵌入式操作系统.VxWorks实时操作系统由400多个相对独立、短小精悍地目标模块组成,用户可根据需要选择适当地模块来裁剪和配置系统;提供基于优先级地任务调度、任务间同步与通信、中断处理、定时器和内存管理等功能,内建符合POSIX(可移植操作系统接口)规范地内存管理,以及多处理器控制程序;并且具有简明易懂地用户接口,在核心方面甚至町以微缩到8 KB. (2) μC/OS-II μC/OS-II是在μC-OS地基础上发展起来地,是美国嵌入式系统专家Jean J.Labrosse用C语言编写地一个结构小巧、抢占式地多任务实时内核.μC/OS-II能管理64个任务,并提供任务调度与管理、内存管理、任务间同步与通信、时间管理和中断服务等功能,具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点. (3)μClinux μClinux是一种优秀地嵌入式Linux版本,其全称为micro-control Linux,从字面意思看是指微控制Linux.同标准地Linux相比,μClinux地内核非常小,但是它仍然继承了Linux操作系统地主要特性,包括良好地稳定性和移植性、强大地网络功能、出色地文件系统支持、标准丰富地API,以及TCP/IP网络协议等.因为没有MMU内存管理单元,所以其多任务地实现需要一定技巧. (4)eCos eCos(embedded Configurable operating system),即嵌入式可配置操作系统.它是一个源代码开放地可配置、可移植、面向深度嵌入式应用地实时操作系统.最大特点是配置灵活,采用模块化设计,核心部分由小同地组件构成,包括内核、C语言库和底层运行包等.每个组件可提供大量地配置选项(实时内核也可作为可选配置),使用eCos提供地配置工具可以很方便地配置,并通过不同地配置使得eCos能够满足不同地嵌入式应用要求. 2. 性能分析与比较 任务管理、任务及中断间地同步与通信机制、内存管理、中断管理、文件系统、对硬件地支持和系统移植这几方面是实时操作系统地主要性能.下面就从这几个方面着手对上述4种操作系统进行分析与比较. 2.1 任务管理 任务管理是嵌入式实时操作系统地核心和灵魂,决定了操作系统地实时性

实时操作系统包括硬实时和软实时的区别

一.什么是真正的实时操作系统 做嵌入式系统开发有一段时间了,做过用于手机平台的嵌入式Linux,也接触过用于交换机、媒体网关平台的VxWorks,实际应用后回过头来看理论,才发现自己理解的肤浅,也发现CSDN上好多同学们都对实时、嵌入式这些概念似懂非懂,毕竟如果不做类似的产品,平时接触的机会很少,即使做嵌入式产品开发,基本也是只管调用Platformteam封装好的API。所以在此总结一下这些概念,加深自己的理解,同时也给新手入门,欢迎大家拍砖,争取写个连载,本文先总结一下实时的概念,什么是真正的实时操作系统 1. 首先说一下实时的定义及要求: 参见Donal Gillies 在Realtime Computing FAQ 中提出定义:实时系统指系统的计算正确性不仅取决于计算的逻辑正确性,还取决于产生结果的时间。如果未满足系统的时间约束,则认为系统失效。 一个实时操作系统面对变化的负载(从最小到最坏的情况)时必须确定性地保证满足时间要求。请注意,必须要满足确定性,而不是要求速度足够快!例如,如果使用足够强大的CPU,Windows 在CPU空闲时可以提供非常短的典型中断响应,但是,当某些后台任务正在运行时,有时候响应会变得非常漫长,以至于某一个简单的读取文件的任务会长时间无响应,甚至直接挂死。这是一个基本的问题:并不是Windows不够快或效率不够高,而是因为它不能提供确定性,所以,Windows不是一个实时操作系统。 根据实际应用,可以选择采用硬实时操作系统或软实时操作系统,硬实时当然比软实时好,但是,如果你的公司正在准备开发一款商用软件,那请你注意了,业界公认比较好的VxWorks(WindRiver 开发),会花光你本来就很少的银子,而软实时的操作系统,如某些实时Linux,一般是开源免费

基于VXWORKS的嵌入式开发设计课件

一、嵌入式系统简介 1、嵌入式系统的基本特征 (1)专用的嵌入式CPU 该CPU具有高效率、低功耗、体积小和集成度高等特点,能够把通用CPU中许多由板卡完成的任务集成在芯片内部完成,有利于嵌入式系统设计趋于小型化, 移动能力增强,与网络耦合紧密。 (2)专用性和算法的唯一性 设计成完成某一特定任务,和相应具体任务有机结合在一起,具有较长的生命周期。 (3)多种技术的结合体 计算机技术、半导体技术以及电子技术和各行业的具体应用紧密结合在一起的系统。 (4)软硬件紧密的相互依赖性 专用性决定了设计目标是单一的,硬件和软件的依赖性强,用利于版权的保护。 (5)系统对用户透明 用户使用只是按照预定方式使用,不需要用户编程和修改。 (6)大多具有实时性 如工业仪表、控制装置、数控系统、信息家电等。 (7)系统资源有限 速度和存储容量以及扩展接口有限。 (8)多为分布式系统 更易于保证硬实时要求、更便宜和更易于实现。 2、嵌入式软件的特点 (1)多具有实时性 指操作系统内核采用了一种算法,使tc(context swich)和ts(system call)尽可能小、尽可能是常量和可确定。所谓可确定是指tc和ts有一个上限,而不是 一个统计的结果,即不会出现峰值,不会随系统任务的增多而增多。 (2)有并发处理能力 能并发处理各个事件驱动,采用多任务运行机制。 (3)具有快速启动、出错处理和自动复位能力 能从只读存储器中快速启动,具有高容错机制,在系统出现死机前自动重启。 (4)应用软件和操作系统一体化设计 硬件和软件一起设计,以解决特定的问题,不同的系统有不同的配置。 (5)交叉开发环境 二、嵌入式系统软件开发流程 1、需求分析 2、设计思路 (1)概要设计 (2)详细设计 (3)详细写出测试项目(包括测试类别、测试过程、测试预测结果) 3、编码 (1)各芯片代码模块化,有利于移植 (2)需要注意一些小问题(如边界条件、内存越界访问、空指针等) ⅰ

VxWorks操作系统在多功能相控阵雷达中的应用

V x W o rk s操作系统在多功能相控阵雷达中的应用Ξ 黄银园 (南京电子技术研究所 南京210013) 【摘要】 提出了把抢占式实时多任务操作系统V x W o rk s引入到雷达系统,特别是多功能相控阵雷达中的必要性;分析了V x W o rk s操作系统的优点;针对其图形功能弱的缺点和现有雷达显示系统的硬件条件,作者提出了在V x W o rk s操作系统下实现高分辨率光栅图形显示的方法及具体的实现过程。此方法适用性广,能应用于以Tm s34010(或Tm s34020)图形芯片为核心的任何雷达系统。 【关键词】 抢占式实时操作系统,多任务,相控阵雷达,高分辨率光栅显示 A pp licati on of V x W o rk s O p erating System in M u ltifuncti onal Phased A rray R adar HUANG Y i n-yuan (N an jing R esearch In stitu te of E lectron ics T echno logy N an jing210013)【Abstract】 T he paper p resen ts V x W o rk s,a p reemp tive real2ti m e m u ltitask operating system(R TO S)app lied in radar system,especially emphasizes the essen tial of the app licati on of V x W o rk s operating system in m u ltifunc2 ti onal phased anay radar.It analyzes the good qualities of the V x W o rk s operating system;po in ted to V x W o rk s’s sho rtcom ing in graph ics p rocessing and ex isting hardw are conditi on of radar disp lay system,th is paper po in ts ou t the techn ique and its detailed i m p lem en tati on of h igh reso lu ti on raster graph ics disp lay in V x W o rk s operating sys2 tem.T h is m ethod can be w idely u sed in any radar system w ho se graph ics board CPU based on TM S34010o r TM S34020. 【Key words】 p reemp tive real2ti m e operating system,m u ltitask,phased array radar,h igh reso lu ti on raster disp lay 1 引 言 多功能相控阵雷达集搜索、跟踪、制导等功能为一体。它具有如下特点:1)搜索与跟踪功能兼备,具有多目标的跟踪能力;2)能对多枚导弹发出制导指令;3)反应时间短。这些任务都是相对独立的且不需要串行完成的。而且任务也有优先级之分,优先级高的任务需立即响应,而其它的一些任务可以迟后一些完成。这就要求计算机系统必须具备实时处理多任务的能力。整个相控阵雷达都要在系统软件统一管理指挥下运行。合理调度,管理各雷达资源以保证优先级高的任务能实时完成,而其它的任务也能在一定的时间限内完成则必须引入多任务抢占式实时操作系统。以往的单任务模式的操作系统(如DO S)和以时间片为调度基础的多任务操作系统已根本不能满足相控阵雷达的要求。在众多的实时多任务操作系统中,V x W o rk s以其优良的功能和卓越的性能成为多功能相控阵雷达的首选。2 V x W o rk s操作系统的特点 V x W o rk s操作系统是由美国W indR iver公司推出的嵌入式实时操作系统。厂商对系统的实时性、高可靠性等进行了精巧设计;而且还提供了独立而完备的系统开发和性能测试工具。主要有以下优点: 1)高性能的微内核结构:W ind Kernal最小时才几K,提供了很大的灵活空间和裁剪空间,满足各个嵌入式应用的要求。它的主要特点是: a1高效的任务管理:无限数目多任务,具有256个优先级。 b1快速灵活的任务间通讯: 三种信号灯(Sem ap ho re):二进制、计数、有优先级继承特性的互斥信号灯。管道(P i p e)、消息队列(M essage queue)、信号(Signal)。网络套接字(Sock2 et)。共享内存(Shared M em o ry)。 2)多任务环境:因为外部事件是离散的、并发的,事件发生的顺序是不可预测的。多个事件可以 2001年8月现代雷达第4期Ξ

嵌入式实时多任务操作系统的特征介绍

嵌入式实时多任务操作系统的特征介绍 引言:适逢公司进行通用计算平台的硬件基础研究,在此硬件平台之上,必要引入通用的软件平台。为此,操作系统无疑是最佳的选择。在德国十二套软启动项目中,远程IO控制机的软件设计成功引入了实时多任务操作系统μC/OS—II, 本文结合作者的工作成果,针对μC/OS—II将嵌入式操作系统的基本特征和原理进行简单的描述,并对大家所熟知的实时特性概念进行简要的抛析。 嵌入式实时操作系统在国外在上世纪60年代便已发展,至今已有不下百种产品。从在商业领域取得巨大成功的两个突出代表VxWorks和QNX;到开源并广泛传播的Linux;以及由知名公司所推出的WINCE等;再到由个人之力发展至今的μC/OS,每种操作系统皆有其自身的特点及所专长的应用领域,但同时作为嵌入式的实时多任务操作系统又有其共同的特征,以下将结合实际工作中所用到的μC/OS—II为大家进行简单的介绍。 首先,操作系统作为用户应用程序同系统硬件之间的接口,承担着系统全部软、硬件资源的分配、工作调度、控制协调并发活动的重任。如图1所示为包含操作系统的软硬件体系结构。 图1 比较于传统的PC机操作系统,除具有任务调度、同步机制、中断处理、文件功能外,嵌入式实时操作系统还具有如下几个主要特点: ◆可裁减性,嵌入式系统开发所特有的一点便是具有有限的存储空间。面向不同硬件资源的情况下,操作系统具有自身可裁减的特性,以适应系统的存储容量,以μC/OS—II为例,最小可将代码量裁减到2K+。 ◆实时性,于军事及高端工业领域发展起来的嵌入式操作系统,系统所处运行环境极为复杂,要求极为苛刻。对于外部的激励,操作系统能够及时的做出响应,来保证系统的可靠运行。

基于OpenGL的VxWorks图形界面开发

基于OpenGL的VxWorks图形界面开发 摘要 图形用户界面(GUI)是人机交互技术的重要内容,它使用图形图像信息、直观的表达方式与用户交互,使软件系统的人机界面简洁、美观、方便好用,更加人性化。目前GUI已经大量应用在嵌入式领域,但是大多数嵌入式GUI系统提供给用户的显示平面从逻辑设计上讲是二维的,最大的缺点在于反映信息量小,在对真实场景进行模拟显示的时候,无法提供真实的场景数据。随着嵌入式系统硬件功能的不断提高,如何开发一款支持3D建模的嵌入式GUI已成为一个迫切的话题。 本课题来源于实习工作中的“某星载仪表控制计算机”项目,该计算机采用VxWorks作为其操作系统,要求设计出人性化的人机界面,可以实时显示系统的相关参数数据、图形信息等,并提供对3D模块的支持,能够进行3D图形的绘制和显示。本文经过详细分析和设计,实现了将OpenGL/Mesa3D图形库移植到VxWorks系统,并结合VxWorks内核及其多媒体库WindML的相关接口,开发了以消息驱动为核心、具有基本窗口管理功能和仿Windows控件效果、支持中文界面和3D画面绘制显示的GUI系统。从工程应用和测试的效果来看,该GUI系统基本实现了预期功能。 关键词:嵌入式系统VxWorks图形用户界面OpenGL/Mesa WindML

目录I 目录 第一章绪论 (1) 1.1 背景知识介绍 (1) 1.1.1 嵌入式实时系统 (1) 1.1.2 图形用户界面概述 (2) 1.2 国内外研究现状 (4) 1.2.1 嵌入式GUI的现状 (4) 1.2.2 基于VxWorks的图形解决方案 (5) 1.2.3 嵌入式GUI的发展趋势 (7) 1.3 课题来源和意义 (7) 1.4 论文结构 (8) 第二章VxWorks操作系统及媒体库WindML (11) 2.1 VxWorks深入研究 (11) 2.1.1 VxWorks概述[10] (11) 2.1.2 VxWorks实时微内核[11][12] (12) 2.2 VxWorks集成开发环境Tornado (15) 2.2.1 Tornado介绍[13][14] (15) 2.2.2 交叉编译环境 (15) 2.2.3 Tornado的组成 (16) 2.3 WindML媒体库 (18) 2.3.1 WindML概述[16] (18) 2.3.2 WindML事件服务机制 (19) 2.3.3 WindML2D图形库分析 (19) 2.3.4 WindML程序开发流程 (21) 2.4 本章小结 (22) 第三章OpenGL/Mesa及其在VxWorks下的移植 (23) 3.1 OpenGL/Mesa (23) 3.1.1 OpenGL开发库 (23) 3.1.2 OpenGL开发库结构 (24) 3.1.3 Mesa库 (28) 3.2 OpenGL/Mesa库的移植 (29) 3.2.1 工作概述 (29)

相关文档