《嵌入式网络视频监控系统的研究与实现.pdf》由会员分享,可在线阅读,更多相关《嵌入式网络视频监控系统的研究与实现.pdf(82页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、江苏大学硕士学位论文嵌入式网络视频监控系统的研究与实现姓名:望重申请学位级别:硕士专业:计算机应用技术指导教师:鲍可进20100601江苏大学硕士学位论丈摘要作为安防系统的重要组成部分,视频监控系统随着嵌入式技术、多媒体技术、计算机网络技术的快速发展也在不断地更新与发展。目前新兴的基于嵌入式技术的网络视频监控系统与传统的视频监控系统相比具有体积小、成本低、稳定性高、实时性好等优点,具有广阔的发展前景。本文在综述视频监控发展现状及趋势的基础上,提出了一种基于3 2 位R I S C处理器的嵌入式网络视频监控方案。方案采用北京亿旗公司的E A X 4 0 0 嵌入式开发硬件平台,软件实现视频图像的
2、实时采集、压缩和网络传输的功能。论文着重论述了该视频监控系统的总体设计及具体实现。硬件方面,简要介绍了A R M 体系结构处理器核的特点和优势及E A X 一4 0 0 的主要部件和相关接口,给出了E A X 4 0 0 的硬件总体结构。软件方面,实现了嵌入式L i n u x 平台的搭建、基于V 4 L 的视频采集以及基于优化的x 2 6 4 编码器的视频压缩;在实现视频实时传输时,设计了简化的R T P R T C P 分组格式,实现了简化R T S P 协议,并优化了H 2 6 4 的R T P 封装设计,最后建立了嵌入式W e b 服务器,并在连网的P C 机上通过浏览器完成了对视频监
3、控服务器端的实时视频监控。关键词:视频监控,嵌入式L i n u x,v 4 1,王 2 6 4,R T P R T C P,嵌入式W e b 服务器江苏大学硕士学位论文A B S T R A C TA sa ni n t e g r a lp a r to fS e c u r i t y&D e f e n s es y s t e m v i d e os u r v e i l l a n c es y s t e mi ss e e i n gar a p i dd e v e l o p m e n tw i t ht h et e c h n o l o g yi n n o v
4、 a t i o no fe m b e d d e ds y s t e m,m u l t i m e d i aa n dc o m p u t e rn e t w o r k T h ec u r r e n te m b e d d e d s y s t e mb a s e dn e t w o r kv i d e os u r v e i l l a n c es y s t e mh a sag r e a tp r o s p e c td u et oi t sb e t t e rp o r t a b i l i t y,l o w e rc o s t,h i
5、g h e rs t a b i l i t ya n db e t t e rr e a l-t i m ef e a t u r e,c o m p a r e d 谢t ht h et r a d i t i o n a lv i d e os u r v e i l l a n c es y s t e m A tt h eb a s i so fd e s c r i b i n gt h ed e v e l o p m e n ts t a t u sq u oa n dt r e n do fv i d e os u r v e i l l a n c e,as o l u t
6、 i o no f3 2 b i tR I S Cp r o c e s s o rb a s e de m b e d d e dn e t w o r kv i d e os u r v e i l l a n c eh a sb e e nr a i s e di n t h i sp a p e r I nt h es o l u t i o n,t h ef u n c t i o no fr e a l t i m ev i d e oc a p t u r e,e n c o d i n ga n dt r a n s f e rh a sb e e ni m p l e m e
7、 n t e do nt h eE A X-4 0 0p l a t f o r m,ap r o d u c to fE f l a gc o m p a n yi nB e i ji n g T h ep a p e rs t r e s s e so nt h eo v e r a l ld e s i g na n ds p e c i f i ci m p l e m e n t a t i o no ft h es y s t e m O nt h ep a r to fh a r d w a r e,ab r i e fi n t r o d u c t i o no ft h
8、ef e a t u r ea n da d v a n t a g eo fA R Ma r c h i t e c t u r ea n dt h eo v e r a l ls t r u c t u r eo fE A X 一4 0 0,a sw e l la si t sm a i nc o m p o n e n t,h a v eb e e nm a d e A n df o rs o f t w a r e,t h ee m b e d d e ds y s t e md e v e l o p m e n tp l a t f o r mh a sb e e nb u i l
9、 t,o nw h i c ht h ep r o g r a m so fv i d e oc a p t u r eb a s e do nv 4 1a n dt h ev i d e oc o m p r e s s i o nb a s e do no p t i m i z e dx 2 6 4h a v eb e e nd e s i g n e d W h e ni tc o m e st ov i d e ot r a n s f e r,t h es t r u c t u r eo fR T P R T C Pp a c k e t sh a v eb e e ns i m
10、 p l i f i e d,S Oh a v et h ei m p l e m e n t a t i o no fR T S Pa n dt h eR T Pp a c k e t i z a t i o no fH 2 6 4v i d e o A tl a s t,a ne m b e d d e dw e bs e v e rh a sb e e np o r t e dt ot h ep l a t f o r mf o rc o n n e c t i o nf r o mt h eb r o w s e ro nt h ew e bc l i e n tt or e a l
11、i z er e a l t i m ev i d e os u r v e i l l a n c e K e y w o r d s:v i d e os u r v e i l l a n c e,e m b e d d e dl i n u x,v 4 1,H 2 6 4,R T P R T C P,e m b e d d e dw e bs e r v e r独创性声明本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立进行研究工作所取得的成果。除文中已经注明引用的内容以外,本论文不包含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体,均已在文
12、中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。学位论文作者签名:日期:3 o l9 年易月c,9 日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权江苏大学可以将本学位论文的全部内容或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。保密口,在年解密后适用本授权书。本学位论文属于不保密凹。一虢懈新虢膨殍签字日期帅年多月澎日签字日期3 弼b 年6 月【矿日江苏大学硕士学位论文1 1 研究的背景和意义第一章绪论随着多媒体技术和网
13、络技术的发展,及图像较之其他信息形式的直观性,视频监控业务得到了广泛的应用。据悉,世博会期间,为全面构建“社会防控体系”上海就于市区内安装2 0 余万个监控摄像头。社会防控体系只是视频监控的应用之一,但这足以说明视频监控市场规模之大。市场调查显示,2 0 0 7 年中国网络视频监控业务市场规模达到2 6 3 6 亿元人民币,预计2 0 11 年达到8 6 6 1 亿元人民币。未来3 年之内,网络视频监控都将保持约3 8 的年增长率,会有越来越多的视频监控系统采用完全数字化的技术,特别是在一些行业市场,如交通、城市监控、工业和零售业等等。此外,以数字化视频监控为基础的智能视频监控技术也将获得长足
14、的发展I l J。视频监控系统主要用于完成现场点的数据采集、处理、实时监控等功能。传统的视频监控系统采用自动控制技术、计算机技术,并己广泛地应用于工业自动化、工业控制领域。然而,由于传统的视频监控系统没有或无法解决实时大数据量处理远程通信等问题,或者其成本等原因,其应用受到很大的限制。随着网络通讯技术和图像压缩处理技术以及传输技术的快速发展,数字视频通信技术得到越来越广泛的应用,采用这些先进技术的网络视频监控系统开始逐渐替换传统的视频监控系统。然而借助于P C 机来实现的视频监控服务器注定要面临先天的弊端:1、体积大,便携性差。2、电源依赖性强,无法实现自主供电。3、操作复杂。4、成本较高。这
15、对视频监控技术的广泛应用造成了障碍。随着嵌入式技术的不断成熟,这些问题迎刃而解。借助以太网和I n t e m e t 技术,把嵌入式系统连接至I n t e r n e t上,就可以方便、低廉的把信息传送到世界的任何一个地方,实现资源的共享,从而使人们有能力解决以前在极有限的资源下很难解决的问题,为远程网络视频监控系统的发展提供了有利的条件。由此可见,嵌入式网络视频监控系统必将有良好的应用和发展前景,由它替代当前普遍应用于P C 的视频远程监控系统己成为必然趋势。而目前在我国基于嵌入式技术的网络化视频监控系统刚刚起步,所以对基于嵌入式技术的网络视频监控系统进行研究极具现实意义。江苏大学硕士学
16、位论文1 2 视频监控的发展历史及现状视觉是人类最重要的感觉,也是人类获取信息的主要来源。据统计,在人类从外界获取的信息中,有7 0 以上来自视觉。图像与其他的信息形式相比,具有直观、具体、生动等诸多显著的特点。视频监控系统的发展大致经历了三个发展阶段【2】【3】:1)模拟视频监控系统。主要是以模拟设备为主的闭路系统,称为第一代监控系统。2)数字监控系统。2 0 世纪9 0 年代中期,随着计算机处理能力的提高和视频技术的发展,计算机的高速数据处理能力被用来进行视频的采集和处理,这大大提高了图像质量,增强了视频监控能力。此为第二代视频监控系统。3)网络数字视频监控系统。2 0 世纪9 0 年代末
17、,随着网络带宽、计算机处理能力和存储容量的迅速提高,以及各种使用视频信息处理技术的出现,视频监控进入了全数字化得网络时代,称为第三代视频监控系统。目前一般远程视频监控系统,其视频数据的解压缩一般基于P C 的视频卡来完成,这样视频前端比较复杂,价格高昂,所占空间较大,便携性差,不易布控。新近出现的基于嵌入式视频服务器技术的远程视频监控,由于视频采集前端的高度一体化,可方便实现广阔区域的布控。系统扩展能力也很强,只要有网络的地方增加监控点设备就可扩展新的监控点。另外,采用基于嵌入式系统的硬件是一个处理器和操作系统捆绑紧密、功能专一的独立设备,因此不像插卡系统那样易受通用计算机系统中其它软硬件的影
18、响,性能上更稳定。现阶段,嵌入式网络视频监测系统的解决方案主要有以下几种:1)视频采集芯片+D S P 处理器。该方案中由视频采集芯片完成图像的预处理,由D S P 完成图像的编码:基于H 2 6 4 或M P E G 标准的压缩,经以太网网络传输。方案的主要缺点是控制不够灵活,不适合作系统控制,因为通D S P 通常没有强大的操作系统。2)D S P 处理器+嵌入式处理器。该方案采用由D S P 完成基于H 2 6 4 或M P E G标准的图像压缩,在嵌入式处理器上运行嵌入式操作系统,(如嵌入式L i n u x)进行系统控制和网络传输。方案的主要缺点是:由于有两个主要的芯片,设计、调试、
19、使用较难,系统成本偏高。3)图像采集芯片+嵌入式处理器。该方案中,在嵌入式处理器上运行嵌入式操作系统(如嵌入式L i n u x)进行系统控制和网络传输。方案的主要缺点是缺乏江苏大学硕士学位论文强大的图像处理能力,不能满足高实时性要求,但具有开发容易,成本低的优点。因此,本文采用基于图像采集芯片+嵌入式处理的方案来完成嵌入式网络视频监控系统的实现的。1 3 论文主要研究工作1)针对A R MX s c a l ep x a 2 5 5 处理器的E A X 4 0 0 平台设计基于W e b 的网络视频监控方案。2)针对E A X 4 0 0 平台,构建嵌入式交叉开发环境,移植L i n u x
20、 2 6 2 7 内核,创建文件系统。3)开发L i n u x 下基于v 4 1 的视频采集程序,研究H 2 6 4 编码标准,并针对应用特点优化编码器。对采集和编码模块采用并发程序设计。4)研究R T P R T C P 相关协议,简化R T P R T C P 分组的封装,简化实现R T S P协议,分析H 2 6 4 的网络传输标准,并优化H 2 6 4 的R T P 封装策略,实现视频传输。5)构建嵌入式W e b 服务器,通过客户浏览器和视频服务器的交互来实现对服务器的相关设置,在客户端用浏览器调用V L C 播放器进行系统监控测试。江苏大学硕士学位论文第二章嵌入式视频监控系统的总
21、体方案2 1 嵌入式视频监控系统总体方案嵌入式视频监控系统应用到了嵌入式技术、视频压缩技术和视频传输技术等多个方面,一个良好的总体方案设计是系统开发成功的关键。本章根据嵌入式系统的一般构成,给出了系统设计的总体方案,这包括硬件和软件两个部分。系统可分为硬件层、b o o t l o a d e r 引导程序、操作系统层、应用软件层,整个系统整体设计框架如图2 1 所示,最终通过作为视频监控客户端P C 机将能对监控现场实现实时监控。图2-1 视频监控系统总体设计2 2 嵌入式视频监控系统硬件嵌入式微处理器是整个系统的核心,因此首先要确定系统的嵌入式微处理器。A R M(A d v a n c
22、e dR I S CM a c h i n e s)架构的微处理器具有体积小、低功耗、低成本、高性能等特点,因而在嵌入式领域得到广泛应用。嵌入式网络监控系统要求能够实时采集压缩视频数据并通过网络实时传输,数据运算量大对处理器要求高。本课题使用北京亿旗公司的E A X 4 0 0 嵌入式开发系统为硬件开发平台。E A X 4 0 0 嵌入式开发系统采用I n t e l 公司X s c a l e 系列的P X A 2 5 5C P U 为核心处理器,这里给出了与课题相关的硬件,其框图如图2 2 所示。4江苏大学硕士学位论文图2-2 系统硬件结构图中各硬件模块的介绍如下:1)P X A 2 5
23、5 处理器英特尔X s c a l eP X A 2 5 5 是基于I n t e lX S c a l e 微体系结构的I n t e lP C A 处理器【4 1,具有先进的集成功能、领先的多媒体性能和卓越的节电能力。X S c a l e 呋J 核采用带有一个增强型存储器管道的超级流水线R I S C 处理器架构的体系结构。这款新型高性能、低功耗的微构架兼容A R M v S T EI S A 指令集(不支持浮点指令集)。这种微构架在A R M 核的周围提供了指令与数据存储器管理单元,指令、数据和微小数据C a c h e,写缓冲、全缓冲、挂起缓冲和分支目标缓冲器,电源管理,性能监控、调
24、试和J T A G 单元以及协处理器接口,M A C 协处理器和内核存储总线。P X A 2 5 5 性能比A R M l 0 内核更加优越,频率高达4 0 0 M H z,内核扩充许多D S P 指令极大提高了多媒体处理能力,同时了提供L C D(液晶显示器)控制器、无线局域网(8 0 2 1 l b)、蓝牙、高速红外、U S B 等多种功能模块,其结构框图如图2 3 所示。作为便携移动设备的首选嵌入式处理器,P X A 2 5 5 内核具有I n t e l 最先进的动态电源管理术,可以根据处理器所执行的任务情况动态调整工作频率和多种节电模式,实现无与伦比的低功耗高性能的技术【5】。扛苏太
25、学硕士学位论支图2-3P X A 2 5 5 系统结构框图P X A 2 5 5 处理器符合工业产品应用标准,符合工业上倡导的M I P S m V 性能设计要求。这个处理器将一个复杂集成电路合成在块芯片上,采用I n t c lX s e a l e T M 微结构体系框架,具有许多外围接口,功能强大。P X A 2 5 5 具有嵌入式处理器的优点,主要用于下一代高性能的S m a r t P h o n e、P D A 的设计,支持多种流媒体格式、无线互联网存取以及其他边缘领先技术,同时还支持S e e u r e D i g i t a l M M C 和C o m p a c t F
26、l a s h 扩展技术为大数据量存储提供有效方案。2)存储系统E A X-4 0 0 嵌入式开发系统的存储子系统由可高速随机访问的R A M、非易失性的F L A S H 存储器组成,包括:6 4 M B y l eS D R A M、3 2 M B y t eN O RF L A S H、3 2 M B y t e N A N D F L A S H 6 1。S D R A M 采用韩国现代的H Y 5 7 v 5 6 1 6 2 0 c T-H 芯片,每片容量为4 B a n k s*4 M*1 6 B i t,共2 5 6 M b R,3 2 M b y t e。H Y 5 7 V 5
27、 6 1 6 2 0 C T-H 的位宽为1 6,E A X-4 0 0 系统用两片拼接为3 2 位宽度的6 4 M I l y t eR A M 存储器。N O RF L A S H 采用的是美国I n t e l 公司的S l r a t a F l a s h 2 8 F 1 2 8 J 3,每片容量为1 6 M b y m,芯片内部分为1 2 8 块,每块1 2 8 K b y t e。2 8 F 1 2 8 J 3 的位宽也是1 6,E A X-4 0 0系统用两片拼接为3 2 位宽度的3 2 M b y t eN O RF L A S H 存储器。N O Rf l a s h 带有
28、S R A M 接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节,因d 七N O R f l a s h 的传输效率很高,读速度比N A N D n 础稍快一些。N O R f l a s h 具有芯片内执行(x me X e c u t eI nP l a c e)的特点,这样应用程序可以直接在f l a s h 芯片内运行,不必再把代码读到系统R A M 中。N O R f l a s h 的不足是写堞除的速度太大慢于N A N Df l a s h,且价格较贵,擦除次数低于N A N Df l a s h,为1 0 万次。E A X-4 0 0系统中N O RF L A
29、S H 用于存茄B o o t l o a d e r、L i n u x 核及根文件系统。江苏大学硕士学位论文N A N DF L A S H 采用韩国三星的K 9 F 5 6 0 8,每片容量为3 2 M b y t e,位宽为8。N A N DF L A S H 的优点是写擦除的速度快,价格低,能够复用指令、地址和数据总线,从而节省了引脚数量;能够利用同样的硬件设计和电路板,支持更大容量的N A N D 器件;N A N DF L A S H 的擦除次数可达百万次。但它的缺点也是明显的:使用复杂的I O 口来串行地存取数据,且各个产品或厂商的方法可能各不相同。因此使用N A N D 器件
30、时,必须有驱动程序支持,才能继续执行其他操作。N A N DF L A S H 还会产生坏块和位交换(比特位发生反转)的现象,因此可靠性稍差,需要结合E D C E C C 算法以确保数据的可靠性。3)网络接口E A X 4 0 0 嵌入式开发系统外扩一个R J 4 5 以太网接口。以太网控制器采用C I R R U SL O G I C 公司的C S 8 9 0 0 A,最大速率为1 0 M b p s。通过双绞线可以实现网络通讯和数据传输功能。可以通过交叉网线同P C 机连接或通过直联网线同集线器连接。4)U S B 接口E A X 一4 0 0 嵌入式开发系统配有1 个标准U S BB
31、型插座和2 个标准U S BA 型插座。其中U S BH O S T 采用P h i l i p s 公司生产的I S P l l 6 1 A 1U S B 主机控制器。I S P l1 6 1 A 1 是一款可以支持主从模式的嵌入式U S B 控制器,支持两种传输模式:1 2 M b p s 全速传输模式和1 5 M b p s 低速传输模式。I S P l l 6 1 A 1 遵循U S B1 1 规范。5)其它接口E A X 4 0 0 嵌入式开发系统具有三个外接的U A R T 串口和一个G P R S 通讯串口,其中P X A 2 5 5 处理器自身提供的F F U A R T(全功
32、能U A I 汀)可以通过交叉串口线同P C 机进行通信,主要用于系统调试,作为B o o t l o a d e r 的信息输出口和L i n u x 内核的控制台端口。E A X 4 0 0 嵌入式开发系统还有一个2 0 针的J T A G 调试口,可实现两个作用:连接A R M 仿真器进行在线调试;连接J T A G 下载线,直接对E A X 4 0 0 开发系统的N O RF L A S H 进行烧写编程。2 3 嵌入式视频监控系统软件2 3 1 系统软件设计鉴于嵌入式L i n u x 的稳定性、强大的网络支持功能和完全免费的特性,本课题选取L i n u x 作为系统软件平台。课题
33、中选取最新的(本课题研究时)L i n u x 2 6 2 7 内核版本来做移植。与L i n u x 2 4 相比,L i n u x 2 6 具有很多有利于嵌入式应用的新特性,如实时性能的增强,更方便的移植性、共享内存的改性和I o 系统的改进等。构建嵌入式L i n u x 系统的工作主要包括建立交叉编译环境、江苏大学硕士学位论文B o o t l o a d e r 移植、L i n u x 内核移植、根文件系统的构建。2 3 2 应用软件设计系统的应用软件设计基于嵌入式L i n u x 操作系统平台,应用软件模块见图2 4。H T T P_ W e b 服务器p卜、C G I 程序
34、嘲络令令令连接高要视视视R T P 3l频卜频卜频_ R T r p 卜采编传l g 集码输模模模块块块图2-4 应用软件模块整个系统根据功能分为以下几个独立的模块:视频采集模块、图像压缩编码模块、视频传输模块、W E B 服务器模块,各功能模块说明如下:1)视频采集模块。L i n u x 下视频采集是通过V 4 L(V i d e oF o rL i n u x)t。7 1 来实现的,课题中使用的是W e b e y ev 2 0 0 0U S B 摄像头,它采集到的视频数据有R G B 2 4 和Y U V 4 2 0 两种格式,这里取Y U V 4 2 0 格式,以方便视频压缩模块对其
35、进行直接处理。2)视频编码模块:经过采集模块获得的原始码流保存到缓冲区中,然后编码模块对该缓冲区码流进行H 2 6 4 格式的编码并负责交给传输模块。这里采用了多线程程序设计,采集模块和编码模块的同步采用的生产者和消费者模型。3)视频传输模块:该模块对由编码模块产生的H 2 6 4 码流进行R T P 格式的封装和传输。对传输质量的控制是通过利用R T C P 反馈包信息实现的,这里对R T P R T C P 协议进行了简化实现。4)服务器端会话模块:这个模块是通过建立W e b 服务器来实现的,W 曲服务器通过H T T P 协议与监控端浏览器软件进行信息交互,提供其他应用程序模块的接口以
36、及视频数据浏览界面它包括会话建立、会话控制,也包括一些用户设置等。系统提供T R T S P 8】会话模式,建立会话线程等待客户端的连接。8江苏大学硕士学位论文2 4 本章小结本章首先介绍了视频监控系统总体框架设计,接着描述了监控系统硬件开发平台的主要构成,然后设计了基于嵌入式L i n u x 操作系统的应用软件框架,具体描述了系统所要完成的功能。9江苏大学硕士学位论文第三章嵌入式L i n u x 系统构建嵌入式l i n u x 是目前嵌入式系统中发展势头最猛的嵌入式操作系统,已经应用在多媒体设备、手持设备、车载导航系统、智能手表、机械控制等领域中。这主要是因为嵌入式l i n u x
37、操作系统具有以下的优势【9】【1 0】:1)L i n u x 内核精简,各部分的功能明确,可扩展性强,容易剪裁。2)L i n u x 上有丰富的驱动程序,支持各种主流硬件设备和最新的硬件技术,随着L i n u x 的广泛应用,许多芯片厂家开始提供L i n u x 上的驱动。3 1 大小功能可以定制,L i n u x 继承了U N I X 的设计思想,内核与用户界面完全独立,各部分的可定制性都很强。4)L i n u x 符合I E E EP O S I X 编程标准,有非常好的可移植性。它本身是U N I X系统的一种克隆,支持商业U N I X 的全部功能,U N I X 平台上众
38、多的应用程序稍加修改就可以应用到嵌入式环境中L i n u x 平台。5 1 强大的网络功能,L i n u x 支持所有标准的因特网协议,几乎所有的协议和网络接口都定制在其中。6)很高的稳定性,L i n u x 的内核是非常可靠和稳定的,并且由于内核的稳定性使得L i n u x 在移植到特定平台后与通用平台一样具有高稳定性。3 1 嵌入式L i n u x 开发环境的建立由于多数嵌入式目标系统未能提供足够的资源供编译过程使用,因而只好将编译工作转移到高性能的P C 机中进行,这样就需要进行交叉编译。交叉编译本身在宿主机上进行,编译产生的二进制代码则运行于目标机上,一般把生成代码的平台称为
39、宿主机,把执行代码的平台称为目标机。宿主机P C 通过串口C O M l、并口L P T l、以太网络接口与目标机E A X 4 0 0嵌入式开发系统的F F U A R T 串口、J T A G 口、以太网络接口分别连接。如图3 1所示。1 0江苏大学硕士学位论文图3 1 交叉开发的硬件连接图本课题中宿主机安装的是W i n d o w sX P 操作系统,宿主机的L i n u x 环境是通过在虚拟机软件V M w a r e 中安装了F e d o r aC o r e4 提供的,在这上面主要进行编译工作,编译成功后拷贝到W i n d o w s 系统,再经网络、串口等方式下载到目标机
40、。这种交叉开发环境既可以同时工作在两种完全不同的操作系统平台,无需频繁地重启计算机进行系统切换,又具有真实L i n u x 发行版的运行环境。课题中交叉工具链式是通过C r o s s t o o l 开源软件项目建立的。C r o s s t o o l 是一组脚本的结合,通过这些脚本,使得基于G C C、G L I B C、L I N U X 的交叉开发工具链的创建能够自动执行。本课题使用的处理器是I n t e l 公司设计生产的X s c a l e系列的P X A 2 5 5,在制作交叉开发工具链时,使用的主脚本文件是d e m o a r m x s c a l e s h,其中
41、的核心命令改为:e v a l c a ta r m x s c a l e d a tg c c-4 0 1-g l i b c-2 3 5 一h d r s-2 6 11 2 d a t、s ha 1 1 s h 一一n o t e s t,在等待了大约两个小时后,一套名为“a n n x s c a l e 1 i n u x g n u-的交叉工具链就制作成功了。编译结束后,在$(R E S U L TT O P)目录下会新建一个目录g c c 4 0 1 g l i b c 2 3 5,就是编译好的交叉工具链。将该目录拷贝至U u s r l o c a l,再修改r o o t b
42、 a s hp r o f i l e 文件,增加下列命令行:P A T H=$P A T H:$H O M E b i n:u s r l o c a l g c c-4 0 1 一g l i b c 一2 3 5 a r m-x s c a l e l i n u x g n u b i n保存退出后,在终端窗E l 执行命令:s o u r c e r o o t b a s hp r o f i l e 至此,交叉工具链安装结束。以后使用这个工具链时,就不必指定绝对路径,系统会自动寻找到它。3 2B o o t l o a d e r 的构建3 2 1B o o t l o a d e
43、 r 的启动图3 2 是个典型的嵌入式应用系统固态存储设备的空间分配示意图。B o o t l o a d e r 是系统加电后所执行的第一个程序,在操作系统内核或用户应用程序江苏大学硕士学位论文运行之前运行。通过这段小程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,为最终调用操作系统内核或用户应用程序准备好正确的环境。图3-2 固态存储设备的空间分配结构示意图从操作系统的角度看,B o o t L o a d e r 的总目标就是正确地调用内核来执行。B o o t L o a d e r 的启动过程大多数分为阶段l 和阶段2。阶段1 主要包含依赖于
44、C P U 体系结构的硬件初始化代码,通常用汇编语言来实现的。这个阶段通常包括以下步骤【1 1 1:1)硬件设备初始化。目的是为阶段2 的执行以及随后内核的执行准备好基本的硬件环境。2)为加载B o o t L o a d e r 的阶段2 准备R A M 空间。为了获得更快的执行速度,通常把阶段2 加载到删空间来执行。3)拷贝B o o t L o a d e r 阶段2 的代码到洲空间中。设置好堆栈。4)跳转到阶段2 的C 程序入口点。B o o t L o a d e r 的阶段2 通常用C 语言来实现,这样可以实现更复杂的功能,而且代码会具有更好的可读性和可移植性。通常包括以下步骤:1
45、)初始化本阶段要使用到的硬件设备。2)检测系统内存映射。3)将内核映像和根文件系统映像从F l a s h 上读到R A M 空间中。4)为内核设置启动参数。5)调用内核。3 2 2B o o t l o a d e r 的移植E A X 4 0 0 嵌入式开发系统提供了已经移植好的b l o b 作为B o o t l o a d e r。同一个B o o t l o a d e r,可以引导不同版本的内核。但因内核和根文件系统的下载与烧写是由b l o b 直接读写F l a s h 对应的偏移地址实现的,因此b l o b 就决定了内核和根文件系统的存储起始地址和大小,它们与内核中对F
46、l a s h 的分区应相一致。由于1 2江苏大学硕士学位论文后文所移植的L i n u x 2 6 2 7 内核映像大小超过了现有b l o b 所允许的内核大d、(1 MB y t e),所以要对b l o b 中有关内核和根文件系统的存储起始地址和大小的代码作相应的改动。在E A X 一4 0 0 嵌入式开发系统中,N o rF l a s h 有3 2 MB y t e,原来的分配是:表3-1N o rF l a s h 原分配表b l o b内核根文件系统所占空间大小2 5 6 K1 M3 2 M 一1M 2 5 6 K起始地址C S 0 B A S EC S O B A S E+0
47、 x 4 0 0 0 0C S 0 B A S E+0 xI4 0 0 0 0新的分配是:表3-2N o rF l a s h 新分配表b l o b内核根文件系统所占空间人小2 5 6 K2 M3 2 M 2 M 2 5 6 K起始地址C S 0 B A S EC S 0 B A S E+0 x 4 0 0 0 0C S 0 B A S E+0 x 2 4 0 0 0 0在i n c l u d e f l a s h h 中改动后的代码如下:#d e f i n eB L O B S T A R TC S 0 B A S E#d e f i n eB L O B L E N0 x 4 0
48、0 0 0p2 5 6 K,s h o u l db ef l a s hb l o c ka l i g n e d 囊|#d e f i n eN U M B L O B B L O C K S2#d e f i n eK E R N E L S T A R T(C S 0 _ B A S E+B L O B L E N)#d e f i n eK E R N E LL E No X 2 0 0 0 0 0 严2 M,原来是0 x l0 0 0 0 0*#d e f i n eN U M K E R N E L B L O C K S16#d e f i n eI N I T R D S
49、T A R T(K E R N E L S T A R T+K E R N E L L E N)#d e f i n eI N I T R DL E N0 x l d c 0 0 0 0 3 2 M 2 M 2 5 6 k,原来是0 x l e 0 0 0 0 03 0 M*#d e f i n eN U MI N I T R DB L O C K S2 3 8 严原来是2 4 0,部分f l a s h 空间空闲事这部分代码决定了内核和根文件系统在F l a s h 中的存储起始地址和大小。在i n c l u d e m a i n h 中改动后的代码如下:#d e f m eK E R
50、N E L R A M B A S E0 x a 010 0 0 0 0|1M|#d e f i n eK E R N E L B L O C K O F F S E T0 x 0 010 0 0 0 0以上代码决定了内核在R A M 中的虚拟存储起始地址和相对虚拟基地址的偏移量。#i f d e f i n e dE P l 2 5 5 l I d e f i n e dE E S 2 5 5#d e f i n eR A M D I S KR A MB A S E(O x a 0 2 0 0 0 0 0)*2 M 原来的定义,已被注释掉#d e f i n eR A M D I S KR