(计算机科学与技术专业论文)基于qnx实时操作系统的嵌入式测试系统的开发.pdf_第1页
(计算机科学与技术专业论文)基于qnx实时操作系统的嵌入式测试系统的开发.pdf_第2页
(计算机科学与技术专业论文)基于qnx实时操作系统的嵌入式测试系统的开发.pdf_第3页
(计算机科学与技术专业论文)基于qnx实时操作系统的嵌入式测试系统的开发.pdf_第4页
(计算机科学与技术专业论文)基于qnx实时操作系统的嵌入式测试系统的开发.pdf_第5页
已阅读5页,还剩56页未读 继续免费阅读

(计算机科学与技术专业论文)基于qnx实时操作系统的嵌入式测试系统的开发.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 论文以某重点型号工程设备的测试系统的研制为背景,探讨了在q n x 实时操 作系统上搭建嵌入式测试平台的设计和实现方法。本测试设备以p c 1 0 4 为核心, 通过实时发送设备所需的各种激励信号、接收设备的各种响应信号,来模拟设备 的工作环境和实际工作流程,根据其状态和反应确定其各项功能是否正确。 首先,介绍t q n x 实时操作系统的体系结构,对系统的微内榜n e u t r i n o 、图形 界面p h o t o n 、资源管理器以及如何构建嵌入式目标系统作了详细介绍,同时对 比v x w o r k s 系统,分析评价 q n x 实时特性,说明使用q n x 系统的必要性。 其次,介绍了测试系统的硬件组成和测试系统的软件具体实现。论文分析了 测试系统的设计思想,阐述了测试系统模块的划分和实现方法。阐述的重点放在 系统软件部分,对于硬件部分仅作简要介绍。测试系统的用户界面遵循简洁易用 的设计原则,采用q n x 自带的p h a b 集成开发环境进行开发。文中阐述了测试程序 用户界面的设计、测试模块的划分和实现中的技术要点。 最后,论文详细介绍t q n x 系统中设备驱动程序及相关资源管理器的开发, 包括硬件资源的管理、中断处理函数的编写以及驱动程序与应用程序的接口。为 满足嵌入式系统的需要,论文还对q n x 系统下如何生成目标系统镜像进行了详细 的描述。 此外,作为系统研制的硬件基础知识,本文列举了p c i 总线接口的有关技术, 重点描述 p c i 总线配置空间等与编写系统设备驱动程序密切相关的知识点。 关键词:q n x ,测试系统,p c 1 0 4 p l u s ,设备驱动程序,实时操作系统 a b s t r a c t t of u l lf i ut h er e q u i r e m e n t so fr e a l - t i m er e s p o n s ea n df r i e n d l yn s e ri n t e r f a c e ,w e d e v e l o p e dt h i st e s t i n gs y s t e mb a s e do nq t c xr e a l - t i m eo p e r a t i n gs y s t e m ,w h i c hi s a l l e m b e d d e dr e a l t i m eo p e r a t i n gs y s t e ma n dh a sag o o dp e r f o r m c eo nr e a l 4 i m i n g q n x i sap o w e r f u la n d 、v i d e l ya c c l a i m e dr e a l t i m es y s t e m i tc a nb es c a l e dt ov e r y s m a l ls i z e sa n dc a np r o v i d em u l t i t a s k i n g ,t h r e a d s ,p d o d t y - d r i v e np r e e m p t i v es c h e d u l i n g , a n df a s tc o n t e x ts w i t c h i n g a i le s s e n t i a la s p e c t so fa ne m b e d d e dr e a l - t i m es y s t e m i nt h i st h e s i s ,w ef i r s t l yd e s c r i b et h ed e s i g np h i l o s o p h yo fq n xa n dt h es y s t e m a r c h i t e c t u r e i tc o v e r sm e s s a g e - p a s s i n g ,f o l l o w e db yt h ed e t a i l so f t h en e u t r i n om i c r o k e r n e l ,t h ep r o c e s sm a n a g e r ,r e s o u r c em a n a g e r s ,t h ep h o t o nm i e r o g u la n d t h ew a yt o b u i l dat a r g e ts y s t e mi m a g e s e c o n d l y ,w ei n t r o d u c ep c it e c h n o l o g y , w h i c hi si m p l e m e n t e da sp c 1 0 4 - p l u si nt h e e m b e d d e ds y s t e m t h eh a r d w a r ef o u n d a t i o no ft e s t i n gs y s t e m t h e nw ed i da c o m p a r i s o nb e t w e e n p c 1 0 4 - p l u sa n dp c i a tl a s t , w eg i v ead e t a i l e dd e s c d p t i o no ft h ec o m p o n e n t sa n df u n c t i o n so ft h et e s t i n g s y s t e m ,i n c l u d i n gu s e ra p p l i c a t i o n sa n dd e v i c ed r i v e r s t h ed e s c r i p t i o nf o c u s e so n s o m e s p e c i f i cd e t a i l so fh o w t oi m p l e m e n tt h et e s t i n gs y s t e m i ti n c l u d e sh o wt od e v e l o pt h e g u io ft e s t i n gs y s t e mu s i n gp h o t o na p p l i c a t i o nb u i l d e rt o o l s ,h o wt oc o m m u n i c a t e a m o n gp r o c e s s e sa n dt h ea l g o r i t h mo fs c h e d u l i n gt h em u l t i - t a s k s w ea l s od e s c r i b e d e v e l o p m e n to fd e v i c e d r i v e ru n d e rq n x i ti n c l u d e st h ei m p l e m e n t a t i o no ft h e i n t e r r u p th a n d l e r ,t h ea l g o r i t h mo fh a r d w a r er e s o u r c em a n a g e m e n t , a n ds o m ed e t a i lo f i n t e r f a c eb e t w e e na p p l i c a t i o na n dd e v i c ed r i v e r k e y w o t d s :q n x ,t e s t i n gs y s t e m ,p c 1 0 4 一p l u s ,d e v i c ed r i v e r ,r t o s i l 西北工业大学 学位论文知识产权声明书 本人完全了解学校有关保护知识产权的规定,即:研究生在校攻读 学位期间论文工作的知识产权单位属于西北工业大学。学校有权保留并 向国家有关部门或机构送交论文的复印件和电子版。本人允许论文被查 阅和借阅。学校可以将本学位论文的全部或部分内容编入有关数据库进 行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 同时本人保证,毕业后结合学位论文研究课题再撰写的文章律注明作 者单位为西北工业大学。 保密论文待解密后适用本声明。 学位论文作者签名:逢益宝 d ,7 年易月孑日 指导教师签名:巡 p 鳓7 年多月罗。日 西北工业大学 学位论文原创性声明 秉承学校严谨的学风_ 褪优良豹科学道德,本人郑重声明:质呈交的 学位论文,是本人在导j | i | ;豹指导下进符研究王作所取徭购成架。尽我赝 妇,除文中已经注明弓 用的内容和致谢的邈方外,本论文不包会任柯其 饱令人域集体已经公开发表或撰写过的研究或果,不包含本人或他人已 申请学位或其它用途使用过的筏果。对本文的研究做出鬟要赁献的个人 和集体,窍已在文中以明确方式标明。 本入学位论文与资料若有不实,舔意承撵切裙关的法律责任。 学位论文作喾签名: 寸峨 觚索 年;月;一习 蘸麓工韭大学硬士论文 第一章绪论 1 1 课题来源及意义 第一章绪论 零课题来源予园家菜重点烈号工程瑷嚣,嚣豹是为该忑程鹣设备磷割测试设 备。该测试设备程慧控计算杌游控制下,根据测试需求实时发送各种激渤和接收 响戚信号,以设铸的实际工作流程和工作环境,根据其状态和反应确定其各项功 能愚落正确。 蘩 务豹圭控诗髯撬逶蓬王髂缝箨茬鬟躲9 邋遂_ 裙b 燃建,王终缀终毖簇稳定 可靠地工作。为了测试工作组件的正确性,脊必要实现一个高效易用的测试系统 平台。测试系统平台需要制作4 2 9 板卡和b m k 板卡,分别模拟实际情况中的4 2 9 通 道耧b m k 透道产擞豹信号,在测试程彦戆控铡下裁可j | ;乏完成慰工终组传测试。工 作缀伟是某飞行器中静关键部件,其功能的燕确与否壹接影响到飞行器能否正常 飞行,因此本测试设备的研制对整个型号工稷项目的进行凝有重要意义。 。2 课题磅究内容 本课题的研究内容是测试系统的设计,包括硬件设计和软件设计两方面。硬 件设计包括测试系统中各板卡内部逻辑设计、芯片选择等。软件设计则包括操作 系绞警台豹选择、溅试敦箨入撬莠_ 瑟懿定义设诗、设螽驱动程睾缓镯方法豹选 择等。 1 硬件设计需要实现以下板卡的设计 ( 1 ) p c i 总线a r i n c 4 2 9 慧线接墨扳一块; ( 2 ) p c i 总线字节多鼹转换通道接口板块; ( 3 ) i s a 总线数字i o 接口板一块。 2 软件部分的设计 ( 1 )操俸系统懿选择,英实游性特征蹙重要参考霾豢; ( 2 )测试稔序界面的定义和操作,测试人员通过对测试程序界面的操作来 完成测试,测试程序界面为图形用户界面g u i 。测试人员通过在界面中选择命令或 会令缓寒完残溪试; ( 3 )在确定操作系统的情况下,为a r i n c 4 2 9 总线接口板、多路转换通道接 口板和数字i o 接口板开发相应的驱动程序; ( 4 ) 豢4 作羁振系统镜像,配置测试软传运行环境,擞成测试系绕软 争包。 鞭北工业大学硕士论文第一章绪论 1 3 作者所做的工作 作者所作的主要工作是实现测试系统的软件部分,具体工作包括: ( 1 )对整个测试系统的硬件环境避行了深入了解,掌握各个扳卡所要完成 浆饪务秘功能; ( 2 ) 了解和掌握q n x 实时操作系统,包括学习q n x 自带的集成开发工具; ( 3 ) 了解蒡攀握p c i 设冬憨基礁j 氍识以及q n x - f 竣冬驱凌程廖缡裁方法, 并为各板卡编制相应的驱动程序; ( 4 歼发应麓程序,包括黪干赛繇灞试程序,进程霹清度鞋及与驱凑程痔 冉。接口酃分。 1 4 论文肇节安排 以上述研究及实践为基础,佟者撰写了本文。 第一章绪论,对论文研究背景和内容作筒要介绍。 第篡章系统说甥q n x 实时操住系统的体系结构和特点,讲述q n x 的桌颟系统 p h o t o n ,介绍基于p h o t o n 的应用程序开发工具p h o t o na p p l i c a t i o nb u i l d e r ;详 缨说明q 叁下戆设冬驱魂稷彦约疆理、分类及特点,磐在实瓣性方薅对v x w o r k s a e 和q n x 进彳予比较。 第三章奔缓了p c i 总线技术静特点及软件基穑,著辩p c 1 0 4 - p l u s 作了麓奔。 第四章简单描述测试系统的组成和功能。 第溉章详细介绍了软件平台的具体实现,分为测试系统的应用程序部分和设 锯驱动糕序部分。 结柬语部分对论文工作做了总结。 2 嚣l t 王监大学颈士论文 第二章q n x 蜜瓣操作系统 第二章q n x 实时操作系统 根据项目需戮,测试系统软件必须满足实时性和友好的用户界面双重要求。 而q n x 实时操作系统作为实时操作系统中的佼佼者,在撼两方面都十分出色。在 本露争详缨奔缀t q n x f 錾j 荐蓉络耱、嚣发测试系统雾嚣、设备驱动稳露及稳建嵌 入试目标系统所需的基本知谈,并与v x w o r k sa e 系统在实时性方面避行了比较。 2 。1 q n x 的体系结构 q n x 是一个实时、微内棱、基于优先级、消息传递、抢占式多任务、多用户、 具肖容错能力的分布式网络操作系统。多年来,q n x 实时系统以其高度可靠的实 对燃获碍了业界的广泛认可,成为x 8 6 平台点最好豹嵌入式实对操作系统之一 q n x 实露搽佟诞生予1 9 8 1 ,最裙名为q u n i x ( q u i c h u n i x ) ,嚣絮由于鞭投 问蹶,更名为o n x 。多年来一感推陈出新,掰前已推出6 3 版。q n x 的体系结构是 真藏的微内核体系结构,q n x 肖一个非常小的微内核( 约为1 2 k ) 。微内核只提供 最蒸零懿羧务,彀括线程调发、进程霾逶镲毅及嚣步,劳逶过溃悫抟耱礁剃与系 统释模块进行通信。这一机制使得q n x 能够胜任实时性鬻求很高的环境。如今, 广泛地应用于那些以实时性能开发灵活性和网络灵活性为首要要求的应用领 域。大量已安装匏a x 系统诞疆徽内核技术不仅经济土霹行,两且适含关键性任 务瓣应焉,鲡遥我控制、医疗器械、财政事务楚理、数撵透信等多令领域。 q n x 对嵌入式实时应用稷序是很理想的。消息传输机制构成了康拟的软总线 ( s o f t b u s ) ,使得用户可以动态地添加或删除各服务模块。因此它可以被裁减得 缀夺登能夔貘多强务韪毽、线疆、驱动鼗免瓣捻先迸程安撑。 q n x 遵循p o s i x 实时标准。这不仅意睬着代码可移掇性,还意味蘅任何程序 员如果具有u n i x 、l i n u x 或其佬p o s i x 经验,即使不了解嵌入式实时操作系统,也 可以轻松逸在q n x 豹嚣境下遂纾黟 发。 q n x 的离效率、模块往帮简易纯,主要遴过两个基本原则来实璇;微内核维 构和基于消息的进程间通信。 下面分别就遮两个方面份以介绍。 2 1 1q n x 的n e u t r i n o 微内核 1 。徽内核操彳# 系统 簦先,我销绘徽内菝下一个明确的定义。一个徽疼孩操作系统由一个援穰夸 的内核构成,它为组相互协作的进程提供最低限度的服务,进而由这些进程提 3 西北二r 业大学硕士论文第二章q n x 实时攮作系统 供高级的系统功能。微内核本身缺少诸如文件系统之类的服务,但是这些服务由 那些可选择的系统进程提供。设计微内梭操作系统不楚仅仅将系统自身减小,富 翅含了系统功能实瑷方式憋改变,其关键是模块纯。这静模块他的设计无论在扩 展性和健壮性方面都使得操作系统的性能有大大的改观。 擞内孩提供懿遴程耀逶锾菝务主要瘸来将微蠹核纛服务遴程摆绑在一起,墓 此这些服务的性能和灵活性决定了系统的性能。如果不考虑进程间通讯服务,从 稳供的服务和实时往方面来说,徽内核秘实辩耩序大钵上羞不多。徽肉核帮一般 的应用程序的蒺别在乎,如何使用进程悯通信扩展内核的功黥和其宅提供服务的 进程的功能。由于系统由一组微内核管瑷下的相互协作的进程实现,用户自定义 遴程可以锃为扩展系统功能豹迸黎;嚣越,系绕零身缀具开放性,瞧容爨扩展。 此外,用户自定义的扩展不会影响系统的稳定性。 对于许多蜜露程痒来说,要实麓p o s i x1 0 0 3 。l 标准存在诸多嚣滩,惫搓它稍 的运行环境是典型的单进程多线程模型,预且线程间没有地址保护。q n x 在保护 模式下,充分年i 用m m u 来蜜施蘩个p o s l x 迸稷模型。 正如图2 - 1 、圈2 - 2 、图2 - 3 酝示,一个真旋的微内按不仅为用户程序同对也 为系统组件( 驱动程序,文件系统等等) 提供完善的内存保护。 璺2 - 1 簧绫魏程痔芩提供内存保护 夔2 - 2 煮摹冀系绫孛,系统进程没有受刳爨护 4 疆北工业大学硕士论文 第二章q n x 实时操作系统 图知3 微内核对内存提供充分的傈护嘲 2 组娥程组成的操作系统 系统圭n e u t r i n o 内棱管蓬下豹缰辍主游终豹遴稳鞫藏。热露2 4 爨零,该续 构更象一个团队,而不是等级结构;组员的地便平等,并且通过内核协调。q n x 扮演的角色就像一个“软彳牛总线”,可良证用户横括需求动态的“插入”或“拔出” 系统组件。 3 个真正拥有微内梭的操作系统 蠹核是操作系统豹菝心。在絮些系统孛,两孩毽客诲多动裁,班至予沟核本 舟就可以独立成为一个系统。但愚n e u t r i n o 是个真难意义上的微内核。首先, 援鲡一个实辩系统掰应具备瓣,n e u t r i n o 非常夸。其次,蠹桉专注予基本能服务; ( 1 )线程;n e u t r i n o 提供p o s i x 标准的线程创建原谱: ( 2 )信号量:n e u t r i n o 提供p o s i x 标准的信号原语; ( 3 ) 淤塞转逡:n e u t r i n o 懿理系统孛所鸯线程瞬通讯掰传递约消息; ( 4 ) 同步:n e u t r i n o 提供p o s i x 线程同步原语; 内存警瑷:受炎蠹存强护、动态键接痒、共享蠹存原潺; ( 3 ) 路径名空间管理:管理系统内各资源可能囊用到的路径名空间; ( 霹)设备管毽麓理系统内豹务设备毅及设备豹添麴纛瑟l 除。 1 进程管理 p r o c n t o 的首要职责是动态的创建新进程。这些进稷也会使用到p m c n t o 的一黪 英它的功能比如内存营理秽路径名空阑繁理。进程管理包括进程的剑建、销毁及 进程各种属性的管理。 q n x - f 霸进程稳关瓣簇语毒: s p a w n ( ) p o s i x f o r k ( ) p o s i x v f o r k0嘲i xb s de x t e n s i o n e x e c 0 p o s i x e l f 臻式瓣执移文锋哥以透;窭c x e v 0 或者s p a w n 0 麴载到内存书。熟果是块设 备上的文件系统,进程的代码和数据会崴接加载到内存。如果文件系统怒内存映 射静( 院如r o m f l a s h ) ,代码就没有必簧加载捌内存串,舔楚在潦缝弧露,这榉 的机制可以大大的节省内存空间并且提高执行效率。 2 内存管理 多数豹实辩内搜秘应用程序为了提藏实对性能,仪在牙发环境中提供对内存 9 恩藏 两北丁业大学硕士论文 第= 章q n x 实时操作系统 保护,只有极少数的系统提供运彳亍时的内存保护。随着越来越多的嵌入式处理器 汗始支持内存保护,由内存保护带来的好处远近大予它所带来的佳能方面的额外 好销。在实时应用程序孛萼l 入走存保护扳太的提高7 程序的糖掺搜。在多任务环 境中,某个进程访问了未明确声明的或未授权的空间,m m u ( m e m o r ym a n a g e m e n t u n i t ) 攀元会逶舞撩穆系统避零窭镱处理。 一个典型的内存管理单元将物理内存分为4 k 大小的页。处理器通过访问保存 在系统空间静廷表,将虚酶琏空闻转纯为物理穗缝空阕。 图2 - 7 地址映射 在q n x 瓣完全绦护模式下,系统将镜像孛懿健褥全部拷炎到薪鹣虚稼空阕, 同时使能硬件的m m u 功能,初始化页表映射,从而给p r o e n t o 进程提供了个正 确的、m m u 僚能的窃始运行环境。迸程管理器获得控翻权后,可以穰据实际需求 熨改驶射表。凌完全保护模式下,每一个进程都会分酝到自融私有的虚拟地址空 间,根据c p u 的不同,地址空间的大小从2 g 剐3 5 g 变化。这也怒通过c p u 的 m m u 模块实瑰戆。滋程甥羧_ 帮港惠传递掰带来戆往麓揆耗,会蘧着涎令拳鸯空霾 寻址的复杂化而增大。 3 。路径名空闻管瑾 i t 3 资源没有包含在内核中,丽是通过一些动态启渤的资源管理器来管理。在 其他资源管理嚣执行之前,p r o c n t o 管理器“拥有”整个的路径名空间( 根目录和 箕下嚣戆爨毒东嚣) 。熟栗没窍其 | 熟戆资源管理嚣出来提供暇务,这基本上是一个 空的文件系统。p r o c n t o 允许其他资源管理器通过个标准的a p i 来接手其想管理 豹邴一部分名字空闻,雨对拥有籀应静职权域。p r o e n t o 嚷纛并维护一个辩缀檐 西北工业大学硕士论文第二章q n x 实时操作系统 ( p r e f i xt r y ) 来跟踪这些拥有各种各样的部分名字空间的进程。 这种方式的命名空间管理允许q n x 保留p o s i x 标准中队设备和文件读写的 语义,同时又可以为嵌入式系统提供各种服务。在进入系统时,p r o c n t o 会构建如 表2 - 2 所示的命名空间的前缀。 当一个进程打开一个文件,o p e n 0 库例程首先把文件名发送到p r o c n t o ,p r o c n t o 会拿前缀树和路径名做比较,把o p e a 0 导向合适的资源管理器。在资源管理器的 职权域有部分重叠的情况下,将选取路径名的最长的匹配。例如打开d e v t t y 0 最长 的匹配发生在d e v ,导致打开指向d e v 。路径名u s r f r e d 与,匹配打开指向f s y s 。 表2 - 2 命名空问 通过在传统的文件名空间上实现单独的职权域,o s 的总体功能中的很多部分 可以用运行时可选的方式实现。既然资源管理器进程在内核空间外存在,那么就 在运行时被动态的增加和删除,而不需要用重新连接内核来包含不同层次的功能。 这种在大小上的灵活性允许o s 易于按应用程序的需要而放大或缩小。 尽管对把资源管理器提供的服务放置在内核之外给人的印象是低效,但性能 测试结果表明环境切换和i p c 的性能充分的保持了硬件的原始性能。事实上q n x 的快速环境切换使得操作系统的资源在协作进程间有效地分配,而不会为此导致 性能损失。这样就明确了这种结构在体系上的优势。 4 设备管理 设备管理提供了p o s i x 兼容的设备控制,而且还带有一些适于实现通信协议 的实时扩展。设备管理进程可以动态的启动并与设备驱动程序连接,并且如不再 使用可以从内存中除去。 在q n x 中设备管理具有不同于其他操作系统的明显特点。例如q n x 不要求 设备驱动中断处理程序只能存在于内核空间中,q n x 提供了一个系统调用,用来 允许用户进程去连接一个用户进程内的中断处理程序,此中断处理程序处理内核 嚣乾工韭大学硕士论文 第= 章q n x 裳拜雩操作系统 中的某个中断向擞。即该中断处理程序可以被内核调用柬响应物理中断。由于处 理稷穿位于曩户避程孛,它可以谤趣这个有巾辑镌应功能躲避疆懿所鸯熄蛙窒闻。 递过中断处璃程序驻留在内核之外的方式,用户可以在一个运行豹系统中动 态的增加或删除中断处理程序( 包含它们的设备驱动程序) 。由内核处理的第一层 次的巾断处理也照顾了嵌套和获享的中断,褥不强加硬件依赖的细节朔用户写中 酝楚壤程睾兹复杂经。徽内孩撬镤箨帮瓣牵藜薤理程枣爨允诲一令资源警瑾器毒 单体内核可提供的性能水平相瞩配的基础。 q n x 的设备篱理的特点使得系统易于扩展。设备驱动程序在用户级进程中存 在,嚣发者可以扶这个基本豹筑势孛获嚣:嚣发0 s 静功貔瓣扩震与舞发瘸户级进 程相致。事实上,在q n x 内部使用的开发工具是运行在全屏幕、源季码缓酶 调试器下的资源管理器,所以调试一个新的文件管理进程和调试一个h e l l ow o r l d 程序榉方便。 露秀q n x 搡俸系统易于扩袋翡铡子,瓷滚管理嚣这榉翡羧务可鞋投巍雳程彦 级的程序员( 而不怒内核设计师) 只用几个小时的努力和不到2 0 0 行的易懂的c 源稔序实现。p r o e 有效的把系统资源( 一系剿的在系统中的活跃的进程) 包装起 来,势显对手系绞篼它 | 臻i 现褥羧象是在p r o c 懿蘧径磊突趣孛维护熬文馋窝嚣 录f l l 。 2 2 q n x 的用户界面 2 2 1p h o t o n 的体系结构 p h o t o n 管理器在系统中作为个服务程序,执行一些最基本的功能。它创建 一令凌嚣壤( 跹g | a 瞄s ) 窝事磐缝残懿三维搴箨空阕。这个管理器氍不羧麓鬣稼、 键盘,也不能在群幕上绘图;宦只是一个管璎p h o t o n 事件空间的进程,筒其它进 程如设备驱动程序、窗口管理器和其它管理器通过在p h o t o n 事件空间中发送事件 迸彳亍邋谖,执行窑嗣系统豹高级耱毙。 一个p h o t o n 暾用程序包含一个帮蔻个簌形平面区壤,这些区域在攀伟空闯孛 起到了代理的作用;它可以接收和发送事件,当事件穿过这个事件空间,这些事 件就可以与其他区域相互作用。这也就是在p h o t o n 中应用程序为什么可以相互通 禳戆豢透。应震疆黪在这些区域孛绘割塞蜀,这些区域被依次基舅p h o t o n 霉箨空 间的栈中。每个区域既有父区域也有兄弟区域。最后面的特殊区域称为根区域。 如图2 1 0 所示为从用户的角度糟到的p h o t o n 鬻件空间。 巍雳产运行程缪瓣跨娱,墨发熏程序交鬃,应用程黟又与其毽豹斑耀程痔及 p h o t o n 交互。交露行为称为事件,事件在事件空间中传递。以下几个都楚交互鲍 实例: 1 2 飚北工业大学硕士论文 第二章q n x 实时操作系统 ( 1 ) 当用户按鼠标的键,驱动程序发送事件穿过巢件空间( 沿着发向根区域 的方向) 那些甜这个事侔感兴趣的区域就会捕捉弼它,进行缒理,例如按下一个 按钮; ( 2 ) 当用户想碱一些图的时候,应用程序就发送一个事件,该攀件发向事件 窆闯豹 l 蓼方( 漤着发怒弱户夔方囊) 。一个握关戆霪形驱动程痔裁可攘捉到这个攀 件并在屏幕上绘图。 每个区域都禳箨设窥蠡搴敏惑毪帮遴明毪采处理忿感兴趣静事释。穰翔露栗 肖一个域对某类事件敏感的话,当事件到达的时候,它就会通知拥有该区域的 成用程序。这也就达到了事件驱动的效果。 p h o t o n 代表一秽建立g u i 豹赫方法一一使熙一个微内核鄹一缎协处理进程, 避就不同与其他窗口系统的一体化的结构。所以p h o t o n 呈现出独一无二的特点; 低豹内孬要求绶褥p h o t o n 掰良舞那些霹斑存有羧铡戆鍪形疼薹| :壤撬供意滋塞墨功 能;p h o t o n 提供了非常灵灞,用户可扩展的体系结构;这就使得开发者能根据自 避的应稽来扩袋g 璩。 强2 - 1 0 翅户角度着到静p h o t o n 豹事馋空闻! 1 1 2 2 2p h o t o n 应用程序开发工具p h a b ( p h o t o na p p l i c a t i o nb u i l d e r ) p h o t o nm i e r o g u l 包括个叫p h o t o na p p l i c a t i o nb u i l d e r 的功能强大的可视化 嚣发工矮,筵髂p h a b 。傻援p h a b ,曩户透过e 或c + 语富秀发痰用弱声赛瑟, 辫能下韭大学硕圭论文 第二章q n x 襄封操作系统 可以大大地降低成用程序的开发量,用户不仅在写用户界面方面而且在调试和测 试方瑟都节省融翘。p h a b 可以傻用户莰谤绒生成塞日、浆萃、对话攥、錾撂、还 鸯备种控件如按镪、标签跌及控件回调函数。p h a b 还允诲用户使用自己的代码生 成p h a b 模块,同时还提供犬量的函数去建立控件库,使用户可以及复使用而不 必缳次使用都从头开发。 1 p h a b 瓣黪熹 p h a b 这种可视化开发工凝具有如下的特点: ( 1 ) 可立即得到结果 檬其毽可视织矛发工具魏m i c r o s o f tv i s u a ls t u d i o 一榉,雳户不必为生成一令 控件而编写代码,只需要点诲然后拖动就可生成需要的撩件;要改变控件的外观 和行为,只需赢接的改变控件的某些属性。界面部分的邀行效果在设计阶段就能 直接看到。 ( 2 ) 专注予翡能性 p h a b 让开发者可把自己的代码函数和控件联系在一起,比如把编碍的代码和 一个按钮关联起来,当用户按下按钮时,就w 以控制程序作出对应的反应。另外, 懿莱恕把奏瑟懿零蘑部分连越来戆,豆乎不黉要写赞么找褥,嚣麓p h a b 龛诲秀 发者把控件的回调函数直接和窗口、菜单逐肖对话框关联起来。 ( 3 ) 无需编写代码就可建立原型 一旦完成了器嚣的设计,蚴也就可以生成槌应豹c ,c + + 代码。然爱开发者 就霹戳编译运行,看看效栗。这之后就可戳编写回调函数,实现其裹旋的功能。 就这样反复这个过程,直到其外观和运行状态都符合要求。 ( 4 ) 减少代码量 懿栗赛瑟纛澎孛需要在不瓣妻冬蘩分搜薅褪嚣黪茬终。建户不必每次搜蔫戆嚣 候都建立一遍,可以通过定义次控件,然后把它放在按件库中,再通过p l 岫 提供的c 函数熏新使用即可。 ( 5 ) 截建务秘应霞程序 使用p h a b ,可以开发奁p h o t o n 上几乎所有的应用程序,包括帮助程序、终 端獠序、桌面管理器以及游戏。 2 p h a b 的接件库 p h o t o n 提供缝被臻鸯控锌豹控终痒,这些露蒙大罄分戆霹幕行为霹浚鑫臻 管联,无需外部稷序的干涉。所以,一个麻用程序可以通过拖放控件,把有关的 控件连上回调函数的方法迅速地组成。p h a b 在它的可视化开发环境中提供了控件 调色教。控结包旗3 丈类:鍪旗控终( 如援镳) 、容器控转( 魏塞日控 譬) 耧裹级 控伟( 如f l a s h 控件) 。 另外,还有些成为容器的控件,它可以承载其他控件以及管理布局。 1 4 两北工北大学硕士论文 第二章q n x 实时操作系统 这控件集合是建立在xt o o l k i ti n t r i n s i c sl i b r a r y ( x t ) 上的,具有谢向对教 的体系结构,每个控件中融合了数据和操作用来构成u l 元素的一部分。 按件封装了绘制控件本身、对用户攀 牛进行响应( 比如按下按镪) 以及当控 件损坏时( 例如当一个挡健它的窗口关闭时) 进行重硒。控件对外隐藏它是如何 宠残功缝瓣,这一联粼坡舔为售感隐藏,它可怒控 孛鹣内部实瑗与瓣强公共要瑟 分离开。它的公共界面包括对其他对象可见的属性和。 w 衄烈 韬a s l c ,哪n 彗r 圈2 - 11p h o t o n 控件屡次圈1 2 l 箕魏瓣象班在该茳诲上进露豹操侮,在接转公共接口审属性被稼为资源。 西藏1 :垃大学硕士论文 鬃= 章q n x 实辩操作系统 并不是每一个对象都是唯一的。实现相同功能有相同界面的对象属于相同的 类,捷供相同用户缀馋懿控转瘸子携丽豹控移类。p h o t o n 蓐怒定一个控馋类只麓 敲一个控俸类中继承,这种关系称为萃继承。所有的控律炎构成了一橡树称为类 层次。p h o t o n 的类层次如图2 1 1 所示。p h o t o n 控件库就像个控件工厂,它提供 了一系列的函数让程序员能创建一些新的控传,并进行撵俸。一旦创建成功,由 予继承戆祷健,该控锌裁掇骞了它静父类静掰骞特毪。 3 p h a b 应用程序开发 猩开发p h a b 应用程序时,主程序框架由系统在编译时生成,程序员要写的 部分稳瑟:编写应惩程彦初始鬣:瑟数、编写露号处理蘧数、编写潜意耱入丞数、 为按件编写响应豢件的回调函数。 另外,由于p h a b 是可视化的环境,所见即所得,不必在代码中控制控件的 位置秘大小。主程序循环一直运行,随时处理秘达的事件。图2 - 1 2 就慰用p h a b 辑舜发豹应焉程彦懿结褥图翻。 p h a b 的用户界面如图2 1 3 所示,其中备部分的功能如下: ( 1 ) m e n u b a r :输入图形、创建窗口和对话框,为憋个用户界面嫩成c 或 e 料载玛; ( 2 ) t o o l b a r s :提供复制、移动、排列、分组等侠德功能; ( 3 ) w o r ka l g a :提供一个灵活的工作聪,用户可以同时操作几个应用程序 模块: ( 4 ) w i d g e t 谜亭t e :霞农程序孛罐热羧俘更糖方便,哭需萃击怒簧黔控辟, 然后在需要的地方再次单击; ( 5 ) c o n t r o lp a n e l s :可以定制程序中的控件,包括选择字体、颜色、为弹 窭豹慰话捱添黧瓣瀵函数等等。 2 3 q n x 的资源管理器 程本滚试系统巾,鬟要操终多令p c i _ 窝i s a 设备对囊椽设备避行测试。获数 在q w x 下对设备的管理占了测试程序裙当大的部分,在这黧荦独拿出来遴行介绍。 在q n x 中设备被通称为资源,所有的资源由资源管理器管理。q n x 的资源 管理嚣受责给不阉类型的设备掇供一个接口。遮荦争设各可熊是真正豹硬转设备( 比 魏率躁、并日、网卡和硬盘) 或者虚 薹f 设备豫( d e v n u l l 、瓣络文件系绕和伪姆 设备) 。在其他操作系统中,这功能从传统意义上说是与设备驱动程序相关的。 但是q n x 的资源镣理器与设备驱动程序不问的是它以独鼗予内核的进稷来运行, 壤之簸豫一令簧遴瓣应蔫程旁。涂建一熹秀者劳没骞本囊嚣裂。掰皴褒下嚣熬奔 绍中,驱动程序和资源管理器两概念混合使用。 1 6 西北工业大学硕士论文第= 章q n x 实时操作系统 在介绍q n x 的资源管理器之前,先介绍一下l i n u x 设锯驱动程序。q n x 和 l i n u x 郡是许多方面十分稻似,尤箕是程序酶编臀方面,丽l i n u x 又蹙大家院较熬 悉豹,所以,这里先绘出l i n u x 设备驱动程序的概念。 塑2 - 1 2 羯p h a b 辑写豹p h o t o n 应毒程_ 睾豹结擒 强2 - 1 3 确幻编程器嚣 1 7 嚣j 0 誓韭大学硕士论文 第二章q n x 炭辩操作系统 2 3 1 l i n u x 设备驱动程序 掰谓设备驱动程序就是捺露系统肉棱释筏器褒锋之阗瓣接日。设备驱动程彦 为应用程序屏蔽了硬件的细节,这样在应用程序看来,硬件设备只是一个设备文 件,应用程序可以像操作普通文件一样对硬件设备进行操作。设备驱动程序是内 核毂一部分,它突戏戳下豹功麓; ( 1 ) 对设备纫始化; ( 2 )把数据从内核传送至0 硬件和从硬件读取数据到内核; ( 3 ) 读取戍用程序传送缭设备文件的数据和回送威爝程序请求的数据; ( 4 ) 捡溅裰处理设备逡瑷豹错误。 在l i n u x 中,设备驱动程序是以模块的方式存在的,同时还可被编译到内核 中使用。设备驱动模块可动态的加载,在系统中设备驱动模块完全是被动调用的。 簌篑一今蕉度,群毅怒设备驱动程彦看露楚灏数痒,编写这令函数痒熬避程裁是 完成驱动程序的一个重要方面,操作系统对驱动程序只掇供同一函数名接口,至 于函数要完成的内容则要由程序员编写完成。在模块加载的时候,驱动程序就会 自系绕注册其管理黔设备窥管理豹能力( 注瓣遗数) ,这榉警上层应用程序需要使 用莱设备的时候,内系统发出请求,系统会焱找稽应摇绑的驱动程痔,谪用驱臻 程序注册到系统中的函数,为上层应用程序服务。 一般来说,在l i n u x 中,字符型设备驱动程序能够提供如下几个入口点,也就 是溺数接日: ( 1 ) o p e n 入口点,打开设备准备f o 操作。对字符特别设备文件进行打开 操作,都会调用设备的o p e n 入圈点。o p e n 予程序必须对将鬻进行的i o 操作做好 必要戆准备工痒,如清除缓冲嚣等。如果设备是独占的,蠲冠一对刻只能毒一个 程序访问此设备,粥o p e n 子程膨必须设置一魏标志默表示浚各楚予忙状态。 ( 2 ) c l o s e 入口点,关闭一个设备。当最后一次使用设备终结后,调用c l o s e 子程序。独占设备必须标记设铸可再次使用。 ( 3 ) r e a d 入日点,靛竣务上读数据。斑子套缓渖嚣豹揉终,一般是获 缓冲区里读数据。对字符特别设备文件进行读操作将调用r e a d 子程序。 ( 4 ) w r i t e 入口点,往设备上写数据。对于有缓冲区的f o 操作,一般是把 数据麓入缓冲嚣璧。黠字麓特别没各文终送露笃操终将潺羽w r i t e 子程穿。 ( 5 ) i ) e v c f l 入口点,执行读、写之外的操作。 ( 6 )s e l e c t 入口点,检查设备,看数据是否可读或设备是否可用予写数据。 s e l e c t 系统调用在硷查与设各特别文件相关豹文件描述符时使用s e l e c t 入嗣点。翔 莱谩餐驱动程序没裔撵供上述入翻点中静菜一个,系统会瓣袄省静予稷窿来霞替。 对于不同的系统,也还有一些其佬的入口点。 3 疆北丁舭大学硕士论文 第二章q n x 实时操作系统 2 3 2 资源管理器 1 什么鼹资源篱理器( r e s o u c em a n a g e r ) 一个资源管理嚣就是一个蒂声态的瓣务程序,繇爵黻接收其德程序发来酶消 息,也可与硬件进彳予通讯。它负责把路径前缀注册到路径空间里。当注册完毕, 其他的进程就可以使用标准的c 谮言函数打开这个名字,进行读写操作。除此老 鲣,它还支持经嚣基予文搏接述簿耱文热摆铮豹丞数,以及多静p c 操谗。 另外,由于q n x 本地的i p c 服务的强大功能和灵活性使得资源管理器可以从 0 s 内核中分离出来。事实t ,资源管毽器看上缀豫其绝薅户程彦。英秀发帮清试 也像一般的应用程序样,因为资源管理器有自己的保护地址空间,所以设备鞭 渤程序中的错误不会导致整个系统的崩溃。 2 。资源繁理器的特点 q n x 的资源管理器具有如下特点: f l ,a p i 憝p o s i x 用于与资源管理器通讯的a p i 大部分遵循p o s 标准,所以培训和所需的文档 孳都是很少静。 。 ( 2 ) 命令行工具隧以用米与资源管理器通讯 因为与资源管理器通讯的a p i 属于p o s i x 函数集,而标准的p o s i xt 其也使 j 建这令a p i ,掰戳这些工具霹班用来与资源警璞器通谶。 ( 3 ) 为应用程序定义一个接口 在舜发遥程中,鞠确分汗客户端与资源警瓒程穿懿牙发。 ( 4 ) 资源管理器定义一个简单的接口 因为所有与资源管理嚣的交互都是通过n e u t r i n oi p c ,没有英德的方法。 ( 5 ) 网络透弱 因为在q n x 中的进程间通讯蹙通过n e u t r i n oi p c 消息传递机制完成的,这种 糠割零巍裁吴骞彝终分毒式懿蒋纛,瘊瓠进程霹班无缝豹获数爨终上萁能苓熹豹 资源。 3 资源管瑾器的类登 ( 1 ) 设备资源管理器 顾名思义。设备资源管理器主要管理系统中的设备。为设备在文件系统中创 建唯一熬入日,每一今设螽管理嚣在进稷管理嚣孛注勰一令设备文传,每一令设 铸文件代表一个设备。这样客户稷序可以通过操作这个抽象文件达到操作设备的 瓣貔。 ( 2 ) 文件系统管理器 文件系统管理器管理备种文件系统,使得q n x 可以支持多种文释系统如 1 9 两北丁业人学硪十论文第二章q n x 实时操作系统 m s d o s 、f a t 3 2 等。文件资源管理器通过在进程管理器中为不同的文件浆统注艇 安装点管理不同的文件系统。只臻把支持的文件系统安装到q n x 中,系统就随意 她操掺不同文转系绞下的文 牛如拷贝、凝赡等。 4 资源管理器的分层结构 一个资源管理嚣是由绫下4 瑟缝戒静;i o f u n c j 罢( 璎层) 、r e s m g r 罄、d i s p a t c h 层、线程池层( 底层) 。 ( 1 ) i o f u n c 鼷 项层包括一组嚣数用予处理p o s i x 文件系统的大部分细节。那么如累程序员 在写一个设备资源管理器时,如使用这一层,就不必担心过多涉及到p o s i x 文件 系统豹缨节。 m e 3 3 a g e h 3 n 盘e r i o e p m e s s a g e s ! j 。j h ”“。“ l c l k a n n e l - - _ _ _ _ _ _ _ _ _ _ v _ _ - 一 s 静c x 豁f u n c t i o n 图2 - 1 4 陀s m 斟层用来处理j 0 0m e s s a g e 饼 ! o n f u n c t i o nl ;。- - - - - - - - - _ n n - - - - - - - 一 u n i i n kf u n c t i o n | + 。_ _ 。_ - 。_ _ - _ _ 。_ h _ _ _ 。_ 一 1 。”。1 。+ 。“1 一 | 采e 豫n e 缸n c t k ) nl 睦塑翌! 塑篓i 匝亟困 另终,这一层提供了许多默认豹资源管理嚣使用的透数。如果程穿员不提供 这些资源管理器使用的函数,那么,系统就会调默认黼数进行处理。例如,程序 爨应编鬈o p e n o i 螽数,溺亲嚣拜设备;磐采翟穿受没毒编写该遗鼗,那么当系统收 到上层客户程序的打歼设备的请求时,系统就会提供默认的i o f u n c o p e n _ d e f a u l t o 黼数进行处

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论