




已阅读5页,还剩55页未读, 继续免费阅读
(微电子学与固体电子学专业论文)armlinux驱动程序研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 嵌入式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 内核移植到一些典型的微控制器和微处理器 上。 a r m 平台是目前使用广泛的主流的嵌入式处理器体系结构。本文采用使用 $ 3 c 2 4 1 0 ( a r m 9 内核) 为c p u 的硬件平台,$ 3 c 2 4 1 0 是韩国三星公司生产的一款基于 a r m 9 2 0 t 体系结构的高性能c p u ,丰富的外设接口,2 0 3 姗z 的主频使它特别适合进行操 作系统的移植和进行应用开发。 本文主要目的是研究l i n u x 下的驱动程序移植。文章首先分析如何建立硬件和软件 平台,包括开发板介绍、建立交叉编译环境、b o o t l o a d e r 移植、l i n u x 2 6 内核移植, 一直到根文件系统建立的全过程。然后介绍典型的字符设备、块设备和网络设备驱动程 序的写法。 关键词:嵌入式系统;l i n u x ;a r m ;字符设备驱动;块设备驱动;网络设备驱动 a b s t r a c t e m b e d d e dl i n u xi sa l lo p e r a t i o ns y s t e mw h i c hi sc u t o f fa n dm o d i f i e df r o ml i n u x ,a n d w h i c hc a nr u no ne m b e d d e ds y s t e m s i n c ei th a st h ea d v a n t a g e sf r o mb o t hl i n u xa n d e m b e d d e ds y s t e m ,e m b e d d e dl i u n xh a sl a r g em a r k e tp r o s p e c ta n dc o m m e r c i a lo p p o r t u n i t y a tp r e s e n t ,o n eo ft h ef o c u sa p p l i c a t i o n sf o rt h ee m b e d d e dl i u n xi sm i g r a t i n gt h el i u n x k e r n e lt or u nam i c r o c o n t m l l e ro rm i c r o p r o c e s s o r a r mp l a t f o r mi st h em o s tp o p u l a re m b e d d e dp r o c e s s o rs t r u c t u r e i nt h i sa r t i c l e ,w e s e l e c t e dah a r d w a r ep l a t f o r mw i t ha $ 3 c 2 4 1 0c p u s 3 c 2 4 1 0i sah i g hp e r f o r m a n c ec p u b a s e do i la r m 9 2 0 ts t r u c t u r e ,a n di ss u i t a b l ef o ro p e r a t i o ns y s t e mm i g r a t i n gf o ri t sa b u n d a n t p e r i p h e r a le q u i p m e n t i n t e r f a c ea n d2 0 3 m h zm a i nf r e q u e n c y t h em a i np u r p o s eo ft h i sa r t i c l ei ss t u d y i n gl i u n xd e v i c ed r i v e r f i r s to fa l l ,t h i sa r t i c l e s h o wh o wt ob u i l dah a r d w a r ea n ds o f t w a r ee n v i r o n m e n t ,i n c l u d i n gi n t r o d u c e t h e u p - n e t a r m 2 4 1 0d e v e l o p m e n tp l a t f o r m 、b u i l de r o s s - t o o l s e h a i n 、m i g r a t eb o o t l o a d e r 、 m i g r a t el i n u xk e r n e l2 6a n db u i l tr o o tf i l es y s t e m t h e nt h r e et y p i c a ll i n u xd e v i c ed r i v e r : c h a r a c t e rd e v i c e 、b l o c kd e v i c e 、n e t w o r kd e v i c ew i l lb ed i s c u s s e d k e y w o r d s :e m b e d d e ds y s t e m :l i n u x ;a r m :c h a x a c t e rd e v i c ed r i v e r :b l o c kd e v i c ed r i v e r : n e t w o r kd e v i c ed r i v e r 湖北大学学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所 取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任 何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡 献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的 法律后果由本人承担。 论文作者签名:叶巍 日期:五创叼年6 月乙日 学位论文使用授权说明 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即: 按照学校要求提交学位论文的印刷本和电子版本:学校有权保存学位论文的印 刷本和电子版,并提供目录检索与阅览服务:学校可以允许采用影印、缩印、数字 化或其它复制手段保存学位论文;在不以赢利为目的的前提下,学校可以公开学位 论文的部分或全部内容。( 保密论文在解密后遵守此规定) 作者签名:叶巍 指导教师签毫:渺羊 日期:沙卵6 l 日期:一zf 严 第一章引言 第一章引言 1 1 嵌入式系统的发展 作为一个系统,往往是在硬件和软件双螺旋式交替发展的支撑下逐渐趋于稳定和成 熟,嵌入式系统也不例外。嵌入式技术最初的应用是基于单片机的。2 0 世纪7 0 年代单片 机的出现,使得汽车、家电、工业机器、通信装置以及成千上万种产品可以通过内嵌电 子装置来获得更佳的使用性能,更容易使用。这些装置已经初步具备了嵌入式的应用特 点,但是这时的应用只是使用8 位的处理器执行一些单线程的程序,还谈不上“系统” 的概念。从8 0 年代开始,嵌入式系统的程序员开始用商业级的操作系统编写嵌入式应用 软件,这使得开发人员可以缩短开发周期,降低开发成本并且提高开发效率。比较流行 的商业嵌入式操作系统有i n t e g r a t e ds y s t e mi n c o r p o r a t i o n ( i s i ) 的p s o s 、w i n d r i v e r 的v x w o r k s 和q n x 公司的q n x 等。此时嵌入式操作系统都具有嵌入式的典型特点【l j :它们大 多采用占先式的调度,响应的时间很短,任务执行的时间可以确定;系统内核很小具有 可裁减性、可扩充性和可移植性,可以移植到各种处理器上;较强的实时性和可靠性, 适合嵌入式应用。这些嵌入式实时多任务操作系统的出现,使得应用开发人员从小范围 的开发中解放出来,同时也促使嵌入式系统有了更广阔的应用空间。9 0 年代以后,随着 半导体技术的不断成熟,3 2 位嵌入式处理器已经占据了绝大部分消费类电子和通信市场 的份额。3 2 位的c p u 不仅外设更丰富、主频更高,随着s o c 技术的成熟,一个系统可以被 集成到一小块硅片上,大大减小了系统功耗,提高了系统的稳定性。由于系统对实时性 要求进一步的提高,软件规模不断上升,实时内核逐渐发展为实时多任务操作系统 ( r t o s ) ,并作为一种软件平台逐步成为目前国际嵌入式系统的主流。 1 2 嵌入式系统基础 1 。2 。1 嵌入式系统的定义 嵌入式系统实际上是嵌入式计算机系统的简称。通常计算机连同一些常规的外设是 作为独立的系统而存在的,并非为某一方面的专门应用而存在。例如一台p c 就是一个 计算机系统,整个系统存在的目的就是为人们提供一台可以编程,计算和处理数据的机 器。它可以作为科学计算工具,也可以作为企业管理的工具,一般把这样的计算机系统 l 湖北大学硕士学位论文 称为通用计算机系统。但是有些系统却不是这样。例如医用的c t 扫描仪也是一个系统, 这里面也有计算机,但是这种计算机是作为某个专用系统中的一个部件而存在的。像这 样嵌入到更大的、专用的系统中的计算机系统就是嵌入式系统。i e e e ( 国际电气和电子 工程师协会) 对嵌入式系统的定义为【2 i :嵌入式系统是“用于控制、监视或者辅助操作 机器和设备的装置”。国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技 术为基础,软硬件可裁减,适应应用系统对功能、可靠性、成本、体积、功耗等严格要 求的专用计算机系统。 1 2 2 嵌入式系统特点 可以从以下几个方面来理解嵌入式系统的特点f 3 】: 嵌入式系统是面向用户、面向产品、面向应用的,它必须与具体应用相结合才会具 有生命力、才更具有优势。可以这样理解上述三个方面的含义,即嵌入式系统是与 应用紧密结合的,它具有很强的专用性,必须结合实际系统需求进行合理的裁减利 用。 嵌入式系统是将先进的计算机技术、半导体技术和电子技术以及各个行业的具体应 用相结合后的产物。这一点就决定了它必然是一个技术密集、资金密集、高度分散、 不断创新的知识集成系统。所以,介入嵌入式系统行业,必须有一个正确的定位。 例如w i n d r i v e r 的v x w o r k s 之所以在美国国家航天局的火星车上得到应用,则是因为 其高实时性和可靠性。 嵌入式系统必须根据应用需求可对软硬件进行裁减,满足应用系统的功能、可靠性、 成本、体积等要求。所以,如果能建立相对通用的软硬件基础,然后在其上开发出 适应各种需要的系统,是一个比较好的发展模式。 虽然在一些工业控制、汽车电子等多机应用中,为了实现多个m c u 构成的系统问的 信息交流,通常是利用c a n ,i i c 和r s - 4 8 5 等总线将m c u 组网。但这种网络的应用空 间有限,相关的通信协议也比较单一,并且一般孤立于广泛应用的i n t e r n e t 以外。 目前,i n t e r n e t 已经成为社会重要的基础信息设施,是信息流通的重要渠道。嵌入 式系统必将与i n t e r n e t 融合,方便,低廉地将信息传送到世界上任何一个地方,因 此与网络融合是嵌入式系统今后的发展方向之一。 2 第一章引言 1 3 嵌入式系统分类 嵌入式系统可以大致分为如下类型【4 l 。这种分类是依据系统是否必须作为独立单元 工作或必须具有网络功能,是否必须执行实时操作等标准来划分的。 单机嵌入式系统 单机嵌入式系统以单机方式工作,获取输入并产生输出。输入可以是来自传感器的 电信号,或者是来自人的命令,比如按下按钮。输出可以是驱动另一个系统的电信号, 或者是为用户显示信息的l e d 或者l c d 显示。在制造厂和汽车厂里很多用于过程控制的嵌 入式系统可以被划入此类。在过程控制系统中,输入来自传感器,传感器将温度等物理 信号转换为电信号,电信号成为能够控制阀门等设备的输出。在一些单机系统中,执行 某项特定任务的时间限制并不十分严格,早几毫秒和晚几毫秒没有太大的关系,换句话 说,响应时间不是至关重要的。 实时嵌入式系统 有些嵌入式系统被要求在指定的时间内完成特定的任务。这样的系统被称为实时嵌 入式系统。例如,当气压超过特定阈值的时候,必须在3 0 毫秒内打开阀门的系统。如果 该任务未能在3 0 毫秒内完成则可能产生严重的后果。这种必须严格符合实时约束条件的 系统被称作“硬实时嵌入式系统”。当必须执行对时间要求很严格的任务时,在过程控 制中也大量使用“硬实时嵌入式系统”。还有很多系统有实时要求,但是对实时的要求 不强,例如语音通信系统,语音包的延迟只会造成短暂的静默,不会有什么严重的后果, 类似的这种系统被成为“软实时嵌入式系统”。 网络设备 有些嵌入式系统与一个网络相连接,该网络通常是基于t c p i p 协议族的,比如 i n t e r n e t 或者一个公司的企业内部互联网。这些系统能够监控某些参数( 比如温度和压 力) 并将数据通过网络传送到中央系统实现在线监控。一个典型的例子就是对制造工厂 的设备进行监控的系统。该系统通过t c p i p 网络将数据传送到中央管理系统,中央管理 系统可以时运行w e b 浏览器的p c 机。另一个例子时具备网络功能的w e b 照相机,它能够 在i n t e r n e t 上传输其视频输出。这些系统又被称为“i n t e r n e t 信息设备”。 移动设备 随着能够支持极高速率的无线网络的出现,移动设备除语音服务外还能支持高速数 据服务。这些设备需要运行功能强大的移动操作系统别从网站下载信息。现场人员可以 3 湖北大学硕士学位论文 使用像手提电脑和掌上电脑这样的设备完成数据采集,所输入的数据保留在本地存储器 中,随后上传到公司的数据库中。这些设备都要求有功能强大的处理器和操作系统以及 较低的功耗。 1 4 嵌入式系统的组成 嵌入式系统是专用计算机应用系统,它具有一般计算机组成的共性,也是由硬件和 软件组成的。 嵌入式系统的硬件是嵌入式系统软件环境运行的基础,它提供嵌入式系统软件运行 的物理平台和通信接口;嵌入式操作系统和嵌入式应用软件则是整个系统的控制核心, 控制整个系统的运行,提供人机交互的信息等。虽然嵌入式系统一般没有系统软件和应 用软件的明显区分,但是一般都把嵌入式系统的软件分为嵌入式操作系统和嵌入式应用 软件两大部分。 嵌入式系统硬州5 l 嵌入式系统的硬件组成部分是以嵌入式处理器为中心,由存储器、i o 设备、通信 模块以及电源等必要的辅助接口组成。嵌入式系统是量身定做的专用计算机应用系统, 它不同于p c 机的组成,在实际应用中的嵌入式系统硬件配置非常精简,除了微控制器和 基本的外围电路以外,其余的电路都可根据需要和成本进行裁减、定制。嵌入式系统硬 件核心是嵌入式微处理器,有时为了提高系统的信息处理能力,常常外接d s p 和d s p 协处 理器( 或者选用内部集成t d s p 模块的微处理器) ,以完成高性能信号处理:随着计算 机技术、微电子技术、应用技术的不断发展及纳米芯片加工工艺技术的发展,以微处理 器为核心的集成多种功能的s o c 系统芯片已经成为嵌入式系统的核心。这些s o c 集成了大 量的外围u s b 、u a r t 、以太网、a d d a 、i i c 等功能模块,能很好的满足各种系统的需要。 以s o c 为核心,用最少的外围部件和连接部件构成一个应用系统,满足系统的功能需求 是嵌入式系统发展的一个方向。 嵌入式系统软件【6 1 在设计一个简单的应用程序时,可以不使用操作系统,但是在设计比较复杂的程序 时,可能就需要一个操作系统来管理和控制内存、多任务、周边资源等。依据系统所提 供的程序界面来编写应用程序,可以大大减少应用程序员的负担。对于使用操作系统的 嵌入式系统来说,嵌入式系统软件结构一般包含4 个层面:设备驱动层、实时操作系统、 应用程序接a p i 层、实际应用程序层。对于功能简单,仅仅包括应用程序的嵌入式系 4 第一章引言 统,一般不使用操作系统,仅有应用程序和设备驱动程序。驱动程序是嵌入式系统中不 可或缺的重要部分,使用任何外部设备都需要有相应的驱动程序的支持,它为上层软件 提供了设备的操作接口。上层软件不用理会设备的具体内部操作,只需要调用驱动层程 序提供的接口即可。驱动层程序一般包括硬件抽象层 i a l 、板级支持包b s p 和设备驱动程 序。硬件抽象层眦l 是位于操作系统内核与硬件电路之间的接口层,其目的在于将硬件 抽象化。也就是说,可以通过程序来控制所有硬件电路如c p u 、i o 、m e m o r y 等的操作。 从软硬件测试的角度来看,软硬件的测试工作都可分别基于硬件抽象层来完成,使得软 硬件测试工作的并行成为可能。板级支持包b s p 是介于主板硬件和操作系统中的驱动层 程序之间的一层,一般认为它属于操作系统的一部分,主要是实现对操作系统的支持, 为上层的驱动程序提供访问硬件设备寄存器的函数包,使之能够更好地运行于硬件主 板。b s p 是相对于操作系统而言的,不同的操作系统对应于不同定义形式的b s p 。系统中 安装设备后,只有在安装响应的设备驱动程序之后才能使用,驱动程序为上层软件提供 设备的操作接口。上层软件只需要调用驱动程序提供的接口,而不用理会设备的具体内 部操作。驱动程序的好坏直接影响着系统的性能。驱动程序不仅要实现设备的基本功能 函数,如初始化、中断响应、发送、接收等,使设备的基本功能能够实现,而且因为设 备在使用过程中还会出现各种各样的差错,所以好的驱动程序还有完备的错误处理函 数。 如果嵌入式系统的功能比较复杂,需要网络功能、存储器管理、进程线程管理等, 则通过嵌入式操作系统的帮助可以加快嵌入式系统软件的开发进度和可靠性。简单地说 嵌入式操作系统就是支持嵌入式系统工作的操作系统。它在本质上和通用操作系统没有 太大的区别,它一般用于比较复杂的嵌入式系统中。对于使用操作系统的嵌入式系统而 言,操作系统一般以内核映像的形式下载到目标系统中,以嵌入式l i n u x 为例,在系统 开发完成之后,将整个操作系统部分做成内核映像文件,与文件系统一起传送到目标系 统中;然后通过b o o t l o a d e r 指定地址运行l i n u x 内核,启动已经下载好的l i n u x 系统;再 通过操作系统解开文件系统,运行应用程序,整个嵌入式系统与通用操作系统类似,功 能比不带有操作系统的嵌入式系统强大了很多。嵌入式系统一般具有实时特点,所谓实 时系统是指在这种系统中,一个优先等级高的任务能够获得立即的、没有延迟的服务, 而且在它得到c p u 使用权后,它可以一直执行到工作结束或是有更高等级的进程出现为 止。实际的嵌入式系统应用软件建立在系统的主任务基础之上。用户应用程序主要通过 调用系统的a p i 函数对系统进行操作,以完成应用程序的开发。 5 湖北大学硕士学位论文 1 5 本论文主要做的工作 本课题选择了a r m 平台下l i n u x 的移植和驱动程序的编写作为研究对象。研究l i n u x 驱动程序编写过程中用到的主要接口函数以及一些重要的数据结构,通过这些研究再结 合具体的实验开发板编写相关外设的驱动程序。 主要解决的问题: 研究开发板的系统构成、a r m 芯片的寄存器以及中断,构建交叉编译工具链。 用交叉编译的方法产生运行于a r m 平台的l i n u x 内核,并设置文件系统和 b o o t l o a d e r 程序。 研究字符设备、块设备、网络设备驱动程序的编写方法,为开发板上的设备编写驱 动程序,并总结各类设备驱动程序的一般编写方法。 6 第二章软件和硬件环境 第二章软件和硬件环境 2 1 嵌入式处理器选择 与p c $ , i 造者不一样,嵌入式系统的工程师不得不自己设计自己的系统。与全球p c 市 场不同,没有一种微处理器和微处理器公司可以主导嵌入式系统,仅以3 2 位的c p u 而言, 就有1 0 0 种以上嵌入式微处理器。那么,在设计手持电话、传真机、机器人、打印机和 网络路由器等应用产品时,应如何选择嵌入式微处理器呢? 仅有一种答案,那就是选择 是多样化的。因为嵌入式系统设计的差异性极大,这就是有1 0 0 种微处理器存在的原斟7 l 。 在某种情况下,性能极为重要,而在另一种情况下,低功耗又成为最关键的因素。另外, 一些设计者会考虑支持软件、代码的大小以及多种渠道的资源和过去的经验。m o t o r o l a 、 i n t e l 的c p u 一直很出色;a r m 、m i p s 等公司,只设计而不生产c p u ,他们把生产权授予世 界各地的半导体制造商;还有一些半导体厂商生产的c p u 不单纯以传统的封装形式出售, 而是以一种软件模型库方式向用户供应a s i c 设计。 如今几乎每一个美国家庭都拥有几个到几十个嵌入式产品。m o t o r o l a 传统的6 8 k 结 构仍是3 2 位c p u 的主流之一,m i p s 公司的授权制造商也较多。a r m 公司则是近年来在嵌入 式系统领域影响力与日俱增的微处理器设计商,a r m 的设计非常适合于小的电源供电系 统。嵌入式微处理器最大并且增长最快的市场是手持设备、电子记事本、p i ) a 、手机、 g p s 导航器等消费类电子产品,这些产品中选购的微处理器除了要有很高的性能外,还 要有极低的功率消耗。许多c p u 生产厂家已经进入了这个领域。今天,用户可以买到一 颗嵌入式的微处理器,其速度像笔记本中的p e n t i u m 一样快,而它仅使用普通电池供电, 并且价格不足5 0 美元。如s t r o n ga r m ,在一个极小的2 0 0 m h z 主频封装中集成了彩色l e d 控制器、p c m c i a 接口、触屏接口等6 个接口( 含u s b 、i r d a ) ,而批量的价格也在4 0 美元以 内。 对于嵌入式系统的设计者,更多更好的嵌入式微处理器将不断出现。综合考虑系统 的性能、功耗、价格、供货保证、开发工具的配备以及工程师过去对这种处理器的经验 和软件的支持等因素,决定用户使用哪一种处理器。嵌入式处理器的选择不是一成不变 的,伴随着技术的发展,速度快、价格低、功能强的嵌入式处理器一定是你下一个项目 的选择。 7 湖北大学硕士学位论文 2 2a r m 处理器简介 a r m ( a d v a n c e dr i s cm a c h i n e s ) ,既可以认为是一个公司的名字,也可以认为是 对一类微处理器的通称,还可以认为是一种技术的名字。 1 9 9 1 年a r m 公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用a r m 技术知识产权( i p ) 核的微处理器,即我们通常所说的a r m 微处理器,已遍及工业控制、 消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于a r m 技术的微 处理器应用约占据了3 2 位r i s e 微处理器7 5 以上的市场份额,a r m 技术正在逐步渗入 到我们生活的各个方面 8 1 。 a r m 公司是专门从事基于r i s c 技术芯片设计开发的公司,作为知识产权供应商,本 身不直接从事芯片生产,靠转让设计许可由合作公司生产各具特色的芯片,世界各大半 导体生产商从a r m 公司购买a r m 微处理器核,根据各自不同的应用领域,加入适当的外 围电路,从而形成自己的a r m 微处理器芯片进入市场。全世界有几十家大的半导体公司 都使用a r m 公司的授权,因此既使得a r m 技术获得更多的第三方工具、制造、软件的支 持,又使整个系统成本降低,使产品更容易进入市场被消费者所接受,更具有竞争力。 基于a r m 核的处理器包括以下几类:a r m 7t h u m b 家族、a r m 9t h u m b 家族、a r m 9 e 家 族、a r m i o e 家族、a r m1 1 家族、s e c u r c o r e 家族和i n t e l 的x s c a l e s t r o n g a r m 。 2 2 1a r m 处理器模式 虽然各个半导体生产商的a r m 处理器功能和外设不同,但他们的内核可能相同。因 此分析a r m 处理器内核的工作模式和寄存器就显得非常重要了。 a r m 微处理器支持7 种运行模式,分别为【9 l : 用户模式( u s r ) :a r m 处理器正常的程序执行状态 快速中断模式( f i q ) :用于高速数据传输或通道处理 外部中断模式( i r q ) : 用于通用的中断处理 管理模式( s v c ) :操作系统使用的保护模式 数据访问终止模式( a b t ) :当数据或指令预取终止时进入该模式,可用于虚拟存储 及存储保护。 系统模式( s y s ) ;运行具有特权的操作系统任务。 8 第二章软件和硬件环境 未定义指令中止模式( u n d ) :当未定义的指令执行时进入该模式,可用于支持硬件 协处理器的软件仿真。 a r m 微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。 大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系 统资源是不能被访问的。除用户模式以外,其余的所有6 种模式称之为非用户模式,或 特权模式( p r i v i l e g e dm o d e s ) ;其中除去用户模式和系统模式以外的5 种又称为异 常模式( e x c e p t i o nm o d e s ) ,常用于处理中断或异常,以及需要访问受保护的系统资 源等情况。 2 2 2 寄存器组织 a r m 共有3 7 个3 2 位的寄存器,其中3 1 个是通用寄存器,6 个是状态寄存器【l o l 。但 在同一时间,对程序员来说并不是所有的寄存器都可见。在某一时刻存储器是否可见( 可 被访问) ,是由处理器当前的工作状态和工作模式决定的。 不分组寄存器( r o - r 7 ) 不分组也就是说,在所有的处理器模式下指的都时同一物理寄存器。在异常中断造 成处理器模式切换时,由于不同的处理器模式使用一个名字相同的物理寄存器,就是使 用的同一个寄存器,这样可能造成寄存器中数据被破坏,所以在进行模式切换时必须加 以保护。 备份寄存器( r 8 - r 1 4 ) 对于r 8 一r 1 2 来说,除在快速中断模式下,每个模式对应相同物理寄存器,所以在 f i q 模式下可不必保护和恢复中断现场。对于r 1 3 一r 1 4 来说,每个寄存器对应6 个不同 的物理寄存器,其中一个是用户模式和系统模式共用的。寄存器r 1 3 常用做栈指针s p , 除用户和系统模式外,其他模式在使用时的名字构成为r 1 3 一 。寄存器r 1 4 又被称 为连接寄存器( l r ) ,除用户和系统模式外,其他模式在使用时的名字构成为r 1 4 _ 。 每个处理器模式自己的物理r 1 4 中存放在当前子程序的返回地址。当通过b l 或b l x 指令调用子程序时,r 1 4 被设置成该子程序的返回地址。当异常中断发生时,该异常模 式下的r 1 4 被设置成保存该模式基于p c 的返回地址,对于有些异常模式,r 1 4 的值有可 能与将返回的地址有个常数的偏移量,不同模式偏移量还有所不同。 程序计数器r 1 5 对于用户来说,尽量避免使用s t r s t m 指令来保存r 1 5 的值。当成功向r 1 5 写入一 o 湖北大学硕士学位论文 个地址数值时,程序将跳转到该地址执行。在a r m 状态下指令总是字对齐的,所以p c 的p c i l :o 位恒为零,在想p c 写入地址时一定要注意将p c i l :0 设为零【1 1 】。 程序状态寄存器 c p s r ( 当前程序状态寄存器) 可以在任何处理器模式下被访问。同时除了用户和系统 模式以外,每种处理器模式下都有一个专用的物理状态寄存器,称为s p s r ( 备份程序状 态寄存器) 。当特定的异常中断发生时,这个寄存器用于存放当前程序状态寄存器的内 容。当在用户模式和系统模式中访问s p s r ,将会产生不可预知的结果。 2 2 3u p - n e t a r m 2 4 10 开发板简介 u p - n e t a r m 2 4 1 0 是一款由北京博创兴业科技有限公司开发的实验平台,c p u 为 s a m s u n g 公司的专为手持设备应用推出的$ 3 c 2 4 1 0 a 。$ 3 c 2 4 1 0 a 采用了1 6 3 2 位的a r m 9 2 0 t r i s c 处理器。0 1 8 u m 工艺的c m o s 标准宏单元和存储器单元。它的低功耗、精简和出色 的全静态设计特别适用于对成本和功耗敏感的应用。它还采用一种叫做a m b a ( a d v a n c e d m i c r o c o n t r 0 1 1 e rb u sa r c h i t e c t u r e ) 的总线结构。 这款c p u 提供了以下丰富的内设和外设的接口:分开的1 6 k b 的指令c a c h e 和1 6 k b 的数据c a c h e ,删虚拟存储器管理,l c d 控制器,支持n a n df l a s h 系统引导,系统管 理器( 片选逻辑和s d r a i l 控制器) ,3 通道u a r t ,4 通道d m a ,4 通道p ) d d 定时器,i o 端口,r t c ,8 通道1 0 位a d c 和触摸屏接口,i i c b u s 接口,i i s - - b u s 接口,u s b 主机 和从设备,s d 主卡& m m c 卡接1 3 ,2 通道的s p i 以及内部p l l 时钟倍频器【“。 2 3 建立a 刚一l i n u x 软件平台 l i n u x 是一个类u n i x 操作系统。它起源于芬兰一个名为l i n u st o r v a l d s 的业余爱 好,但是现在已经是最为流行的一款开放源代码的操作系统。l i n u x 从1 9 9 1 年问世到现 在,短短十几年的时间内已发展成为一个功能强大、设计完善的操作系统,伴随网络技 术进步而发展起来的l i n u xo s 已成为m i c r o s o f t 公司的强劲对手。l i n u x 系统不仅能够 运行于p c 平台,还在嵌入式系统方面大放光芒。据统计,目前正在开发的嵌入式系统 中,有3 9 的项目选择l i n u x 作为嵌入式操作系统。l i n u x 现已成为嵌入式操作的理想 选择。 嵌入式l i n u xo s 的特点【1 3 1 : 精简的内核,性能高、稳定,多任务。 1 0 第二章软件和硬件环境 适用于不同的c p u ,支持多种体系结构,如x 8 6 、a r m 、m i p s 、p o w e r p c 等。 常用嵌入式芯片的驱动集,支持大量的周边硬件设备,驱动丰富。 针对嵌入式处理器的存储方案,提供不同版本和完善的嵌入式解决方案。 开放源码,丰富的软件资源,广泛的软件开发者的支持,价格低廉,结构灵活,适 用面广。 嵌入式l i n u xo s 与m i c r o s o f t 公司的w i n d o w sc e 相比的优点: l i n u x 是开放源代码的,不在存黑箱技术,遍布全球的众多l i n u x 爱好者都是l i n u x 开发者的强大技术支持者;而w i n d o w sc e 是非开放性o s ,侵第三方很难实现产品定 制。 l i n u x 的源代码随处可得,注释丰富,文档齐全,易于解决各种问题。 l i n u x 的内核小、效率高;而w i n d o w sc e 在这方面是笨拙的,占用过多的r a m ,应 用程序庞大。 l i n u x 是开放源代码的0 s ,在价格上极具竞争力,适合中国国情。w i n d o w sc e 的版 权费用是厂家不得不考虑的因素。 l i n u x 不仅支持x 8 6 芯片,还是一个跨平台的系统。到目前为止,它可以支持2 0 3 0 种c p u ,很多c p u ( 包括家电业的芯片) 厂商都开始做l i n u x 的平台移植工作。如 果今天采用l i n u x 环境开发产品,那么将来更换c p u 时就不会遇到更换平台的困扰。 l i n u x 内核的结构在网络方面是非常完整的,它提供了对包括十兆位、百兆位及千兆 位的以太网络,还有无线网络、t o k e nr i n g ( 令牌环) 和光纤的支持。 l i n u x 在内核结构的设计中考虑适应系统的可裁减性的要求,w i n d o w sc e 在内核结 构的设计中并未考虑适应系统的高度可裁减性的要求。 2 3 。1 建立交叉编译环境 交叉编译是嵌入式开发过程中的一项重要技术,它的主要特征是某机器中执行的程 序代码不是在本机编译生成,而是由另一台机器编译生成,一般把前者称为目标机,后 者称为主机。采用交叉编译的主要原因在于,多数嵌入式目标系统不能提供足够的资源 供编译过程使用,因而只好将编译工程转移到高性能的主机中进行【1 4 1 。在几年前,成功 的编译一套交叉编译链是一件很令人兴奋的事情,不过现在通过互连网可以轻而易举的 下载做好的工具链,因此许多人认为在这项工作上浪费时间似乎没有任何意义。尽管如 湖北大学硕士学位论文 此,通过自己制作交叉编译器,可以深刻理解g n u 的一些工具的使用。下面就介绍一下 如何手动建立交叉编译环境,按照以下的方法可以成功编译l i n u x 内核【1 5 】。 首先到f t p :f t p g n u o r g 下载以下的软件包:b i n u t i l s 一2 1 6 t a r b z 2 、g c c 一 3 4 4 t a r b z 2 、g l i b c 2 3 3 t a r b z 2 、g l i b c l i n u x t h r e a d s 一2 3 3 t a r b z 2 、g d b 一 6 4 t a r b z 2 、1 i n u x 一2 6 1 6 1 t a r b z 2 。 以r o o t 身份登陆l i n u x 后设置工作路径: u s r s r c t a r s s o u r c e d i r u s r s r c t a r s b u il d o i r u s r s r c a r m o o l s # c du s r s r c # m k d i r pu s r s r c t a r s s o u r c e d i r # m k d i ru s r s r c t a r s b u ii d d i r # m k d i ru s r l o c a l a r m t o o l s t a r s在这里放置下载来的所有源文件 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 交叉编译环境的安装在这里 为了方便编译,定义以下的环境变量: e x p o r tt d i r = u s r s r c t a r s e x p o r ts d i r = u s r s r c t a r s s o u r c e d i r e x p o r tb d i r = u s r s r c t a r s b u il d d i r e x p o r tp r e f i x = u s r l o c a l a r m t o o l s 以下就是正式编译了: ( 1 ) 编译b i n u t i l s 。首先要安装的软件包是b i n u t i l s 。这非常重要,因为g l i b c 和g c c 会针对可用的连接器和汇编器进行多种测试,以决定打开某些特性。 解压软件包: # c ds s d i r # t a rx v f j $ t d i r b i n u t i l s 一2 1 6 t a r b z 2 # c d $ b d i r b i n u t i l s 配置、编译和安装b i n u t i l s : 1 2 第二章软件和硬件环境 $ s d i r b i n u t i l s 一2 1 6 c o n f i g u r e 一一h o s t = j 6 8 6 一p c l i n u x g n u - - t a r g e t = a r m - - p r e f i x = $ p r e f i x 一w i t h l i b p a t h = $ p r e f i x a r m l i b :$ p r e f i x a 瑚1 i b b e : s p r e f i x a r m l i b b e s o f t f l o a t m a k e m a k ei n s t a l l c h m o d7 7 7s p r e f i x a m 第一步交叉编译下来的结果应该包括以下内容: a r m t o o l s 目录下有b i n 和l i b 两个子目录。其中b i n 目录下存放生成的二进制工 具,这些文件是用于e l f 执行格式的。l i b 目录下存放了l i b i b e r t y a 库文件,里面存 放了一些脚本。 ( 2 ) 编译b o o t s t r a p _ g c c 开始这个过程之前,先要弄清楚这样一个事实:创建交叉编译版本的g c c ,需要交 叉编译版本的g l i b 及其头文件,而交叉编译版本的g l i b e 是通过交叉编译版本的g c c 创建的。面对这个先有蛋还是先有鸡的问题,解决办法是先只编译对c 语言的支持,并 禁止支持线程。称这个阶段中编译生成的g e e 为b o o t s t r a p _ g c c ,它的作用就是用来编译 g l i b c 。编译g c c 之前需要进行修改,首先修改g e c 源代码中的g c c c o n f i g a r m t - l i n u x 文件,修改后的文件见下面的代码。其中代码中加黑加粗的为原文件内容。 术书牡懈宰宰拳宰幸宰拳术书术木料牛料木术丰木宰术宰宰半料料料料术术掌木木料木料木乖幸宰木乖木料木料木料和i 奉粕木 # j u s tf o rt h e s e ,w eo m i tt h ef r a m ep o i n t e rs i n c ei tm a k e ss u c hab i g # d i f f e r e n c e i ti st h e np o i n t l e s sa d d i n gd e b u g g i n g t a r g e tl i b g c c 2c f l a g s = 一f o m i t - f r a m e - p o i n t e r f p i c d i n h i b i t i b 一d _ _ g t h r _ p o six lm e c c 2 _ d e b u g _ c f l a g s = - g o # d o n t tb u i l de n q u i r e e n q u i r e = l i b l a s n s r c = a r m i b l f u n c s a 鲫 l i b a s m f u n 啦u d i v 8 i 3 - d i v 8 i 3 _ u m o d s i 3r o o d s i 3 _ d v m d _ l n x 、 b b i n i t r u n e c a l l v i a r x i n t e r w o r kc a l lc a l lv i ar x | n e g d f 2 _ a d d u b d f 3m a l d i v d f 3 c m p d f 2 u n o r d d f 2 f i x d f s i f i x u n s d f s i 一t r u n c d f s f 2 _ n e g s f 2 _ a d d s u b s f 3 _ m u l d i v s f 3 c m p s f 2 _ u n o r d s f 2 | 1 3 湖北大学硕士学位论文 f i x f s i f i x u n s s f s i 撑肌j l t l l l 8o p t i o n s5 出a r d f i o a t m s o f t - f i o a t # m u l t i l i b _ d i r n a m e s = h a r d f i o a ts o f t f i o a t # e x t r a _ b u l t il l 时a r t s2o r t b e gin 0c r t e n d 0 k i u l t i l i b _ o p t i o n s = m l i t t l e e n d i a n m b i g e n d i a n m h a r d f l o a t m s o f t - f l o a t m u l t i l i b _ d i r n a u e s = l eb eh a r d f l o a ts o f t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农村小区公共设施建设与维护合同
- 时间倒计时课件
- 售后服务维修合同书
- 产品设计开发与产品化工具集合
- 时刻和时间课件
- 销售合同标准化模板及要点解读
- 商务谈判策略及方案参考
- 早期殖民扩张
- 草原放牧:自然美景与人文关怀教案
- 早教自行车课件
- 培训辅警纪律课件
- 医院总务科制度职责体系
- 2025年河北单招七类考试题库
- 2025年健身教练专业知识测评考核试卷及答案
- 2025年黑龙江省事业单位招聘考试教师化学学科专业试卷
- 2025四川成都农商银行招聘综合柜员岗4人模拟试卷带答案详解
- 2025年辅警考试公共基础知识真题库(含答案)
- 2022版《义务教育数学课程标准》测试卷(完整版含答案)
- 2025行政执法人员考试题库含答案
- 联通校招测评题库及答案
- 儿科护理进修
评论
0/150
提交评论