(系统工程专业论文)基于嵌入式Linux的车载显示屏软件平台研究.pdf_第1页
(系统工程专业论文)基于嵌入式Linux的车载显示屏软件平台研究.pdf_第2页
(系统工程专业论文)基于嵌入式Linux的车载显示屏软件平台研究.pdf_第3页
(系统工程专业论文)基于嵌入式Linux的车载显示屏软件平台研究.pdf_第4页
(系统工程专业论文)基于嵌入式Linux的车载显示屏软件平台研究.pdf_第5页
已阅读5页,还剩69页未读 继续免费阅读

(系统工程专业论文)基于嵌入式Linux的车载显示屏软件平台研究.pdf.pdf 免费下载

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

文档简介

西南交通大学硕士研究生学位论文第1 l 页a b s t r a c tt h eo n - b o a r dd i s p l a yi sa ni m p o n a n tc q u i p m c n tt oc o m p l e t et h em a n - m a c h i n ec o v e r s a t i o na n ds h o wi n f o m a t i o no ft h es y s t e m t h ed i s p l a yg u i d et r a i n m a n s0 p e r a t i o na n da s s u r et l l es a f c t yo ft l i el o c o m o t i v e ni sc l e a rt 王l a tt h e r ej si m p o n a n tt h e o r e t i cm e a n i n ga n dr e a l i s t i cm e a n i n go nt h er e s e a r c ho ft h e o f e t i cm e t h o da n dt e c h o l o g i c a lr c a l i z a t i o no ft h eo n - b o a r dd i s p l a y r e s e a r c hi sd o ei nt h ed o m a i no fe m b e d d e di j n u x ,f e a lt i m eo p e r a t i o ns y s t e m 孤dt h ee m b e d d e dg r a p h i c a lu s c ri n t c r f a c 霉d u r i n gt h ea u t h o rf i n i s h i n gt h em a s t e rt h e s i s t h es o f 撕盯ep l a t f o mo fo n b o 缸dd i s p l a yb a s e do ne m b e d d e dl i n u xi sa c c o m p l i s h e d t h ep c ,1 0 4s i n 酎eb o a r dc o m p u t e r p c m - 9 3 7 2i sc h o s e na st h eh a r d w a r ep l a t f o r mo fo n - b o a r dd i s p l ay t h cc m b c d d e du n u x 叩e r a t i o nf i t t i n gt ot h eo n - b o a r dd i s p l a yi sb u i l da dt h ew o r ki n c l u d e sb o o t i n gs y s t e m ,c u t t i n go u tk e r n e la n dm a k i n gr o o tf i l es y s t e ma n ds oo n b e c a u s et h ee m b e d d e d “n i l xc a nn o ts u f f i c et h er e a l t i m eo f t h eo n b o a r dd i s p l a yt h ea u t h o rm a k e su s eo fr t l i n u xt or e b n i l dt h er e a l t i m ee m b e d d e dl i 加x t h eg r a p h i c a lu s e ii n t e r f a c eo ft h ep cl i n u xi st 0 0v o l u m i n o u st oa p p l yt ot h eo n b o a r dd i s p l a y m i n i g u lw h i c hi saf r e es o f t w a r ei se l e c t e da n df i n i s h e st h ed e s i g i io ft h eg r a p h i c a lu s e ri n t e r f a c eo ft h ed i s p l a y a n dt h eg r a p h i c a la p p l i c a t i o np r o f a m m i n gi n t e r f a c eo ft l l eo n - b o a r dd i s p l a yi ss u p p l i e d i nt h el a s t ,t h ed i s p l a yo fs u r v c i l l a n c ei sd e v e l o p c db a s e do t h es o f t w a r ep l a t f o r mo fo n - b o a r dd i s p l a y t h ep l a t f o r mi st e s t i f i e du s e a b l e k e yw o r d s :d i s p l a y ;e m b e d d c dl i n u x :r 1 i 血u x ;m i n i g u i西南交通大学硕士研究生学位论文第1 页第1 章绪论1 1 车载显示屏及其软件现状车载显示屏是机车乘务员与机车设备之间进行入机信息交互的主要设备。在实际运用中,车载显示屏将机车的行车安全信息、故障信息和设备状态等反映给司机,以便有效地指导司机操作,确保行车安全,减小机车故障的影响。早期机车由于电子设备较少,信息显示装置比较简单,在我国第一代内燃、电力机车( 如d f l 、s s l 等) 上采用仪表和信息指示灯等显示相关信息。随着机车电子柜等设备的出现,传统的显示方式已不能满足机车信息显示的要求,车载信息数码显示器应运而生,如j k - 2 h ,u u 9 3 监控器和s s 3型电力机车的故障显示屏等。数码显示装置为乘务员提供了更多的实时信息,但信息内容有限,无法提供直观的文字和图形信息。随着机车控制技术的进一步发展,采用数字控制和微机控制的机车控制系统在国内外已经碍到广泛的应用,特别是微机系统的应用为乘务员和检修人员获取更多的机车信息提供了条件。在国外采用微机控制的机车上,大量采用了智能化的显示屏来补充和替代常规的仪表显示。智能化的信息显示屏已经成为机车上不可缺少的一个重要组成部分。我国车载显示屏的研制工作从9 0 年代初开始起步,首先在d f 6 和s s 4 等机车上陆续开始安装了车载显示屏。随着车载显示屏技术的进一步完善,新造机车采用车载显示屏的数量和显示内容都将不断增加。车载显示屏分为硬件和软件两部分,软件部分由车载显示屏操作系统和基于操作系统的上层应用软件组成。操作系统在整个车载显示屏软件中占有重要地位,它制约着应用软件的功能以及整个系统的性能。目前我国的机车车载显示屏大多采用d o s 操作系统( s s 系列电力机车、d f 系列内燃机车等) ,其应用软件的实时性较差,功能较少,特别是软件的扩展性非常弱,难以满足越来越多的功能要求。d o s 操作系统有以下难以解决的问题:西南交通大学硕士研究生学位论文第2 页实现网络接口困难,即使采用专用的软件包,其实时性也难以达到要求,如果自己开发,难度较大。为了使用图形界面,必须自己从底层开始开发。调色板、直接写屏、鼠标驱动和消息循环等都需要自己建立,难度和工作量很大。系统升级困难,扩展性差,若增加功能,可能要对全部软件进行重新设计。由于d 0 s 操作系统平台的根本限制,不能提供进程保护,完全依靠中断进行处理,系统稳定性较差,难以满足多任务的要求。国内有的车型采用了w i n d o w s3 1 操作系统( 如“奥星”、“天梭”、“中华之星”等) 的车载显示屏。但随着新技术的不断出现,用户对车载显示屏的功能提出了越来越高的要求,比如通用的高速数据转储接口( 例如u s b 、8 0 2 1 1 x 、以太网接口等) 、3 g ( g p s 定位、与地面实时无线卫星数据通信等) 、数据库、互联网等功能以及更为丰富和友好的显示界面等等。而d 0 s 和w i n d o w s 3 1 操作系统在满足这些需求方面已经显得无能为力州。1 2 嵌入式软件技术及其在车载显示屏中的应用优势1 2 1 嵌入式软件技术嵌入式系统1 1 1 是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,对功能、可靠性、成本、体积、功耗等有要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等部分组成。随着信息技术的进步,嵌入式系统在各行各业都得到了广泛的应用,当前全球嵌诫弼鞠黧犯蒯两确秸型霞田叁蓉革赢汞扉酌圣;褥孙j 薹鹾簌恭签蔷缫型彰毽;一实时性傈证惩皤一姐掣霪雨簖埔麒蕊灌酾馘醚酲蛳油越鞴幅捅鏊j 爱爱煮靶;。:穗懵;莱扉私孺畿氍苘醑务需求车载显示屏必须能够同时进行通信、显示等任务,所以要求车载显示屏软件平台的操作系统必须支持x西南交通大学硕士研究生学位论文第3 页应用软件1 f嵌入式操作系统软件平台竹以微处理器微控制器为核心的硬件平台图1 - 1 嵌入式系统结构嵌入式处理器的选择是由系统功能需求决定的,同时嵌入式处理器的选择也决定了整个嵌入式系统的性能特点。2 存储器:传统的r a m 存储器有s r a m ,d r a m 等;r o m 存储器有掩膜r o m ,p r o m ,e p r o m 等。而新兴的非易失型存储器( 如e e p r o m ,f l a s h 等) 则更符合嵌入式系统的要求。其中,采用代码驻留或就地运行技术( x i p ) ,用f 1 a s h 来代替磁盘驱动器构成所谓的“电子盘”或“固态盘”,在嵌入式系统中有着很好的发展前景。与通用计算机相比,嵌入式处理器的功耗、体积、成本、可靠性、速度、处理能力、电磁兼容性等方面均可以根据用户系统的具体需求,进行最适合系统性能要求的配置,从而达到性能和成本的最优平衡1 3 l 。嵌入式系统软件是实现嵌入式系统功能的关键,主要包括与硬件相关的底层软件、操作系统、图形用户界面、和应用软件等等。对嵌入式系统软件的要求也和通用计算机有所不同。1 ) 软件要求固态化存储为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存贮于磁盘等载体中。2 ) 软件代码高质量、高可靠性尽管半导体技术的发展使处理器速度不断提高、片上存储器容量不断增加,但在大多数应用中,存储空间仍然是宝贵的,为此要求程序编写和编译工具的质量要高,以减少程序代码长度,提高执行速度。3 ) 系统软件( 0 s ) 的高实时性是基本要求在多任务嵌入式系统中,对重要性各不相同的任务进行统筹兼顾的合理西南交通大学硕士研究生学位论文第5 页用与实现,为新一代车载显示屏的软件开发提供一种技术尝试。论文的目标是完成基于嵌入式l i n u x 的车载显示屏软件平台的设计开发,实现一个可提供应用层开发接口的车载显示屏软件平台。软件平台具备完整的操作系统和应用编程接口( a p i ) ,用户利用软件平台可以透明地进行应用软件的开发。论文主要工作如下:1 分析车载显示屏平台功能需求,构建车载显示屏的硬件愿剖磊香 ; ;萎藿羲趱幂酬颦童鳓il 饼雀鹾# 二圭蓼显j 甄理贬纠塑瑟圳戥剽矧。糟搿陵撬筒簖羹笔翘擂蜡是i 萎就勉粕嘉。l :露哩墓萋憎图2 2 车载显示屏外形和内部电路板照片x西南交通大学硕士研究生学位论文第6 页的图形用户界面技术特点,重点阐述了m i n i g u i 的技术优势,在对m i n i g u i深入分析的基础上进行了m i n i g u i 的裁剪、移植,完成了车载显示屏软件平台的图形用户界面设计。第6 章基于车载显示屏软件平台的典型应用。基于车载显示屏软件平台进行了监控显示屏主要功能模块的开发,验证了平台的可用性。西南交通大学硕士研究生学位论文第7 页第2 章车载显示屏的总体设计2 1 需求描述车载显示屏作为完成系统信息显示和人机对话的重要机车设备必须能够长期、稳定的在机车环境下运行。1 硬件需求描述( 1 ) 硬件性能要求:a 环境条件要求;鉴于车载显示屏运行环境的特殊性,必须满足铁道机车车辆电子装置【q ( t b 厂r 3 0 2 1 2 0 0 1 ) 要求,保证在下列条件下正常工作:夺海拔高度:不超过2 5 0 0 m 。环境温度;机车内部空气温度为2 5 0 c 到4 5 。c ,但是,直接临近电子元件处的空气温度可在2 5 0 c 到7 0 0 c 之间变化。显示屏应在0 0 c到5 5 。c 范围启动工作,允许在不低于4 0 0 c 环境温度下存放。夺相对湿度:最湿月月平均最大相对湿度不大于9 0 ( 该月月平均最低温度为2 5 0 c ) 。b 车载显示屏机械尺寸:夺箱体:3 0 8 ( 宽) m m 2 2 8 ( 高) m m 1 3 5 ( 深) m m夺前面板:3 4 0 ( 宽) m m 2 5 0 ( 高) m mc 电气参数:夺输入电压:7 7 1 3 7 v ;功耗:2 0 0 w :对内部供电:+ 5 v ( 1 2 )3 a ;+ 1 2 v ( 1 土5 )1 a ;- 1 2 v ( 1 5 )1 a ;( 2 ) 硬件功能要求:c p u :c p u 性能必须能够满足车载显示屏的显示刷新等实时性要求:存储器:鉴于车载显示屏的运行环境,存储器必须抗震动、不易损坏,存储器:鉴于车载显示屏的运行环境,存储器必须抗震动、不易损坏,西南交通大学硕士研究生学位论文第9 页嵌入式系统硬件技术发展非常迅猛,所设计的车载显示屏软件平台应该具有对多硬件平台支持的特性,可方便以后将其移植到其他硬件平台。同时为了适应车载显示屏的可移植性,必须将显示屏软件平台设计为可裁剪、可伸缩的体系结构。系统具有高度的可裁剪性,各个基本模块之间独立,如文件系统、g u i 多任务窗口系统等可以根据实际应用进行完全的删减和替换。应用程序独立升级。应用程序单独编译链接,实现系统与应用的分离,方便用户开发应用程序。2 2 硬件平台构建( 1 ) 硬件平台选型:与p c 机不同,嵌入式领域中存i ; 女薹雾垂;霎霎薹轴;口霉篓擎型蠹瑚强闭型一搬疆魁烬;蛰露暇掣霪l 重譬鋈薹霉薹;蓄奏冀蚕霎妻垂室妻囊堇重量妻薹墓冀i关键,它主要包括与硬件相关的底层软件、操作系统、图形用户界面和应用软件等。其中,嵌入式操作系统是车载显示屏软件的基础和核心。嵌入式操作系统的引入可使车载显示屏软件的开发更加方便和快捷,因为嵌入式操作系统具有成熟可靠的存储器管理、中断处理、任务调度等功能。嵌入式操作系统是用来支持嵌入式应用的系统软件,是嵌入式系统极为重要的组成部分,通常包括与硬件相关的底层驱动程序、系统内核、设备驱动接口、通信协议、图形用户界面等。嵌入式操作系统具有通用操作系统的基本特点,如能够有效管理复杂的系统资源,能够对硬件进行抽象,能够提供库函数、驱动程序、开发工具集等。但与通用操作系统相比较,嵌入式操作系统在系统实时性、硬件依赖性、软件固化性以及应用专用性等方面,具有更加鲜明的特点【4 1 。能够满足于车载显示屏的应用软件和普通应用软件有很大的区别,它不仅要求其准确性、安全性和稳定性等方面能够满足实际应用的需要,而且还要尽可能地进行优化,以减少对系统资源的消耗,降低硬件成本。1 3 论文主要工作本论文的主要载显示屏平台中的应西南交通大学硕士研究生学位论文第12 页2 3 软件平台总体设计车载显示屏软件部分主要包括嵌入式操作系统、图形用户界面和应用软件等。其中,嵌入式操作系统是整个车载显示屏嵌入式软件的基础和核心。2 3 1 嵌入式操作系统的 匕较及选择方案针对前面的车载显示屏软件功能需求描述,对车载显示屏嵌入式操作系统的要求有如下几点:1 操作系统系统尽可能精简,以满足现有硬件条件下最快的运行速度和可靠性。2 具有高度的可裁剪性,可根据功能需求的不同进行裁剪。3 提供多进程管理和保护,支持多任务,增强系统稳定性,简化系统编程和升级。4 提供可靠的实时性保证,实现车载显示屏的实时通信和实时键盘响应。5 易于移植,以满足各种不同硬件的要求,利于车载显示屏系统的升级和改造。目前,比较流行的嵌入式操作系统有如下几种:1 w i n d o w sc e :m i c r o s o f lw i n d o w sc e 是一个简洁高效的多平台操作系统。它不是削减的w i n d o w s 9 x 版本,而是从整体上为有限资源平台设计的具有多线程、完整优先权和多任务性能的操作系统。但由于价格太高,使得整个产品的成本急剧上升。而且w i n d o w sc e 是非开放性操作系统,使第三方很难实现产品的定制。2 v x w o r k s :v x w b r l 【s 是目前嵌入式系统领域中使用最广泛、市场占有率最高的系统。它支持多种处理器,如x 8 6 、i 9 6 0 、s u ns d a r e 、p o w e rp c等等。它使用的是和u n 不兼容的环境,大多数的v x w o r k sa p i 是专有的,并采用g n u 的编译和调试器。3 p s o s :这个系统是一个模块化、高性能的实时操作系统,专为嵌入式微处理器设计,提供了一个完全的多任务环境。它能够在定制的或者商业化的硬件系统上提供高性能和高可靠性,并且可以让开发者将操作系统的功能和内存需求定制成每一个应用所需的系统。西南交通大学硕士研究生学位论文第13 页4 p a l m o s :3 c o m 公司的p a l m o s 在p d a 市场上占有很大的市场份额。它有开放的操作系统应用程序接口( a p d ,开发商可以根据需要白行开发应用程序。目前有总共3 5 0 0 多个应用程序可以运行在p a l mp i l o t 上,其中大部分应用程序均为其它厂商和个人所开发,使得p a l mp i l o t 的功能得以不断增加。这些软件包括计算器、各种游戏、电子宠物、地理信息系统等等。5 0 s 9 :m i c r o w a v e 的o s 9 是为微处理器的关键实时任务专门设计的操作系统,广泛应用于高科技产品中,包括消费电子产品、工业自动化、无线通讯产品、数字电视以及多媒体设备,提供了很好的安全性和容错性。6 嵌入式l i n u x :“n u x 是源代码开放软件,不存在黑箱技术。l i u x作为一种可裁减的软件平台系统,是发展未来嵌入设备产品的绝佳资源。而且l j n u x 可支持不同的设备,支持不同的配置,可应用于不同的场合。由于现在需要的是一个便宜、成熟并且提供高端嵌入式系统所必须特性的操作系统,嵌入式l i n u x 操作系统以价格低廉、功能强大又易于移植而正在被广泛采用,成为新兴的力量。如今,业界己经达成共识:即嵌入式l i n u x 是大势所趋,其巨大的市场潜力与酝酿的无限商机必然会吸引众多的厂商进入这一领域。目前国际上对嵌入式l i n u x 的开发主要集中在三个方向:裁减:嵌入式设备资源有限,对软件的体积有比较苛刻的要求。由于l i n l l x 是单一模块结构,体积较大,不适合直接在嵌入式设备中应用。许多厂商致力于开发符合原u u x 接口标准的小体积的l i n u x 内核,并加强其可裁减性和可配置性。实时性:在数据采集、控制、音视频等设备中,对操作系统的实时性有比较高的要求。l i u x 并不是一个实时操作系统,因而必须提高其实时性以满足这些设备的要求。图形界面:标准l i n u x 图形界面庞大复杂,不适于嵌入式设备,针对实时性和消费类电子的轻量级图形界面技术受到广泛关注m l 。本论文选择嵌入式“n u x 作为车载显示屏操作系统。这是因为嵌入式u n l l x 应用于车载显示屏有其突出优势:嵌入式i j n u x 的一个优点就是它的廉价,由于“n u x 是基于g n u 规约的,因而只需支付通过f r p 下载的网络费用或者比一张光盘稍多一点的费用就可以得到它。因为u n u x 是开放式源代码,因而不存在像w i n d o w s 那样的黑箱技术。西南交通大学硕士研究生学位论文第15 页应用编程接口。而诙强百了萄话扇芦湎葡r 一一- 一- - - - 。r 。- 1 1 。一底层接口库!g n uc 库i图形库! 中文输入实时嵌入式l i n u x 操作系统。1 。? 一一。! 。! 一一。! 。网络:存储管理:外设驱动:文件系统:多进程图2 3 车载显示屏软件平台设计方案该软件平台提供的应用编程接口主要是以函数库的形式提供给二次开发用户,主要包括:( 1 ) 底层接口库:提供底层通信操作接口,如串口操作等。( 2 ) g n u c 库:主要提供诸如字符、字符串、流的输入输出、网络编程、数学运算、时间和日期等c 语言应用库,与g n ucu b r a r y 库m 】兼容。( 3 ) 图形库:图形接口提供画点、画线、矩形、椭圆、字符汉字输入、汉字显示等图形应用。另外还提供图片装载以及常用图形控件的接口。( 4 ) 实时嵌入式l i n u x 操作系统还提供编写实时线程的应用编程接口。2 4 小结本章在车载显示屏功能需求描述的基础上,完成了车载显示屏的硬件平台构建和软件平台的设计方案。西南交通大学硕士研究生学位论文第17 页的引导程序。g n ug r u b ( g r 柚du n i f i e db o o t l o a d e r ) 是一个将引导装载程序安装到主引导记录的程序。它是一个很棒的引导装入器( b o o tl o a d e r ) ,主要负责装入内核并引导l i 删x 系统,并且g r u b 是一个自由软件。关于g r u b 的安装及使用详见3 4 节。3 2 车载显示屏的嵌入式l n u x 内核裁剪3 2 1 内核裁剪策略内核常驻内存空间,对应用程序进行调度和控制,并提供初始的系统调用,其大小对目标系统运行的效率和稳定性起着非常重要的作用,对一些嵌入式系统来说,由于存储空间比较小,内核的大小就成了设计系统的关键因素之一。内核裁剪t q 的一条首要原则是针对适当的目标和硬件系统,目标系统不同,需要的内核模块和定制策略也不同。在本论文中车载显示屏运行在p c 1 0 4 硬件平台上,存储器为6 4 m 的c f 卡。磁盘空间和内存的要求都不像典型的嵌入式系统那样要求严格,对应的嵌入式设计要求是:不特别强调内核和整个系统的体积;针对硬件平台较低的事实,需要去掉不需要的部分,以便尽量保证稳定性,可靠性和运行速度;必须包括必要的硬件支持。考虑到研究和今后应用的需要,内核和系统的体积最好尽可能的小。针对车载显示屏的硬件平台以及功能需求,作者采取的内核裁剪策略如下:夺对车载显示屏平台包含的硬件设备和预期要求,必须提供支持,如处理器类型、f r a m e b u f f e r 设备、串口设备、显卡、i d e e i d e 设备以及e x t 2 文件系统等。夺对于目标系统用不到的设备和功能,一律不提供支持,比如多媒体硬件,路由器支持,s c s i 设备,磁盘阵列,i p x 协议等,尽量减小内核体积。对于可能用到的功能或在几种相似功能之间各有侧重的选项,设置成可加载模块,以便为将来升级提供方便。比如网卡,特定文件系统、u s b 设备等。西南交通大学硕士研究生学位论文第18 页3 2 2 内核裁剪步骤内核裁剪的基本方法是利用u n u x 内核的可重编译性,通过编译选项来去掉不需要的内核部分,同时,对一些可选的设备可以设置成可加载模块m l 。内核编译的具体步骤如下:下载l i n u x 2 4 1 8 t 盯g z 并放到目录,u s r s r c 下,利用l i n u x 命令对其进行编译:c d l l s “s r ct a rz x v fl i n u x - 2 4 1 8 ta r g zc d l i n u xm a k ec l e a n 清除系统安装和运行期间产生的文件,避免影响内核编译m a k em r p r o p e r 清除源程序目录树种所有残留的文件和其他从属文件,使配置文件恢复到默认值m a k e x c o n f i g配置内核根据编译选项选择内核支持的功能。m a l 【ed e p,建立所有的从属文件m a l 【eb z l m a g e编译压缩内核映像文件m a l 【em o d u l e s编译可加载模块m a k em o d u l e s - i n s t a l l,安装可加载模块这样就完成了车载显示屏嵌入式u n u x 内核的裁剪,最终内核存放为u s r s r c l i n 职a r c m 3 8 6 b 0 0 帕z h a g e ,其大小为6 0 9 k b 。按照我们前面的裁剪策略得到的内核,完全能够满足车载显示屏的功能需求。3 2 3 虚拟内存屏蔽标准l i n u x 具备虚拟内存的功能,使应用程序的内存需求量可以无限制上升,从而为程序功能的增加提供方便。但在车载显示屏嵌入式系统中并不需要过于强大的功能,而且虚拟内存会带来无法控制的时间因素,因此需要将l i n u x 虚拟内存机制进行屏蔽。实现虚拟内存的机制有:地址映射机制、内存分配和回收机制,缓存和刷新机制、请页机制、交换机制、内存共享机制。要实现这些机制的数据结构和函数的屏蔽或修改,就要修改与之相关的文件。需要改动的文件主要在i n c l u d c l i n u x 、m m 、d r i v e r s c h a r 、f s 、i p c ,k e m e l 、i n i t 目录下。主要的改动西南交通大学硕士研究生学位论文第19 页如下:去掉与虚拟内存有关的主要数据结构v d l 盯e a - s t r u c t ,将进程的m m s t 九l c t 结构中的v m - a i e 置- s t r u c t 去掉,v m a r e a _ s t n l c t 利用了v m _ 0 p s 来抽象出对虚拟内存的处理方法,屏蔽与虚拟内存操作有关的函数;内存映射主要由d om m a p 来实现,改写此函数的代码,取消交换操作,取消内核守护进程k s w 印d 【1 1 】【1 2 】。另外一种比较简单的方法是将系统的交换空间大小置为零,即关掉虚拟内存的调入功能。因为在嵌入式l i n u x 中保存虚拟内存【2 l j f 帅j 代码也未为不可,一是将它清除很费事。另外它支持共享文本,这样就可以使许多程序共享一个软件,没有这个,每一个程序都要有它自己的库。在车载显示屏的嵌入式l j n u x 操作系统中,我们将交换空间的大小设置为零,关掉虚拟内存的调入功能,此后,如果编写的程序比实际的内存大,系统就会当作程序的运行使用全部交换空间来进行处理,这将导致程序不能运行,或者m a l l o c 失灵。3 3 车载显示屏的嵌入式l i n u x 根文件系统构建l i n u x 文件系统【1 9 l l :t 胂】具有强大的功能,不仅负责管理文件,还提供管理设备、屏蔽设备等复杂性的手段,为系统内核的其他部分、用户命令和系统函数调用提供统一的服务接口。而且,通过引入虚拟文件系统m 1 ,l i n u x 文件系统可以支持不同类型的文件系统,如m 1 n i x ,c x t 2 ,m s d o s 等。本论文采用了e x t 2 文件系统。图3 - 2 文件系统层次结构示意闰酉南交通大学硕士研究生学位论文第2 0 页因为车载显示屏的存储设备为6 4 m 的c f 卡,存储空间有限,所以必须构建较小的适合嵌入式l i n u x 的根文件系统,而不能直接搬用桌面l i u x 的根文件系统。作者设计的车载显示屏最小化根文件系统结构如图3 3 所示。r 0 0 t,b 0 0 tb i ns b i d c ve t cl i bp r o c,u s rv a rt m p厂一b z i a g clg r u bi n i t t a br c c i r c s v s i n i lf s t a b圈3 3 显示屏最小化文件系统结构图此根文件只包含了车载显示屏嵌入式u n u x 操作系统所必须的文件,不需要的文件统统不要。下面就此根文件系统的主要目录【1 9 l l 叫设计作如下说明,这也是显示屏嵌入式l i u x 操作系统构建的重点:b o o t本目录下存放车载显示屏嵌入式l i n u x 的启动文件g r u b 等和前面所裁剪的内核b z h a 萨。,d e vl i n u x 把所有的设备都作为文件看待,对外部设备的读写操作都是通过对相应的设备文件读写完成的l 。构建本目录,需按照车载显示屏的硬件配置,用m k n o d 命令建立所需的设备文件,如托l k n o dc o n s o l ec5l 。当然也可以直接从原系统( 开发主机系统) 中拷贝需要的设备文件。还有一种快捷的方式就是把原系统d e v 下的文件拷贝过来,然后删除在车载显示屏嵌入式系统应用中不必要的文件。本设计中采用后者来实现:c p- d p r d e v m y d i s k 删除不要的文件如删除所有以s d ( s c s i 设备) 开头的文件。最终保留西南交通大学硕士研究生学位论文第2 4 页3 建立根文件系统徉m k d i r m n “c f c撑m o u n t d e 帅d c l m n f c装载h d c l 到当前的开发主机l i n l l x 系统中椭n k d i r ,m 叫c f c ,d e vb o o t e t c b i ns b i n l i bp m c v a r t i n p u s r建立根文件系统目录然后将上一节所构建的根文件系统各目录中的文件拷贝过来。4 安装b o o t l o a d e r :将裁剪好的内核拷至b o o t 目录下,同时创建一个g r u b 目录。在b o o t g r u b ,下面建立一个g m b c o n f 文件,并与m e 肌1 s t 建立一个软连接。写入启动选项,同时将m e 聃1 s ts t a g e ls t a g e 2 复制到这个目录下。g m b c o f 文件的部分代码如下所示:d e f a u l t = 0t i m e o u t = 0t i t l em y l i n u xr o o t ( h d 0 ,o )k e r n e l b o o t b z i m a g er or o o t = d e v h d c lv g a = o x 0 3 1 1通过g r u b 命令行方式进入g m b 配置模式。在进入g m b 命令行方式后,分别执行:搬0 0 t ( h d l ,0 )群s e t u p ( h d l )完成对c f 卡的系统引导程序g r u b 的写入。现在系统已经正确安装在c f 卡上了,并具有了独立启动的能力。5 开机自动运行程序:为了方便乘务员的操作,设计显示屏开机后自动运行用户程序。只需在前面编写的启动脚本c t c r c d r c s y s i n i t 中加入开机要运行的可执行程序即可。3 5 小结通过上述工作,成功构建了车载显示屏的嵌入式u n u x 操作系统。而且此嵌入式l i n u x 在车载显示屏硬件平台上工作正常、运行可靠,提供给用户的编程接口包括g n uc 库、线程库和常用的s h c u 命令等。安装于c f 卡上的车载显示屏嵌入式l i 肌x 操作系统的大小为1 5 7 m ,符合车载显示屏的存储器限制条件。西南交通大学硕士研究生学位论文第2 5 页第4 章车载显示屏软件实时性研究与设计4 1 车载显示屏实时性要求与嵌入式l j n u x 的遗留问题车载显示屏作为保证机车行车安全的重要设备之一,必须保证其实时性。“实时”需要时间的精确性,不仅需要执行的准确性,而且也要求执行完成的时间的可预见性,执行必须在指定的时间内完成,否则结果是不可用的。实时系统的实现方法不尽相同,大致可以划分为两大类:软实时系统和硬实时系统。硬实时系统需要完全的确定性和可预知性,在软件上一般都是采用专门的调度算法( 静态表驱动调度算法) ,在所有任务执行之前先确定任务之间的先后顺序和任务调用时机等。因此,每一项任务能否在其截止期内运行成功事先都是可以知道的,任务提交者可以根据实际情况来保证所有任务的正常执行【3 9 l 。软实时系统的硬件一般没有太多的特殊要求,可以在通用计算机上实现。但软实时系统的调度需考虑整个系统的效率问题,一般采用动态调度算法,其复杂度比静态调度算法的复杂度大很多,因此软实时系统比硬实时系统更为复杂一些。一般来讲,软实时问题能够被抽象成硬实时问题,这样,就可以用解决硬实时问题的技术来分析和解决软实时问题。一个完整的实时系统要求从最底层的硬件、操作系统一直到最上层的应用软件都能够满足实时性要求,如果中间某一部分满足不了实时性要求,整个系统的实时性能都将受到影响,导致整个系统的实时性不能得到保证。所以保证系统各环节的实时性是设计一个实时系统时要着重考虑的问题。车载显示屏硬件平台x 8 6 体系的c p u 提供一定的实时性保证,只要软件支持,它就能够用于实时系统。为了满足实时性要求,其上一层的操作系统必须是实时操作系统,当然,应用软件也必须按照实时软件进行设计。但是基于标准l 血u x 内核构建的车载显示屏嵌入式l i n u x 在实时性方面还是存在许多的缺陷。l i n u x 内核的设计关注于应用程序的吞吐量和内核整体设计的优雅,作为提高吞吐量的必然要求,l i n u x 的调度试图提供一种“公平分配”策略来保证所有的进程可以均衡地享有c p u 资源。如图4 1 所示,西南交通大学硕士研究生学位论文第2 8 页除r t u n u x 核心外,大部分r j n u x 功能在一组可加载内核模块中,这些模块提供了可选服务,它们包括: r t ls c h e d 是一个优先级调度程序,同时支持符合p o s i x 接口标准的a p i 。 r t lt i m e r 对定时器进行支持,提供一个对时钟进行操作的接口。 r t lp o s i x i o 为设备驱动程序提供符合p 0 s i x 标准的r e a d w r i t c o p e 接口支持。 r t lf i f 0 通过一种虚拟的设备层部件( r t f i f o ) 将r t 任务和中断处理子程序同l i n u x 进程联系起来,“n u x 进程可以通过n lf i f 0 对r t _ f i f o 进行f e a d w r i t e 操作,n l _ f i f 0 也向r t 任务提供了访问r t f i f o 的接口函数。 s e m a p h o r e 向实时任务提供信号灯的使用接口。 m b u f f 在实时部分和“舢x 进程之间提供使用共享内存的接口。4 3 2r t l i n u x 的实现原理r t l i n u x 的实现原理是:它将l i n u x 内核当作一个任务,运行在一个小的实时操作系统下,只有在没有实时任务需要运行的空闲状态时,l i n u x ( 作为一个任务) 才能投入运行。动态地看就是,u n u x 的运行不断地被实时任务所打断。作为任务的l i n u x 内核永远不能关闭( d i s a b l e ) 中断,也就是不能避免自己被实时中断任务先占( p r c c m p t ) 。实现这一点的技术关键是用软件来模拟一个控制中断的硬件一一它将实时中断和非实时中断区别对待。l i n u x 为了取得某些操作的同步( s y n c h r o n i d t y ) ,经常要关中断,这是造成其不可先占的根本原因。在r t l i n u x 中,当l i n u x 通知c p u 关闭中断时,实时内核截获这个请求,并把它记录下来,然后返回到l i u x 继续运行( 注意:并未真的将中断关闭! c p u 标志寄存器的中断标志位i f 仍为”1 ”) 。所以,l i n u x 并没有真正禁止中断。无论i j n u x 处在什么状态,它都不会对实时系统的中断响应增加任何延迟。当一个中断到来时,实时内核截获到这个中断,并识别出其类型( 实时中断还是l i n u x 中断) 。如果这个中断是实时的,则唤醒其处理函数;如果这个中断不是实时的,或者虽是实时的但其处理函数表明要同“n u x 共同处理这个中断,则对之作“待处理”( p 髓d i g ) 标记并送入一个队列排队等候。接下来,假如u n u x 己经开放( e n a b l e ) 中断( 如上所述,实时内核会对l i n u x的所有有关中断的操作作记录,所以它知道l i n u x 对中断的操作情况) ,实时内核就用软中断指令唤醒u u x 一侧的中断处理函数,同时,使c p u 重新开西南交通大学硕士研究生学位论文第2 9 页放中断( 每当c p u 响应一个中断时,会自动关中断,i f = 0 ) ,以允许实时中断进入。这样l i n u x 的所有中断处理机制都能得到满足:当它关闭中断时,实时内核就不启动任何n l u x 中断处理函数,当然也就不会引起任何混乱。从以上机制可以看到,驱动l i n u x 中断处理函数的实际上是实时内核,硬件发出的中断信号完全由实时内核接管【3 8 】。r t l i n l l 【的实现原理如图4 2 所示,其中实时内核与l i n u x 内核之间的联系即中断模拟。l i n u x 进程t“n u x 内核il j n u x中实时ij 实时任务或断服务程f i f ofi 中断处理程上上实时内核:中断控制器图4 - 2r t l i n u x 实现原理l i n u x 是用“c l i ”和“s t i ”宏来实现关中断和开中断的。在标准的l i n u x中,这些宏只是简单地执行相应的x 8 6 指令。r n j n u x 对这些宏作了修改,这样,当l i n u x 用“c l i ”关闭中断时,它并不真正地屏蔽所有中断,而是转而执行一些r t l i n u x 代码( 即上面所说的对i j n l l x 中断进行记录的代码) 。从以上我们可以看到,硬件中断信号完全由实时内核所接管,而与l i n u x完全无关。无论u n u x 正在做什么,不管它运行在内核态还是用户态,中断是开放的还是关闭的,也不管它是否正运行在回旋锁( s p i n 1 0 c k ) 状态,实时系统总能够对中断作出及时响应。下面我们再从c p u 的中断机制角度对r t l i n u x 模拟中断分类硬件的方法作一说明。前面我们看到,在r t l i n u x 中,n l l x 内核永远不能关闭中断,实时内核为了不错过任何一个中断也不会轻易关中断,所以每一个中断都会引发相应中断处理子程序的执行。r t u n 慨中,在保留标准u n u x 的i d t r 中断描述符表) 的同时,实时内核另造了一个i d t ,并使c p u 的i d t r ( 中断描西南交通大学硕士研究生学位论文第3 0 页述符表寄存器) 指向这个i d t 。当一个中断信号到来时,c p u 会自动由这个中断信号的中断类型码( 由中断控制器提供) 从i d t r 指向的i d t 中相应位置获取中断处理子程序的入口地址并转入执行。在中断处理子程序中作如下处理:如果它是一个实时中断,则转去执行相应的实时处理函数;如果它是一个l i n u x 中断并且l i n u x 处于开中断状态,则使i d t r 重新指向u n u x 的i d t 并发出一个软中断,激活u n u x 的中断处理函数,如果u n u x 处于关中断状态,则使这个中断进入等候队列。4 3 3r t l ;n u x 的实时多任务调度机制4 3 3 1r t “n u x 的任务调度策略r n j n u x 的任务调度策略采用完全适应于实对应用的按优先级抢占c p u的调度方法。这种方法保证任何时刻都是优先级最高的任务占用c p u 。优先级最高的任务可以中断当前运行的程序( 即使是中断任务) 而抢占c p u 。也就是说它不必等到当前运行任务执行完成,发生状态转换,重新调度时才获得c p u ,而是立即打断当前任务,获得c p u 。优先级较低的任务只有在所有优先级比它高的任务都运行完后才能投入运行。采用这种调度方法的响应时间最快可达几微秒( 随c p u 主频的不同而不同) ,适用于硬实时( h a r dr e a l t i m e ,也称严格实时) 应用。4 3 3 2r t u n u x 的任务状态r t l i n u x 中的实时任务在运行过程当中必处于以下3 种状态之一: 睡眠( ( s l e e p i n 曲态:也称等待状态或阻塞状态。正在执行的任务由于发生某事件而无法执行,放弃c p u 而处于暂停状态,此即睡眠状态。此时任务处于等待队列中,待资源有效时唤醒,也可由其它任务通过信号( s i g n a l )或定时中断唤醒,唤醒后进入就绪队列并立即引起调度程序运行; 就绪( r e a d y ) 态:就是除c p u 外其它运行条件都已具备,只是因为有更高优先级的任务正在使用c p u 而不能投入运行,任务处于等待c p u 的状态,处于就绪队列中,一旦获得c p u 便立即投入运行; 运行( r u n n i n g ) 态:就是任务正在c p u 上运行,在单c p u 系统中,只有一个任务处于执行状态。以上三种状态都是运行时状态,另外还有停止时状态也即挂起状态。挂起状态即由于某种原因调度程序将正在执行或没有执行的任务挂起,使之西南交通大学硕士研究生学位论文第3 1 页处于静止状态。即:对正在执行的任务暂停执行,对就绪的任务暂时不能接受调度,而对等待的任务,即使引起阻塞的事件消失也不能被调度。一个任务或是活动的或是静止的( 即被挂起的) ,未被挂起的就绪状态和等待状态分别称为“活动就绪”和“活动等待”,而被挂起的就绪状态和等待状态则分别称为“静止就绪”和“静止等待”。处于挂起状态的任务要先经过解除挂起才能恢复到挂起前的状态。4 3 3 3r 1 r l i n u x 的调度核心r 1 l i n u x 调度核心由时钟中断服务程序和任务调度程序组成,它决定哪个任务获得c p u ,并监控各任务状态。根据调度策略和各任务状态,调度核心对任务实行管理,系统中各任

温馨提示

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

评论

0/150

提交评论