(控制理论与控制工程专业论文)基于linux的嵌入式操作系统设备驱动程序的设计与实现.pdf_第1页
(控制理论与控制工程专业论文)基于linux的嵌入式操作系统设备驱动程序的设计与实现.pdf_第2页
(控制理论与控制工程专业论文)基于linux的嵌入式操作系统设备驱动程序的设计与实现.pdf_第3页
(控制理论与控制工程专业论文)基于linux的嵌入式操作系统设备驱动程序的设计与实现.pdf_第4页
(控制理论与控制工程专业论文)基于linux的嵌入式操作系统设备驱动程序的设计与实现.pdf_第5页
已阅读5页,还剩81页未读 继续免费阅读

(控制理论与控制工程专业论文)基于linux的嵌入式操作系统设备驱动程序的设计与实现.pdf.pdf 免费下载

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

文档简介

摘要 基于l i n u x 的嵌入式操作系统设备驱动程序的设计与实现 摘要 l i n u x 由于其具有内核强大且稳定,易于扩展和裁减,效率高,丰富 的硬件支持等许多优点,在嵌入式系统中得到广泛的应用。 设备驱动程序即添加到操作系统中的一小块代码,其中包含有关硬件 设备的信息。有了此信息,计算机就可以与设备进行通信。驱动程序是硬 件厂商根据操作系统编写的配置文件,可以说没有驱动程序,计算机中的 硬件就无法工作。驱动程序扮演沟通的角色,把硬件的功能告诉电脑系统, 并且也将系统的指令传达给硬件,让它开始工作。 本文基于实验室的软硬件环境和研究成果,引出开发驱动程序的必要 性和紧迫性,同时针对数据采集编写网络驱动程序,配合了实际数据采集 系统的需求。主要工作如下: 1 、针对当前形势,提出了升级s 3 c 2 4 1 0 开发板系统软件的必要性, 并针对构建嵌入式“n u x 系统的三大软件( b o o t l o a d e r 、k e m e i 、f i l e s y s t e m ) 进行了相应的升级选择: ( 1 ) b o o t l o a d e r 用u b o o t 替代v i v i ( 2 ) 用2 6 k e m e l 替代2 4 k e r n e l ( 3 ) f i l e s y s t e m 用b u s y b o x 替代u c l i n u x 2 、在搭建新的嵌入式“n u x 系统中,分别介绍了u b o o t 、2 6 k e m e l 、 b u s y b o x 的具体移植过程并就常见移植过程中的产生问题进行了分析和 解答。 3 、l i n u x 下驱动程序与内核是紧密相关的,所以首先阐述了作者对 l i n u x 内核网络栈的理解。在此基础上,引出了“n u x 内核驱动程序的本 北京化t 大学顸+ = 学位论文 质,详细说明了l i n u x 网络驱动程序的实现过程并把c s 8 9 0 0 a 驱动程序 移植到s 3 c 2 4 1 0 开发板上。 4 、编写应用程序测试用例,针对网络驱动程序进行了接受、发送、 长数据传输、持续性传输等测试,验证网卡驱动程序的各项特性。 嵌入式l i n u x 驱动程序是一个很有前景,富有挑战性的课题,还有许 多后续的研究工作要做。 关键词:驱动程序,l i n u x ,c s 8 9 0 0 a ,嵌入式 摘要 d e s i g na n dr e a l i z ed e v i c ed r r i v eo f e m b e d d e dl i n u xs y s t e m a b s t r a c t l i n u xb e c o m ep o p u l a ru s e di ne m b e d d e ds y s t e mb e c a u s eo fi t sk e r n e l h a sm a n ya d v a n t a g e ss u c ha sp o w e r f u la n ds t a b l e 、 e a s yt oe x t e n da n dr e d u c e 、 h i g he f f i c i e n c ya n dm a n yh a r d w a r es u p p o r t d e v i c ed r i v e ri sas e c t i o nc o d eo fo p e r a t i o n s y s t e m i ti n c l u d e s i n f o r m a t i o no fh a r d w a r ed e v i c ea n du s e st h i si n f o r m a t i o n ,c o m p u t e rc a n c o m m u n i c a t ew i t ht h i s d e v i c e b a s i so n o p e r a t i n gs y s t e m , d r i v e ri sa c o n f i g u r a t i o nf i l ew r i t e db yh a r d w a r em a n u f a c t u r e r s ow ec a ns a yi ft h e r ei s n o d r i v e r , h a r d w a r ec a nn o tw o r k p r o p e r l y d r i v e r p l a y s ar o l ei n c o m m u n i c a t i o n , t e l lh a r d w a r ef u n c t i o nt oc o m p u t e rs y s t e ma n dt r a n s m i t s y s t e mi n s t m c t i o nt oh a r d w a r e t h i sp a p e rs u m m a r i z e ss o f t w a r ea n dh a r d w a r ee n v i r o n m e n ta n dr e s e a r c h a c h i e v e m e n t si nl a bf i r s t l y t h e ni td r a w so u tt h en e c e s s i t ya n du r g e n c yo f d e v e l o pd e v i c ed r i v e r f o rt h en e c e s s i t yo fd a t ac o l l e c ts y s t e m ,w ew r i t et h e n e t w o r kd r i v e r m a j o rj o b sa sf o l l o w s : 1 、b r i n gu pt h en e c e s s i t yo fu p g r a d et h es 3 c 2 4 1 0 ss o f t w a r eb a s i sr e c e n t d e v e l o p m e n t a n dc h o o s ew h a ts o f t w a i e u p g r a d e t oo ft h e t h r e e s o f t w a r e ( b o o t l o a d e r 、 k e r n e l 、 f i l e s y s t e m ) t h a tb u i l d i n ge m b e d d e dl i n u x l i i 北京化- t 人学硕十学位论文 s y s t e m : 1 ) u s e u b o o tt or e p l a c ev i v io nb o o t l o a d e r 2 ) u s e 2 6k e m e l t or e p l a c e2 4k b r n e l 3 ) u s eb u s y b o xt or e p l a c eu c l i n u xo nf i l e s y s t e m 2 、i nb u i l d i n gn e we m b e d d e dl i n u xs y s t e m ,i te l a b o r a t e st h es p e c i f i c p o r t i n gs t e p so fu b o o t 、 2 6 k e r n e l 、 b u s y b o xa n da n a l y z e st h ep r o b l e m sw e o f t e ns e e ni nt h ep r o c e s s 3 、l i n u xd r i v e rh a s g r e a tr e l a t i o n w i t hk e r n e l ,s o f i r s t l y i t e x p l a i n s u n d e r s t a n d i n go fl i n u xk e r n e ln e t w o r ks t a c k t h e ni td r a w so u tt h ee s s e n c eo f l i n u xk e r n e ld r i v e r 、e l a b o r a t e st h er e a l i z a t i o np r o c e s so fl i n u xn e t w o r k d r i v e ra n dp o r t st h ec s 8 9 0 0 ad r i v e rt os 3 c 2 4 1 0b o a r d 4 、w r i t es o m et e s tp r o g r a mf b rc s 8 9 0 0 ad r i v e rt ot e s ta c c e p t i o n 、s e n d i n g 、 l o n gl e n g t hd a t at r a n s p o r t a t i o n 、p e r s i s t a n c et r a n s p o r t a t i o na n de t c e m b e d d e dl i n u xd r i v e ri sap e r s p e c t i v e 、 c h a l l e n g i n gr e s e a r c ha n dw e h a v em a n yw o r kt od o k e yw o r d s : d r i v e r ,l i n u x ,c s 8 9 0 0 a ,e m b e d d e d i v 北京化工大学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立 进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文不含 任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重 要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声 明的法律结果由本人承担。 p 作者签名:凌丝 日期: 沙驴 关于论文使用授权的说明 学位论文作者完全了解北京化工大学有关保留和使用学位论文的规 定,即:研究生在校攻读学位期间论文工作的知识产权单位属北京化工大 学。学校有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允 许学位论文被查阅和借阅;学校可以公布学位论文的全部或部分内容,可 以允许采用影印、缩印或其它复制手段保存、汇编学位论文。 保密论文注释:本学位论文属于保密范围,在土年解密后适用本授 权书。非保密 作者签名 导师签名:j 銎2 兰盎 论文不属于保密范围,适用本授权书。 日期: 日期: 渺g 歹、 第一章绪论 1 1 课题来源 第一章绪论 本课题来自于实验室承接的吉化集团公司乙丙橡胶工厂信息化项目。当初实验室 决定用嵌入式l i n u x 的方案替代工控机数据采集卡方案进行数据采集,而在丌发嵌入 式l i n u x 方案时碰到一个难点嵌入式l i n u x 开发板驱动程序的开发。 当有开发板后,必须有配套的驱动程序才能使整个系统运行起来1 1 j 。同时必须储 备驱动程序开发力量,提高自主研发能力,摆脱对厂商的依赖,所以驱动程序开发势 在必行。 整个开发过程包括嵌入式软件系统的选择与搭建、嵌入式系统的移植、嵌入式驱 动程序的丌发和测试三部分。这三个部分互相关联,一环紧扣一环,并把重点放在驱 动程序开发上面。 1 2 相关的技术背景介绍 1 2 1 嵌入式定义 关于嵌入式系统的描述性定义: 以应用为中心,以计算机技术为基础,软硬件可以裁减,对功能、可靠性、成本、 体积、功耗等严格要求的专用计算机系统【2 3 】。嵌入式系统是硬件和软件的集合体,是 为了完成某种特定的功能而设计的。 嵌入式系统是一种应用系统,至少包含一个可编程的处理器,通常是某种形式的 微控制器,微处理器或者数字信号处理芯片( d s p ) ,同时还会带与之应用相关的外围 芯片及必需的输入输出接口【4 1 。 嵌入式系统的最大特点是用户通常只关心其应用,而并不用关心实现其应用的细 节。 1 2 2 嵌入式系统的特点 嵌入式系统是面向用户,面向应用的,如果脱离应用自行发展就会失去市场。嵌 入式处理器在功耗,体积,可靠性,处理能力,成本等方面都受到应用要求的限制p j 。 与通用计算机不同,嵌入式系统的硬件和软件都必须高效地运行,尽量裁减,力争在 同样的硅片面积上实现更高的性能,这样的产品才有竞争力。因此,嵌入式处理器要 针对用户的具体需求,对芯片和外围设备进行裁减和添加才能达到理想的性能。 嵌入式系统总是和具体应用紧密结合起来的,其升级换代也是和集体产品同步。 北京化t 人学硕一l :学位论文 因此,嵌入式系统产品一旦进入市场,就具有较长的生命周期。 出于安全性,成本等方面的考虑,嵌入式系统中的软件一般都是固化在只读存储 器中的,是不能随意更换的。因此,嵌入式系统的应用软件生命周期也和嵌入式产品 一样长。 嵌入式系统所应用的行业很少发生突然性的跳跃。因此,嵌入式系统中的软件也 更强调可继承性和技术的衔接性,发展比较平稳( 6 l 。 嵌入式处理器的发展也体现出相应的稳定性。一个体系结构以及与其相关的歼发 工具、函数库、外围i o 等是一套复杂的知识体系,用户和半导体厂商都不会轻易放 弃。 1 2 3 嵌入式系统软件的特性 嵌入式系统是以应用为中心的i 川,嵌入式系统的应用软件是实现嵌入式系统功能 的关键。 用户对嵌入式系统软件和应用软件的要求和通用计算机有所不同。 ( 1 ) 软件固化存储 基于系统可靠性和成本的考虑,嵌入式系统中的操作系统和应用软件一般都是固 化在存储芯片中【8 j ,而不像通用计算机一样存储在硬盘中。硬盘是带有机械结构的器 件就可靠性来说没有存储j 邕= 片高,体积和成本也不是很理想。 ( 2 ) 软件需要高质量,高可靠性 嵌入式系统都是最身定制的系统,无论c p u 运算能力,外围i o 接口,存储空间 大小都相当宝判引。因此,需要在实现系统功能的自订提下尽量优化代码,减小代码的 长度和复杂度,提高代码的执行效率。 ( 3 ) 软件需要具有较强的鲁棒性,并且最好具有一定的自恢复能力 嵌入式系统工作的环境一般都比较恶劣,电磁干扰,灰尘,潮湿,低温高温等都 是非常普遍的【1 0 】。而且一旦运行起来,让用户去现场维护的可能性就比较小。这就要 求系统具有较强的鲁棒性,而且最好具有一定的白恢复能力。 ( 4 ) 系统软件要具有一定的实时性 在多任务系统巾,对执行优先等级不同的任务进行合理的调度是保证每个任务及 时执行的关键1 1 1j 。提高处理器的运算能力是一种可行方法,优化调度以提高实时性是 更合理的解决办法。 1 2 4 三种主流硬件架构介绍 嵌入式领域几乎全部是r i s c 指令集的处理器内核,x 8 6 也占有一小部分份额。如 2 第一章绪论 果不涉及具体的处理芯片,按照体系结构来分,主流的硬件架构a r m ,p p c ,m i p s 三种。 a r m 内核是由英国一家只设计内核的公司提供的,其内核被授权给数百家的半导 体厂商,做成不同的s o c 芯片【1 2 l 。a r mc o r e 在当今最活跃的无线局域网、3 g 、手机 终端、手持设备、有线网络通信设备中广泛应用,其应用形式是集成到专用芯片之中 作为控制器,最大的特点是低功耗。 p o w e r p c是p e 怕m l a n c e o p t i m i z a t i o n w i t he n h a n c e dr i s cp e 渤姗a n c e c o m p u t i n g 的缩写。p o w e r p c 微结构来源于i b m 公司的p o w e r 处理器,p o w e r 是 i b mr i s cs y s t e m 6 0 0 0 高性能工作站的处理器,1 9 9 1 年i b m 、m o t o r o l a 、a p p l e 组成 a i m 联盟,合作开发出基于p o w e r 微结构的p o w e r p c 微处理器系列产品。p o w e r p c 内核被m o t o r o l a 用于嵌入式领域,至今,已经丌成在通信领域用得最广泛的处理器内 核。该内核被摩托罗拉公司设计到s o c 芯片之中形成了一个巨大的嵌入式处理器家 族。中兴通信、华为等在其通信产品中大量采用m o t o r o l a 的p o w e r p c 家族的系列嵌 入式处理器。m p c 8 6 0 和m p c 8 2 6 0 是其最经典的两款p o w e r p c 内核的嵌入式处理器。 m i p s 内核是由美国一家只设计内核的公司提供的,是一种高速,低功耗,全面跨 入6 4 位,多内核集成的处理器。出于历史原因,被广泛用于c i s c o 公司的高端路由 器,b r o a d c o m 公司也在其产品中广泛采用m i p s 内核。值得一提的是,中科院计算 所设计的龙芯处理器( l o o n g s o n ) 也是基于m i p s 内核的,m i p s 处理器的执行效率相当 高,通常在很低的主频下都能提供可观的运算性能1 1 2 5 主流嵌入式l i n u x 操作系统介绍 r t “n u x 是由美国墨西哥理工学院开发的嵌入式l i n u x 操作系统。到目前为止, r l i n u x 已经成功地应用于航天飞机的空间数据采集、科学仪器测控和电影特技图像 处理等“泛领域。i m l i n u x 开发者并没有针对实时操作系统的特性而重写l i n u x 的内 核,凶为这样做的工作量非常大,而且要保证兼容性也非常困难。为此,r t - l i n u x 架 空了l i n u x 核心,并把标准的l i n u x 核心作为实时核心的一个进程,同用户的实时进 程起渊度。这样对“n u x 内核的改动非常小,并且充分利用了l i n u x 下现有的丰富 的软件资源。 u c l i n u x 是l i n e o 公司的主打产品,同时也是开放源码的嵌入式l i n u x 的典范之作。 u c l i n u x 主要是针对目标处理器没有存储管理单元m m u ( m e m o r ym a n a g e m e n tu n i t ) 的嵌入式系统而设计的。u c l i n u x 已经被成功地移植到了很多平台上。由于没有m m u , 其多任务的实现需要一定技巧。u c l i n u x 是一种优秀的嵌入式l i n u x 版本,是 m i c r o c 0 n r 0 1 l j n u x 的缩写。它秉承了标准l i n u x 的优良特性,经过各方面的小型化改 造,形成了一个高度优化的、代码紧凑的嵌入式l i n u x 。虽然它的体积很小,却仍然 3 北京化t 大学硕i :学位论文 保留了l i n u x 的大多数的优点:稳定、良好的移植性、优秀的网络功能、对各种文件 系统完备的支持和标准丰富的a p i 。u c l i n u x 专为嵌入式系统做了许多小型化的工作, 目前已支持多款c p u 。其编译后目标文件可控制在几百l 数量级,并已经被成功地 移植到很多平台上。由于2 6 的k e m e l 对目前常见的开发板提供了原生的支持,而且 没有m m u 的嵌入式系统也越来越少,u c l i n u x 采用率有所降低。 e m b e d i x 是由嵌入式l i n u x 行业主要厂商之一l u n e o 推出的,是根据嵌入式应用 系统的特点重新设计的“n u x 发行版本。e m b e d i x 提供了超过2 5 种的l i n u x 系统服务, 包括w 曲服务器等。系统需要最小8 m b 内存,3 m br o m 或快速闪存。e m b e d i x 基 于l i n u x2 2 内核,并已经成功地移植到了i n t e lx 8 6 和p o w e r p c 处理器系列上。像其 他的l i n u x 版本一样,e m b e d i x 可以免费获得。l u n e o 还发布了另一个重要的软件产 品,它可以让在w i n d o w sc e 上运行的程序能够在e m b e d i x 上运行。l u n e o 还将计划 推出e m b e d i x 的开发调试工具包、基于图形界面的浏览器等。可以说,e m b e d i x 是一 种完整的嵌入式l i n u x 解决方案。 x l i n u x 是由美国网虎公司推出,主要丌发者是陈盈豪。他在加盟网虎几个月后便 丌发出了基于x l i n u x 的、号称是世界上最小的嵌入式l i n u x 系统,内核只有1 4 3 k b , 而且还在不断减小。x “n u x 核心采用了“超字元集”专利技术,让l i n u x 核心不仅可能 与标准字符集相容,还含盖了1 2 个国家和地区的字符集。因此,x l i n u x 在推广l i n u x 的国际应用方面有独特的优势。 p o k e t l j n u x 由a g e n d a 公司采用、作为其新产品“v r 3p d a ”的嵌入式l i n u x 操作系 统。它可以提供跨操作系统构造统一的、标准化的和开放的信息通信基础结构,在此 结构上实现端到端方案的完整平台。p o k e t l i n u x 资源框架开放,使普通的软件结构 可以为所有用户提供一致的服务。p o k e t l i n u x 平台使用户的视线从设备、平台和网络 上移开,由此引发了信息技术新时代的产生。在p o k e t l i n u x 中,称之为用户化信息交 换( c i e ) ,也就是提供和访问为每个用户需求而定制的“主题”信息的能力,而不管f 在使用的设备是什么。 m o n t a v i s t a 软件公司以其专业的嵌入式系统和嵌入式l i n u x 经验,为全球嵌入式 系统市场提供歼放源代码的软件解决方案。m o n t a s t al i n u x 支持8 大c p u 系列和1 0 0 种以上硬件板子及2 5 0 种以上l i n u x 应用。m o n t a v i s t al i n u x 技术领先实时性,电源 管理,高可靠性和稳定性。应用领域已经覆盖:网络基础设备、无线移动设备、通信 基础设备、网络家电、互连网设备、仪器、控制和智能手机。在全球有超过2 0 0 0 家 用户,其中有许多是世界5 0 0 强企业。 4 第二章嵌入式l i n u x 设备驱动程序现状及问题0 i : 第二章嵌入式lin u x 设备驱动程序现状及问题引出 2 1 嵌入式l i n u x 设备驱动程序发展现状 l i n u x 设备驱动程序在l i n u x 的内核源代码中占有很大比例,源代码的长度只益增 加,主要是驱动程序的增加。操作系统是通过各种驱动程序来驾驭硬件设备,为用户 屏蔽了各种各样的设备,驱动硬件是操作系统最基本的功能。 “n u x 由于其开放性和可移植性在嵌入式领域占有重要的地位。而驱动程序开发 也借助于l i n u x 的这两个特性发展得红红火火。除非非常特殊的硬件,一般可以通过 移植通用驱动程序,进行适当地修改和调试就可以满足硬件需求【1 3 l 。 l i n u x 下的驱动程序在开源爱好者和各界人士的支持下已经有了很好的积累,但 当今社会硬件更替速度之快让人目不暇接,很多厂商只提供w i n d o w s 下的驱动,而 l i n u x 下的驱动总是要慢一步,或者根本不提供。这有赖于大家的共同努力,还有很 长的一段路要走。希望开源事业越走越远,越走越好1 2 2 实验室提供的嵌入式开发软硬件环境及研究成果 为解决数据采集嵌入式l i n u x 方案的研发,实验室购买了一块s 3 c 2 4 l o 开发板进 行研究,其硬件舰格主要如下【1 4 】: ( 1 ) 1 6 3 2 b i ta r m 9 2 0 t 内核 ( 2 ) 系统时钟:使用外部1 2 m h z 晶体由c p u 内部p l l 倍频至2 0 0 m h z + ( 3 ) b o o tr o m :6 4 m b y t en a n d f l a s h ( 4 ) s d r a m :6 4 m b y t e ( 3 2 m b y t ex2 ) ( 5 ) t i 丌l c d 和触摸屏控制器( 可配置为g p i o ) ( 6 ) 3 通道u a r t ( 7 ) 4 通道d m a ( 8 ) 1 个u s b 主控制器 ( 9 ) 1 个u s b 设备控制器 ( 1 0 ) s d 卡m m c 卡主控制器( 可配置为g p i o ) ( 1 1 ) e m b e d d e d i c e 调试接口 ( 1 2 ) r t c 实时时钟( 具备后备锂电池) ( 1 3 ) i i c 总线接口 ( 1 4 ) a d c 模数转换接口 ( 1 5 ) s p i 接口( 可配置为g p i o ) ( 1 6 ) i i s 数字音频输入输出接口 5 北京化丁大学硕卜学位论文 ( 1 7 ) e i n t 外部中断接口( 可配置为g p i o ) ( 1 8 ) 1 0 m 以太网口 ( 1 9 ) 多功能总线扩展接口 ( 2 0 ) i d e | 触a 硬盘接口 ( 2 1 ) 2 只发光二极管之时灯 开发板所提供的软件包括针对w i n c e 和针对l i n u x 的,这里主要说明开发l i n u x 所提供的软件: ( 1 ) b o o t h a d e r 烧写程序y f s jf e x e ( 在w i n d o w s 下进行烧写) ( 2 ) b 0 0 t l o a d e r 二进制文件y f l o a d e r b i n ( v i v i ) ( 3 ) 交叉编译工具c r o s s 2 9 5 3 t a r b z 2 ( 4 ) 定制的l i n u x 2 4 1 8k e r n e l ( 5 ) 定制的文件系统u c l i n u x 实验室在开发数据采集系统时,因为当时的主要任务是为了开发数据采集系统, 所以采用的嵌入式系统软件都是用开发板光盘所提供的,并没有进行更新与替代。 2 3 对研究成果的总结及问题的引出 随着时代的进步,开发板所提供的软件已经有些陈旧。为了跟上硬件新特性,更 新与替代不可避免。于是,山u b o o t 取代v i v i ,由2 6 k e m e l 取代2 4 k e m e l ,由b u s v b o x 取代u c l i n u x 的方案随之产生,至于为什么采用这个方案,将在接下来的章节中详细 阐述。 但是在2 6 k e m e l 取代2 4 k e r n e l 的过程中,发现网卡芯片c s 8 9 0 0 a 的驱动程序没 有集成剑内核中,所以引出了本课题的核心一一c s 8 9 0 0 a 网卡驱动程序的研究与实 现。 6 第三章嵌入式设备驱动程序的前提:嵌入式系统的搭建 第三章嵌入式系统的搭建 本章主要介绍了嵌入式软硬件环境的搭建。在旧有软件的基础之上,进行了相应 的更新与替代,并详细介绍了移植,成功搭建了一个完整的嵌入式l i n u x 操作系统, 为下一步驱动程序的设计与实现奠定了基础。 3 1 关于硬件环境的搭建 硬件连接如图3 1 所示: e m b e d d e db o a r d 5 w i t ( h 图3 1 硬件连接示意图 f i g 3 - lh a r d w a r ec o n n e c l i o nf i g u r e p c 硬件连接需要两根网线,一个交换机,一条两头都是母头的r s 一2 3 2 连接线以及一 条j t a g 线。首先把开发板的网口以及p c 机的网口都连接到交换机上,网线是在方便 快速烧写k e r n e l 和r a l i l d i s k 时使用。然后把开发板的串口和p c 机的c o m l 口连接, 串口是开发板的默认输出口,可以作为监视使用。最后把开发板的j t a g 口和p c 机的 并口连接好,j t a g 口是烧写b o o t l o a d e r 时使用。b o o t l o a d e r 功能和p c 的b 1 0 s 类似, 提供嵌入式开发板上电之后对硬件的控制功能。在加载了l i n u x 的k e r n e l 之后, b o o t l o a d e r 就把系统控制权交给k e r n e l i l 4 j 。 至此,整个丌发环境的硬件连接已经完成。 3 2 关于软件环境的升级 s 3 c 2 4 1 0 开发板所提供的配套软件相对比较陈旧,必须进行相应的更新。 7 北京化工大学硕上学位论文 3 2 1 用d e b i a n 替换r e d h a t 作为宿主操作系统的尝试 开发板要求p c 端必须安装r e d h a t9 0 ,且要求f u l l 安装,满足作为宿主操作 系统丌发的要求。作者偏好与d e b i a n 发行版,并认为各发行版本质上并没有什么区 别,于是大胆尝试使用d e b i a n 取代r e d h a t 9 0 。 首先安装好m i n i c o m : $ a p t - g e ti n s t a nm i n i c o m 顺利安装,s t a b l e 版的m i n i c o m 已经更新到2 2 5 。如果缺少相应的库,都可以通 过a p t c a c h es e a r c h 【n a m e 】以及a p t g e ti n s t a u 【n a m e 】完成,这是d e b i a n 的好处之一。 接着安装t f l p d : $ a p t - g e ti n s a l lt f i p d 装完之后,在配置文件e t c i n e t d c o n f 中会增加这么一行: t 邱d 伊a mu d pw a i tn o b o d y u s r s b i i l t c p d u s r s b i 嘶n t f t p d s r v t f t p 最后一个参数s t f t p 是t f t p d 服务器工作的主目录,在r e d h a t 9 0 中为t f t p b o o t 。 可以通过更改配置文件的这个参数来调整t f t p d 的工作主目录。为了跟r e d h a t9 0 一 致,这里把s r v t f l p 改成t f t p b o o t ,并把所有要下载到开发板的文件都放在这个目录下 面。 最后安装交叉编译工具链a m l i n u x g c c 。在网上下载标准压缩包版本2 9 5 3 和 3 4 1 。这两个在之后都会用到,详情看之后的章节。 $ c d u s r l o c a l a m $ t a r ) 【j v fa n n - l i n u x - g c c - 2 9 5 3 t a r b z 2 $ t a rx j v fa 肌- l i n u x - g c c 一3 4 1 t a r b z 2 同时在b a s h r c 中添加$ p a t h e x p o r t $ p :舢= u s 饥o c a l a 咖2 9 5 3 b i n :$ p a r h 在之后的使用中,并没有发现因为是d e b i 卸而不是r e d h a t 带来不便,所以用 d e b i a n 替代r e d h a t 作为宿主操作系统是完全可行的。 3 2 2 为什么选择u b 0 0 t 而不是v i v i 对于计算机系统来说,从开机上电到操作系统启动需要一个引导过程。嵌入式 l i n u x 系统同样离不开引导程序,这个引导程序就叫作b o o t l o a d e r 。 b o o t b a d e r 是在操作系统运行之前执行的一段小程序。通过这段小程序,可以初 始化硬件设备、建立内存空间的映射表,从而建立适当的系统软硬件环境,为最终调 用操作系统内核做好准备1 1 5 j 。 对于嵌入式系统,b o o t l o a d e r 是基于特定硬件平台来实现的。因此,几乎不可能 8 第三章嵌入式设备驱动程序的前提:嵌入式系统的搭建 为所有的嵌入式系统建立一个通用的b o o t l o a d e r ,不同的处理器架构都有不同的 b o o t l o a d e r 。b o o t l o a d e r 不但依赖于c p u 的体系结构,而且依赖于嵌入式系统板级设 备的配置。对于2 块不同的嵌入式板而言,即使使用同一种处理器,要想让运行在一 块板子上的b o o t l 0 a d e r 程序也能运行在另一块板子上,一般也都需要修改b o o t l o a d e r 的源程序。 反过来,大部分b o o t h a d e r 仍然具有很多共性,某些b o o t h a d e r 也能够支持多 种体系结构的嵌入式系统。例如,u b 0 0 t 就同时支持p o w e r p c 、a r m 、m i p s 和x 8 6 等体系结构,支持的板子有上百种。通常,它们都能够自动从存储介质上启动,都能 够引导操作系统启动,并且大部分都可以支持串口和以太网接口。 s 3 c 2 4 1 0 开发板提供的b o o t l o a d e r 是v i v i 。v i v i 是由韩国m i z i 公司开发的专 门用于a r m 产品线的一种b 0 0 t l o a d e r 。因为v i v i 目前只支持使用串口和主机通信, 所以必须使用一条串口电缆来连接目标板和主机。v i v i 的源代码下载地址为:h t t p : 硼m rm i z i c o m d e v e l o p e r s 3 c 2 4 1 0 x d o w n l o a d v i v i h t m l ,v i v i 一般有如下作用。 ( 1 ) 把内核( k e m e l ) 从f i a s h 复制到r a m ,然后启动它; ( 2 ) 初始化硬件; ( 3 ) 下载程序并写入f l a s h ; ( 4 ) 检测目标板。 所以v i v i 是m i z i 针对s 3 c 2 4 1 0 丌发板专门丌发的,并没有通用性。 反过来再看看u b o o t 。 u b o o t ,全称u n i v e r s a lb o o tb a d e r ,是遵循g p l 条款的开放源码项目。从 f :a d s r o m 、8 x x r o m 、p p c b o o t 逐步发展演化而来。其源码目录、编译形式与l j n u x 内核很相似,事实上,不少u b o o t 源码就是相应的l i n u x 内核源程序的简化,尤其 是一些设备的驱动程序,这从u b o o t 源码的注释中能体现这一点。但是u b o o t 不仅 仅支持嵌入式“n u x 系统的引导,当前,它还支持n e t b s d ,v x w b r k s ,q n x ,r t e m s , a r t o s ,l y n x o s 嵌入式操作系统。其目前要支持的目标操作系统是o p e n b s d ,n e t b s d , f r e e b s d ,4 4 b s d ,l i n u x ,s v r 4 ,e s i x ,s o l a r i s ,l r i x ,s c o ,d e l l ,n c r ,v x w b r k s ,l y n x o s , p s o s ,q n x ,r 1 陋m s ,a r t o s 。这是u b o o t 中u n i v e r s a l 的一层含义,另外一层含义则 是u b o o t 除了支持p o w e r p c 系列的处理器外,还能支持m i p s 、x 8 6 、a r m 、n i o s 、 x s c a l e 等诸多常用系列的处理器。这两个特点正是u b o o t 项目的开发目标,即支持 尽可能多的嵌入式处理器和嵌入式操作系统。就目前来看,u b o o t 对p o w e r p c 系列 处理器支持最为丰富,对l i n u x 的支持最完善。其它系列的处理器和操作系统基本是 在2 0 0 2 年1 1 月p p c b o o t 改名为u b o o t 后逐步扩充的。从p p c b 0 0 t 向u b o o t 的 顺利过渡,很大程度上归功于u b o o t 的维护人德国d e n x 软件工程中心、l f g a n g d e n k 【以下简称w :d 】本人精湛专业水平和持着不懈的努力。当前,u b o o t 项目正在他 的领军之下,众多有志于开放源码b o o tl o a d e r 移植工作的嵌入式开发人员正如 9 北京化工人学硕上学位论文 火如荼地将各个不同系列嵌入式处理器的移植工作不断展开和深入,以支持更多的嵌 入式操作系统的装载与引导。选择u b o o t 的理由【1 6 j : ( 1 ) 开放源码; ( 2 ) 支持多种嵌入式操作系统内核,如l i n u x 、n e t b s d ,v x w b r k s ,q n x ,r r e m s , a r t o s ,l y n x o s ; ( 3 ) 支持多个处理器系列,如p o w e r p c 、a r m 、x 8 6 、m i p s 、x s c a l e ; ( 4 ) 较高的可靠性和稳定性; ( 5 ) 较高的可靠性和稳定性: ( 6 ) 高度灵活的功能设置,适合u b o o t 调试、操作系统不同引导要求、产品发布 等; ( 7 ) 丰富的设备驱动源码,如串口、以太网、s d r a m 、f l a s h 、l c d 、n v r a m 、 e e p r o m 、i 盯c 、键盘等; ( 8 ) 较为丰富的丌发调试文档与强大的网络技术支持; 3 2 3 为什么选择2 6 k e r n e i 而不是2 4 k e m e l 一个计算机系统是一个硬件和软件的共生体,它们互相依赖,不可分割。计算机 的硬件,含有外围设备、处理器、内存、硬盘和其他的电子设备组成计算机的发动机。 但是没有软件来操作和控制它,发动机自身是不能工作的。完成这个控制工作的软件 就称为操作系统,在l i n u x 的术语中被称为“内核”,也可以称为“核心”。l i n u x 内核的 主要模块( 或组件) 分以下几个部分:存储管理、c p u 和进程管理、文件系统、设备管 理和驱动、网络通信,以及系统的初始化( 引导) 、系统调用等。内核决定一个系统是 否是l i n u x 。在版本号中,序号的第二位为偶数的版本表明这是一个可以使用的稳定 版本,如2 2 5 ,而序号的第二位为奇数的版本一般有一些新的东西加入,是个不一定 很稳定的测试版本,如2 3 1 。这样稳定版本来源于上一个测试版升级版本号,而一个 稳定版本发展到完全成熟后就不再发展。2 6 k e m e l 相对于2 4 k e m e l 主要有以下改进 1 1 7 1 : ( 1 ) 模块子系统( m o d u l es u b s y s t e m ) 、统一设备模型( u n i f ! i e dd e v i c em o d e l ) 和p n p 支持模块子系统发生了重大变化。 ( 2 ) 稳定性有所提高 为了彻底避免内核加载或者导出正在被使用的内核模块,或者至少为了减少加载 或者卸载模块的同时使用该模块的可能性( 这有时会导致系统崩溃) ,内核加载和导 出内核模块的过程都得到了改进。所以,强烈建议所有基于2 4 k e m e l 的l i n u x 应用 系统马上升级内核,一定注意,升级前备份系统,防止升级出错造成重大损失。同时 由于2 6 k e m e l 把一些过于陈旧的硬件驱动给去掉了,所以也要防止硬件不兼容、应 1 0 第三章嵌入式设备驱动程序的前提:嵌入式系统的搭建 用系统不兼容问题,最好先测试一下,再上线运行! ( 3 ) 统一设备模型 统一设备模型的创建是2 6k e m e l 最重要的变化之一。它促进了模块接口的标准 化,其目的是更好地控制和管理设备,例如:更准确地确定系统设备。电源管理和设 备电源状态。改进的系统总线结构管理。 ( 4 ) 即插即用( p n p ) 支持 总线以及热插拔设备的p n p 支持。 ( 5 ) 内核基础设施的变化 为了区别以o 为扩展名的常规对象文件,内核模块现在使用的扩展名是k o 。 创建了新的s v s f s 文件系统,当内核发现设备树时就会描述它。2 6k e m e l 支持更大 数量的r a m ,在分页模式下最高可达6 4 g b 。 ( 6 ) n u m a 对非一致内核访问( n o n u n i f o 姗m e m o r va c c e s s n u m a ) 系统的支持是2 6 k e m e l 中新出现的。 ( 7 ) 线程模型n p t l 相对于2 4 k e m e l 的l i n u x t h r e a d s ,在2 6 k e m e l 中新出现的是n 门l ( n a t i v e p o s i x t h r e a d i n gl i b r a r y ) 。n p t l 为l i n u x 带来了企业级线程支持,提供的性能远远 超过了“n u x t h r e a d s 。

温馨提示

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

评论

0/150

提交评论