(通信与信息系统专业论文)嵌入式测井地面采集系统构建.pdf_第1页
(通信与信息系统专业论文)嵌入式测井地面采集系统构建.pdf_第2页
(通信与信息系统专业论文)嵌入式测井地面采集系统构建.pdf_第3页
(通信与信息系统专业论文)嵌入式测井地面采集系统构建.pdf_第4页
(通信与信息系统专业论文)嵌入式测井地面采集系统构建.pdf_第5页
已阅读5页,还剩52页未读 继续免费阅读

(通信与信息系统专业论文)嵌入式测井地面采集系统构建.pdf.pdf 免费下载

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

文档简介

摘要 摘要 本文在介绍了e p 9 3 1 2 特点的基础上,根据嵌入式测井信号采集系统的特点, 构建了一个针对e p 9 3 1 2 处理器的交叉编译环境。此交叉编译环境支持三种不同类 型的交叉编译工具链。并对此交叉编译环境进行了浮点运算能力和软件依赖性两 方面的测试。由测试结果可知:支持m a v e r i c kc r u n c h t m 协处理器的嵌入式系统可 以极大的改善系统的信号处理能力;各个工具链均能够正确的处理应用软件中多 个软件组件之间的相互依存关系。结合a r m 9 2 0 t 处理器e p 9 31 2 的性能特点和系 统的基本架构,设计并实现了b o o t l o a d e r 启动程序、l i n u x 操作系统内核以及根文 件系统。详细分析了嵌入式测井信号采集系统的构成,给出了嵌入式测井信号采 集系统的实现方案。对于嵌入式系统的软件与部分硬件进行了设计,给出了一个 数字滤波器设计和实现的通用模型,针对不同的井下信号编写了相应的解码程序。 关键词:e p 9 3 1 2嵌入式测井 a b s t r a c t a b s t r a c t f i r s t l y , o nt h eb a s i so fi n t r o d u c i n gt h ef e a t u r e so fe p 9 312 ,t h ec r o s s - c o m p i l e r e n v i r o n m e n tf o re p 9 312m i c r o p r o c e s s o ri sb u i l ti nt h i st h e s i s t h ep e r f o r m a n c et e s tf o r t h i sc r o s s c o m p i l e re n v i r o n m e n tc o n s i s t so ft w op a r t si n c l u d i n gt h ef l o a t i n g - - p o i n t o p e r a t i o na n dt h es o f t w a r e d e p e n d e n c e i ti ss h o w ni nt h er e s u l to ft h i sc o m p a r i s o nt h a t s u p p o r t i n gm a v e r i c kc r u n c h t mc o p r o c e s s o rc a ng r e a t l yi m p r o v et h ep e r f o r m a n c eo f s i g n a lp r o c e s s i n go ft h ee m b e d d e ds y s t e ma n da l lo ft h et h r e et o o l c h a i n sc a nc o r r e c t l y d e a lw i t ht h ed e p e n d e n tr e l a t i o no ft h ed i f f e r e n tp a r t sw h i c hb e l o n gt oo n ea p p l i c a t i o n s o f t w a r ep a c k a g e a c c o r d i n gt ot h ef e a t u r e so fa r m 9 2 0 tp r o c e s s o r - e p 9 312a n dt h e b a s i ch a r d w a r eo r g a n i z a t i o no ft h es y s t e m ,b o o t l o a d e r , l i n u xk e r n e la n df i l es y s t e m a r ed e s i g n e da n da c c o m p l i s h e di nt h i st h e s i s t h e nt h es t r u c t u r eo ft h ee m b e d d e dw e l l l o g g i n gs i g n a la c q u i s i t i o ns y s t e mi sa n a l y z e di nd e t a i l s s o f t w a r ea n dp a r to fh a r d w a r e o ft h ee m b e d d e ds i g n a la c q u i s i t i o ns y s t e ma r ed e s i g n e d t h eu n i v e r s a lm o d e lf o ra d i g i t a lf i l t e rd e s i g na n di m p l e m e n t a t i o ni sg i v e n t h ec o r r e s p o n d i n gd e c o d i n gp r o c e s s e s a r ec o m p i l e df o rd i f f e r e n tu n d e r g r o u n ds i g n a l s k e y w o r d s :e p 9 3 1 2 e m b e d d e d l o g 西安电子科技大学 学位论文独创性( 或创新性) 声明 秉承学校严谨的学分和优良的科学道德,本人声明所呈交的论文是我个人在 导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特,l , j ) j n 以标 注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成 果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的 材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说 明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切的法律责任。 本人签名:姜平琵 西安电子科技大学 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。学校有权保 留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内 容,可以允许采用影印、缩印或其它复制手段保存论文。同时本人保证,毕业后 结合学位论文研究课题再攥写的文章一律署名单位为西安电子科技大学。( 保密的 论文在解密后遵守此规定) 本学位论文属于保密,在年解密后适用本授权书。 本人签名: 导师签名: 日期:堡旦! 三if 日期:兰霉j 业 第一章绪论 第一章绪论 1 1选题背景 众所周知,能源是一个国家经济发展的命脉,而石油则更被视之为现代经济 健康发展与腾飞的重要组成因素。近年来,随着中国经济的持续高速发展,石油 的需求量也随之迅猛增加。然而,国内自产石油量的增长却无法满足由于经济高 速发展而产生的石油消费需求。为了解决这一供需矛盾,一方面需要加大石油的 进口额度,另一方面也需要提高我国自身的石油产量。但是,由于过度地依赖石 油进口具有很大的国际风险,而且将遭受西方国家的长期制约,所以如何提高我 国自身石油产量就成为一个摆在人们面前的严峻问题。 目前,提高我国石油自身产量的途径主要有两种:第一种,探测新的油气储 藏;第二种,综合的开发现有的己知油气田。尽管我国近期又发现了新的油气储 藏,并保证今后石油产量会有一定的增长,但是这远远不能满足我国近期内对石 油消费的需求。综合地开发现有的油气田,准确的探测地下的油气储量,合理的 制定开采计划,延长现有的油气田的使用年限,就成为了一个解决长期我国石油 供需矛盾的可行方法。这不仅仅是体现在经济效益上,更重要的是对我们国家摆 脱西方国家的能源制约和限制具有极其深远的战略意义。 由于油井的地质结构复杂,井下环境恶劣,使得传统的油井探测设备不能得 到十分精确的探测数据,从而影响了对油井地下储油情况的判断。所以,提高油 井探测设备的探测精度,对正确判断油井的综合使用能力具有十分重要的作用。 近些年来,许多国家对油井探测设备都进行了大规模的升级改造,研制了许 多与现代数字化计算机技术相符合的新设备、新仪器,提出了许多油井探测的新 理论、新方法,使如今世界的石油探测水平有了长足的进步。我国各大油气田也 在进行着大规模的技术革新与设备升级,其中一个重要的方向就是进行计算机数 字化改造【2 4 】。本文所设计的嵌入式油井信息采集系统就属于需要数字化改造的一 个方面。 1 2 嵌入式l i n u x 系统概述 l i n u x 是由u n i x 操作系统发展而来的,具备现代一切功能完整的u n i x 系统 所具备的全部特征,其中包括真正的多任务、虚拟内存、共享库、优秀的内存管 理以及t c p f l p 网络支持等。它最早是在1 9 9 1 年由芬兰赫尔辛基大学的一个叫 2 嵌入式测井地面采集系统构建 l i n u xt o r v a l d s 的大学生参照u n i x 的功能在自己的p c 上写出来的。起初,l i n u x 是为基于x 8 6 架构的p c 机开发的,但随着l i n u x 的不断发展和完善,它已经可以 很好的支持诸如a r m 、d e ca l p h a 、s u ns p a r c 、m 6 8 0 0 0 、m i p s 和p o w e r p c 等 主流处理器架构。 l i n u x 可在g n u 公共许可权限下免费获得,是一个符合p o s i x 标准的操作系 统。l i n u x 属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并 且可以根据自己的需要对它进行必要的修改并将修改结果继续传播,这一特点极 大的促进了它在全世界范围内的发展。 l i n u x 之所以能成为一种流行的嵌入式操作系统,其最主要原因是l i n u x 内核 具有非常良好的结构,即可由用户根据特定的系统需求,对内核进行配置或裁减, 而这一特点恰恰满足了嵌入式应用的差异性需求【l 】。尽管l i n u x 内核系统结构复杂, 但按照大的任务划分,这个系统可以分成如图1 1 所示的各个部分。 广一一一一一一一。一一一一一一一一一一一一。一。1 :l i n u x 内核: ii 图1 1l i n u x 系统结构图 在这种结构中,系统的硬件方面必须符合一些要求才能执行l i n u x 操作系统: 第一,l i n u x 需要至少3 2 位的处理器,而且处理器必须配备存储管理单元 ( m e m o r ym a n a g e m e n tu n i t ,m m u ) ; 第二,r a m 的容量必须满足系统的需求; 第三,如果任何开发工作都是在目标系统上完成的,而且目标系统具备适当 的调试功能,则需要最基本的i o 功能; 第四,内核必须能够通过某些形式的永久性或网络存储装置来加载及存取根 文件系统。 嵌入式l i n u x 操作系统是指对标准的l i n u x 经过裁减小型化后,可以固化在存 储器中,应用于特定嵌入式场合的专用操作系统,具有免费的版权、卓越的网络 特性、易于软件移植、应用产品开发周期短、稳定性好等特点博j 。 第一章绪论 虽然嵌入式系统l i n u x 内核与通用的l i n u x 内核在代码上基本相同,但是由于 嵌入式系统的硬件资源有限,因此不能直接把用于普通p c 机的l i n u x 作为嵌入式 系统的操作系统使用,需要针对具体的应用和不同的硬件设备适当的配置内核、 制作根文件系统以及开发相应的驱动程序等调整,使整个系统能够存放到容量相 对较有限的硬件资源中去,并且稳定地完成系统所要完成的任务。 在嵌入式设备上采用l i n u x 系统时,会出现许多和桌面l i n u x 系统所不同的特 点,这些特点典型的体现在以下几个方面: 1 对于不同体系架构的支持 由于嵌入式系统往往采用各种各样的嵌入式处理器,这些处理器具有不同的 体系结构,因此开发人员需要采用交叉编译器来对l i n u x 内核源代码进行编译,同 时还要针对不同的体系结构和底层硬件平台,使用和修改与体系结构对应的部分 的内核源代码。 2 可配置的l i n u x 内核 l i n u x 内核具有一定的可配置性,这一特点在嵌入式l i n u x 方面特别有意义, 因为嵌入式l i n u x 内核往往需要配置与普通桌面l i n u x 系统不同的内核选项,如 l i n u x 模块属性等。 3 f l a s h 文件系统 嵌入式l i n u x 系统往往没有硬盘设备,而采用f l a s h 等非易失存储器作为文件 系统和数据的存储空间,其中又以f l a s h 存储器的使用最为广泛,因此l i n u x 内核 中专门设计了与m t d ( m e m o r yt e c h n o l o g yd e v i c e ) 相关的模块,用以支持f l a s h 存储器的访问。 4 精简的函数库 普通桌面l i n u x 系统中往往带有很多、很大的函数库,比如最常用的基本c 函数库就有十几兆字节的大小,这对于存储资源有限、成本要求严格的嵌入式系 统来说一般是不可接受的。而这些函数库又往往有可精简的余地,因为为了处理 各种特殊情况,为了提供全面的功能,这些函数库往往会拥有大量几乎不被使用 的函数。在嵌入式系统中,如果根据应用需求和软件设计事先知道哪些函数不会 被使用,就可以为相应的函数库“减肥 ,比如基本c 函数库可以被精简到1 m b 以下。 5 精简的s h e l l 基于与函数库同样的考虑,为了节省存储空间、降低成本,普通桌面l i n u x 系统上的庞大s h e l l 程序和各种命令也不便在一些嵌入式l i n u x 操作系统中使用, 而是通过精简使其小型化,比如用于代替一些常见s h e l l 命令的b u s y b o x 工具集合。 6 小型图形库 嵌入式l i n u x 系统上不仅非易失存储器的容量有限,而其易失性存储器的容量 4 嵌入式测井地面采集系统构建 也非常宝贵,一些消耗存储资源较多的程序往往无法在嵌入式设备上顺利运行, 比如x w i n d o w s 图形库、q t 图形库等,因此在嵌入式l i n u x 系统上往往需要采用 较为小型的图形库,如m i n i g u i 等【1 3 】。 1 3 论文的主要工作和章节安排 本论文的主要工作分为三部分。 第一部分为第二章。在第二章中简单介绍了嵌入式微处理器e p 9 31 2 的基本结 构和主要的硬件特性。针对e p 9 3 1 2 微处理器平台制作了开发所必须的交叉编译环 境,此交叉编译环境包括三种不同类型的交叉工具链,并对此交叉编译环境进行 了浮点运算性能和软件依赖性的两方面测试。 第二部分为第三章。在第三章中针对e p 9 3 1 2 嵌入式微处理器平台,进行了系 统b o o t l o a d e r 的移植、l i n u x 2 4 内核的移植以及根文件系统的制作。其中包括详 细的移植步骤与移植过程中的注意事项。 第三部分为第四章。第四章介绍了嵌入式油井信息采集系统的整体软、硬件 设计。为了解决不同地质条件下需要制定不同的滤波器的问题,结合应用提出了 种通用的数字滤波器设计及实现模型,并给出了相应的数字滤波器实现程序。 针对井下仪器所传输到信息采集系统的信号,给出了一种自适应补偿算法的实现 方法,并给出了不同信号的相应解码程序。 第二章建立系统开发环境 第二章建立系统开发环境 在油井探测的领域中,目前已有大量成熟而且稳定的信号处理算法,为了使 这些由高级语言编写的处理算法源程序能够直接转化为可以在a r m 体系架构的 处理器上运行的可执行程序,必须有一个特殊的编译环境,即这个编译环境的作 用是将高级语言的源程序编译成可以在a r m 体系架构的处理器上运行的可执行 程序。该开发环境的性能将直接关系到最终嵌入式系统的质量。 2 1e p 9 31 2 微处理器简介 2 1 1e p 9 31 2 的选用原因 在石油测井系统中,由于井下探测仪器是在不断的运动过程中对井内不同深 度处的各个参数进行的测量,所以要求信息采集系统必须在一定的时限内完成对 某一深度处井下探测仪器传入信号的接收与处理工作,以便采集并处理下一个深 度处的各个参数,即对系统的实时性有着一定的要求。另外,由于信息采集系统 中对所采集的信号处理工作绝大多数为浮点数运算,所以要求系统必须具备良好 的浮点运算能力。 综合以上两个方面的考虑,加之成本价格与系统设计等多方面的因素,决定 采用c i r r u sl o g i c 公司出品的e p 9 3 1 2 微处理器作为整个信息采集系统的核心处理 器。这不仅是因为e p 9 3 1 2 处理器内嵌了m m u 单元,可以支持l i n u x w i n d o w sc e 等嵌入式操作系统,更重要的是e p 9 3 1 2 处理器中的m a v e r i c kc r u n c h t m 数学协处 理器可以显著的提高a r m 9 2 0 t 架构微处理器的浮点运算、整型运算和信号处理能 力,使系统在进行编码解码、执行工业控制运算以及运算密集型计算和数据处理 时,具有高速、精确的计算能力。 这种结构与单一使用d s p 处理器的系统相比具有更好的任务调度能力,而且 有利于日后的系统设备升级;与使用a r m + d s p 的系统结构结构相比而言,不但 简化了系统的硬件设计,降低了成本,而且方便系统的软、硬件调试。在满足系 统实时性以及功能需求的条件下,选择e p 9 3 1 2 微处理器无疑是明智的选择。 2 1 2e p 9 3 1 2 的内部结构 e p 9 3 1 2 内嵌了先进的运行于2 0 0 m h z ( 工业条件下推荐运行1 8 4 m h z ) 的 6 嵌入式测井地面采集系统构建 a r m 9 2 0 t 微处理器核,以及支持l i n u x 、w i n d o w sc e 和其他许多嵌入式操作系统 的存储器管理单元( m m u ) 。a r m 9 2 0 t 的3 2 位微控制器结构具有5 级流水线, 可以以极低的功耗提供优异的性能;同时,1 6 k b 指令高速缓存和1 6 k b 数据高速 缓存可为现有的程序和数据提供零等待时间,或者以锁定的方式确保对关键指令 和数据的无延迟存取。对于一些程序存储器大小有限制的应用场合,a r m 9 2 0 t 所 支持的压缩型t h u m b 指令集有助于空间利用率的提高和程序存储器的最大化使 用。e p 9 3 1 2 的a r m 9 2 0 t 内核工作电压为1 8 v ,输入输出( i o ) 电压为3 3 v , 根据不同的运行速度,功耗从1 0 0 m w 7 5 0 m w 不等。 e p 9 3 1 2 内部集成了一个m a v e r i c kc r u n c h t m 数学协处理器,显著提高了 a r m 9 2 0 t 的浮点运算、整型运算与信号处理能力,同时还专门针对数字音频的压 缩与解压算法进行了优化。因此,当对数字音频进行编码解码、执行工业控制运 算以及其他运算密集型计算和数据处理时,该协处理器可使e p 9 31 2 微处理器具有 明显区别于其它a r m 9 2 0 t 系列微处理器的卓越性能。 除此之外,e p 9 3 1 2 嵌入式微处理器还具有丰富的片内资源与外部接口。关于 e p 9 3 1 2 各个功能模块更详细的描述,可以参考相关的芯片手册【5 】。e p 9 3 1 2 处理器 的内部结构如图2 1 所示。 图2 1e p 9 3 1 2 处理器的内部结构 作为一款高集成度和片内外围丰富的a r m 9 嵌入式微处理器,e p 9 3 1 2 适用于 如下领域: 商用与家用的瘦客户端计算机; 测试与测量设备; 网络收音机; 网络访问设备: 第二章建立系统开发环境 7 工业计算机; p o s 终端; 专业智能终端; 工业手持设备; 医疗设备; 生物测量与安全系统; 其他嵌入式应用领域。 2 2 开发环境的建立 与主流的软件开发非常相似,嵌入式系统开发也需要用到编译器、链接器、 解释程序、集成开发环境以及诸如此类的其它开发工具。然而,嵌入式开发的工 具有所不同,因为他们用来执行应用程序的平台与用来建立应用程序的平台并不 相同。一般而言,在确定好宿主机的工作环境后,在宿主机中建立交叉编译环境 的过程大体上可以分为五个步骤: 1 内核头文件的设置 2 二进制工具程序的设置 3 引导编译器的设置 4 c 链接库的设置 5 完整的编译其设置 虽然每个步骤都有许多自己要做的工作,但是它们之间却有很多的相似之处, 绝大多数组件的建立步骤都会执行以下操作:解压缩、针对目标平台作相应的设 置、建立包以及安装等。在每一个步骤中都需要十分谨慎的设置配置参数,以及 阅读每个组件的有关说明,才能顺利的搭建成功。 对于e p 9 3 1 2 处理器而言,对于浮点运算的处理有三种方式:第一种,软浮点 处理方式。那些没有浮点处理单元的嵌入式处理器,对于浮点数的操作是通过一 些特殊的函数来完成的这也是基于a r m 9 2 0 t 内核架构的普通嵌入式处理器 常用的浮点数处理方式。第二种,硬件协处理器处理方式。这种方式是e p 9 3 x x 系列处理器所特有的浮点数处理方式。第三种,c r u n c h 软加速处理方式。对于那 些经由特殊函数处理过的浮点数操作,也可以由硬件协处理器进行加速处理。所 以,在构建针对e p 9 3 1 2 处理器的交叉编译环境的过程中,为了能够实现多种处理 方式,交叉编译环境应满足以上三种处理方式的要求。 由于e p 9 31 2 处理器对于普通的软浮点处理方式与一般的a r m 9 2 0 t 嵌入式处 理器并没有太大的区别,所以本章的重点是针对e p 9 3 1 2 处理器构建一个支持 c r u n c h 数学协处理器的交叉编译环境,该环境包括对浮点运算采取硬件协处理器 8 嵌入式测井地面采集系统构建 和c r u n c h 软加速处理两种处理方式。 本章针对以上的处理方式,给出了构建交叉编译环境的详细步骤,并在构建 成功后对交叉编译环境的性能进行了整体综合测试。测试结果表明,无论是哪种 处理方式,本文所构建的针对e p 9 3 1 2 嵌入式处理器的交叉编译环境,均能达到良 好的工作效果,运行稳定。 2 2 1 开发环境的建立过程 1 主机开发环境的选择 开发嵌入式l i n u x 应用程序,首先必须建立一个l i n u x 下的交叉编译环境,要 搭建交叉编译环境,除了直接在宿主机上安装l i n u x 系统之外,还可以采用一些 w i n d o w s 环境下的l i n u x 仿真平台,使开发人员可以更加容易的进行开发。在宿主 机上要建立l i n u x 的开发环境,一般有以下三种途径: ( 1 ) 在宿主机上安装l i n u x ,如r e d h a tl i n u x 、s u s el i n u x 等; ( 2 ) 在宿主机上的w i n d o w s 操作系统上安装c y g w i n 程序,模拟实现l i n u x 编译环境; ( 3 ) 在宿主机上的w i n d o w s 操作系统上安装v m w a r e 虚拟机,并在v m w a r e 之上建立l i n u x 开发环境。 安装l i n u x 操作系统作为宿主机,虽然可以得到比较快的运行速度,但是由于 目前w i n d o w s 操作系统和l i n u x 操作系统在文件系统方面的差异,许多磁盘文件 无法共享,导致了在系统切换的时候,需要经常重新启动,十分的繁琐。加之, 目前大多数用户是w i n d o w s 用户,对l i n u x 操作系统并不熟悉,如果直接以l i n u x 作为宿主机的操作系统无疑也加大了开发的难度。 在w i n d o w s 操作系统上安装c y g w i n 程序模拟实现l i n u x 编译环境。c y g w i n 可以视为一组从g n u 开发工具移植而来的工具集,使它们能够生成并解释w i n 3 2 的目标文件,即提供了一个基于w i n 3 2a p i 的u n i l i n u ) 【系统库的模拟层,但是 在系统的兼容性上存在一些问题。除非有专门的系统工具是运行在c y g w i n 中的, 否则般不建议选用c y g w i n 作为宿主机的开发环境。 v m w a r e 是v m w a r e 公司开发的虚拟机软件,安装该软件后可以在w i n d o w s 操作系统上生成一个虚拟机,并可以在此虚拟机上安装l i n u x 等其它操作系统,这 些操作系统被作为w i n d o w s 操作系统的一个特殊任务加以运行。采用v m w a r e 上 建立l i n u x 作为宿主机的开发环境,可以在w i n d o w s 操作系统环境下完全模拟 l i n u x 系统运行,免去了切换系统需要不断的重新启动的麻烦,而且可以方便的实 现资源共享。可以说这对于已经习惯了w i n d o w s 操作系统的用户来说,是一个两 全其美的解决方法。本文就是采用这种方式作为宿主机的开发环境。 第二章建立系统开发环境 9 2 组件的版本 为了对目标系统进行应用程序的交叉开发,我们需要将各种二进制工具集成 到工具链中,其中包括l d 、g a s 、a r 、c 编译器( g c c ) 以及c 链接库( g l i b c ) 等等。 但是,由于g n u 工具链中的各个组件的开发与发行是完全各自独立的,所以当不 同版本的组件组合在一起时,并非所有版本组合都能够顺利地完成工作。 这里所涉及到的g n u 工具链组件版本主要包括:b i n u t i l s 的版本、g c c 的版本 以及g l i b c 的版本。开发人员需要对不同组件之间的依赖关系,以及同一组件的不 同版本特点有一定程度的了解,才能够构建出正确、完整、稳定的交叉编译工具 链。 经过大量的试验,一个针对于e p 9 3 1 2 处理器的稳定版本组合如下: b i n u t i l s 一2 1 5 、g c c - 3 4 3 、g l i b c 一2 3 3 、k e r n e l h e a d e r s 一2 4 1 9 、g l i b c l i n u x t h r e a d s - 2 3 3 。 另外,还需要针对e p 9 3 1 2 处理器下载相应的组件补丁。 3 设置路径和环境变量 为了方便工作以及日后组件的升级修改工作,需要设置一些路径和环境变量。 具体的路径和环境变量的设置如下: d i s t _ d i r = p w d p k g _ d i r = $ d i s t _ d i r p k g s r c _ d i r = $ d i s t _ d i r c r u n c h - d l p a t c hd i r = $ d i s td i r p a t c h b u = b i n u t i l s 一2 15 g c c = g c c 一3 4 3 g l i b c 2 9 l i b c - 2 3 3 k e r n e l = k e r n e l h e a d e r s 2 4 19 t h r e a d s = g l i b c - l i n u x t h r e a d s 一2 3 3 b ub z = $ b u t a r b z 2 g c cb z = $ g c c t a r b z 2 g l i b cb z = $ g l i b c t a r b z 2 k e r n e lb z = $ k e r n e l t a r b z 2 t h r e a d sb z = $ t h r e a d s t a r b z 2 m a k e j 掣- j 2 ” 4 b i n u t i l s 的设置 b i n u t i l s 组件中的工具常用来操作二进制目标文件。该组件中最重要的两个工 1 0 嵌入式测井地面采集系统构建 具就是g n u 汇编器a s 和链接器l d 。 需要让不同的架构使用不同的语法。 用途。 尽管a s 支持许多种处理器架构,但是它并不 表2 1 列出了b i n u t i l s 组件中常用的工具及其 表2 1b i n u t i l s 组件中的工具 工具 用途 a s g n u 汇编器 l d g n u 链接器 g a s p g n u 汇编预处理器 a r 用来创建于操作档案文件的内容 n m 列出目标文件中的符号列表 o b j c o p y 复制并转化目标文件 o b j d u m p 显示目标文件内容有关的信息 r a n l i b 为档案文件的内容产生索引 r e a d e l f 显示e l f 格式的目标文件内容有关的信息 s l z e 列出目标文件中各区段的大小 s t r i n g s 列出目标文件中的可打印字符 s t r i p 除去目标文件中的符号 c + + f i l t 将c + + 函数的重载而损坏的低级汇编语言标号转换成用户层的名称 a d d r 2 1 i n e将指定的地址转换成源文件中的行号 b i n u t i l s 组件的设置步骤: 解压缩b i n u t i l s : # t a rx v t $ p k g _ d i r $ b u _ _ b z 为b i n u t i l s 打补丁: # c d $ s r c _ d i r $ b u # z c a t $ p a t c h _ d i r $ b u - c r t m c h p a t c h g zp a t c h p l 建立b i n u t i l s 组件: # c d $ s r c _ d i r b u # $ s r c _ d i r $ b u c o n f i g u r e - - t a r g e t 2 2 a r m l i n u x 一- p r e f i x = $ i n s t a l l _ d i r # m a k e $ m a k e j # m a k ei n s t a l l c o n f i g u r e 执行的时候会检查宿主机上是否存在某些资源,并且会为组件中每 个工具程序产生适当的m a k e f i l e 。c o n f i g u r e 后的选项传递给c o n f i g u r e 来控制 m a k e f i l e 的输出。 5 内核头文件的设置 第二章建立系统开发环境 这里我们仅仅是针对内核的头文件进行必要的设置,而并非内核本身,所以 相对比较简单。关于内核的具体配置,在本文的第三章中会有详细的论述。 解压缩: # c d $ i n s t a l l p i r # t a rx v 0 $ p k g _ d i r $ k e r n e l - b z d e v n u l l 设置链接: # m v $ i n s t a l l _ d i r a r m l i n u x l i b 事$ i n s t a l l _ d i r l i b # r m - r f $ i n s t a l l _ _ d i r a r m l i n u x l i b # i n - s $ i n s t a l l _ d i r i n c l u d e $ i n s t a l l _ d i r a r m - l i n u x i n c l u d e # i n - s $ i n s t a l l _ d i r i n c l u d e $ i n s t a l l _ d i r a r m l i n u x s y s - - i n c l u d e # i n - s $ i n s t a l l _ d i r l i b $ i n s t a l l d i r a r m - l i n u x l i b 需要说明的是,如果这里不用链接的工作方式,而采用复制的方式也是可以 的。另外,不必在每次重新设定内核之后重建工作环境。工具链只需要一组可供 目标系统使用的有效的头文件即可。这些头文件在之前的程序中就已经提供了, 所以就算重新设定了内核的配置,或者使用了另一个内核,这都不会对工具链造 成任何的影响,除非你改变了处理器或系统的类型。 6 引导编译器的设置 与b i n u t i l s 组件相比,g c c 组件只包含了一个工具程序( 即g n u 编译器) ,不 过它还支持一些组件。但是目前阶段,我们所建立的引导编译器只支持c 语言。 需要等到c 链接库编译完成之后,重新编译g c c ,便可以提供完成的c + + 支持。 解压缩g c c : # t a rx v o $ p k g _ d i r j s g c c _ b z 为g c c 打补丁: # c d $ s r c d i r $ g c c # z c a t $ p a t c h _ d i r $ g c c c r u n c h p a t c h g zip a t c h - p l # z c a t $ p a t c h _ d i r $ g c c - c r u n c h l i n u x p a t c h g zlp a t c h p l 建立g c c 组件: # c d $ s r c _ d i p j g c # r m - f $ s r c _ d i r $ g c c g c c c o n f i g h a r m t - - f i n u x 下面需要针对所需要构建的不同交叉编译环境的类型选择所需要的链接文 件: 如果是构建支持硬件协处理器的交叉编译环境则需要: # i n s $ s r c _ d i r $ g c c g c c c o n f i g a r m t l i n u x c r u n c h d l $ s r c _ d i r $ g c c g c c c o n f i g a r m t - - l i n u x 如果是构建支持软加速浮点运算的交叉编译环境则需要: 1 2 嵌入式测井地面采集系统构建 # i n s $ s r c _ d i r $ g c c g c c c o n f i g a r m t l i n u x c r u n c h - s o f i f l o a t $ s r c _ d i r $ g c c g c c c o n f i g a r m t - l i n u x 设置c o n f i g u r e 选项: # $ s r c _ d i r $ g c c c o n f i g u r e - 一t a r g e t = 2 a r r n l i n u x - - p r e f i x 2 = $ i n s t a l l _ d i r 一- d i s a b l e s h a r e d d i s a b l e - t h r e a d s e n a b l e l a n g u a g e s = c 。一d i s a b l e - m u l t i l i b 建立g c c 组件 # m a k e $ m a k e j # m a k ei n s t a l l 7 c 链接库的设置 g l i b c 组件由许多链接库组成,它是整个交叉编译环境的构建中,建立过程最 麻烦、建立程序最冗长的组件。目标系统必须依靠g l i b c 来执行或开发大部分的应 用程序。 解压缩组件: 解压缩g l i b c : # r m r f s g l i b c # t a rx v 0 $ p k q d i r $ g l i b c _ b z 解压缩g l i b c l i n u x t h r e a d s : # p u s h d $ g l i b c d e v n u l l # t a rx v o $ p k g _ d i r $ t h r e a d s _ b z # p o p d d e v n u l l 为相关组件打补丁: 为g l i b c 打补丁: # c d $ s r c _ d i r $ g l i b c # z c a t $ p a t c h _ d i r $ g l i b c u n w i n d - d w 2 p a t c h g zp a t c h - p l # z c a t $ p a t c h _ d i r $ g l i b c c r u n c h p a t c h g zp a t c h p l 安装g l i b c 组件: # c d $ s r c _ d i p u g l # p e r l p i e s g n u l i b := 一l g c c l g c c _ _ e h g n u l i b := - l g c c # $ s r c d i r $ g l i b c m a k e c o n f i g 如果是构建支持硬件协处理器的交叉编译环境则需要: # $ s r c _ d i r $ g l i b c c o n f i g u r e h o s t = a r m - l i n u x p r e f i x 2 $ i n s t a l l _ d i r e n a b l e a d d o n s = l i n u x t h r e a d s - d i s a b l e - p r o f i l e # p e r l - p i e s c c = a r m - l i n u x g c c c c 2 a r n l - l i n u x g c c m c p u = e p 9 3 12 c o n f i g m a k e # p e r l p i e s c f l a g s = - g 0 2 c f l a g s = - g o 1 一m f i x - c r u n c h dl c o n f i g m a k e 如果是构建支持软加速浮点运算的交叉编译环境则需要: 第二章建立系统开发环境 1 3 # $ s r c _ d i r $ g l i b c c o n f i g u r e - - h o s t 2 a t n l i n u x 一一p r e f i x = $ i n s t a l l _ d i r 一- e n a b l e a d d - o n s = l i n u x t h r e a d s - - d i s a b l e p r o f i l e w i t h o u t - f p 枷e r l - p i e s c c = a r l i l 一l i n u x g c c c c = a l t f l - l i n u x g c c m c p u 2 a r m 9 2 0 t r e s o r t f l o a t c o n f i g m a k e 却e r l - p i e s c f l a g s = 一g 0 2 c f l a g s = 一g o1 一m f i x c r u n c h - d o c o n f i g m a k e 安装组件: # m a k e $ m a i 姬_ j # m a k ei n s t a l l 郑e r l p i e s 宰b u gi nl i b c * $ $ i n s t a l l _ d i r l i b l i b c s o # p e r l - p i e s 母b u gi nl i b c * $ $ i n s t a l l _ d i r l i b l i b p t h r e a d s o 8 最后的安装 # c d $ s r c _ d i r g c c # $ s r c _ d i r $ g c c c o n f i g u r e t a r g e t = a r m l i n u x p r e f i x = $ i n s t a l l _ d i r e n a b l e l a n g u a g e s = c c + + - d i s a b l e m u l t i l i b 郑e r l - p i - e s c f l a g s f o r b u i l d = c f l a g s f o r b u i l d = 一g o 1 tm a k e f i l e # p e r l p i e s c f l a g s = c f l a g s = - g o 1 fm a k e f i l e # p e r l - p i - e s c x x f l a g s = 一g 0 2 c x x f l

温馨提示

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

评论

0/150

提交评论