已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要摘要本课题主要研究了二维视觉测量的嵌入式软件技术。其中主要研究了操作系统的选择,裁剪与配置,应用程序的移植和优化,提出了一些测量系统精度提高的方法。研究成果将推动企业技术进步,提高产品质量。在操作系统方面,分析了几种嵌入式操作系统的特征,从中选择了一个适于二维视觉测量的系统。研究了操作系统的引导过程,内核的编译与配置,文件系统的选择,配置与生成。调整了引导程序,内核和文件系统,使之适于二维视觉测量系统。在应用程序方面,从移植的角度分析了二维视觉测量应用程序的结构,分析了基于w i n d o w s 的图形界面程序与基于l i n u x 的图形界面程序之间的差异。将基于m f c 的应用程序移植为基于q t 的应用程序。分析了影响应用程序性能的因素,提出了几种提高程序性能的方法。在测量系统方面,提出了二维视觉测量系统的调焦过程可视化的方法。提出了判断物面与光轴垂直度的一种方法。本课题在二维视觉测量的基础上,研究了其中的嵌入式实现方法,该研究将有利于二维视觉测量研究成果的产品化。关键词:二维视觉测量,嵌入式操作系统,程序移植,系统精度a b s t r a c ta b s t r a c tu n d e rt h i ss u b j e c t ,t h ei n s e r t e ds o f t w a r et e c h n i q u eo f2 dv i s u a lm e a s u r e m e mi sm a i n l ys t u d i e d w h a t sw o r k e do ni st h ec h o o s i n g ,c u t t i n go u ta n dc o n f i g u r i n go fo p e r a t i n gs y s t e m ,t h er 印l a n t i n ga n do p t i m i z i n go fa p p l i c a t i o n s ;a n ds o m em e t h o d st oi m p r o v et h em e a s u r e m e n ta c c u r a c ya r ep u tf o r w a r da sw e l l t h e s er e s u l t sw i l lh e l pt op r o m o t et h et e c h n i q u eo f c o r p o r a t i o n s ,a n dt h eq u a l i t yo f p r o d u c t s a b o u to p e r a t i n gs y s t e m ,w ea n a l y z e dt h ef e a t u r e so fs e v e r a li n s e r t e do p e r a t i n gs y s t e mt of i n do n et h a tf i tf o r2 dv i s u a lm e a s u r e m e u t t h eb o o t i n gc o u r s eo ft h es y s t e m ,t h ec o m p i l i n ga n dc o n f i g u r i n go ft h ec o r e ,t h ec h o o s i n g ,c o n f i g u r i n ga n db u i l d i n go ff i l es y s t e ma r ea l ls t u d i e d w h a t sm o r e ,w em o d i f i e dt h eb o o t i n gp r o c e s s ,c o r ea n df i l es y s t e mt om a k ei tm o r es u i t a b l ef o r2 dv i s u a lm e a s u r e m e m a b o u ta p p l i c a t i o n s ,b a s e do nr e p l a n t i n g ,w ea n a l y z e dt h es t r u c t u r eo fa p p l i c a t i o n sf o r2 dv i s u a lm e a s u r e m e u t ,t h ed i f f e r e n c e sb e t w e e nw i n d o w s - b a s e da n dl i n u x - b a s e dg r a p h i ci n t e r f a c ep r o g r a m s t h em f c b a s e da p p l i c a t i o n sa r er e p l a n t e da n db e c o m eq t b a s e do n e s w ea l s or e s e a r c h e dt h ef a c t o r sw h i c ha f f e c tt h ea p p l i c a t i o n s p e r f o r m a n c e ,a n dw o r k e do u ts e v e r a lm e t h o d st oi m p r o v ei t a b o u tt h e2 - d i m e n s i o n a lv i s u a lm e a s u r i n gs y s t e m ,t h em e t h o dt om a k ef o c u sp r o c e s sv i s i b l ei sp u tf o r w a r d ,a sw e l la st h eo n et oj u d g et h eu p r i g h t n e s sb e t w e e nt h eo b j e c tp l a n ea n dt h eo p t i c a la x i s b a s e do nt h er e s e a r c ho f2 dv i s u a lm e a s u r e m e u t ,t h ei m p l e m e n to fi n s e r t e ds y s t e mi sa l s os t u d i e d ,w h i c hw i l lh e l pt ob r i n gt h es t u d yr e s u l t so f2 dv i s u a lm e a s u r e m e n ti n t op r o d u c t s k e yw o r d s :2 dv i s u a lm e a s u r e m e m ,i n s e r t e do p e r a t i n gs y s t e m ,a p p l i c a t i o nr e p l a n t i n g ,s y s t e ma c c u r a c y学位论文版权使用授权书本人完全了解北京机械工业学院关于收集、保存、使用学位论文的规定,同意如下各项内容:按照学校要求提交学位论文的e r j 届l j 本和电子版本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、扫描、数字化或其它手段保存论文;学校有权提供目录检索以及提供本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有关部门或者机构送交论文的复印件和电子版;在不以赢利为目的的前提下,学校可以适当复制论文的部分或全部内容用于学术活动。学位论文作者签名舭雪谨工舯f 年弓月,日经指导教师同意,本学位论文属于保密,在年解密后适用本授权书。指导教师签名:学位论文作者签名:年月日年月日硕士学位论文原创性声明本人郑重声明:所呈交的学位论文,是本人在导师指导下,进行研究工作所取得的成果。除文中已经注明引用的内容外,本学位论文的研究成果不包含任何他人创作的、已公开发表或者没有公开发表的作品的内容。对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确方式标明。本学位论文原创性声明的法律责任由本人承担。签名:桃雪碡z 。o 石年月,日第1 章引言第1 章引言视觉是人类用以感知和理解周边世界的主要感官,据统计,人类获得的信息中有百分之八十来自于眼睛。而机器视觉的主要目的就是通过c c d 摄取图像,然后对图像进行分析以模拟人类的视觉效果。以希望让计算机能够像人一样“看”世界,甚至是理解世界。正是由于这样的目的使视觉技术自诞生之日就具有无比的吸引力。令世界上无数的顶尖科学家在这个领域倾其一生,希望能够计算机长出自己的“眼睛”。随着现代科学技术和工业生产的发展,计算机,c c d 产业,数字图像处理等各方面科学有日新月异变化,视觉技术的应用越来越广泛,反过来又促进了机器视觉技术飞速发展,同时也对视觉技术提出了更高的要求。工件断面尺寸测量技术就是视觉技术的一个应用方向。它是以测量为目的的视觉技术,即通过摄像头拍摄工件,然后通过计算即可获得工件的各种与c a d 图纸参数相对应的数据。1 1 课题的背景和来源小型工件断面尺寸快速在线检测技术可以广泛的应用于各种小型机械零部件剖面或断面尺寸的快速检测,也可以用于p v c 异型材和与其类似结构零件或产品断面尺寸的检测。以p v c 异型材为例。它是一种挤压型材,是重要的建筑材料,大量用于制造门窗。型材断面尺寸是型材质量的一项重要指标,直接影响塑钢门窗的装配及力学参数。目前,我国p v c 型材生产厂家对型材采用抽检的方法,用卡尺、塞尺、直角尺等工具测量其断面尺寸。这种检测方法不能实时发现挤压型材过程中断面参数的变化,预防废品的产生。其他类似结构的产品也存在着同样的状况。目前,一些发达国家已经开始使用快速在线检测的方法来测量工件断面尺寸,精度最高可达0 0 2 m m 。德国的h i k o 公司开发的集成测量系统,用于对挤压型材,特别是钢窗用型材断面尺寸的测量。测量1 2 0 x 9 0 m m 尺寸,精度可达o 0 2 m m 。但售价高,售后服务不方便,目前不适合中国国情。国外在实现在线测量时,一般采用嵌入式系统。常用的嵌入式系统处理器有,a r m ,d s p ,第1 章引言x 8 6 等;常用的嵌入式操作系统有w i n c e ,l i n u x ,v x w o r k 等。嵌入式系统在p d a ,掌上电脑,工业控制等方面有着广泛的应用。应用嵌入式系统的产品往往具有体积小,功耗低,抗干扰抗震动强等特点。在视觉测量中应用嵌入式技术,会使该测量系统易于安装,性能稳定。本实验室经一段时间的研究、实验,己经可以利用二维图像处理的方法在较为理想的环境下对1 2 0 m m x1 0 0 m m 的p v c 异型材断面进行检测,精度可以达到0 1 m m 。在嵌入式系统开发方面也有较多的研究。已经完成基于w i n c e的,用于北京市污水处理的嵌入式系统,在系统裁剪,硬件配置,应用程序开发方面已经有较多的经验。本课题来源于北京市教委项目,项目名称为“异型材断面尺寸视觉检测技术研究”。1 2 嵌入式视觉测量系统的意义视觉测量是目前工业领域的一个热点,各个公司,研究所,学校都为之付出了很多努力,已经取得了一些成果。为了将这些成果应用到工业现场,国外有些公司已经开始用嵌入式的方式来实现视觉测量系统,使该系统容易安装在工业现场。嵌入式系统本身有很多优点:针对特定的需要能有利的控制成本,而且整个系统就在其上运行,体积功耗能大大减小,甚至能满足一定恶劣环境的要求。总体来说,功耗低、体积小、环境适应强、可移植性高、实时性好、充分发挥处理器性能等特点是嵌入式系统的优势,有利于将其应用于现场监测。正是嵌入式视觉测量的这些特点,加快了视觉测量这个领域的工业化进程。1 3 课题的提出与解决步骤该课题计划实现p v c 异型材及其类似产品的断面快速、自动、非接触的测量,解决人工抽样测量的缺陷。课题的研究工作可以推进本课题组在基于二维数字图像处理的测量方法的研究,在测量精度的提高上提出了一些方法,同时提高在嵌入式操作系统及其应用软件设计方面的水平,推动企业技术进步,提高产品质量。第1 章引言大致解决步骤如下:1 操作系统的选择与定制。2 测量系统的软件部分。3 完成软件系统性能与速度优化。1 4 本章小结本章介绍了国内外关于视觉测量系统的近况,分析了嵌入式视觉测量系统的特点和优势,说明了该课题的来源和研究意义,并提出了实现这个系统的基本步骤。第2 章嵌入式系统选择第2 章嵌入式系统选择现代嵌入式系统多种多样,功能各有特色,价格和系统复杂度也都不同。根据现有的应用选择一个合适的嵌入式硬件系统和操作系统是开发此系统的第一步。2 1 嵌入式系统的结构嵌入式系统主要由嵌入式系统硬件和嵌入式系统软件构成,其中嵌入式系统软件又分为嵌入式操作系统,嵌入式应用程序。2 1 1 嵌入式系统硬件嵌入式系统硬件是以嵌入式处理器为核心,配置必要的外围接口部件。嵌入式处理器可分为3 类:嵌入式微处理器( m i c r o p r o c e s s o r ) ,嵌入式微控制器m c u ( m i c r o c o n t r o | l e ru n i t ) ,嵌入式d s p ( d i g i t a ls i g n a lp r o c e s s o r ) 。嵌入式微处理器就是与通用计算机的微处理器对应的c p u 。在应用中,早期的嵌入式系统是将微处理器装配在专门设计的电路板上,并在电路板上设计了与嵌入式系统相关的功能模块,这样可以满足嵌入式系统体积小和功耗低的要求。目前的嵌入式处理器主要包括:a m l 8 6 8 8 ,3 8 6 e x ,p o w e r p c ,m o t o r o l a6 8 0 0 ,删,m p s 等系列。嵌入式微控制器将c p u ,存储器( 少量的r a m ,r o m 或两者都有) 和其他外设封装在同一片集成电路里,常见的有8 0 5 1 。嵌入式微控制器又称单片机,顾名思义,就是将整个计算机系统集成到一块芯片中。与嵌入式微处理器相比,微控制器的最大特点是单片化,体积大大减小,从而是功耗和成本降低,可靠性提高。微控制器是目前嵌入式系统工业的主流。微控制器的片上外设资源一般比较丰富,适合于控制,因此称微控制器。目前嵌入式微控制器的品种和数量很多,比较有代表性的通用系列包括8 0 5 1 ,p 5 1 x a ,m c s 一2 5 1 ,m c s 一9 6 1 9 6 2 9 6 ,c 1 6 6 1 6 7 ,m c 6 8 h c 0 5 1 1 1 2 1 6 ,6 8 3 0 0 等。另外,还有许多半通用系列,如支持u s b 接口的m c u ,8 x c 9 3 0 9 3 1 ,c 5 4 0 ,c 5 4 1 ;支持c a n ( 控第2 章嵌入式系统选择制器局域网) ,l c d 及众多专用m c u 和兼容系列。嵌入式d s p 专门用来对离散时间信号进行处理计算,提高了编译效率和执行速度。d s p 处理器对系统结构和指令进行了特殊设计,使其适合于执行d s p算法,编译效率较高,指令执行速度也较高。在数字滤波,f f t ,谱分析等方面,d s p 算法正在大量进入嵌入式领域。d s p 应用正在从通用微处理器中以普通指令实现d s p 功能,过渡到采用嵌入式d s p 处理器实现d s p 功能。嵌入式d s p处理器有两个发展方向:一是嵌入式d s p 处理器和嵌入式处理器经过单片化设计,片上增加丰富的外设,使之成为具有高性能d s p 功能的s o c :二是在通用微处理器,微控制器或s o c 中增加d s p 协处理器,例如i n t e l 公司的m c s - - 2 9 6和s i e m e n s 公司的t r i c o r e 。目前典型的嵌入式微处理器主要有:m i p s 处理器:m i p s 的意思是“无内部互锁流水级的微处理器”( m i c r o p r o c e s s o r yw i t h o u ti n t e r l o c k e dp i p e ds t a g e s ) ,最早是在2 0 世纪8 0 年代初期由美国斯坦福大学h e n n e s s y 教授领导的研究小组研制出来的。在嵌入式方面,m i p s 系列微处理器是目前仅次于a r m 的用得最多的处理器之一( 1 9 9 9年以前,m i p s 是世界上用的最多的处理器) ,其应用领域覆盖游戏机,路由器,激光打印机,掌上电脑等各方面。m i p s 的系统结构及设计理念比较先进,在设计理论上m i p s 强调软硬件协同提高性能,同时简化硬件设计。p o w e r p c 处理器:p o w e r p c 架构的特点是可伸缩性好,方便灵活。p o w e r p c处理器品种很多,既有通用的处理器,又有嵌入式控制器和内核,应用范围非常广泛,从高端的工作站,服务器到桌面计算机系统,从消费电子产品到大型通信设备,无所不包。它于1 9 9 7 年研制成功,其最高工作频率可达5 0 0 m h z ,采用先进的铜线技术。a r m 处理器:a r m 处理器是英国先进r i s c 机器公司( a d v a n c e dr i s cm a c h i n e s ,a r m ) 的产品。a r m 公司是业界领先的知识产权供应商。与一般的公司不同,a r m公司只采用i p 授权的方式允许半导体公司生产基于a r m 的处理器产品,提供基于a r m 处理器内核的系统芯片解决方案和技术授权,不提供具体的芯片。a r m 的成功在于它极好的性能以及极低的能耗,使得它能够与高端的m i p s 和p o w e r p c嵌入式微处理器抗衡。另外,根据市场需求进行功能的扩展,也是a r m 取得成功的一个重要因素。随着更多厂商的支持和加入,可以预见,在将来一段时间之内,a r m 仍将主宰3 2 位嵌入式微处理器市场。a r m 在很多方面有典型的应用:汽车产品,如车上娱乐系统车上安全装置,第2 章嵌入式系统选择自主导航系统等;消费娱乐产品,如数字视频,i n t e r n e t 终端,交互电视,机顶盒,网络计算机等;数字音频播放器,数字音乐板,游戏机;工业控制产品,如机器人控制,工业机械,冶金控制,化工生产控制等;网络产品,如p c i 网络接口卡,a d s l 调制解调器,路由器,无线l a n 访问点等;安全产品,如电子付费终端,银行系统付费终端,智能卡,3 2 位s i m 卡等;无线产品,如手机,p d a ,目前8 5 以上的手机是基于a r m 做的。2 1 2 嵌入式操作系统嵌入式操作系统就是支持嵌入式系统工作的操作系统。它在知识体系和技术本质上与通用操作系统没有太大的区别,一般用于比较复杂的嵌入式系统软件开发中。嵌入式操作系统主要有以下的几种:u c o s i i 嵌入式操作系统内核:是一个可裁剪,源码开发,结构小巧,抢先式的实时多任务内核,主要面向中小型嵌入式系统,具有执行效率高,占用空间小,可移植性强,实时性能优良和可扩展性强等特点。v x w o r k s 嵌入式实时操作系统:v x w o r k s 是w i n d r i v e rs y s t e m s 公司推出的一个实时操作系统,是目前嵌入式系统领域中使用最广泛,市场占有率最高的系统。它支持多种处理器。v x w o r k s 实时操作系统基于微内核结构,有4 0 0 多个相对独立,短小精悍的目标模块组成,用户可根据需要增加或删减适当模块来裁剪和配置系统。v x w o r k s 的连接器可按应用的需要来动态连接目标模块。因其良好的可靠性和卓越的实时性,已广泛应用在通信,军事,航空,航天等高端技术及实时要求极高的领域中。w i n c e 操作系统:m i c r o s o f tw i n d o w sc e 是针对有限资源的平台而设计的多线程,完整优先级,多任务的操作系统,但它不是一个实时操作系统。高度模块化是w i n c e 的一个特性,这一特性有利于它对掌上电脑到专用的工业控制器的用户电子设备进行定制。w i n c e 操作系统的基本内核至少需要2 0 0 k b 的r o m 。它支持w i n 3 2a p i 子集,多种用户界面硬件,多种串行和网络通信技术,c o m o l e和其他进程间通信的先进方法。m i c r o s o f t 公司为w i n d o w sc e 提供了p l a t f o r mb u i i d e r 和e m b e d d e dv i s u a ls t u d i o 开发工具。w i n c e 有5 个主要模块,内核模块,文件系统接口调用模块,文件系统模块,图形窗口和事件子系统模块,通信模块。w i n c e 操作系统最大的特点是能提供与p c 机类似的图形界面和主要第2 章嵌入式系统选抒的应用程序“”。l i n u x 操作系统:l i n u x 类似于u n i x ,是一种免费的,源代码完全开放的,符合p o s i x 标准规范的操作系统。l i n u x 的系统界面和编程接口与u n i x 很相似所以i j n i x 程序员可以很容易地从u n i x 环境下转移到l i n u x 环境中来。2 2 几种嵌入式系统对比与分析由于本课题需要大量计算,同时又考虑低功耗,体积小等特点,所以在硬件上选择了x s c a l e ,这种c p u 内嵌入d s p 协处理器,结合了a r m 和d s p 的有点,具体选择原因见硬件部分选择。操作系统方面,则主要考虑其价格,性能,易开发性,具体如下:l i n u x 方面,低端无m m u ( m e m o r ym a n a g e m e n tu n i t ,存储器管理单元) 的c p u ,要使用u c l i n u x 操作系统;而相对高端的硬件,则可以用普通的嵌入式l i n u x 操作系统。u c l i n u x 和普通的l i n u x 有各自的优势和缺点。可用于嵌入式系统软件开发的操作系统很多,可以从以下几点进行考虑:操作系统提供的开发工具。有些实时操作系统( r t o s ) r 支持该系统供应商的开发工具,因此,还必须向操作系统供应商获取编译器、调试器等;而有些操作系统使用广泛,且有第三方工具可用,因此,选择的余地比较大。操作系统向硬件接口移植的难度。操作系统到硬件的移植是一个重要的问题,是关系到整个系统能否按期完工的一个关键因素。因此,要选择那些可移植性程度高的操作系统,避免操作系统难以向硬件移植而带来的种种困难,加速系统的开发进度。操作系统的内存要求。均衡考虑是否需要额外花钱去购买r a m 或e e p r o m来迎合操作系统对内存的较大要求。开发人员是否熟悉此操作系统及其提供的a p i 。操作系统是否提供硬件的驱动程序,如网卡等。操作系统的可剪裁性。有些操作系统具有较强的可剪裁性,如嵌入式l i n u x 、t o m a d o v x w o r k s 等等。操作系统的实时性能。l i n u x 的前途除作为服务器操作系统外,最成功的便是在嵌入式领域的应用,原因当然是免费、开源、支持软件多、呼拥者众,这样嵌入式产品成本会低。l i n u x 本身不是一个为嵌入式设计的操作系统,不是微内核的,并且实时性不强。7第2 章嵌入式系统选择目前应用在嵌入式领域的l i n u x 系统主要有两类:一类是专为嵌入式设计的己被裁减过的l i n u x 系统,最常用的是u c l i n u x ( 不带m m u 功能) ,目前占较大应用份额,可在a r m 7 上跑;另一类是跑在a r v l9 上的,一般是将l i n u x2 4 1 8 内核移植在其上,可使用更多的l i n u x 功能( 当然u c l i n u x 更可跑在a r m9 上) 。很多人预测,嵌入式l i n u x 预计将占嵌入式操作系统的5 0 以上份额,非常重要。缺点是熟悉l i n u x 的人太少,开发难度稍大。目前i n t e l 、p h i l i p 都在大搞a r m + l i n u x 的嵌入式开发,f u i i t u m 则是在自己的处理器上大搞l i n u x开发m 。m i c r o s o f t 也看准了嵌入式的巨大市场,w i n c e 出来只有几年时间,但目前己占据了很大市场份额,特别是在p d a 、手机、显示仪表等界面要求较高或者要求快速开发的场合,w i n c e 目前已很流行。w i l l c e 目前主要为4 2 版( n e t ) ,开发平台主要为w i n c ep l a t f o r mb u i l d e r ,有时也用e v c 环境开发一些较上层的应用,由于w i n c e 开发是v c + + 环境,所以学过w i n d o w s 程序设计课程就不会有多大难度,这也是w i n c e 容易被人们接受的原因,开发环境方便快速,微软的强大技术支持,w i n c e 开发难度远低于嵌入式l i n u x 。对于要求稳定和快速的开发需求,w i n c e 比较合适。根据不同的侧重点,w i n c e 还有两个特殊版本,一个是m sp o c k e t p c 操作系统专用于p d a 上,另一个是m ss m a r t p h o n e 操作系统用于智能手机上,两者都属于w 协c e 平台。在p d a 和手机市场上,除w i n c e外,著名的p d a 嵌入式操作系统还有p a l mo s 、s y m b i a n 等。嵌入式l i n u x 可能更多地适用于一些有长远产品计划的公司,可以为降低成本而进行长远考虑。2 3 嵌入式系统的选择本项目基于二维视觉测量,有大量图像处理算法内容,占用很多时间。所以在c p u 的选择上,采用了x s c a l e ,这种c p u 内部嵌入了一个d s p 协处理器,专门针对信号处理,图像处理算法进行优化。而在操作系统的选择上,首选l i n u x 。因为x s c a l e 已经有了m m u ,所以可以使用嵌入式l i n u x ,而没有必要使用u c l i n u x 。再者,根据前面介绍,l i n u x比较适合做长期的产品,成本较低,所以选择l i n u x 的确是明智之举。第2 章嵌入式系统选择2 4 本章小结本章介绍了嵌入式系统的基本结构,包括硬件体系结构和软件体系结构。分析了各种嵌入式操作系统的特征,并从中选择了一套合适的嵌入式硬件和操作系统。考虑到价格和产品发展的长远性,优先选择了l i n u x 作为嵌入式操作系统。第3 章嵌入式软件系统配置第3 章嵌入式软件系统配置厂家提供的软件系统往往只具有最基本的功能,配置也是很通用的。为了和现有的应用结合,需要根据情况对软件系统内核和文件系统进行配置。3 1嵌入式软件系统结构嵌入式l i n u x 系统般包括引导程序,内核和文件系统。本课题使用的引导程序是b l o b 。初始化程序( s t a r t s )i m a g e _ s t a r t装载程序( 1 舶d e r )操作系统瓢应用程牟操作系统和应甩程序潞袅( i m 样)f r e em e m _ s t a r t晚泵( i m a g e )空闲f l a s h 区玎a s hr a m图3 1 嵌入式系统启动过程图3 1 是一个嵌入式系统启动的基本过程,从该过程可以看出嵌入式软件系统的基本结构。首先是,初始化程序来引导,然后启动装载程序装载操作系统和应用程序镜像。在本课题中,具体的情况如下:引导装载程序为b l o b ,负责引导整个程序,并载入和启动内核,内核初始化操作系统的各种驱动和接口,最后启动文件系统,并根据文件系统的设置启动相应的程序,这样整个操作系统就启动起来了。第3 章嵌入式软件系统配置3 2b o o ti o a d e r 配置与编译引导装载程序通常是在任何硬件上执行的第一段代码。在像台式机这样的常规系统中,通常将引导装载程序装入主引导记录( m a s t e r b o o t r e c o r d ,( m b r ) )中,或者装入l i n u x 驻留的磁盘的第一个扇区中。通常,在台式机或其它系统上,b i o s 将控制移交给引导装载程序。这就提出了一个有趣的问题:谁将引导装载程序装入( 在大多数情况中) 没有b i o s 的嵌入式设备上呢?解决这个问题有两种常规技术:专用软件和微小的引导代码( t i n y b o o t c o d e ) 。专用软件可以直接与远程系统上的闪存设备进行交互并将引导装载程序安装在闪存的给定位置中。闪存设备是与存储设备功能类似的特殊芯片,而且它们能持久存储信息,一即在重新引导时不会擦除其内容。这个软件使用目标( 在嵌入式开发中,嵌入式设备通常被称为目标) 上的j t a g 端口,它是用于执行外部输入( 通常来自主机机器) 的指令的接口。j f l a s h 1 i n u x 是一种用于直接写闪存的流行工具。它支持为数众多的闪存芯片;它在主机机器( 通常是i 3 8 6 机器一本文中我们把一台i 3 8 6 机器称为主机)上执行并通过j t a g 接口使用并行端口访问目标的闪存芯片。当然,这意味着目标需要有一个并行接口使它能与主机通信。j f l a s h l i n u x 在l i n u x 和w i n d o w s版本中都可使用,可以在命令行中用以下命令启动它。某些种类的嵌入式设备具有微小的引导代码一根据几个字节的指令一它将初始化一些d r a m 设置并启用目标上的一个串行( 或者u s b ,或者以太网) 端口与主机程序通信。然后,主机程序或装入程序可以使用这个连接将引导装载程序传送到目标上,并将它写入闪存。在安装它并给予其控制后,这个引导装载程序执行下列各类功能:初始化c p u 速度初始化内存,包括启用内存库、初始化内存配置寄存器等初始化串行端口( 如果在目标上有的话)启用指令数据高速缓存设置堆栈指针设置参数区域并构造参数结构和标记( 这是重要的一步,因为内核在标识根设备、页面大小、内存大小以及更多内容时要使用引导参数)执行p o s t ( 加电自检) 来标识存在的设备并报告任何问题为电源管理提供挂起恢复支持第3 章嵌入式软件系统配置跳转到内核的开始带有引导装载程序、参数结构、内核和文件系统的系统典型内存布局基本如下所示:净t o po f m e m o r y4 1b o o t l o a d e rp a r a m e t e ra r e ak e m e lf i l e s y s t e m| e n do f m e m o r y4 |嵌入式设备上一些流行的并可免费使用的l i n u x 引导装载程序有b l o b 、r e d b o o t 和b o o t l d r 。所有这些引导装载程序都用于基于a r m 设备上的l i n u x ,并需要j f l a s h 1 i n u x 工具用于安装。一旦将引导装载程序安装到目标的闪存中,它就会执行我们上面提到的所有初始化工作。然后,它准备接收来自主机的内核和文件系统。一旦装入了内核,引导装载程序就将控制转给内核。3 3 内核配置与编译内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。l i n u x 的一个重要的特点就是其源代码的公开性,所有的内核源程序都可以在u s d s r c l i n u x 下找到,大部分应用软件也都是遵循g p l 而设计的,可以获取相应的源程序代码。全世界任何一个软件工程师都可以将自己认为优秀的代码加入到其中,由此引发的一个明显的好处就是l i n u x 修补漏洞的快速以及对最新软件技术的利用。而l i n u x 的内核则是这些特点的最直接的代表。由于l i n u x 的源程序是完全公开的,任何人只要遵循g p l ,就可以对内核加以修改并发布给他人使用。l i n u x 的开发采用的是集市模型( b a z a a r ,与c a t h e d r a l 教堂模型一对应) ,为了确保这些无序的开发过程能够有序地进行,l i n u x 采用了双树系统。一个树是稳定树( s t a b l et r e e ) ,另一个树是非稳定树( u n s t a b l et r e e ) 或者开发树( d e v e l o p m e n tt r e e ) 。一些新特性、实验性改进等都将首先在开发树中进行。如果在开发树中所做的改进也可以应用于稳定树,那第3 章嵌入式软件系统配置么在开发树中经过测试以后,在稳定树中将进行相同的改进。一旦开发树经过了足够的发展,开发树就会成为新的稳定树。开发树就体现在源程序的版本号中;源程序版本号的形式为x y z :对于稳定树来说,y 是偶数;对于开发树来说,y 比相应的稳定树大一( 因此,是奇数) 。到目前为止,稳定树的最高版本是2 2 1 6 ,最新发布的r e d h a t 7 0 所采用的就是2 2 1 6 的内核;开发树的最新版本是2 3 9 9 。很多网站上都有2 4 0 - t e s t 9 - p r e 7 之类的内核,但是这并不是正式版本。l i n u x 作为一个自由软件,在广大爱好者的支持下,内核版本不断更新。新的内核修订了旧内核的b u g ,并增加了许多新的特性。如果用户想要使用这些新特性,或想根据自己的系统度身定制一个更高效,更稳定的内核,就需要重新编译内核。通常,更新的内核会支持更多的硬件,具备更好的进程管理能力,运行速度更快、更稳定,并且一般会修复老版本中发现的许多漏洞等,经常性地选择升级更新的系统内核是l i n u x 使用者的必要操作内容。为了正确的合理地设置内核编译配置选项,从而只编译系统需要的功能的代码,一般主要有下面四个考虑:自己定制编译的内核运行更快( 具有更少的代码)系统将拥有更多的内存( 内核部分将不会被交换到虚拟内存中)将某种功能编译为模块方式会比编译到内核内的方式速度要慢一些要增加对某部分功能的支持,比如网络之类,可以把相应部分编译到内核中( b u i l d i n ) ,也可以把该部分编译成模块( m o d u l e ) ,动态调用。如果编译到内核中,在内核启动时就可以自动支持相应部分的功能,这样的优点是方便、速度快,机器一启动,就可以使用这部分功能了:缺点是会使内核变得庞大起来,不管是否需要这部分功能,它都会存在,这就是w i n d o w s d e 模式。经常使用的部分可以直接编译到内核中,比如网卡。如果编译成模块,就会生成对应的o 文件,在使用的时候可以动态加载,优点是不会使内核过分庞大,缺点是需要主动调用这些模块“”。配置内核可以根据需要与爱好使用下面命令中的一个:# m a k ec o n :f i g ( 基于文本的最为传统的配置界面,不推荐使用)# m a k em e n u c o n f i g ( 基于文本选单的配置界面,字符终端下推荐使用)# m a k e x c o m f i g ( 基于图形窗口模式的配置界面,x w i n d o w 下推荐使用)# m a k eo l d c o n f i g ( 如果只想在原来内核配置的基础上修改一些小地方,会省去不少麻烦)第3 章嵌入式软件系统配置这几个命令中,m a k ex c o n f i g 的界面比较友好,在可以使用x w i n d o w 的环境中使用这个命令。如果不能使用x w i n d o w ,就使用m a k em e n u c o n f i g 。选择相应的配置时,有三种选择,它们分别代表的含义如下:y 一将该功能编译进内核n 一不将该功能编译迸内核m 一将该功能编译成可以在需要时动态插入到内核中的模块如果使用的是m a k e x c o n f i g ,使用鼠标就可以选择对应的选项。如果使用的是m a k em e n u c o n f i g ,则需要使用空格键进行选取。在每一个选项前都有个括号,但有的是中括号有的是尖括号,还有种圆括号。用空格键选择时可以发现,中括号里要么是空,要么是”,而尖括号里可以是空,”和”m ”这表示前者对应的项要么不要,要么编译到内核里i 后者则多一样选择,可以编译成模块。而圆括号的内容是要求在所提供的几个选项中选择一项 19 1 。在编译内核的过程中,大部分选项可以使用其缺省值,只有小部分需要根据用户不同的需要选择。选择的原则是将与内核其它部分关系较远且不经常使用的部分功能代码编译成为可加载模块,有利于减小内核的长度,减小内核消耗的内存,简化该功能相应的环境改变时对内核的影响;不需要的功能就不要选;与内核关心紧密而且经常使用的部分功能代码直接编译到内核中。具体配置方法网上有很多参考,这里就不再详细叙述。配置工作完成以后,就开始编译,编译时间一般比较长。以下是一些与编译有关的命令:# m a k ed e p# m a k ec l e a n# m a k ez l m a g e# m a k eb z l m a g e群m a k em o d u l e s群m a k em o d u l e si n s t a l l# d e p m o d a第一个命令m a k ed e p 实际上读取配置过程生成的配置文件,来创建对应于配覆的依赖关系树,从而决定哪些需要编译而那些不需要;第二命令m a k ec l e a n完成删除前面步骤留下的文件,以避免出现一些错误:第三个命令m a k ez i m a g e和第四个命令m a k eb z i m a g e 实现完全编译内核,二者生成的内核都是使用g z l p4第3 章嵌入式软件系统配置压缩的,只要使用一个就够了,它们的区别在于使用m a k eb z l m a g e 可以生成大一点的内核,比如在编译2 4 0 版本的内核时如果使用m a k ez i m a g e 命令,那么就会出现s y s t e mt o ob i g 的错误提示。一般用m a k eb z i m a g e 命令。后面三个命令只在配景的过程中,在回答e n a b l el o a d a b l em o d u l es u p p o r t( c o n f i gm o d u l e s ) 时选了”y e s ”才是必要的,m a k em o d u l e s 和m a k em o d u l e si n s t a l l 分别生成相应的模块和把模块拷贝到需要的目录中。严格说来,第七个命令和编译过程并没有关系,它是生成模块间的依赖关系,这样启动新内核之后,使用m o a p r o b e 命令加载模块时就能正确地定位模块t ig 】3 4 文件系统选择,配置与生成通常默认r o m f s 作为根文件系统,它相对于一般的e x t 2 文件系统具有节约空间的优点。但是r o m f s 是一种只读的文件系统,不支持动态擦写保存。虽然对于需要动态保存的数据可以采用虚拟r a m 盘的方法来保存,但当系统掉电后,r a m 盘的内容将全部丢失,而不能永久保存,因此需要实现一个可读写的文件系统。j f f s 2 文件系统便是一个很好的选择。j f f s 文件系统是瑞典a x i s 通信公司开发的一种基于f l a s h 的日志文件系统,它在设计时充分考虑了f l a s h 的读写特性和用电池供电的嵌入式系统的特点,在这类系统中必需确保在读取文件时,如果系统突然掉电,其文件的可靠性不受到影响。对r e d h a t 的d a v i d w o o d h o u s e 进行改进后,形成了j f f s 2 。主要改善了存取策略以提高f l a s h 的抗疲劳性,同时也优化了碎片整理性能,增加了数据压缩功能。需要注意的是,当文件系统已满或接近满时,j f f s 2 会大大放慢运行速度。这是因为垃圾收集的问题。j f f s 2 的底层驱动主要完成文件系统对f l a s h 芯片的访问控制,如读、写、擦除操作。在l i n u x 中这部分功能是通过调用m t d ( m e m o r y t e c h n o l o g yd e v i c e内存技术设备) 驱动实现的。相对于常规块设备驱动程序,使用m t d 驱动程序的主要优点在于m t d 驱动程序是专门为基于闪存的设备所设计的,所以它们通常有更好的支持、更好的管理和更好的基于扇区的擦除和读写操作的接口。m t d 相当于在硬件和上层之间提供了一个抽象的接口,可以把它理解为f l a s h的设备驱动程序,它主要向上提供两个接口:m t d 字符设备和m t d 块设备。通过这两个接口,就可以象读写普通文件一样对f l a s h 设备进行读写操作。经第3 章嵌入式软件系统配置过简单的配置后,m t d 在系统启动以后可以自动识别支持c f i 或j e d e c 接口的f l a s h 芯片,并自动采用适当的命令参数对f l a s h 进行读写或擦除。j f f s 2 在u c l i n u x 中有两种使用方式,一种是作为根文件系统,另一种是作为普通文件系统在系统启动后被挂载。考虑到实际应用中需要动态保存的数据并不多,且在l i n u x 系统目录树中,根目录和u s r 等目录主要是读操作,只有少量的写操作,但是大量的读写操作又发生在v a t 和t m p 目录( 这是因为在系统运行过程中产生大量l o g 文件和临时文件都放在这两个目录中) ,因此,通常选用后一种方式。根文件指的是r o t o r s ,v a f 和t m p ,目录采用r o m f s ,当系统断电后,该目录所有的数据都会丢失。j f f s 是针对以闪存为存储介质的嵌入式系统,所以充分考虑了闪存的物理局限性,使用了尽可能高效的日志系统和前面介绍的t m e f f s 以及其他中间层驱动相比,j f f s 是专门针对闪存的文件系统,这个文件系统除了有同志功能,还包含了前面在t r u e f f s 章节中介绍的负载平衡,垃圾收集等功能。另外一个重要特点是这个文件系统是源代码公开的,方便了学习和使用。此外使用了日志系统,使文件系统更加可靠。日志文件系统的主要设计思想是跟踪文件系统的变化而不是文件系统的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年农村集体产权制度改革政策执行偏差纠正考核试卷
- 2025年金融科技行业区块链与人工智能融合应用研究报告及未来发展趋势预测
- 2025年化妆品行业社交化营销策略研究报告及未来发展趋势预测
- 2025年乡村医生《国家基本公共卫生服务规范》老年人健康管理新增指标操作规范考核试卷
- 2025年赣州市章贡区招聘区教育体育局下属事业单位体育类特殊专业技术人才2人笔试考试备考试题及答案解析
- 2025丹阳农商银行常态化社会招聘21人笔试考试参考题库及答案解析
- 2025广东佛山市顺德区教育局面向2026届毕业生赴高校设点招聘教师(第一批)434人考试笔试备考试题及答案解析
- 2026西北有色地矿集团招聘计划(110人)考试笔试模拟试题及答案解析
- 2025浙江绍兴市中等专业学校合同制人员招聘2人笔试考试参考试题及答案解析
- 2025云南楚雄州元谋县县级事业单位选调19人笔试考试备考试题及答案解析
- 《产品和服务战略》课件
- 演出票务合作协议
- 实验12-活塞连杆曲轴装配工艺过程设计(报告格式)
- 2024-2030年版中国资产评估行业发展前景及投资创新模式分析报告
- GB/T 44561-2024石油天然气工业常规陆上接收站液化天然气装卸臂的设计与测试
- 地理知识与生活实践模板
- 中小学危险化学药品分类
- (完整版)新概念英语第一册单词表(打印版)
- 江西省九江市修水县2024届九年级上学期期中考试数学试卷(含答案)
- 人教版历史七年级上册第一单元《史前时期:原始社会与中华文明的起源》检测试题
- 新能源发电技术 课件 第一章-新能源发电概述
评论
0/150
提交评论