(机械电子工程专业论文)面向gs321的嵌入式平台软件的研究与开发.pdf_第1页
(机械电子工程专业论文)面向gs321的嵌入式平台软件的研究与开发.pdf_第2页
(机械电子工程专业论文)面向gs321的嵌入式平台软件的研究与开发.pdf_第3页
(机械电子工程专业论文)面向gs321的嵌入式平台软件的研究与开发.pdf_第4页
(机械电子工程专业论文)面向gs321的嵌入式平台软件的研究与开发.pdf_第5页
已阅读5页,还剩65页未读 继续免费阅读

(机械电子工程专业论文)面向gs321的嵌入式平台软件的研究与开发.pdf.pdf 免费下载

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

文档简介

武汉理工大学硕士学位论文 摘要 嵌入式系统的应用是目前信息技术领域非常有发展前景的方向之一。随着 微电子技术、计算机技术等的飞速发展,目前基于3 2 位嵌入式微处理器的应用 正处于迅猛发展的时期。而c p u 无疑又是其中最为核心的部分,只有掌握了c p u 的开发,才有可能在国内形成一个完整的嵌入式应用产业链。g s 3 2 ic p u 是龙 芯公司推出的针对嵌入式应用的国产高性能中央处理器。它的出现,表明我国 在掌握信息技术的核心方面迈出了重要的一步。 在硬件平台之上,各种不同嵌入式系统的应用,需要大量不同的软件来实 现。在软件体系中,平台支撑软件又是最为基础的。各种具体的应用都是在特 定的平台之上运行的。底层的支撑软件在很大程度上将硬件内部的大量细节同 上层的应用开发隔离开来,使应用开发人员将精力集中于自己所针对的特定应 用领域。 本文就g s 3 2 i 硬件平台之上软件平台开发中的一些关键技术进行了讨论。 本文的应用背景是一个基于g s 3 2 i 平台的网络视频监控系统,研究内容集中于 其中的平台软件部分。上层的应用开发虽然不是这里讨论的重点,但作为底层 向上的延伸和应用,本文也做了相应的讨论。 本文主要研究了以下内容: ( 1 ) m i p s 体系结构研究与l i m 开发环境的搭建:探讨了m i p s 体系结构的 相关问题,说明了l i n u x 开发环境的搭建方法。 ( 2 ) 启动程序u - b o o t 的移植:由于缺乏有力的辅助工具,因此,在移植 u - b o o t 之前,本文先介绍了两个辅助的平台软件工具,然后对u b o o t 的移植分 为几个主要的模块完成,涉及对c p u 的引导,硬件驱动的实现和对l i n u x 操作 系统的引导等内容。这是本文的重点部分。 ( 3 ) d e b i a i l 文件系统的建立和v w 2 0 l o 音视频编解码卡的驱动移植:研究了 d e b i a n 系统在g s 3 2 i 平台上的建立方法。然后通过编写驱动程序,希望使基于 v w 2 0 1 0 编解码卡的整套视频监控应用能移植到g s 3 2 i 平台上运行。 最后论文在总结全文工作的基础上,对进一步的研究提出了建议和展望。 关键词:嵌入式系统,m i p s ,l i n u x ,b o o t l o a d e r ,d e b i a n 苎堡堡三奎堂堡主兰焦堡塞 一a b s t r a c t e m b e d d e ds y s 协mi s a na n r a c t h et e c 肺q u ei nt h c i e l do fi n f b 蛐a t i o n t e c h n o l o g yw i t ht h e 缸td e v e i o p m e n to f m i c r o - e l e c 仃c 血c sa 1 1 dc o m p u t e rt e c l l i l o l o g y , 3 2 - b j te m b e d 如ds y s t e ma c h i v e sh i g h l yg r o w 血c p ui st h em o s ti m p o n 日呲p a r ti n e m b e d d e ds y s t e m a ni n t e 笋a li l l d u s yc h a i nc a nb ed e v e l o p e do n l yw em a s t e rt l l e t e c l l i l i q u eo fm ed e s 啦o fc p u n eg s 3 2 1c p u i sam 龇yp 烈f o r n l a l l c ep r o c e s s o 。 d e s i g n e db yb l x 1 cd e s i g l 】c o n l p 趾y ni sas i 弘i f i c a n tm e a i l i n gi nt h a tc h i n e s e m a s t e rm ec r i t i c a lt e c h i q u ei nt 1 1 ea r e ao f i 0 m l a l i o nt e c 王1 1 1 0 l o g y i na d d i 廿o nt ot h eh a r d w a r e ,d i 晚r e n tb n d so f 印p l i c a t i o n sn e e dd i 任已r e n tk i n d s o fs o f h v a r e ,i nw h i c ht l l ep l a 怕肋s o f h v a r ei sab a s i cl a y e ta n 印p l i c a t i o n 九m so na s p e c i n cp l a 曲m 1 1 1 ed e v e l 叩m e n to fa p p l i c a t i o ni ss 唧a t e d 矗o m 也ed “l so f h a r d w a r eb yp l a t f o 彻s o 小阳糟砸1 i sh e l p sd e v e l 叩e r sf o c u so nt 1 1 e i r so w nt e c h n i q u e a r e a s t h i sm e s i si n 仃o d u c e ss o m er e s e a r c h e so nt h ep l a t f o 衄s o 行w a r eu n d e rp l a t 0 r r n o fg s 3 2 i t h eb a c k g r o u n do f 也em e s i si san e t w o r kv i d e om o l l i t o r i n gs y s t 锄a 1 1 dt 1 1 e t h e s i sf o c u s e so np i a t f o ls o f h a r e i ta l s oi t i 廿o d u c e s 也ed e v e l o p m e n tr e l a t e dt o a p p l i c a t i o nb a s eo np l a t f b 册s o m v a r e ,t l l o u 曲i t sn o tp r i m a 够 t h ec o n t e n ts h o w e db e l o wi ss t u d y e d : ( 1 ) s m d yo fm i p sa r c 埘t e c t u r e a n dt l l e 砌l d i n go fl i n u xd e v e l o p m e m e n v i r o 弘l e n t :s t u d yo fm i p sa r c l l i t e c t u r ea l l d i i l 仃o d u c e st h em e 也o do fb u i l d i n g l i n u xd e v e l o p 】 n e n te n v i r 0 舳e n t ( 2 ) p o r t i n go fu - b o o t :n l i st l l e s i si 仃o d u c e st w os o 脚a r et o o l s 矗r s t t h e 铆o t o o l sh e l p 让1 ep o 蹦n go f u b o o t a n dm e n “d i s c u s s e st h em 甜l o do f p a n i n gu b 0 0 t , i n c l u d i n gt 1 1 eb o o to fc p u ,t h ei n l p l e m e mo f h a r d w a r ed r i v e ra n dt h eb o o to fl i n u x t h i si st l l ec r i t i c a lc o n t e mo f t h et h e s i s ( 3 ) b u i l d i n go fd e b i a j lf i l e s y s t e ma 1 1 dp o r t i n go fd r i v e ro fm ev w 2 0 1 oa u d i o a i l dv j d e oc a r d :s t i l d yt 】l em e t h o do f b u i i d i n gd e b i a nf i l e s y s t c mo nt l l ep l a t f 砸【i lo f g s 3 2 i p o r t i n ga na p p l i c a t i o nf o rg s 3 2 ib y 俯i t 协ga d r i v e rd i r e c t l yf o rm ec a r d 1 1 武汉理工大学硕士学位论文 f i l l a l l y ,b a s e do nt h es l l l n m 耐e so fa l lr e s e a r c hw o r k s ,s o m es u g g e s 廿o n sa 1 1 d p m s p e c tf o rf h 也e rr e s e a r c h sa r ep u tf 0 九v a r d k e yw o r d s :e m b e d d e ds y s t e m ,m i p s ,l 抽u x ,b o o u o a d e r ,d e b i a 工l i i l 武汉理工大学硕士学位论文 1 1 立题的意义 第1 章绪论 嵌入式系统( e m b e d d e ds y s t c m ) 是根据应用的要求,将操作系统和功能软件 集成于计算机硬件系统之中,从而实现软件与硬件一体化的计算机系统。嵌入 式系统出现于6 0 年代晚期,它最初被用于控制电话交换机,如今已广泛应用于 工业制造、过程控制、通讯、仪器、仪表、汽车、船舶、航空、航天、军事装 备、消费类产品等众多领域【3 j 。 而嵌入式系统的应用还有巨大的增长潜力,它将是信息产业中一个新的经 济增长点。但目前,国内在这一产业链中还处于下游的位置,多数的开发集中 于应用层和系统集成,上游从硬件到软件的关键技术基本都掌握在国外厂商的 手上,国内做开发时,这些技术一般都直接拿来使用。而c p u 无疑又是其中最 为核心的部分,只有掌握了c p u 的开发,才有可能在国内形成一个完整的产业 链。 龙芯系列c p u 是北京神州龙芯集成电路设计有限公司推出的高性能中央处 理器。虽然和目前市场应用的主流c p u ( 如通用平台的x 8 6 架构c p u ,嵌入式 系统中流行的a r m 处理器) 相比,龙芯系列c p u 在成熟应用方案的数量上还 有一定的差距,但在国内掌握信息产业关键技术的道路上迈出了重要的一步【”。 龙芯系列c p u 包含不同档次,不同用途的几个系列。g s 3 2 i 是其中针对嵌 入式应用的款处理器,也是本论文讨论问题的硬件平台。g s 3 2 i 是一款兼容 m i p s 指令集,集成了丰富外设资源的高性能,低功耗的3 2 位片上系统。 有了硬件平台,各种不同嵌入式系统的应用,最后都是要由大量不同的软 件来实现的。丰富的软件资源,有利于芯片的应用推广,反过来,芯片的广泛 使用,在众多开发人员和用户的支持下,又可以使软件资源得到不断的丰富。 在软件体系中,平台支撑软件无疑是最为基础的。各种具体的应用都是在 特定的平台之上进行开发的。底层的支撑软件在很大程度上将硬件内部的大量 细节同上层的应用开发隔离开来,使应用开发人员将精力集中于自己所针对的 特定应用领域【4 5 j 。 在传统的8 位系统的嵌入式开发中,由于软硬件系统较为简单,一般也没 武汉理工大学硕士学位论文 有操作系统的介入,这种底层软件与上层应用的分工表现地并不明显,往往一 个开发人员就可以完成从硬件到软件的全部设计工作。但3 2 位平台一般是针对 像手机、p d a 、游戏机、路由器、数字电视等复杂的应用,很多时候还要引入 操作系统,处理器本身也有复杂的体系结构。在这种情况下,一般是由处理器 的设计公司提供支撑平台,下游的应用公司在这个平台上设计自己的产品,最 后再将产品推向市场。分工协作表现的越来越明显。 因此,平台软件的开发和丰富是嵌入式处理器得到推广的关键因素之一。 这里的平台软件具体是指c p u 的启动引导程序( b o o u o a d c r ) ,嵌入式操作系统 和外围设备的驱动这几个方面。本文就g s 3 2 i 硬件平台之上软件平台开发中的 一些关键技术( b o o t l o a d e r 的开发和移植,文件系统的制作等) 进行了讨论,上 层的应用开发虽然不是这里讨论的重点,但作为底层向上的延伸和应用,本文 也做了相应的讨论。这些工作对于丰富国产处理器的软件资源,加快其推广和 应用有着积极的意义。 1 2 相关的关键技术及其国内外的发展状况 嵌入式系统中的平台软件是一个介于硬件和应用程序之间的软件层。虽然 它还是属于一个软件层次,但与我们通常所见的p c 平台上的应用软件开发相比 差异很大。虽然它并不直接涉及i c ( i n t e 黜dc i r c u i t ,集成电路) 设计和电路 设计的问题,但它可以直接操作整个硬件系统,因此,对于计算机体系结构的 理解,对于常用的硬件接口技术的掌握也有较高的要求。而软件方面,则需要 掌握c p u 的启动,操作系统内核,各种外设驱动的开发等技术。在此基础上, 还有可能涉及各种专用的文件系统的开发,图形界面的开发,通信协议栈( 如 t c p i p ,g s m 等) 的开发等等。以上这些内容。有时候也被称为“板级支持包 ( b s p ,b o a r ds u p p o r tp a c l ( a g e ) ”,即支撑应用开发的软件包。 结合本文的研究内容,其主要涉及如下关键技术: 1 ) 微处理器设计技术【2 l j 随着半导体工艺技术的发展,全球已有3 0 多种系列近千种微处理器( up ) 微控制器( pc ) 与数字信号处理器( d s p ) 例如i n t e l 的p e n t i u m 、s t r o n g a r m 系歹1 j ,m o t a r o l a 的p o w e r p c 系列,t i 的嵌入式d s p 等等。单片机已从单纯的 m c s 一5 l 进入到片上系统( s o c ) 阶段。我国8 6 3 计划超大规模集成电路s o c 专 2 武汉理工大学硕士学位论文 项已启动,近年已研制成功国产c p u 芯片“龙芯”,“方舟”1 、2 号,“诺亚2 0 0 0 ” 等,为网络通信,信息安全和关键电子信息产品提供核心芯片。 2 1 m i p s 体系结构 本文的讨论即是围绕与m i p s ( m i c p r o s s o rw i 吐抛u ti n 溆l o c k e dp i p e d s t 艰e s ,无内部互锁流水级的微处理器) 兼容的体系结构展开的。m l p s 体系能 够兼容通用和嵌入式的需求。在通用系统方面,m i p s 系列微处理器被用于构建 服务器和超级计算机系统。在嵌入式系统方面,它是目前位于a r m c p u 之后, 用的最多的处理器之一,其应用领域覆盖游戏机、路由器、激光打印机、掌上 电脑等各个方面。 3 ) 嵌入式操作系统( e o s ,e m b e d d e d0 p c r a l i n gs y s t e m ) p j 嵌入式操作系统的出现大大简化了应用程序设计,并可以有效的保障软件 质量和缩短开发周期。简单的嵌入式应用一般并不使用操作系统,只包含一些 控制流程。但是随着嵌入式应用在复杂性上的增长,简单的流程控制就不能满 足系统的要求,这时就必须考虑使用操作系统做系统软件。因此,嵌入式操作 系统就应运而生。 目前较常见的e o s 产品包括有:v x 、v o r k 、q n x 、p a l m o s 、w i n d o 哪c e 、 p s o s 、h o p e no s 等。其中,v x w o r k 使用最为广泛、市场占有率最高,其突出 特点是实时性强( 采用优先级抢占和轮转调度等机制) ,除此之外,其可靠性和可 剪裁性也相当不错。q n x 是一种伸缩性极佳的系统,其核心加上实时p 0 s 环 境和一个完整的窗口系统还不到兆。相比之下,m i c r o s o r 的w i r l d o w sc e 的 核心体积庞大,实时性能也差强人意,但由于w i n d o w s 系列友好的用户界面和 为程序员所熟悉的a p i ,正逐渐获得更大的市场份额。而与这些商业化的操作系 统相比,l 如1 1 ) c 已经越来越受到人们的注意。 4 1 嵌入式l i n u x i 刮 g s 3 2 l 处理器对目前常见的嵌入式操作系统都有支持,本文内容是在嵌入式 l i l l u x 环境下研究的,这里再对嵌入式l i h l l ) ( 技术做进一步的说明。 l i n u x 作为嵌入式操作系统的优势主要有以下几点: 可应用于多种硬件平台。 l i n u x 已经被移植到多种硬件平台,这对于经费,时间受限制的研究与开发 项目是很有吸引力的。原型可以在标准平台上开发后移植到具体的硬件上,加 快了软件与硬件的开发过程。l i n u x 采用个统的框架对硬件进行管理,从一 3 武汉理工大学硕士学位论文 个硬件平台到另一个硬件平台的改动与上层应用无关。它本身内置网络支持, 而目前嵌入式系统对网络支持要求越来越高。l i n u x 的高度模块化使添加部件非 常容易。 l i n l l ) 【是一个和u n i x 相似的通用操作系统。 其程序源码全部公开,这会节省大量的开发费用。任何人可以修改并在g u n 通用公共许可证( g n ug e n e r a lp u b l i cl i c e n s e ) 下发行。这样,开发人员可以对操 作系统进行定制,适应其特殊需要,可以不用受制于某个厂商。 l i n u x 带有u n i x 用户熟悉的完善的开发工具。 几乎所有的u n i x 系统的应用软件都已经移植到了l i n u x 上。l i n l l ) 【还有多 种可选择窗口管理器( xw i n d o w ) 。其强大的语言编译器g c c 也可以很容易得至, 不但成熟完善,而且使用方便。 掌握c p u 的设计是在硬件核心技术上取得主动权的关键步骤,相对应的, 开源而又功能强大的l i 衄x 系统的出现,为我国在软件核心技术上摆脱被动的局 面,提供了一次难得的机遇。 1 3 研究内容 由前面的论述可以知道,嵌入式系统的应用面很宽广,而其所涉及的技术 也相当的广泛。其中的平台软件又是一个软硬件之间的中间层次,软件和硬件 方面的问题都会涉及到。具体到本文中所使用的g s 3 2 i 平台,要使得上面可用的 软件资源达到目前使用较为广泛的a r m 处理器的水平,也不可能通过我个人的 研究和这篇论文就能得到全部的解决。龙芯公司在这方面已经做了大量的工作, 我也只是力所能及的作出一点自已的努力。 根据应用的需要,我主要完成了如下的工作: 1 ) 平台软件开发环境的搭建 本文的内容是在l i n l l ) 【环境下研究的( 用于开发的p c 机和g s 3 2 i 平台均使 用l i n u 】( 系统) 。搭建嵌入式l i n u x 开发环境是第一个要解决的问题。硬件方面, g s 3 2 i 的内核是兼容m i p s 指令集的,这主要是为了便于推广。平台软件的编写 涉及大量体系结构相关的问题,因而对m i p s 体系的熟悉是基本前提。 2 ) u b o o t 的移植 在搭建好的开发环境下可以开始实际的开发工作了。由于缺乏较好的调试 4 武汉理工大学硕士学位论文 工具,因此,在移植u b o o t 之前,先介绍两个辅助的平台软件工具,通过这两 个辅助工具调试和烧写u - b o o t 。之后分几个主要模块完成u b o o t 的移植。在其 中,将结合具体的情景介绍m i p s 体系结构和外设驱动的相关内容。这是本文的 重点,将用较多的篇幅讲述。 3 ) d e b i a i l 文件系统的建立和v w 2 0 1 0 音视频编解码卡的驱动移植 在已有的启动程序( u b o o t ) 和操作系统内核( m i p s 1 i n l l ) c ,2 4 1 8 ) 基础上 可以建立一套文件系统了。本文讨论了d e b i a n 文件系统在g s 3 2 i 上的建立方法。 在建好的软件平台上可以开发各种应用系统。这里有一块符合m p e g 标准的编 解码卡( 使用v w 2 0 1 0 编解码芯片) ,加上龙芯公司开发的一套视频监控应用 软件属于一个应用层问题,是我所做工作向上的延伸。通过移植驱动,试图使 整套应用在g s 3 2 i 平台上运行。但由于硬件的不兼容,移植没能成功。 以上三部分内容,1 ) 属于准备工作,2 ) 和3 ) 属于平台软件的实现部分。 1 4 论文的组织结构 本文共分为六章,组织如下: 第l 章:阐述了本文的立题意义,涉及的关键技术,介绍了本文的研究内 容和论文组织结构。 第2 章:介绍和平台软件开发相关的基本概念,包括g s 3 2 i 处理器,g s 3 2 i 主板,m i p s 体系结构及平台软件的l i n u x 开发环境搭建。 第3 章:设计和实现平台软件开发辅助工具,并研究了m i p s 体系结构相关 的内容。 第4 章:分几个主要的模块,研究u b o o t 的移植。 第5 章:研究d e b i a n 文件系统的建立方法及v w 2 0 1 0 音视频编解码卡驱动 的移植。 第6 章:总结与展望。总结了自己所做的工作,指出其中的不足及以后可 以继续发展的方向。 5 武汉理工大学硕士学位论文 第2 章g s 3 2 i 硬件结构与平台软件的开发环境 2 1 平台软件系统的应用背景 本文的研究背景源于一个网络视频监控应用。如图2 1 ,拾音器和摄像头采 集的信号传送到g s 3 2 i 主板,主板的p c i 插槽上接有一块音视频编解码卡,它 会压缩接收到的信号,之后信号可以由显示器回放,或存入硬盘中。也可以将 信号通过网络传送到服务器,用户还可以通过网络向服务器查询视频和声音。 图2 1 网络视频监控应用的系统组成 图2 2 视频监控系统的软件层次结构 6 武汉理工大学硕士学位论文 图2 2 所示为该系统的软件结构,本文的内容集中在核心层部分( l i n l l ) 【内 核移植除外) 以及a p l 层的根文件系统部分,这些工作是独立于上层应用的。 本应用使用l i u n x 系统,因此先要建立l i i l u x 开发环境。b o o t l o a d e r ( 类似于p c 机的b i o s ) 部分移植了功能强大的u - b o o t 。但在移植以前,先需要实现两个平 台软件开发辅助工具( m i n i b o o t 和a u _ n 鹊h ) ,以方便u 毋o o t 移植时的调试和烧 写。l i n i l x 内核使用已有的m i p s i i n u x2 4 18 。根文件系统基于d e b i a i l 发行包。 音视频编解码卡包含v w 曲公司推出的v w 2 0 1 0 编解码芯片,本文尝试了在建 好的软件平台上移植编解码卡的l i n u x 驱动,希望现有的视频监控系统能运行在 g s 3 2 i 平台上。 本章将介绍系统的硬件层及平台软件的开发环境,其余的内容将在后续章 节中阐述。 2 2 g s 3 2 i 处理器与主板 2 2 1g s 3 2 i 处理器 g s 3 2 i 是一款高性能,低功耗的3 2 位片上系统( s o c ,s y s 把m o n - a c h i 口) 处理器a 它可用于各种消费类电子产品中。g s 3 2 i 是基于m 口s 3 2 指令集的,兼 容m i p s 内核,运行主频可以达到4 0 0 m h z 。其主要特点如下所列: 高性能的m i p s c p u 内核: _ 1 6 k b 的数据缓存( d a t ac a c h e ) 和1 6 k b 的指令缓存( i n s t n l c t i o nc a c h c ) ; _ 高速乘法累加器( m a c ,m u l t i p l y 。a c c u m u l a t e ) 和除法单元; - 有空闲和睡眠两种省电模式; 4 0 0 m h z 主频下内核电压为1 5 v ,“o 口电压为3 3 v 。 流水线: 5 级流水线; - 优化过的长跳转技术。 高集成度的系统外设: 一4 8 个通用输入输出管脚( g p i o ,g e n e r a lp u r p o s ei o ) ; _ 两个1 0 1 0 0 m 以太网控制器: - 通用串行接口( u s b ) 主机及设各端控制器: _ 3 3 ,6 6 m h z 、3 2 位p c i 控制器( 兼容p c i 2 2 ) ; 7 武汉理工大学硕士学位论文 一一个a c 9 7 控制器; 一一个p c m c i a 接口; 一1 0 0 1 2 5 m h z 的s d r a m 控制器; 需要注意,g s 3 2 i 的物理地址是3 6 位的,但c p u 内核看到的是3 2 位地址。 因此,内存管理单元需要将3 2 位地址转变为总线上实际使用的3 6 位地址。g s 3 2 i 给大部分外设分配的地址空间最高的4 位都为零,因此,在程序的编写上没有 什么特别的地方,还是可以将物理地址看作是3 2 位的。但个别外设的物理地址 最高4 位不是零,比如p c i 设备,相应的程序编写就要有所注意。这点在后 面介绍p c i 设备的驱动编写时还会做进一步的说明。 2 2 2g s 3 2 i 主板 这块主板也就是本文研究问题所用的硬件平台( 图2 3 ) ,其主要特点如下: g s 3 2 i 处理器为核心,内部集成桥芯片,s o c 架构; 1 个a i :a 3 3 i d e 硬盘接口: 支持3 2 位通用p c i 总线设备扩展接口,提供一个p c i 扩展槽: 板载s d r a m ,最大支持到1 2 8 m b ; 1 个通用r s 2 3 2 串口、一个控制台调试串口: 4 个u s bh o s t 接口、支持u s b l 1 标准,其中一个u s b 可工作在 h o s t d e v i c e 模式: 1 个e j a g 调试接口: 2 个以太网i u 4 5 接口,支持8 0 2 3 u 以太网协议; 主板集成显卡芯片,提供一个v g a 输出接口。 应用范围: 网络计算机; 瘦客户机。 其中,主要的硬件组成为: 内存( r a m ) :h y 5 7 v 5 6 1 6 2 0 c t h ,3 2 m bx2 ,0 x 8 0 0 0 0 0 0 0 0 x 8 3 射髓: 闪存( f l a s h ) :s s t 3 9 、矾6 0 ,i mx1 6b i t ,0 x b f c o 0 0 0 m 加x b f d 塌 m 网络物理层:d a v i c o md m 9 1 6 lx2 : i d e :i t ei t 8 2 】2 。 武汉理工大学硕士学位论文 图2 3g s 3 2 i 主板硬件组成框图 2 3m i p s 体系结构 2 3 1m i p s 的通用寄存器 m i p s 提供了3 2 个通用寄存器供使用,分别为:s 0 $ 3 1 。有了c 预处理器 的帮助,m i p s 汇编程序都是用助记符来表示寄存器。助记符同时也代表了每个 寄存器的用法。下面简单说明一下部分助记符的用法( 括号中注明的就是寄存 器的助记符) 【3 l 】。 o ( z c r o ) :返回值永远为0 。 1 ( a t ) :用做汇编器的暂时变量。 2 3 ( v o ,v i ) :保存子函数调用返回结果。 4 7 ( a o a 3 ) :保存子函数调用的参数。 8 - 1 5 ,2 4 2 5 ( t o - t 9 ) :暂时变量,子函数使用时不需要保存与恢复。 1 6 2 3 ( s 0 一s 7 ) :子函数寄存器变量。在函数返回之前,子函数必须保存和恢 复使用过的变量,从而使调用函数知道这些寄存器的值没有变化。 2 8 ( g p ) :全局指针。这个指针用来存取“侧i c ”和“e x t e m ”类型的变量。 2 9 ( s p ) :堆栈指针。 3 1 ( r a ) :存放子函数的返回地址。 9 武汉理工大学硕士学位论文 2 3 2 基本地址空间 在m i p sc p u 里,程序中的地址不一定是芯片真正访问的物理地址。我们 分别称之为:程序地址和物理地址【2 8 】。 一个m i p sc p u 可以运行在两种优先级别上:用户态和核心态。m i p sc p u 从核心态到用户态的变化并不是c p u 工作不一样,而是对于有些操作认为是非 法的。例如:在用户态下,一些特殊的指令将会导致c p u 进入异常状态。 程序地址空间划分为4 个属性不同的区域( 如图2 4 所示) 【3 1 1 : k u s e g :o x 0 0 00 0 0 0 o x 7 f f ff f f f ( 低端2 g ) ,这些地址是用户态可用的空间。 在有m m u 的机器里,这些地址将一概被m m u 作转换。除非m m u 的设置被 建立好,否则这2 g 地址是不可用的。 k s e g o :o x 8 0 0 00 0 0 0 一0 x 9 f f ff f f f ( 5 1 2 m ) ,这些地址映射到物理地址简单 地通过把最高位清零,然后把它们映射到物理地址低段5 1 2 m ( o ) 【0 0 0 0o 0 0 0 o x i f f ff f f f ) 。对这段地址的存取会通过快速缓存( c a c h e ) 完成。因此在c a c h e 设 蜀好之前,不能随便使用这段地址。 k s e 9 1 :o x a 0 0 0o 0 0 0 一o x b f f ff f f f ( 5 1 2 m ) ,这些地址通过把最高3 位清零 的方法来映射到相应的物理地址上,与k s e g o 映射的物理地址一样。但k s e 9 1 是 非c a c h e 存取的。 k s e 9 1 是唯一的在系统重启时能正常工作的地址空间。这也是为什么重新启 动时的入口向量是0 x b f c o0 0 0 0 。这个向量相应的物理地址是o x l f c 00 0 0 0 。可 以使用这段地址空间存取初始化代码。 k s e 9 2 :0 x c 0 0 00 0 0 0 o x f f f ff f f f ( i g ) ,这段地址空间只能在核心态下使 用并且要经过m m u 的转换。在m m u 设置好之前,不能存取这段区域。 图2 4m i p s 的基本地址空间 1 0 武汉理工大学硕士学位论文 2 _ 3 3 流水线 一条m i p s 指令的执行被分为五个阶段( 如图2 5 所示) 【3 ”,即: 取指( i f ,i n s n l l c t i o nf b t c h ) :从指令缓存( i c a c h e ) 中读取下一条将要 执行的指令。 读寄存器( r d ,r e a dr e 西s t e r ) :从c p u 通用寄存器中读取指令所使用 的数据和指令译码。 算术逻辑运算( a l u ,a r i t l l r n e t i c 八o g i c 皿i t ) :执行算术或是逻辑操作。 存储器访问( m e m ,m 锄o r y ) :通过数据缓存( d c a c h e ) 从内存中读 取数据或是向内存存储数据。有很多指令的运行并没有这个阶段,但 是给每条指令都分配这个阶段就可以保证不会有两条指令同时要使用 数据缓存的情况出现。 写回( w b ,w n t eb a c k ) :将运算结果写回寄存器。 图2 - 5m i p s 的指令执行过程 这样m i p sc p u 同时就可以运行五条指令,每条指令都处于不同的执行阶 段。这就是一个五级流水线( f i v e s t a g ep i p e l m e ) ( 如图2 6 所示) 。m i p s 指令 严格按照这样一个流水线的过程执行。有些指令的执行实际可以不用涵盖全部 五个阶段t 但根据m i p s 的规定,也要按五级流水线的流程运行,因此这些指令 武汉理工大学硕士学位论文 运行中的某些阶段是什么事情也不做的,仅仅是为了维持流水线的时序要求 姗。 严格的五级流水线要求所有指令的取指时间是一样的,因而也就要求所有 指令的长度是一样的( 3 2 位) 。这样降低了体系结构设计上的复杂性。但它一方 面限制了某些指令完成复杂的功能:另一方面,很多指令的功能不用占用4 个 字节就可以实现,现在必须使用4 个字节,因此。在m i p sc p u 上运行的软件, 编译之后的文件其体积一般比其它体系结构的要大。 i: l 指,- 3 ml 一 i l m l 括: 令指辛2 i 球i 轴l 挪i 燃邺i 螽l 格- 奇3 i 口i 聃l wl 蝴w - i i | 图2 6 m i p s 的流水线 流水线的引入,从总体上说,使多条指令可以并行执行,加快了c p u 的运 算速度。但也带来了一些消极影响。其中,m i p s 编程中会遇到的与之相关的问 题就是延迟稽的问题。 ( 1 ) 跳转延迟槽【3 2 】 由于流水线的引入,在一条跳转指令将要发生跳转时,紧接着跳转指令之 后的一条指令也已经被执行了,而跳转后将要执行的目标指令还没有被执行, 这样就打乱了指令的执行顺序。 跳转指令之后的个指令位置,一般被称之为跳转延迟槽( b r a n c hd e l a vs l o t ) ( 如图2 - 7 所示) 。由于延迟槽处的指令在跳转前实际上也会被执行,因此,这 瞿一般放上一条没有实际意义的空运行指令( n o p ) 。这样,即保证流水线的执 行,又不破坏指令的实际执行顺序。这种情况在后面的研究中会经常碰到。 一般来说,跳转指令之前的指令也可以放在跳转延迟槽处,但对于条件跳 转指令,由于跳转并不是一定会发生,这样做就不一定正确了。 1 2 武汉理工大学硕士学位论文 图2 7 跳转指令运行时的流水线 ( 2 ) 加载延迟槽 当一条加载指令加载完数据后,紧接其后的指令要使用这个刚加载的数据, 由于加载指令加载数据的过程是在流水线中的存储器访问阶段( m e m ) 发生的, 而在同时,紧接其后的指令就开始了流水线中算术逻辑运算( a l u ) 的过程, 其数据的读取过程已经完成。很明显,加载指令其数据的加载过程没有真正完 成,后一条指令就已经取出的数据是错误的。 加载指令之后的一个指令位一般称为加载延迟槽( 1 0 a dd e l a ys l o t ) ( 如图2 8 所示) 。如果其后的指令要使用加载的数据,加载延迟槽处一般也是放一条空指 令( n o 口) 。 图2 _ 8 加载指令运行时的流水线 2 4 平台软件的开发环境嵌入式l i 技u x 2 4 1 宿主机的开发环境 绝大多数的l i n u x 软件开发都是以本地( n a t i v e ) 方式进行的,即本机( h o s t ) 开发、调试,本机运行的方式。但对于嵌入式系统的开发,通常没有足够的资 源在嵌入式开发板上运行开发工具和调试工具。嵌入式系统的软件开发采用一 r:蚪奇:钟蛊:标专i 忑鑫嚣:黪i 丁,i指令序列;1+ 武汉理工大学硕士学位论文 种交叉编译调试的方式【l o 】。交叉编译调试环境建立在宿主机( 即一台p c 机) 上, 对应的开发板叫做目标板( 如图2 9 所示) 。开发时,使用宿主机上的交叉编译、 汇编及连接工具形成可执行的二进制代码( 这种可执行代码并不能在宿主机上 执行,而只能在目标板上执行) ,然后把可执行文件下载到目标机上运行。 宿主机和目标板的处理器一般都不相同,本文中宿主机使用i n t e l 处理器, 而目标板为g s 3 2 i 评估板。进行嵌入式开发前,要有一台装有指定操作系统的 p c 机作宿主开发机,本文中宿主机使用r e d h a t 公司的f e d o r a jc o r e3 系统,g s 3 2 i 平台上使用m i p s - l i 肌x 系统。 嵌入式开发通常要求宿主机配置有网络,支持n f s ( n e t 、v o r kf i l e s y s t e m , 网络文件系统,为交叉开发时加载文件系统所用) ,支持t f t p ( t r i v i a lf i l e t r a l l s f e r p r o t o c o l ,简单文件传送协议) 服务( 为下载传送数据所使用) 等等【3 4 】。 然后要在宿主机上建立交叉编译调试的开发环境。 运行蛾的p c 【宿主机】 图2 9 宿主机开发方式 2 4 2l i n u ) 开发工具集( g n ut o o l s ) g n ut o o i s 是l i n u x 环境下最主要的开发工具集,它主要包括如下几类工具: 编译开发工具:即能够把源程序编译为可执行程序的软件,如2 c c 。 调试工具:即能够对执行程序进行源码或汇编级调试的软件,如g d b 。 软件工程工具:协助大型软件项目开发的管理软件,如m a k e 、c v s 等。 g c c 是g n uc o m p i l e rc o i l e c t i o n 的简称,目前g c c 可以支持c 、c + + 、j a v a 、 f o n r a l l 、p a s c a l 等多种高级语言。g c c 是一个强大的工具集合。它根据输入文件 的类型和传递给g c c 的参数调用相应的预处理器、编译器和汇编器,用源代码文 件来产生目标文件,然后使用链接器来连接这些目标文件和一些标准的程序库, 并生成一个可执行程序。在链接阶段,一个目标文件中对别的文件中符号的参 1 4 武汉理工大学硕士学位论文 考引用( r e f e r e n c e ) 被解释和替换。 b i n u t i l s 是一组二进制工具程序集,它是辅助g c c 的主要软件,包括如下主 要工具f 2 2 】: a s :g n u 汇编器( a s s e m b l e r ) ,把汇编代码转换成二进制代码,并存放 到对象( o b j e c t ) 文件中。 l d :链接器( 1 i n k e r ) ,用于确定相对地址,把多个o b j e c t 文件、起始( s 协r t u p ) 代码段、库( 1 i b r a r y ) 等链接起来,并最终形成一个可执行文件。 r e a d e l f 显示e l f 格式可执行文件中的各种信息。 g n um a k e 的主要任务是读入一个文本文件( 默认文件名是m a k e f i l e 或 m a k e f i l e ) ,并根据这个文本文件定义的规则和步骤,完成整个软件项目的维护 和代码生成等工作。这个文本文件主要定义了源文件和目标文件之间的依赖关 系,以及需要用什么命令来产生文件的最新版本等工作。 g n ut 0 0 1 s 作为开发环境的一部分安装在宿主机上,但它是为目标板编译程 序的。 2 4 _ 3l i n u x 内核的配置 内核是l 抽1 1 ) ( 系统软件组成的核心,l i i m x 内核是可配置的,在嵌入式系统 中更是需要根据应用的要求,选择最合适的配置,去掉不用的功能,以减小内 核的体积 5 】a 下面以2 4 1 8 版的m i p s - l i n u x 内核做进一步的说明。 这个内核已经针对g s 3 2 i 进行过移植,可以在主板上运行。将内核源代码 拷贝到开发用的p c 上的合适目录下,进入内核目录下。首先修改根目录下的 m a k e 文件“m a k e f i l e ”,m a k e 五l e 中c r o s sc o m p i l e 用于指明交叉编译的工具 链所在的路径,这里修改为“c r o s sc o m p i l e = ,u s r m i p s e l b i i 临i p s e l l i n u ) ( ”。 然后运行“m a k em e n u c o l l f i g ”命令,可以看到如图2 1 0 所示的配置界面, 这里可以根据应用的需要改变内核的各种配置。保存修改的配置后,在内核的 根目录下会生成一个对应的c o i l f i g 文件,一些头文件和符号链接也会被创建【3 9 】。 然后执行“m a k ed e p ”,重新生成源码文件依赖关系。最后运行“m a k e ”,编译 完成后,在源代码根目录下会生成一个名为“v 血i n u ) 【”的e l f 文件,这个文件 就是l i n u x 内核的映象文件。将其放入t f t p 服务器指定的目录中( 一般为 t f 【p b o o t ) ,以便在目标开发平台上启动l i n u x 操作系统。 1 5 武汉理工大学硕士学位论文 图2 1 0l i n l l ) ( 内核的配置界面 2 4 。4l i n u x 的文件系统 这里先介绍一般l i n u x 文件系统的制作方法,后面还会专门谈到实际使用的 d e b i a l l 文件系统的制作方法。 目前常用的嵌入式文件

温馨提示

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

评论

0/150

提交评论