(通信与信息系统专业论文)基于arm和以太网的数据采集系统设计与实现.pdf_第1页
(通信与信息系统专业论文)基于arm和以太网的数据采集系统设计与实现.pdf_第2页
(通信与信息系统专业论文)基于arm和以太网的数据采集系统设计与实现.pdf_第3页
(通信与信息系统专业论文)基于arm和以太网的数据采集系统设计与实现.pdf_第4页
(通信与信息系统专业论文)基于arm和以太网的数据采集系统设计与实现.pdf_第5页
已阅读5页,还剩72页未读 继续免费阅读

(通信与信息系统专业论文)基于arm和以太网的数据采集系统设计与实现.pdf.pdf 免费下载

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

文档简介

摘要 由于a r m 技术和嵌入式操作系统的出现,嵌入式系统在近几年发展迅速,应 用广泛,目前几乎在各个领域都能见到嵌入式系统的身影。本文采用理论与实践 相结合的方式,通过对具体的嵌入式系统的设计与调试,将嵌入式系统的理论应 用到实际中,从而快速的掌握嵌入式系统的设计与开发。 本文通过一个具体的a r m 9 2 0 t 芯片作为处理器的嵌入式数据采集系统,详细 阐述了嵌入式系统的设计与开发过程,其中包括: 交叉编译环境的搭建:交叉编译环境是嵌入式开发工具的集合,搭建该环境 就是在系统中编译安装开发工具链。 操作系统内核的移植:这是嵌入式开发的主要单元之一,移植内核主要是对 内核进行重新配置,使它符合特定系统的需要,然后重新编译生成可执行的内核 镜像文件。 文件系统的移植:文件系统是操作系统对数据进行管理的有效和必要的助手。 移植文件系统包括制作文件系统镜像、在f l a s h 上为文件系统分配存储空闻以及文 件系统与嵌入式操作系统的有效配合。 驱动程序的设计:驱动是操作系统与硬件沟通的桥梁,驱动设计就是编写具 体硬件的读写控制函数并向操作系统提供统一的接口。 本文更着重于介绍实际开发中使用的技术以及遇到的问题和解决方法。在第5 章中结合网卡控制芯片d m 9 0 0 0 阐述了网络通信和网卡的驱动,以及网络开发中 遇到的问题和解决方法。第6 章结合语音芯片t l v 3 2 0 a i c 2 3 阐述了语音数据的采 集与处理。 关键词:嵌入式系统;a r m ;以太网;驱动程序 a b s t r a c t e m b e d d e ds y s t e md e v e l o p sq u i c k l yi nt h e s ey e a r sb e c a u s eo f t h ea p p e a r a n c eo ft h e a r m t e c h n o l o g ya n de m b e d d e do p e r a t i n gs y s t e m ,i ti sw i d e l yu s e da n d i tc a r la l m o s tb e f o u n di ti ne v e r yf i e l d i nt h i sa r t i c l e ,t h ew a yo ft h e o r yc o m b i n e dw i t ht h ep r a c t i c ei s u s e d ,a n dt h et h e o r yo fe m b e d d e ds y s t e mi sa p p l i e di n t ot h ep r a c t i c eb yt h ed e s i g na n d d e b u g g i n go fas p e c i f i ce m b e d d e ds y s t e m ,a n dt h e nw ec a nm a s t e rt h ed e s i g na n d d e v e l o p m e n to f e m b e d d e ds y s t e mq u i c k l y t h i sa r t i c l ei n t r o d u c e st h ed e s i g na n dd e v e l o p m e n tp r o c e s so fe m b e d d e ds y s t e m d e t a i l l yi nt h ew a yo fc o m b i n i n gw i t has p e c i f i ce m b e d d e dd a t ac o l l e c t i o ns y s t e mw h i c h u s e saa r m 9 2 0 t c h i pa si t sp r o c e s s o r t h ep r o c e s si n c l u d e s : s e tu pt h ec r o s sc o m p i l i n ge n v i r o n m e n t :t h ec r o s sc o m p i l i n ge n v i r o n m e n ti st h e f l a m eo fa l lt h ee m b e d d e dd e v e l o p i n gt o o l s t os e tu pac r o s sc o m p i l i n ge n v i r o n m e n ti s t oc o m p i l ea n di n s t a l lt h et o o lc h a i n sn e e d e di nd e v e l o p m e n t t r a n s p l a n to fo sk e r n e l :t h i si so n eo ft h em a i nd e v e l o p i n gu n i t so fe m b e d d e d s y s t e m ,t ot r a n s p l a n tt h eo sk e r n e li st oc o n f i gt h ek e r n e la g a i nt om a k ei tm e e t s s p e c i f i cr e q u i r e m e n t ,a n dt h e nc o m p i l ei ta g a i nt og e n e r a t et h ee x c u t a b l eo sk e r n e l i m a g ef i l e t r a n s p l a n to ff i l es y s t e m s :f i l es y s t e mi st h ee f f e c t i v ee n dn e c e s s a r ya s s i s t a n to fa o p e r t a t i n gs y s t e mt om a n a g et h ed a t a ,t r a n s p l a n to ff i l es y s t e m si n c l u d em a k i n gf i l e s y s t e m si m a g e ,a s s i g n i n gt h em e m e r yf o rt h e mi naf l a s hc h i pa n dv a l i dc o o p e r a t eo f f i l es y s t e m sa n dt h ee m b e d d e do s d e s i g no fd r i v e m :d r i v e ri st h eb f i d g eo fo sa n dh a r d w a r et oc o m m u n i c a t e d e s i g no fd r i v e r si st ow r i t ef u n c t i o n sw h i c ha r eu s e dt or e a d w r i t ea n dc o n t r o la s p e c i f i ch a r d w a r e ,a n dt oo f f e ra c o l t u n o ni n t e r f a c ef o rt h eo s t h i sp a p e ri n t r o d u c e st h et e c h n o l o g yu s e di nd e v e l o p m e n t ,q u e s t i o n sm e ti nt h e d e v e l o p m e n ta n dt h es e t t l e m e n t so ft h eq u e s t i o n s t h ef i f t hc h a p t e ri n t r o d u c e st h en e t c o m m u n i c a t i o n ,n e td r i v e bp r o b l e m sm e ti nn e td e v e l o p m e n ta n dt h es e t t l e m e n t so ft h e p r o b l e m sb a s e do n ad m 9 0 0 0c h i p t h es i x t hc h a p t e ri n t r o d u c e sh o w t og a t h e ra n dd e a l w i t ht h ev i o c ed a t ab a s e d0 1 1at l v 3 2 0 a i c 2 3 c h i p , k e y w o r d s :e m b e d d e ds y s t e m ;a r m ;e t h e r n e t ;d r i y e r 大连海事大学学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:本论文是庄导师的指导下,独立进行研究工作所取得的成果, 撰写成博t 硕士学位论文:基:叁墨丛塑丝盔旦盟錾堡墨塞丕鱼遮i 墨塞理:。 除论文中已经注明引用的内容外,对论文的研究做出重要贡献的个人和集体,均 已存文中以明确方式标明。本论文中不包含任何未加明确注明的其他个人或集体 已经公开发表或未公开发表的成果。 本声明的法律责任由本人承担。 论文作者签名:善j 1 弦脚7 月列瑁 学位论文版权使用授权书 本学位沦文作者及指导教师完全了解“大连海事大学研究生学位论文提交、 版权使用管理办法”,同意大连海事大学保留并向国家有关部门或机构送交学位论 文的复印件和电子版,允许论文被查阅和借阅。本人授权大连海事大学可以将本 学位沦文的全部或部分内容编入有关数据库进行检索,也可采用影印、缩印或扫 描等复制手段保存和汇编学位论文。 保密口,在年解密后适用本授权书。 本学位论文属f :保密口 不保密d ( 请在以上方框内打“、,”) 论文作者签名:c 霎j 旃导师签名二貉 日期:p “年 月么侣 第1 章绪论 1 1 课题的背景 随着a r m ( a d v a n c e dr i s cm a c h i n e s ) 技术的推广,嵌入式芯片从原来的8 位、 1 2 位等升级到了3 2 位,嵌入式领域的发展出现了一片新的天地。各种优秀的嵌入 式操作系统的出现,使设计一个较大的嵌入式系统变得不再那么复杂,也使嵌入 式系统的扩展和升级变得相对容易。随着互联网的应用日益普及,信息共享的程 度不断提高,互联网应用正在转到以嵌入式设备为中心。 今天,嵌入式系统已经无处不在,从家用电器、p d a 、电视机,到工控生产现 场、通讯、仪器、仪表、汽车、船舶、航空、航天、军事装备、消费类产品等方 面,都能发现嵌入式系统的踪影。嵌入式系统带来的工业年产值己超过了l 万亿 美元,它正在成为信息技术( i t ) 产业争夺的重点之一。 嵌入式系统设计是一门综合性的课程,涉及电子、计算机、自动控制等诸多 专业知识,综合性强,可包括微机原理、单片机设计、操作系统等课程内容。嵌 入式系统是软件、硬件设计的完美结合。 1 2 系统设计思路 一个完整的嵌入式系统包括硬件和软件两部分。在硬件方面,由于a r m 9 芯 片本身集成的接口比较多,而a r m 7 本身集成的接口较少,从整个系统的成本来 看,选择a r m 9 与选择a r m 7 作为控制器的系统总成本基本上相差不大;而从效 果来看,由于a r i v l 9 大多数接口都在芯片内部集成,对硬件设计和调试来说,都 方便了很多,因此本课题采用三星的a r m 9 芯片s 3 c 2 4 1 0 。由于a r m 9 芯片的封 装基本上都采用b g a 封装格式,电路板的设计、制作以及芯片的焊接都比较麻烦, 因此采用购买核心板的方式,这样底板就可以使用两层板,可以节省电路板的制 作费用( b g a 封装的芯片一般必须使用多层板,制板费比较贵) ,并且核心板可以 重复利用,只要接口相同,同一块核心板可以在不同的底板上使用。 图l1 是购买的a r m 9 核心板1 1 1 的实物图。该核心板上有1 6 m b 的f 1 a s h 、6 4 m b 的s d r a m 和三星的a r m 9 芯片s 3 c 2 4 1 0 ,核心板接口采用d i m m l 4 4 标准接口。 本设计的底板布局如图1 2 所示。 图1 1核心板实物图 f i g 1 1p i c t u r eo f c o r e b o a r d 图1 2 底板布局 f i g 1 2l a y o u to f t h em a i nb o a r d 其中,中间是插核心板的地方,主要是连接核心板的d i m m l 4 4 插槽。电源变换区 主要是电源变换电路,其功能是将外部输入电压变换为电路板上需要的3 3 v 和5 v 电压,本设计中采用7 8 0 5 芯片将外部输入电压变换为5 v ,然后再经过t p s 7 6 7 d 3 1 8 芯片将5 v 电压变换为3 3 v 。音频处理区放置了音频处理芯片a i c 2 3 及其外围电 路。网络接口部分使用d m 9 0 0 0 芯片,实现嵌入式网络连接的功能。串口区设计 了2 个四线的串口,其中串口1 用来作为交叉编译环境的调试信息输出口,串口2 作为扩展用。 在软件方面,经过比较决定采用p p e b o o t 作为引导装载器,采用a r m l i n u x 作为嵌入式操作系统,采用r a m f s 、j f f s 2 和c r a m f s 作为文件系统,其中j f f s 2 2 是可写的日志型文件系统,可以在该文件系统中存储临时数据。软件部分除了以 上各个部分的移植外,还包括开发环境的搭建以及硬件的驱动程序的编写。 1 3 论文的意义 目前,嵌入式系统作为一个新兴的技术,正在以极高的速度应用到各个领域 中。世界上现在有很多公司利用a r m 技术开发了功能各有侧重的嵌入式芯片,并 将其应用到相应的产品中。本文以交通部西部交通建设科技项目( 车辆定位与管 理系统的开发) 为研究背景,通过具体的软、硬件系统的设计,熟悉嵌入式系统 的软、硬件开发过程,掌握嵌入式系统开发的基本技术。本文所研究的内容,适 应当前科学技术的发展与更新,具有一定的研究价值。 第2 章嵌入式系统概述 21 什么是嵌入式系统 根据i e e e ( 国际电气和电子工程师协会) 的定义;嵌入式系统是“用于控制、 监视或者辅助操作机器和设备的装置”( 原文为d e v i c e su s e dt oc o n t r o l ,m o n i t o r , o r a s s i s t t h eo p e r a t i o no f e q u i p m e n t ,m a c h i n e r y0 1 p l a m s ) 。可以看出此定义是从应用上 考虑的,嵌入式系统是软件和硬件的综合体。 嵌入式的一般定义:“以应用为中心、以计算机技术为基础、软件硬件可裁剪、 功能、可靠性、成本、体积、功耗严格要求的专用计算机系统”, 嵌入式系统具有以下几个重要特征: ( 1 ) 系统内核小 由于嵌入式系统一般是应用于小型电子装置的,系统资源相对有限,所以内核 较之传统的操作系统要小得多。 ( 2 ) 专用性强 嵌入式系统的个性化很强,其中的软件系统和硬件的结合非常紧密,一般要针 羽硬件进行系统的移植。即使在同一品牌、同一系列的产品中也需要根据系统 硬件的变化和增减不断进行修改,同时针对不同的任务,往往需要对系统进行 较大更改,程序的编译下载要和系统相结合,这种修改和通用软件的“升级”是 完全不同的概念。 ( 3 ) 系统精简 嵌入式系统一般没有系统软件和应用软件的明显区分,不要求其功能设计及实 现上过于复杂,这样一方面利于控制系统成本,同时也利于实现系统安全。 ( 4 ) 高实时性o s 这是嵌入式软件的基本要求而且软件要求固态存储,以提高速度。软件代码 要求高质量和高可靠性、实时一眭。 ( 5 ) 嵌入式软件开发走向标准化 有些嵌入式应用程序可以没有操作系统直接在芯片上运行,但为了合理地调度 多任务、利用系统资源、系统函数阻及和专家库函数接口,开发者必须自行选 配r t o s ( r e a l - - t i m e o p e r a t i n gs y s t e m ) 开发平台,这样才能保证程序执行的 配r t o s ( r e a l - - t i m e o p e r a t i n gs y s t e m ) 开发平台,这样才能保证程序执行的 第2 章嵌入式系统概述 2 1 什么是嵌入式系统 根据i e e e ( 国际电气和电子工程师协会) 的定义:嵌入式系统是“用于控制、 监视或者辅助操作机器和设备的装置”( 原文为d e v i c e su s e dt oc o n t r o l ,m o n i t o r , o r a s s i s tt h eo p e r a t i o no f e q u i p m e n t ,m a c h i n e r yo rp l a n t s ) 。可咀看出此定义是从应用上 考虑的,嵌入式系统是软件和硬件的综合体。 嵌入式的一般定义:“以应用为中心、以计算机技术为基础、软件硬件可裁剪、 功能、可靠性、成本、体积、功耗严格要求的专用计算机系统”。 嵌入式系统具有以下几个重要特征: ( 1 ) 系统内核小 由于嵌入式系统一般是应用于小型电子装置的,系统资源相对有限,所以内核 较之传统的操作系统要小得多。 ( 2 ) 专用性强 嵌入式系统的个性化很强,其中的软件系统和硬件的结合非常紧密,一般要针 对硬件进行系统的移植。即使在同一品牌、同系列的产品中也需要根据系统 硬件的变化和增减不断进行修改。同时针对不同的任务,往往需要对系统进行 较大更改,程序的编译下载要和系统相结合,这种修改和通用软件的“升级”是 完全不同的概念。 ( 3 ) 系统精简 嵌入式系统一般没有系统软件和应用软件的明显区分,不要求其功能设计及实 现上过于复杂,这样一方面利于控制系统成本,同时也利于实现系统安全。 ( 4 ) 高实时性o s 这是嵌入式软件的基本要求,而且软件要求固态存储,以提高速度。软件代码 要求高质量和高可靠性、实时性。 ( 5 ) 嵌入式软件开发走向标准化 有些嵌入式应用程序可以没有操作系统直接在芯片上运行,但为了合理地调度 多任务、利用系统资源、系统函数以及和专家库函数接口,开发者必须自行选 配r t o s ( r e a l - - t i m eo p e r a t i n gs y s t e m ) 开发平台,这样才能傣证程序执行的 4 实时性、可靠性,并减少开发时间,保障软件质量。 ( 6 ) 嵌入式系统需要开发工具和环境 由于其本身不具备自主开发能力,即使设计完成以后,用户通常也是不能对其 中的程序功能进行修改,必须有一套开发工具和环境才能进行开发。这些工具 和环境一般是基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号 示波器等。开发时往往有主机和目标机的概念,主机用于程序的开发,目标机 作为最后的执行机,开发时需要交替结合进行。 2 2 常见的嵌入式操作系统口” 嵌入式操作系统可以分为商用型和免费型。商用型的实操作系统功能稳定、 可靠,有完善的技术支持和售后服务,但往往价格昂贵。免费型的实时操作系统 在价格方面具有优势,主要有l i n u x 和uc o s ,但稳定性与服务性存在挑战。 目前常见的嵌入式操作系统有如下几个: ( 1 ) v x w o r k s v x w o r k s 操作系统是美国w i n d r i v e r 公司于1 9 8 3 年设计开发的一种嵌入式实 时操作系统( r t o s ) ,具有良好的持续发展能力、高性能的内核以及友好的用 户开发环境,在嵌入式实时操作系统领域牢牢占据着一席之地。v x w o r k s 所具 有的显著特点是:可靠性、实时性和可裁减性,而且它支持多种处理器,如 x 8 6 、i 9 6 0 、s u ns p a r e 、m o t o r o l am c 6 8 x x x 、m i p s 、p o w e rp c 等等。大多 数的v x w o r k s a p i 是专有的,火星机器人使用的就是v x w o r k s 操作系统。 ( 2 ) w i n d o w s c e w i n d o w sc e3 0 是一种针对小容量、移动式、智能化、3 2 位、连接设备的模 块化实时嵌入式操作系统。针对掌上设备、无线设备的动态应用程序和服务提 供了一种功能丰富的操作系统平台,w i n d o w s c e 嵌入但不够实时,属于软实 时操作系统。由于其w i n d o w s 背景,界面比较统一认可。操作系统的基本内 核需要至少2 0 0 k 的r o m 空间。 ( 3 ) p a l m o s p a l mo s 是著名的网络设备制造商3 c o m 旗下的p a l mc o m p u t i n g 掌上电脑公 司的产品。p a l mo s 在p d a 市场上占有很大的市场份额,目前主要与w i nc e 进行激烈竞争。 ( 4 ) q n x q n x 是加拿大q n x 公司的产品。它是在x 8 6 体系上面开发出来的,别的好 多r t o s 都是从6 8 k 的c p u 上面开发成熟,然后再移植到x 8 6 体系上面来的。 q n x 是一个实时的、可扩充的操作系统,它部分遵循p o s i x 相关标准,由于 q n x 具有强大的图形界面功能,因此很适合作为机顶盒、手持设备( 手掌电 脑、手机) 、g p s 设备的实时操作系统使用。 ( 5 ) i r t c o s m i c r oc o n t r o l l e ro p e r a t i n gs y s t e m ,微控制器操作系统,它是由美国人j e a n l a b r o s s e1 9 9 2 年完成的。应用面覆盖了诸多领域,如照相机、医疗器械、音响 设备、发动机控制、高速公路电话系统、自动提款机等。1 9 9 8 年升级到i a c o s i i , 2 0 0 0 年,得到美国航空管理局( f a a ) 的认证,可以用于飞行器上。 ( 6 ) 嵌入式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 不仅支持x 8 6c p u ,还可以支持其他数十种c p u 芯片。 嵌入式l i n u x 幔m b e d d e dl i n u x ) 是指对l i n u x 经过小型化裁剪后,能够固化 在容量只有几百k 字节或几兆字节的存储器芯片或单片机中,应用于特定 嵌入式场合的专用l i n u x 操作系统。嵌入式l i n u x 的开发和研究是目前操作 系统领域的一个热点。主要有a r m l i n u x 、r t l i n u x 和g c l i n u x 等。 嵌入式系统越来越追求数字化、网络化和智能化。因此原来在某些设备或领 域中占主导地位的软件系统越来越难以为继,整个系统必须是开放的、提供标准 的a p i ,并且能够方便地与众多第三方的软硬件沟通,并且要易于开发。i - t c o s 只是一个基本的内核,大部分的驱动以及应用都需要从头来写,因此本设计中选 择a r m l i n u x 作为操作系统。 6 2 3 嵌入式系统与单片机、p c 机的区别 ( 1 ) 嵌入式系统单片机系统 目前嵌入式系统的主流是以3 2 位嵌入式微处理器为核心的硬件设计和基于 实时操作系统( r t o s ) 的软件设计;单片机系统多为4 位、8 位、1 6 位机, 不适合运行操作系统,难以进行复杂的运算及处理功能 嵌入式系统强调基于平台的设计、软硬件协同设计,单片机大多采用软硬 件流水设计 - 嵌入式系统设计的核心是软件设计( 占7 0 左右的工作量) ,单片机系统软 硬件设计所占比例基本相同 ( 2 ) 嵌入式系统与单片机在学习方法上的不同 单片机学习一般从硬件入手,从硬件体系结构、汇编语言到硬件设计、软件设 计;嵌入式系统学习可以从软件入手,从应用层编程到操作系统移植、硬件平 台设计较好,按单片机设计的学习流程较难掌握。 ( 3 ) 嵌入式系统p c 机 嵌入式系统一般是专用系统,而p c 是通用计算平台 嵌入式系统的资源比p c 少得多 嵌入式系统软件故障带来的后果比p c 机大得多 嵌入式系统一般采用实时操作系统 嵌入式系统大都有成本、功耗的要求 嵌入式系统得到多种微处理体系的支持 嵌入式系统需要专用的开发工具 2 4 嵌入式的应用嘲嘲嘲 ( 1 ) 嵌入式系统在无线通信领域的应用有手机、小灵通、智能手机等,8 5 以 上的无线设备( 手机等) 都采用了a p 0 , f 技术,在向3 g 升级的过程中,a r m 的 地位也非常稳固。 ( 2 ) 嵌入式系统在消费类电子中的应用迅速增长,如数字音频播放器( m p 3 ) 、数 字机顶盒和游戏机等。 ( 3 ) 信息家电将成为嵌入式系统最大的应用领域。具有用户界面,能远程控制, 7 智能管理的电器是未来的发展趋势,如冰箱、空调等的网络化、智能化等。 ( 4 ) 嵌入式系统的i n t e m e t 和i n t r a n e t 应用如图2 1 所示 图2 1 嵌入式系统的网络应用 f i g 2 1 t h en e ta p p l i c a t i o no f e m b e d e ds y s t e m ( 5 ) 嵌入式系统与机器人技术相结合。图2 2 是使用嵌入式技术的仿人机器人。 高4 8 蛆 重:6k g 灵活性:2 0d o f 操作系统:r t - l i n u x 接1 :3 形式:i j s b1 0 ( 1 2 胁p s ) 响应周期:1 e 能源:d 晓4 vx6 2 a ( 1 5 佣) 翩造:富士通 图2 2 基于r t l i n u x 的仿人机器人 f i g 2 2 a p e r yr o b o tb a s e do nr t l i n u x ( 6 ) 嵌入式技术在交通管理、环境监测中的应用 交通管理在车辆导航、流量控制、信息监测与汽车服务方面,目前g p s 设 备已经从尖端产品进入了普通百姓的家庭,只需要几千元 水文资料实时监测,防洪体系及水土质量监测、堤坝安全,地震监测网, 实时气象信息网,水源和空气污染监测。 加油站 停车场管理 ( 7 ) 嵌入式系统在其他领域也有着广泛的应用,如工业控制、海量存储设备( 微 型闪存卡) 、成像设备( 包含a r m 技术的数码相机和数码打印机) 以及安全产 品( 3 2 位s i m 智能卡) 等。 2 5 本章小结 本章介绍了嵌入式系统的概念和嵌入式系统的几个重要特征,并介绍一些常 见的嵌入式操作系统及其特点,分析了嵌入式系统与单片机以及p c 机的区别,最 后介绍了嵌入式系统的一些典型应用。 第3 章交叉编译环境 3 1 嵌入式系统开发模式 绝大多数的l i n u x 软件开发都是以n a t i v e 方式进行的,即本机( h o s t ) 开发、 调试,本机运行的方式。这种方式通常不适合于嵌入式系统的软件开发,因为对 于嵌入式系统的开发,没有足够的资源在本机( 即板子上系统) 运行开发工具和 调试工具。通常的嵌入式系统的软件开发采用一种交叉编译调试的方式。交叉编 译调试环境建立在宿主机( 即一台p c 机) 上,对应的开发板叫做目标板。 开发时使用宿主机上的交叉编译、汇编及连接工具形成可执行的二进制代码, ( 这种可执行代码并不能在宿主机上执行,而只能在目标板上执行。) 然后把可 执行文件下载到目标机上运行。 宿主机和目标板的处理器一般都不相同,宿主机为i n t e l 处理器,而目标板为 s a m s u n g $ 3 c 2 4 1 0 等嵌入式芯片,g n u 编译器提供这样的功能,在编译编译器 时可以选择开发所需的宿主机和目标机从而建立开发环境。嵌入式开发的模式一 般如图3 1 所示【1 0 l 【1 1 】。 图3 1嵌入式系统的开发模式 f i g 3 1d e v e l o p m e mm o d eo f e m b e d e ds y s t e m 3 2 在宿主机上建立a r | | 广lin u x g c c 交叉编译环境 采用的源代码的版本如下: b i n u t i l s - 2 1 4 t a rg z ,g c c c o r e 一2 9 5 - 3t a r g z , g c c g h 一2 9 5 3 t a r g z ,g l i b c - 224 t a rg z , g l i b c l i n u x t h r e a d s 一2 2 4 t a r g z , l i n u x 一2 4 2 1 t a r g z ,p a t c h 一242 1 一r m k l g z ( 1 i n u xk e r n e lp a t c hf o ra r m ) 。 我们先在l i n u x 的b a s h 下设定一些环境变量: se x p o r tv b i n u t i l s 2 2 1 4 $ e x p o r tv g c c = 2 9 5 3 $ e x p o r tv g l i b c = 224 $ e x p o r tv l l n u x = 2 42 1 $ e x p o r tv l i n u x _ p a t c h = r m k l $ e x p o r tp k e f i x = a r m t o o l s $ e x p o r tt a r g e t = a r m - l i n u x 上面的命令是在b a s h 的命令行上输入的,输入完之后会立即生效,但1 0 9 0 u t 再l o g i n 后就无效了。也可以把这些语句填加到b a s h r c 文件中。如果填加到b a s h r c 文件中, 那么就需要l o g o u t 再l o g i n 一次才能生效,并且只要这些语句还在b a s h r c 3 之件中,就 会一直有效。 $ c d $ m k d i r - pt a r s s o u r c e d i r $ m k d i rt a r s b u i l d d i r $ m k d i ra r m t o o l s $ s u # m va r mt o o l s $ p r e f i x 撑e x i t $ 在这里放我们的下载来的t a r 群文件 s o u r c e d i r 一这个临时目录放我们解压缩后的源文件 b u i l d d i r 一一我们在这里编译 a r m t o o l s 一一把a r m - l i n u x 的交叉编译环境安装在这里。 具体安装步骤如图3 2 所示。 安装l i n u x 头文件 0 编译安装b i n u t i l s + 编译安装g c 。的c 编译器 + 编译安装g 曲c 编译安装g c c 的c + + 编译器 图3 2 交叉编译环境安装步骤 f i g3 2 t h es e t u ps t e p so f t h ec r o s sc o m p i l i n ge n v i r o n m e n t 321 安装i i n u x 的头文件 当你为不同类型的删编译g c c ,或编译不同版本的k 锄e 】,或交叉编译g c c 时 都需要一套不同的l i n u x 头文件。 ( 1 ) 解压缩,打补丁 $ c d t a r s s o u r c e d i r $ t a r z x f l i n u x s v l i n u xt a rg z $ c d l i n u x $ z c a t p a t c h - s v l i n u x 一$ v l i n u x _ p a t c h g zp a t c h p l ( 2 ) 清理一下 $ m a k em r p r o p e r ( 3 ) 修改m a k e f i l e 将m a k e f i l e 中a r c h := $ ( s h e l lu n a m e ms e a es i 8 6 i 3 8 6 - es s u n 4 u s p a r e 6 4 - e s a r m * a r m es s a l1 0 a r m ) 这一行注释掉,并加一行a r c h = a r m 。修改后象 这样: a r c h = a r m 拌a r c h := $ ( s h e l lu n a m e ms e d es i 8 6 i 3 8 6 es s u n 4 “s o a r c 6 4 e s a r m + a r m 一es s a l1 0 a r m 、 如果你的系统里的s e d 程序支持用n 续行( 通常都支持) ,你可以用这个s c r i p t 去修改m a k e f i l e # ! b i n s h m vm a k e f i l em a k e f i l e o r i g s e d s a r c h := $ ( s h e l lu n a m e m a r c h = a r m , 拌a r c h := $ ( s h e l lu n a m e - m m a k e f i l e # e n do fs c r i p t 注意:这个s c r i p t 里的撑a r c h := 是上一行的续行,不是s h e l l 里的注释? 它也是要 输入的。如果你从浏览器( i e ,n e t s c a p e ,e t c ) 上复制粘贴这个s c r i p t 至0 你的b a s h c o n s o l e ,它很有可能不工作;但你在b a s hc o n s o l e 里手工输入就可以工作。因为有 时复制过来后,是a r c h = a r m r n ,而能工作的是a r c h = a r m n 。 ( 4 ) 建立连接 我使用的是s 3 c 2 4 1 0 的c p u ,因此只要执行m a k es 3 c 2 4 1 0 _ d e f c o n f i g ,然后再执行m a k e m e n u c o n f i g 进行配置即可。 ( 5 ) 拷贝头文件 $ m k d i r - p $ p r e f i x ,$ t a r g e t i n c l u d e $ c p d ri n c l u d e a i n u x $ p r e f i ) ( $ t a 】m e t i n c l u d e $ c p d ri n c l u d e a s m - a r m $ p r e f i x $ t a r g e t i n c l u d e a s m ( 6 ) 为g c c 建立一个l i n u xk e r n e l 头文件的连接。编译g c c 时,它需要l i n u xk e r n e l 的头文件,你可以用一w i t h - h e a d e r s - $ p 砌! f i ) ( $ t a r g e t ,i n c l u d e 来指定头文件的位 置,g c c 把它拷至l j $ p r b f i x $ t a r g e t s y s i n c l u d e 。我们可以建立个s y s i n c l u d e 连接,就不用一w i t h h e a d e r s 了。 $ c d $ p r e f i x $ t a r g e t $ i n si n c l u d es y s - i n c l u d e 322 编译安装b i n u t i i s 这里用不到前面准备的l i n u x 头文件。 ( 1 ) 解压缩 $ c d 础a r s d s o u r c e d i r $ t a r z x f b i n u t i l s - $ v b i n u t i l s t a r g z ( 2 ) 。编译 $ c d - t a r s b u i l d d i r $ m k d i rb i n u f i l s $ c db i n u t i l s $ s o u r c e d i r b i n u t i l s s v b i n u t i l s c o n f i g u r e 一- t a r g e t = $ t a r g e t | 一一p r e f i x = $ p r e f i x $ m a k ea l li n s t a l l ( 3 ) 输出b i n u t i l s 的路径到环境变量中 可以把它加到b a s h r c 中,这样需要l o g o u t 再l o g i n 才能生效。也可以在b a s h 的 命令行上输入,它会立即生效,但l o g o u t 再l o g i n 时就无效了。 e x p o r tp a t l = $ p r e f i ) ( ,b i n :$ p a t h 323 编译安装g o e 的c 编译器 ( 1 ) 解压缩 $ c d t a r s s o u r c e d i r $ t a r z x f g e e - c o r e $ v g c ct a r g z 注意:为什么不用a l l - i n o n e 的g c c - $ v g c c t a r g z 呢? 因为a l l i n - o n e 的g c c 包里 面有c h i l l 、f o r t r a n 、j a v a 等语言的编译器,虽然在下面c o n f i g u r e 时指定 一e n a b l e - l a n g u a g e s = c ,但编译时还是把历有的都编译一便,这不是我们需要的,而 且它也总会有错误。因此我们只编译c 语言的编译器。后面第二次编译的时候也 是这个问题,我们只编译c 和c + + 的编译器。 ( 2 ) 修改g c c 的t - l i n u x 文件 在t l i n u x 文件中t a r g e t _ l i b g c c 2 _ c f l a g s 上加上昏l l r p o s i x _ h 和 i n h i b i t l i b c ,其6 9 s e d 命令从t l i n u x o r i g 文件读入数据,将结果输出到t 1 i n u x - c o r e q b 。 $ c dg e e - $ v g c c g c c c o n f i g a r m $ m vt - l i n u xt - l i n u x - o r i g $ s e d s t a r g e t _ l i b g c c 2 _ c f l a g s = t a r g e t - l i b g c c 2 _ c f l a g s = d j h r _ p o s i x _ h - d i n h i b i t _ l i b c t - l i n u x - c o r e $ c p t - l i n u x - c o r e t - l i n u x ( 3 ) 编译 $ c d - t a r s b u i l d d i r 1 4 $ m k d i rg e e c o r e $ c dg c c - c o r e $ 一s o u r e e d i r g c c 一$ v g c c c o n f i g u r e 一- t a r g e t = $ t a r g e t 一p r e f i x = $ p r e f i x 一e n a b l e l a n g u a g e s = c 一一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 $ m a k ea l 】j n s t a l l 3 2 4 编译安装g i b c ( 1 ) 解压缩 $ c d t a r s s o u r c e d i r $ t a r - z x f g l i b c 一$ v g l i b ct a r 8 z $ c dg l i b c $ v g l m c $ t a r - z x f 僧i b c l i n u x t h r e a d s 一$ v g l i b c t a r g z ( 2 ) 编译 $ c d t a r s b u i l d d i r $ m k d i rg l i b c $ c d g l i b c $ c c = $ t a r g e t g c c

温馨提示

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

评论

0/150

提交评论