已阅读5页,还剩52页未读, 继续免费阅读
(电力系统及其自动化专业论文)linux在地铁ddu中的应用研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
a b s t r a c t a b s t r a c t t np r a c t i c a le n g i n e e r i n g ,t h ed r i v e rd i s p l a yu n i ti sa ni m p o r t a n te q u i p m e n tt o c o m p l e t e 。t h eh u m a n - m a c h i n ei n t e r f a c ea n ds h o w i n gi n f o r m a t i o no ft h es u b w a yt r a i n s y s t e m t h i sd i s p l a yu n i tc o n d u c t sh u m a n so p e r a t i o nc o m m a n da n da s s u r e st h es a f e t y o ft h es u b w a yt r a i n a n dt h e r ei si m p o r t 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 g o nt h er e s e , u c ho fr e a l i z a t i o no ft h ed r i v e rd i s p l a yu n i t r e s e a r c hi sd o n ei nt h ed o m a i no fe m b e d d e dl i n u xr e a lt i m eo p e r a t i o ns y s t e m a n dt h ee m b e d d e dg r a p h i c a lu s e ri n t e r f a c ed 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 r d i s s e r t a t i o n f i n a l l yt 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 yb a s e do ne m b e d d e d l i n u xi sa c c o m p l i s h e d t h ex 8 6 一c p ub a s eh a r d w a r ei sc h o s e na st h eh a r d w a r ep l a t f o r mo fd r i v e r d i s p l a yu a i t t h ee m b e d d e dl i n u xo p e r a t i o nf i t t i n gt ot h ed i s p l a yu n i ti sb u i l ta n d t 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 d s o0 n b e c a u s et h ee m b e d d e dl i n u xc a n n o ts u 衔c et h er e a lt i m eo ft h ed i s p l a yu n i t t h ea u t h o rm a k e su s eo f r t - l i n u xt or e b u i l dt h er e a lt i m ee m b e d d e dl i n u x t h e g r a p h i c a lu s e ri n t e r f a c eo fm ep cl i n u xi st o ov o l u m i n o u st oa p p l yt ot h eo n - b o a r d d i s p l a y q tw h i c hi sf l 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 no ft h eg r a p h i c a l u 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 g a la p p l i c a t i o np r o g r a m m i n gi n t e r f a c eo f t h ed d ui ss u p p l i e d i nt h ee n d ,t h ed i s p l a yo fs u r v e i l l a n c ei sd e v e l o p e db a s e do nt h e s o f t w a r ep l a t f o r mo ft h eu n i t 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 f i n a l l y , t h ep r o b l e m s r e q u i r i n gf u r t h e r s t u d i e sa r ed i s c u s s e d k e yw o r d s :e m b e d d e dl i n u x ,d r i v e rd i s p l a yu n i t ,r t - l i n u x ,q t i i 同济大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,进行 研究工作所取得的成果。除文中已经注明引用的内容外,本学位论文 的研究成果不包含任何他人创作的、已公开发表或者没有公开发表的 作品的内容。对本论文所涉及的研究工作做出贡献的其他个人和集 体,均已在文中以明确方式标明。本学位论文原创性声明的法律责任 由本人承担。 学位论文作者签名: 少年三月e t 学位论文版权使用授权书 本人完全了解同济大学关于收集、保存、使用学位论文的规定, 同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版 本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、 扫描、数字化或其它手段保存论文;学校有权提供目录检索以及提供 本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有 关部门或者机构送交论文的复印件和电子版;在不以赢利为目的的前 提下,学校可以适当复制论文的部分或全部内容用于学术活动。 学位论文作者签名: 1 昭中 沙八年三月日 第l 章引言 第1 章引言 1 1 地铁司机显示单元及其软件现状 地铁司机显示单元( d r i v e rd i s p l a yu n i t ,以下简称d d u ) 是地铁列车驾 驶员与列车系统之间进行人机信息交互的主要设备。在实际运用中,司机显示 单元将地铁列车的行车信息、故障信息和设备状态等反映给司机,以便有效地 指导司机操作,确保行车安全,减i j , y i j 车故障的影响。 早期地铁列车由于电子设备较少,信息显示装置比较简单,在国际上,早 期采用仪表和信息指示灯等显示相关信息。随着列车电子自动控制柜等设备的 出现,传统的显示方式已不能满足列车信息显示的要求,车载信息数码显示器 应运而生。但数码显示装置为乘务员提供了更多的实时信息,但信息内容有限, 无法提供直观的文字和图形信息。 随着地铁列车控制技术的进一步发展,采用数字控制和微机控制的列车控 制系统在国内外已经得到广泛的应用,特别是微机系统的应用为驾驶员和检修 人员获取更多的机车信息提供了条件。在国外采用微机控制的列车上,大量采 用了智能化的显示单元来补充和替代常规的仪表显示。智能化的信息显示单元 已成为列车上不可缺少的一个重要组成部分。我国地铁列车司机显示单元的研 制工作是从9 0 年代初开始起步。随着列车显示单元技术的进一步完善,新造列 车采用司机显示单元的数量和显示内容都将不断增加 司机显示单元d d u 分为硬件和软件两部分,软件部分由列车司机显示单元 操作系统和基于操作系统的上层应用软件组成。操作系统在整个司机显示单元 软件中占有重要地位,它制约着应用软件的功能以及整个系统的性能。 目前我国的列车司机显示单元大多采用d o s 操作系统,尽管其应用软件的 实时性较好,但功能较少,应用软件也少,特别是软件的扩展性非常弱,难以 满足越来越多的功能要求,比如在d o s 平台下高效开发复杂图像和视景。d o s 操 作系统有以下难以解决的问题: 1 实现网络接口困难,即使采用专用的软件包,实时性也难以达到要求, 如果自己开发,难度较大。 第1 章引言 2 为了使用图形界面,必须自己从底层开始开发。调色板、直接写屏、鼠 标驱动和消息循环等都需要自己建立,难度和工作量很大。 3 系统升级困难,扩展性差,若增加功能,可能要对全部软件进行重新设 计。 4 由于d o s 操作系统平台的根本限制,不能提供进程保护,完全依靠中断 进行处理,系统稳定性较差,难以满足多任务的要求。 随着新技术的不断出现,用户对司机显示单元d d u 的功能提出了越来越高 的要求,比如通用的高速数据转储接口( 例如u s b ,8 0 2 1 1 x 、以太网接口等) ,3 g ( g p s 定位、与地面实时无线卫星数据通信等) 、数据库、互联网等功能以及更为 丰富和友好的显示界面等等。而d o s 操作系统在满足这些需求方面已经显得无 能为力了。 1 2 嵌入式软件技术及其在d d u 显示单元中的应用优势 1 2 1 嵌入式软件技术 嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪, 对功能、可靠性、成本、体积、功耗等有要求的专用计算机系统乜1 。它一般由嵌 入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等部分组 成。随着信息技术的进步,嵌入式系统在各行各业都得到了广泛的应用,当前 全球嵌入式系统带来的工业年产值已经超过了1 万亿美元,成为i t 产业的争夺 重点之一。一个嵌入式系统是一个具有特定功能或用途的计算机软硬件集合体, 其结构如图1 1 所示。 第1 章引言 应用软件 俞 嵌入式操作系统软件平台 彳 园 以微处理器微控制器为核心的硬件平台 图1 1 嵌入式系统架构 嵌入式系统的硬件主要包括嵌入式处理器、存储器等。 1 嵌入式处理器:嵌入式处理器是整个嵌入式系统的核心,工作在用户自 己设计的系统中。嵌入式处理器功能跨度很广,寻址空间从几k b 到几十m b 甚 至几百上千m b ,处理速度从0 1m i p s 到上百m i p s ,封装方式繁多,常用的封装 形式从几个引脚到数百引脚不等。目前嵌入式处理器可分为嵌入式微控制器、 嵌入式微处理器和嵌入式d s p 处理器等几大类。嵌入式系统对嵌入式处理器的 选择是由系统功能需求决定的,同时嵌入式处理器的选择也决定了整个嵌入式 系统的性能特点。 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 l a s h 来代替磁盘驱动 器构成所谓的“电子盘 或“固态盘”,在嵌入式系统中有着很好的发展前景。 与通用计算机相比,嵌入式处理器的功耗、体积、成本、可靠性、速度、处理 能力、电磁兼容性等方面均可以根据用户系统的具体需求,进行最适合系统性 能要求的配置,从而达到性能和成本的最优平衡。嵌入式系统软件是实现嵌入 式系统功能的关键,主要包括与硬件相关的底层软件、操作系统、图形用户界 面、和应用软件等等。对嵌入式系统软件的要求也和通用计算机有所不同。 1 ) 软件要求固态化存储 为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储 器芯片或单片机本身中,而不是存贮于磁盘等载体中。 2 ) 软件代码高质量、高可靠性 第1 章引言 尽管半导体技术的发展使处理器速度不断提高、片上存储器容量不断增加, 但在大多数应用中,存储空间仍然是宝贵的,为此要求程序编写和编译工具的 质量要高,以减少程序代码长度,提高执行速度。 3 ) 系统软件( 0 s ) 的高实时性是基本要求 在多任务嵌入式系统中,对重要性各不相同的任务进行统筹兼顾的合理调 度是保证每个任务及时执行的关键,单纯通过提高处理器速度是无法完成和没 有效率的,这种任务调度只能由优化编写的系统软件来完成,因此系统软件的 高实时性是基本要求。 嵌入式操作系统是整个嵌入式系统软件的核心。通用计算机具有完善的操 作系统和应用程序接口( a p i ) ,是计算机基本组成不可分离的一部分,应用程序 的开发以及完成后的软件都在0 s 平台上面运行。嵌入式系统则不同,应用程序 可以没有操作系统直接在芯片上运行。但是为了合理地调度多任务,合理地利 用系统资源以及系统函数,用户必须自行选配嵌入式操作系统开发平台,这样 才能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量。 1 2 2 嵌入式软件在司机显示单元d d u 中的应用优势 司机显示单元软件是实现司机显示单元功能的关键,它主要包括与硬件相 关的底层软件、操作系统、图形用户界面和应用软件等。其中,嵌入式操作系 统是司机显示单元软件的基础和核心。 嵌入式操作系统的引入可使司机显示单元软件的开发更加方便和快捷,因 为嵌入式操作系统具有成熟可靠的存储器管理、中断处理、任务调度等功能。 嵌入式操作系统是用来支持嵌入式应用的系统软件,是嵌入式系统极为重要的 组成部分,通常包括与硬件相关的底层驱动程序、系统内核、设备驱动接口、 通信协议、图形用户界面等。嵌入式操作系统具有通用操作系统的基本特点, 如能够有效管理复杂的系统资源,能够对硬件进行抽象,能够提供库函数、驱 动程序、开发工具集等。但与通用操作系统相比较,嵌入式操作系统在系统实 时性、硬件依赖性、软件固化性以及应用专用性等方面,具有更加鲜明的特点。 能够满足于司机显示单元的应用软件和普通应用软件有很大的区别,它不 仅要求其准确性、安全性和稳定性等方面能够满足实际应用的需要,而且还要 尽可能地进行优化,以减少对系统资源的消耗,降低硬件成本。 4 第1 章引言 1 3 论文主要工作 本论文的主要目的就是研究嵌入式l i n u x 技术在d d u 平台中的应用与实现, 为新一代d d u 的软件开发提供一种技术尝试。论文的目标是完成基于嵌入式 l i n u x 的车载显示屏d d u 软件平台的设计开发,实现一个可提供应用层开发接口 的d d u 平台。软件平台具备完整的操作系统和应用编程接口( a p i ) ,用户利用软 件平台可以透明地进行应用软件的开发。 论文主要工作如下: 1 分析d d u 平台功能需求,构建车载显示屏的硬件平台并给出软件平台的 总体设计。 2 分析l i n u x 源码,构建适合d d u 显示屏软、硬件平台需求的嵌入式l i n u x 操作系统。 3 利用r t - l i n u x 完成车载显示屏嵌入式l i n u x 的实时性改进。具体工作 包括r t - l i n u x 关键技术的分析和嵌入式l i n u x 实时性改进。 4 利用q t 完成车载显示屏图形用户界面设计,具体工作包括d d u 的界面 生成等,并给出车载显示屏软件平台图形用户界面编程接口。 5 利用i n i t r a m d i s k 进行系统的数据保护,以保证系统在掉电情况下对系 统数据的保护,从而避免地铁车辆运行系统的瘫痪。 1 4 论文内容组织 论文共分七章,介绍如下: 第1 章绪论。首先介绍车载显示屏及其软件现状,然后分析嵌入式软件技 术及其在车载显示屏中的应用优势。 第2 章d d u 显示屏的总体设计。在对d d u 功能需求分析和规范描述的基础 上进行硬件平台的构建和软件系统的总体设计。 第3 章车载显示屏嵌入式l i n u x 构建。详细分析了车载显示屏嵌入式 l i n u x 构建的关键技术及过程,最终实现了运行于车载显示屏f l a s h 卡存储设备 上的嵌入式l i n u x 操作系统。 第4 章车载显示屏软件实时性研究与设计。首先分析了车载显示屏的实时 性要求以及嵌入式l i n u x 的遗留问题,然后利用r t - l i n u x 完成了车载显示屏嵌 入式l i n u x 的实时性改进。 第5 章车载显示屏图形用户界面研究与设计。首先给出嵌入式l i n u x 的图 第1 章引言 形用户界面技术特点,重点阐述了q t 的技术优势,在对q t 深入分析的基础上 进行了q t 的裁剪、移植,完成了车载显示屏软件平台的图形用户界面设计。 第6 章针对系统的数据保护。首先分析了地铁列车可靠性运行的要求,然 后利用i n i t t 洲d i s k 技术,增强盼系统的健壮性。 第7 章论文的总结和展望 6 第2 章d d u 系统的总体设计 第2 章d d u 系统的总体设计 2 1d d u 在整个t i m s 系统中的位置 以上海地铁三号线( 明珠线) 为例,地铁列车集成控制系统( t i m s ) 是控 制地铁列车运行的核心。典型的a b c c b a 六车厢的地铁t i m s 的架构如图2 1 所 示: c arv ir t u a l n8 t w o k1n 。t w o7 k2 n u mbe r i n g 123876 臣三= = 三 三三 e = j = 三je = 习 abccba s i m p t em e d i u mf i ps t a t i ct r a i nn e t w or k 卜il m s| 上j r上j r 回圈! 固圈回i a o a i oi 圈l 回圈j 圈圈圈圈 回匦囹; 叵丑回;园回回围 固 :一 囤j 图2 1 六车厢地铁列车t i m s 架构图 根据上图所示,d d u 是人与地铁列车交互的平台与环境。一方面,地铁列车 的信息通过d d u 反应运行情况;另一方面,驾驶员通过d d u 来发送命令,引导 列车常规运行和乘客上下车。图2 2 是d d u 在驾驶台的几何布置。 7 第2 章d d u 系统的总体设计 囚 图2 2 驾驶台前端 d d u 是处在司机驾驶舱的驾驶台中间位置,通常是触摸屏配置的。它向地铁 列车驾驶员提供必要的运行信息,同时接受通过触摸屏触摸输入的指令。d d u 的 各个显示页面主要提供一下的信息: ( 1 ) 有关列车设备状态和列车各种功能的信息 ( 2 ) 设备出故障时候的定位 ( 3 ) 音频和视频的选择,列车次号的编辑等服务功能 从d d u 上反馈给地铁列车驾驶员的信息和消息是按照字母顺序,同时结合 带有色彩和图形的图标共同显示。另外,从列车驾驶员向d d u 发送命令,是通 过触摸d d u 屏幕上相关区域完成。本文是通过鼠标点击方式模拟触摸屏方式。 2 2d d u 在系统中运行过程 在整个系统上电之后,通过嵌入内核代码中a u t o r u n b a t ,让自动执行d d u 程序,即将d d u 应用程序随操作系统系统程序一起启动。在开始运行d d u ,首先 执行上电自检和初始化d d u ,这将维持几秒钟时间。然后进入“准备”、“运行”、 “乘客信息”等各个界面。首先进入的是“准备”界面,然后驾驶员根据相应 信息选择界面进入。下图表示的是系统上电之后,d d u 各界面的连接链图。 第2 章d d u 系统的总体设计 2 3 硬件平台 图2 3d d u 上电后各显示界面链接图 系统选用x 8 6i n t e l 平台,1 2 8 ms d r a m ,内部集成了v g a 显卡,标准8 0 0 * 6 0 0 分辨率l c d 显示器,1 0 0 m 1 0 m 网卡,支持p c a t 兼容的键盘和p s 2 鼠标。这样 的硬件平台r t - l i n u x 对其完全支持,不需要做汇编层的移植。 2 4 设计方案 地铁d d u 显示屏主要需要完成如下的任务: 1 提供用户界面 主要负责操作信息提示,显示各种地铁运行模式和状态信息,接受用户输 入的各种指令,包括模式设置,时间设置,车号设置和制动开关控制,地铁报 站信息的设置等。 2 实现控制流程 根据地铁列车反馈提供的状态参数以及列车员设置的参数,作出下一步的 动作和地铁状态更改,向地铁发送控制指令,执行列车员的控制指令。 9 第2 章d d u 系统的总体设计 3 与调度中心的通讯 从地铁运营调度中心获取线路等参数要求,与调度中心保持一致和统筹安 排。 由以上分析可知,d d u 的任务可以划分为实时任务和非实时任务两个部分: 操作信息提示,显示参数和状态信息,以及各种参数的设置,这些任务就算偶 尔延迟,也不会造成很大的影响,所以可以归类为非实时任务。而与调度中心 的通讯,根据地铁列车状态参数来发出指令,发送控制命令,这些任务能否及 时完成直接影响到系统的安全,所以需要绝对的保证它的实时性,因此把它归 类为实时任务。对于非实时的任务,笔者把它放在r t - l i n u x 的非实时域,而对 于实时任务,则放在实时域,由r t - l i n u x 下面的实时模块来完成。 主界面负责显示列车当前的运行状态,同时响应用户的操作指令。主界面 是通过q t 派生的一个窗口类,当捕获到操作指令时,做出判断,并切换到相应 的子界面,如从“p r e p a r a t i o n ”切换到“o p e r a t i o n ”子界面等。这些子界面 也是通过q t 派生的窗口类,它们通过q t 的控件类来接受用户输入的设定值, 如果是合法值,则通过f i f o 传递给实时模块,由实时模块发送给内核。 实时模块是通过r t l i n u x 的实时时钟中断来保障的。r t l i n u x 周期性的唤 醒处理程序。 系统的框架图如下: 图2 4 系统结构图 1 0 第2 章d d u 系统的总体设计 2 5 设计过程简介 1 首先,打造出合适大小的r t - l i n u x 内核。选用l i n u x 2 4 2 0 版本的内 核,使用r t l in u x 的k e r n e l p a t c h - 2 4 对其进行修补,然后,在修改后的内 核代码的基础上进行内核配置,去掉不必要的内核支持选项,从而得到一个精 巧够用的实时l i n u x 内核,在目标平台上成功的运行这个内核,是开发工作的 第一步。 2 非实时部分的开发。主要是测试基于q t 编写的界面从q t 提供的丰富 的窗口类,派生出自己的窗口子类,构建出图形用户界面。它负责对用户的操 作进行提示,接受用户输入的运行参数,传递给实时模块。并根据实时模块传 送过来的参数,显示系统当前的工作状态,譬如处于a t c 模式,紧急状态,报 警状态等等。 3 实时模块的运行。这一部分主要负责与下位机通过网关进行通讯和实现 控制逻辑,它接收下位机传送过来的速度等数据,车厢门开与关等开关量:然后 根据当前的动作指令和机器状态做出下一步的动作,把控制指令发送到操作系 统。实际上实时部分的程序是作为模块插入的,此时要注意模块之间的相互依 赖性。在插入自己的实时模块之前,必须要先插入r t l i n u x 的调度模块 r t l s c h e d ,以及一些相应的支撑模块,如r t l t i m e ,r t l _ p o s i x i o 等等。在 测试阶段,可以通过手工加入,以后可以在系统的启动脚本里面自行插入模块。 4 实时部分和非实时部分的集成。这一步主要是测试两者之间通过f i f o 的通讯情况。非实时部分负责把用户输入的参数通过f i f o 传送到实时模块,实 时模块负责把系统的状态参数通过f i f o 传递给非实时部分,由它显示给用户。 基于r t - l i n u x 和q t - e m b e d d e d 进行系统开发,利用现有的a p i ( 应用编程接口) , 可以大大的减轻开发强度,加快开发的速度,更重要的是系统具有很好的可扩 展性。譬如利用l i n u x 对网络协议的支持,在系统增加一个嵌入式的h t t p 服务 器,通过它来读取用户在网络另一端设置的参数,然后通过进程间通讯的方式 传递给控制程序,再发送给操作系统执行;而系统的状态也可以通过w e b 页面 供给管理员浏览:这样外界就可以通过浏览器在远程读取和设置系统的参数了。 这种在传统开发方式下很难实现的功能对于具有强大的网络支持能力的l i n u x 来说,却是可以实现的。 5 在完成所有的实时和非实时( q t 开发) 之后,系统需要再打“补丁”, 第2 章d d u 系统的总体设计 从而确保系统的数据完备性和安全性。这个“补丁就是利用i n i t r a m d i s k 技 术,让根文件系统从内存中启动,而这个内存是模拟硬盘的。这样,可以避免 在系统突然断电的断电特殊情况下,对l i n u x 文件系统数据的“崩盘式”破环。 第3 章d d u 平台的嵌入式l i n u x 的构建 第3 章d d u 平台的嵌入式l i n u x 的构建 嵌入式l i n u x 操作系统是d d u 显示屏软件平台的核心,它负责管理整个系 统底层的硬件平台,也为上层的功能模块提供一个运行的环境后续各节详细分 析和描述了车载显示屏的嵌入式l i n u x 构建的原理、方法和过程。 3 1 引导程序设计 引导程序( b o o tl o a d e r ) 是在操作系统内核运行之前运行的一段程序。通 过这段程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统 的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确 的环境。 嵌入式系统中启动代码通常存放在f l a s h 或e p r o m 芯片上,同时装有b o o t l o a d e r 、内核的启动参数、内核映像和根文件系统映像的固态存储设备的典型 空间分配如图3 1 所示。 引导程序 图3 1b o o tl o a d e r 空间分配示意图 b o o tl o a d e r 是依赖于硬件而实现的,每种不同的c p u 体系结构都有不同的 b o o tl o a d e r ,有些b o o tl o a d e r 也支持多种体系结构的c p u 。车载显示屏硬件 平台的c p u 为x 8 6 体系结构,可供选择的b o o tl o a d e r 有g r u b 、l i l o 等。本论 13 第3 章d d u 平台的嵌入式l i n u x 的构建 文选用l i n u x 的标准引导程序g r u b 作为显示屏嵌入式l i n u x 系统的引导程序。 g n ug r u b ( g r a n 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 n u x 系统,并且g r u b 是一个自由软件。关于g r u b 的安装及使用详见3 4 节。 3 2 车载显示屏的嵌入式l i n u x 内核裁剪 3 2 1 内核裁剪策略 内核常驻内存空间,对应用程序进行调度和控制,并提供初始的系统调用, 其大小对目标系统运行的效率和稳定性起着非常重要的作用,对一些嵌入式系 统来说,由于存储空间比较小,内核的大小就成了设计系统的关键因素之一。 内核裁剪的一条首要原则是针对适当的目标和硬件系统,目标系统不同, 需要的内核模块和定制策略也不同。在本论文中车载显示屏运行在x 8 6 硬件平 台上。磁盘空间和内存的要求都不像典型的嵌入式系统那样要求严格,对应的 嵌入式设计要求是:不特别强调内核和整个系统的体积:针对硬件平台较低的事 实,需要去掉不需要的部分,以便尽量保证稳定性,可靠性和运行速度:必须包 括必要的硬件支持。考虑到研究和今后应用的需要,内核和系统的体积最好尽 可能的小。针对车载显示屏的硬件平台以及功能需求,作者采取的内核裁剪策 略如下: 1 ) 对车载显示屏平台包含的硬件设备和预期要求,必须提供支持,如处理器 类、f r a m e b u f f e r 设备、串口设备、显卡、i d e e i d e 设备以及e x t 2 文件系统 竺 t 于o 2 ) 对于目标系统用不到的设备和功能,一律不提供支持,比如多媒体硬件,路 由器支持,s c s i 设备,磁盘阵列,i p x 协议等,尽量减小内核体积。 3 ) 对于可能用到的功能或在几种相似功能之间各有侧重的选项,设置成可加载 模块,以便为将来升级提供方便。比如网络通讯模块支持,特定文件系统,u s b 设备支持,图像开发的库文件等。 1 4 第3 章d d u 平台的嵌入式l i n u x 的构建 3 2 2 内核裁剪步骤 内核裁剪的基本方法是利用l i n u x 内核的可重编译性,通过编译选项来去 掉不需要的内核部分,同时,对一些可选的设备可以设置成可加载模块。内核 编译的具体步骤如下: 下载li n u x 一2 4 2 0 t a r g z 。并放到目录u s r s r c 下,利用l i n u x 命令对其 进行编译: # c d u s r s r c # t a rz x v fl i n u x 一2 4 2 0 t a r g z # e dl i n u x # m a k ec l e a n清除系统安装和运行期间产生的文件,避免影响内 核编译 # m a k em r p r o p e r 清除源程序目录树种所有残留的文件和其他从属文 件,使配置文件恢复到默认值 # m a k ex c o n f i g配置内核根据编译选项选择内核支持的功能。在弹 出窗口中进行选择y ,n 或者m ,如下图3 2 所示: 鎏戆戮攀荔熬懑囊黪鳜缓戮l 缀荔i 施i 缀i 熬囊i 攀缀鬻篱鹾缆镳荔戮簇荔缀缀i : 凰”z ! 睁黔j _ _ - _ = _ _ _ j - = 一一 , ,y 稚n 。q u o t as u p p o r t ” h e l p 囊 锯y i t i ”k e r n e la u t o m o u n t e 5 u p p o r t :=helpl ,y m 韶nl k e m e ia t l t e l t i o l g r l t 【e rv e r s i o n4s u p p o r t ( a l s os u p p o r t sv 3 ) h e l p | j 一 = = = =“。 $ y m 。ni r e i s e r f ss u p p o r t h e l p 。; 、y 自ne n a b l er e i s e r sd e b u gm o d e h e l p 一 l 。y , # n ;s t a t si n 巾r o c f s r e i s e r t sh e l p :。 y 篓“a d f s f i l es y s t e msupport(experimental)help 一helpj y l i n ? 誊n a m i g af f s i l l es y s t e ms u p p 。r t ( e p e r i m e h t a l ) h e l p = = _ = 。 ,y 、i i l l 擘“ i ,p i em a c i n t o s h f i l es y s t e ms u p p o r t ( e x p e 刚i m e h t a u h e l p : y 9nh e o sh i es y s t e m v ( b e f s ) s u p p o r t ? 掣。n i y ) ( e x p e 8 m 5 “t a h e l p 。 m a i nm e n u lr a e ; _ e n ! v 图3 2 内核配置 # m a k ed e p # m a k eb z lm a g e # m a k em o d u l e s 建立所有的从属文件 编译压缩内核映像文件 编译可加载模块 1 5 第3 章d d u 平台的嵌入式l i n u x 的构建 # m a k em o d u l e si n s t a ll 安装可加载模块 这样就完成了车载显示屏嵌入式l i n u x 内核的裁剪,最终内核存放为 u s r r c l i n u x a r c h i 3 8 6 b o o t b z l m a g e ,其大小为3 0 m b 。按照我们前面的裁 剪策略得到的内核,完全能够满足车载显示屏的功能需求。 3 2 3 虚拟内存屏蔽 标准l i n u x 具备虚拟内存的功能,使应用程序的内存需求量可以无限制上 升,从而为程序功能的增加提供方便。但在车载显示屏嵌入式系统中并不需要 过于强大的功能,而且虚拟内存会带来无法控制的时间因素,因此需要将l i n u x 虚拟内存机制进行屏蔽。实现虚拟内存的机制有:地址映射机制、内存分配和回 收机制,缓存和刷新机制、请页机制、交换机制、内存共享机制。要实现这些 机制的数据结构和函数的屏蔽或修改,就要修改与之相关的文件。需要改动的 文件主要在i n c l u d e 1 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 tf j 录下。主要的改动如下:去掉与虚拟内存有关的主要数据结构v m a r e as t r u c t , 将进程的m ms t r u c t 结构中的v m a r e as t r u c t 去掉,v m - a r e as t r u e t 利用了 v m o p :来抽象出对虚拟内存的处理方法,屏蔽与虚拟内存操作有关的函数:内 存映射主要由d o m a p 来实现,改写此函数的代码,取消交换操作,取消内核守 护进程k s w a p d 。 另外一种比较简单的方法是将系统的交换空间大小置为零,即关掉虚拟内 存的调入功能。因为在嵌入式l i n u x 中保存虚拟内存代码也未为不可,一是将 它清除很费事。另外它支持共享文本,这样就可以使许多程序共享一个软件, 没有这个,每一个程序都要有它自己的库。在车载显示屏的嵌入式l i n u x 操作 系统中,我们将交换空i 、日j 的大小设置为零,关掉虚拟内存的调入功能,此后, 如果编写的程序比实际的内存大,系统就会当作程序的运行使用全部交换空间 来进行处理,这将导致程序不能运行,或者m a l l o c 失灵。 3 3 车载显示屏的嵌入式l i n u x 根文件系统构建 l i n u x 文件系统具有强大的功能,不仅负责管理文件,还提供管理设备、屏 蔽设备等复杂性的手段,为系统内核的其他部分、用户命令和系统函数调用提 1 6 第3 章d d u 平台的嵌入式l i n u x 的构建 供统一的服务接口。 同类型的文件系统, 而且,通过引入虚拟文件系统,l i n u x 文件系统可以支持不 如m i n i x ,e x t 2 m s d o s 等。本论文采用了e x t 2 文件系统。 虚拟文件系统( v f s ) l , ( 实际) 文件系统 扎且 b u f f 网络协议 弋7ll l 字符设备块设备网络设备 图3 3 文件系统层次结构示意图 。 因为d d u 显示屏的数据保护存储设备为6 4 m 的f l a s h 卡( 为进行数据保护, 参阅第6 章) ,存储空间有限,所以必须构建较小的适合嵌入式l i n u x 的根文件 系统,而不能直接搬用桌面l i n u x 的根文件系统。作者设计的车载显示屏最小 化根文件系统结构如图3 3 所示。 r o o t ,b o o t 厂一b 办m a g e b i n i _ _ _ _ 。_ _ _ _ _ 。g r u b s b i n d e v广i n i t t a b e t c _ 1 一r c d r e s y s i n i t i - - - - - - - - - - 一f s t a b l i b p r o c u s r v a t t m p 图3 4 d d u 最小文件系统结构图 此根文件只包含了车载显示屏嵌入式l i n u x 操作系统所必须的文件,不需 要的文件统统不要。下面就此根文件系统的主要目录设计作如下说明,这也是 显示屏嵌入式l i n u x 操作系统构建的重点: b o o t 1 7 第3 章d d u 平台的嵌入式l i n u x 的构建 本目录下存放车载显示屏嵌入式l i n u x 的启动文件g r u b 等和前面所裁剪的内核 b z l m a g e 。 d e v l i n u x 把所有的设备都作为文件看待,对外部设备的读写操作都是通过对相应 的设备文件读写完成的。剪裁时把原系统d e v 下的文件拷贝过来,然后删除在 车载显示屏嵌入式系统应用中不必要的文件。 s b i n 和b i n b i n 和s b i n 目录放置车载显示屏嵌入式l i n u x 的一些基本命令。在配置过 程中,只选择车载显示屏需要的命令。安装之后,得到了保证嵌入式l i n u x 系 统能够正常启动且完成必要功能的指令,如i n i t ,l o g i n ,m o u n t ,i n s m o d , s h u t d o w n ,k i l l ,k i l l a l l 等:用来运行系统的外壳s h ,a s h 等:一些基本操作指 令如i s ,i n ,d u ,c a t ,g r e p ,c h m o d ,c h o w n 等。现在将这些命令拷贝到我们 正在构建的嵌入式l i n u x 根文件系统的b i n 和s b i n 目录中并建立好相应的链 接。 e t c 本目录下面主要是车载显示屏嵌入式l i n u x 系统的配置文件,主要包括以下几 个: e t c f s t a b ( 系统要登陆的文件系统) e t c r c d r c s y s i n i t ( 系统启动脚本) e t c i n i t t a b ( 包含启动过程参数) l i b 该目录下存放车载显示屏软件平台的函数库文件,是g n ul i b c 的精简版,主要 是参考u c l i b c 设计的,提供了标准a n s ic 和其他一些符合p o s i x 接口的函数, 包括内存分配、字符处理、字符串和数组、流的输入输出、文件操作、网络套 结字和一些基本的数据函数等。 u s r 本目录放置用户应用程序。 p r o c 不是一个真正的文件系统,是内存一部分的镜像,用来记录部分设备的情况。 v a t 第3 章d d u 平台的嵌入式l i n u x 的构建 主要放置车载显示屏系统参数和配置以及日志。 t m p 留出来存放一些程序所需的临时文件。至此,车载显示屏嵌入式l i n u x 操作系 l 统己经构建完毕,具有精简的内核、较小的根文件系统和引导程序,还有完善 的应用编程接口,如g n uc 库、线程库和常用的s h e l l 命令等。 3 4 基于f l a s h 存储卡的嵌入式l i n u x 定制 已构建好的d d u 显示屏嵌入式l i n u x 操作系统在存储设备f l a s h 卡上的实 现过程如下: 将f l a s h 存储卡插到p c 的u s b 插槽中,b i o s 支持自动检测,可以直接探测 到它。 1 为f l a s h 存储卡分区 # f d is k d e v h d c 在系统分区环境中可以根据系统需要分一个或多个磁盘分区,由于f l a s h 卡与i d e 兼容,因此在用户层可以像i d e 磁盘一样访问f l a s h 卡电子盘。这里 只设置了一个分区d e v h d c l ,没有设置交换分区,即s w a p = o 。 2 为f l a s h 卡建立e x t 2 文件系统: # m k e 2 f s d e v h d c l 注意文件系统是建立在h d c l 分区上的,如果有多个分区,应该分别建立文 件系统。 3 建立根文件系统 # m k d i r m n t u s b # m o u n t d e v h d c l m n t u s b装载h d c l 到当前的开发主机l i n u x 系统中 # m k d i r m n t u s b d e vb o o te t cb i ns h i nli bp r o cv a rt m pu 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 r u b c o n f 文件,并与m e n u i s t 建立一个 软连接。写入启动选项,同时将m e n u i s t s ta g e l s ta g e 2 复制到这个目录下。 1 9 第3 章d d u 平台的嵌入式l i n u x 的构建 g r u b c o n f 文件的部分代码如下所示: d e f a u l t = 0 t i m e o u t =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中南大学精神卫生研究所诚聘科研助理1人备考题库完整参考答案详解
- 2026湖南邵阳市新宁县县直事业单位人才引进10人备考题库及1套完整答案详解
- 2026厦门国有资本运营有限责任公司招聘备考题库带答案详解
- 2026福建南平市邵武市机关事业单位编外人员招聘62人备考题库带答案详解
- 2026年南京市建邺区妇幼保健所医护人员招聘笔试模拟试题及答案详解
- 2026年宿州市乡村振兴投资集团有限公司 招募就业见习人员5名笔试模拟试题及答案详解
- 2026临沧汇达实业有限责任公司社会招聘4人考试模拟试题及答案详解
- 2026吉林延边州延吉市建工社区卫生服务中心招聘中药师和医师考试参考题库及答案详解
- 2026年福建龙岩龙岩学院化学与材料学院助理研究员招聘1人考试参考题库及答案详解
- 2026鹰潭市住房保障中心招聘工作人员1人考试参考题库及答案详解
- 2026延长石油(集团)限责任公司社会招聘易考易错模拟试题(共500题)试卷后附参考答案
- 企业资金拨付管理方案
- 市场营销专业知识全套题库(含标准答案+详细解析)
- 2026年招标采购从业人员《招标采购专业实务(初级)》考试真题(附答案解析)
- 25年真题贵州省2025年7月普通高中学业水平合格性考试历史试卷
- 2026年中国电信数据发展中心招聘考试试题
- 2026年三基三严考试十八项核心制度试题及答案
- 2025年广西壮族自治区地理生物会考真题试卷+答案
- 第22课 活动课:中国传统节日的起源教学设计初中历史与社会部编版七年级下册-部编版
- 《油气管道地质灾害风险管理技术规范》SYT 6828-2024
- DB62-T 5205-2025 光伏电站运行与维护规范
评论
0/150
提交评论