已阅读5页,还剩64页未读, 继续免费阅读
(信号与信息处理专业论文)嵌入式linux的调试及设备驱动的开发.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 随着信息技术与网络技术的高速发展,嵌入式系统正越来越广泛地应用于科学研 究、军事技术、工程设计、计算机、通信、消费类电子等方面。嵌入式系统是以应用为 中心,以计算机技术为基础,并且软硬件均可裁剪,适用于应用系统对功能、可靠性、 成本、体积、功耗有严格要求的专用计算机系统。采用l i n u x 进行嵌入式开发要面对的 问题主要有两个:首先是操作系统的改造,裁减内核或是直接改写l i n u x 的内存管理、 进程调度机制,其次就是设备驱动程序的设计开发。 本文的研究重点为l i n u x 设备驱动程序的设计。文章主体分为以下部分: 首先,从介绍嵌入式l i n u x 系统的体系结构及其核心入手。详细研究了基于x - s c a l e 内核p x a 2 5 5 硬件平台的交叉编译环境的建立以及l i n u x 中断处理机制,在此基础上,对 此平台上嵌入式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 设 备驱动程序的设计并编程加以实现。 通过对外部设备驱动程序的分析,本文设计了字符设备驱动程序模型和块设备驱动 程序模型。这两个模型完成了驱动程序中与内核相关的几乎所有事务,包括设备的注册 和注销、设备的打开和关闭及读写等系统调用的统一接口、数据从内核内存传送到用户 内存的方法等。对内存的使用和设备的访问方式,本文也作了详细的说明。有了以上的 基础,开发者只需再熟悉外部设备的使用方法和数据格式等硬件信息,一个完整的驱动 程序就很容易写成了。模型中还加入了一定的安全措施以保证它的可靠性。 关键字:嵌入式l i n u x ;设备驱动;字符设备;块设备;网络接口;模块化 摘要 a b s t ra c t w i t ht h e r a p i dd e v e l o p m e n to fi n f o r m a t i o nt e c h n o l o g y a n dc o m p u t e rn e t w o r k , e m b e d d e ds y s t e mh a sb e i n gm o r ea n dm o r ew i d e l yu s e di ns c i e n c er e s e a r c h ,m i l i t a r y , e n g i n e e r i n gd e s i g n ,c o m p u t e r ,c o m m n i c a t i o n ,a n dc o n s u m e re l e c t r o n i c ,e tc e m b e d d e d s y s t e mc e n t r e so na p p l i c a t i o na n db a s e s0 1 1c o m p u t e rt e c h o n o l g y ,i t sh a r d w a r ea n ds o f t w a r e c a nb ec u to f fb yu s e r s ,a n di ss u i tf o ras p e c i a lc o m p u t e ro p e r a t i n gs y s t e mt h a th a sl i m i t a t i o n w i t hf u n c t i o n ,r e l i a b i l i t y ,c o s t ,c u b a g ea n dp o w e rw a s t e y o uw i l lf a c ew i t ht w oa s p e c t si fy o u d e v e l o pe m b e d d e ds y s t e mb yl i n u x :f i r s ti s r e b u i l do p e r a t i n gs y s t e m ,i n c l u d i n gr e d u c i n g k e r n e lo rr e w r i t i n gd e r e c t l ym e m o r ym a n a g e m e n to fl i n u xa n dt h em e c h a n i s mo fp r o c e s sc a l l ; t h es e c o n di st h ed e s i g na n dd e v e l o po fd e v i c e sd r i v e r s i nt h i sp a p e r , ie m p h a s i z eo nt h ed e v e l o p m e n to fd e v i c e sd r i v e r s i tc a l lb ed i v i d e di n t o s o m ep a r t sa sf o l l o w f i r s t i ts t a r t sw i t hs y s t e ms t r u c t u r ea n dk e r n e lo fe m b e d d e dl i n u xs y s t e m is t u d y p a r t i c u l a r l yo nt h ea c r o s s c o m p i l ee n v i r o n m e n tb a s e do nx s c a l ek e r n e lp x a 2 5 5h a r d w a r e p l a t f o f l i la n dt h ei n t e r r u p tm e c h a n i s mo fl i n u x a n dt h e nii n v e s t i g a t et h et r a n s p l a n t a t i o n t e c h n o l o g yo fe m b e d d e dl i n u xs y s t e m ,w h i c hi n c l u d e sr e p l a n t i n gb o o t l o a d e ra n dm i g r a t i n g e m b e d d e dl i n u xk e r n e l ig e n e r a l i z et h es t e p so fm i g r a t i o ni nd e t a i l s e c o n d ,ia n a l y z et h ed e s i g n t h e o r ya n dm e t h o do fd e v i c e sd r i v e r s ,i n t r o d u c et h e c o n c e p t i o no fm o d u l a r i z a t i o n ,a n dm a k ea f ta n a t o m ya b o u tt h em e t h o dh o w t ow r i t e ,c o m p i l e a n dd e b u gd e v i c e sd r i v e r s d e v i c e sd r i v e r sa r et h ec o l l e c t i o no fs u b p r o g r a ma n dd a t a , t h e ya r e t h es o f t w a r ei n t e r f a c e so fi 0d e v i c e sa n dp r o v i d ei n t e f f a c ef i i n c t i o nt ot h es y s t e m s o p r o g r a m m i n gd r i v e r sm e a n s t or e a l i z et h e s ef u n c t i o n s d r i v e r sc a nb ed i v i d e di n t ot h r e et y p e s : c h a r a c t e rd e v i c ed r i v e r s 。b l o c kd e v i c ed r i v e r sa n dn e t w o r kd e v i c ed r i v e r s is t u d yt h ed e s i g n o fd e v i c ed r i v e r sa n dp r o g r a mt h e m t h r o u g hm yr e s e a r c hb a s e do np e r i p h e r a le q u i p m e n td r i v e sp r o g r a m ,ic o n t r i v et h e m o d e l so fc h a r a e t e rd e v i c ed i r v e r sa n db l o c kd e v i c ed r i v e r s t h et w om o d e l ss h o u l df i n i s h n e a d va l lt r a n s a c t i o n st h a th a v er e l a t i o n s h i pw i t hk e r n e l ,i n c l u d i n gt h ei n t e r r a c ew i t hf u n c t i o n r e g i s t e r s ,l o g o u t ,o p e n , c l o s e ,w r i t ea n dr e a d ,a l s oi n c l u d i n g t h em e t h o dw i t hw h i c hs e n d sd a t a f r o mk e r n e lt ou s e ra n ds oo n t h ep a p e rs t u d i e st h eu s eo fm e m o r ya n dt h ea c o o s sm o d et o e q u i p m e n tt o o b a s e do na b o v e ,i fad e v e l o p e rw a n t s t ow r i t eh i sd e v i c ed r i v e r , h eo n l yn e e d s t ob ef a m i l i a rw i t ht h eh a r d w a r ei n f o r m a t i o n ,s u c ha st h ew o r k i n go fp e r i p h e r a le q u i p m e n t a n dt h ed a t at y p e s a f ep r e c a u t i o n sa t ea d d e dt ot h em o d u l ef o rr e l i a b i l i t yi nm yp a p e r k e y w o r d s :e m b e d d e dl i n u x ,d e v i c ed r i v e r s ,c h a r a c t e rd e v i c e s ,b l o c kd e v i c e s ,n e t i n t e r r a c e s ,m o d u l e 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作和取得的研究成果,除了文中特别加以标注和致谢之处外,论文中 不包含其他人已经发表或撰写过的研究成果,也不包含为获得天 津理工大学或其他教育机构的学位或证书而使用过的材料。与 我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确 的说明并表示了谢意。 学位论文作者签名:夕拳踊 签字日期:一年,2 月如日 学位论文版权使用授权书 本学位论文作者完全了解天津理工大学有关保留、使用学位 论文的规定。特授权天津理工大学可以将学位论文的全部或部 分内容编入有关数据库进行检索,并采用影印、缩印或扫描等复制手 段保存、汇编,以供查阅和借阅。同意学校向国家有关部门或机构送 交论文的复本和电子文件。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名:奢贸盈 签字日期:劲6 年, 月弦日 鲁峨签磊却:参 l 签字日期:砒年, 月阳日 第一章绪论 第一章绪论 随着微处理器技术的发展,嵌入式系统己成为计算机领域的一个重要组成部分。嵌 入式系统定义为以应用为中心、以计算机技术为基础、软件硬件可裁剪、适用于应用系 统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统“1 。换句话说,嵌 入式系统就是一个计算机硬件与软件的集合体,一般由嵌入式微处理器、外围硬件设备、 嵌入式操作系统以及用户的应用程序等四部分组成,有时为了完成某种特定的功能( 如 对其他设备的控制、监视或管理) ,还包括其它一些组成部分。 嵌入式c p u 目前多是8 位和1 6 位的,与3 2 位或6 4 位的高性能处理器相比,有很强的经 济性和现实性。相关支撑硬件包括显示卡、存储介质( r o m 和r a m 等) 、通讯设备、i c 卡等 设备。嵌入式系统有别于一般的计算机处理系统,它不具备像硬盘那样大容量的存储介 质,而大多使用闪存( f l a s hm e m o r y ) 作为存储介质。 i , i 嵌入式系统的发展概述 嵌入式系统的历史几乎和计算机自身的历史一样长。其最初于六十年代晚期在通讯 中被用于控制机电电话交换机。当今世界,以计算机技术、芯片技术和软件技术为核心 的数字化技术取得了迅猛发展,不仅广泛渗透到社会、经济、军事、交通、通信等相关 行业,而且深入到家电、娱乐、艺术、社会文化等各个领域,掀起了一场数字化技术革 命。现代控制技术、多媒体技术与i n t e r a c t 的应用与普及,促使消费电子、计算机、通信 一体化( 3 c ) 趋势步伐加快,嵌入式系统技术再度成为一个研究热点。嵌入式系统技术是 将先进的计算机技术、半导体技术和电子技术和各个行业的具体应用相结合后的产物, 这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系 统。嵌入式软件包括与硬件相关的底层软件、操作系统、图形界面、通讯协议、数据库 系统、标准化浏览器和应用软件等。 纵观嵌入式技术的发展,大致经历了以下五个阶段1 2 j : 第一阶段,即s c m 一单片微型计算机( s i n g l e c h i pm i c r o c o m p u t e r ) 阶段,主要是寻 求最佳的单片形态嵌入式系统的最佳体系结构,最典型的是m c s 5 1 单片机。它具有与 监测、伺服、指示设备相配合的功能。应用于专业性极强的工业控制系统中,没有操作 系统的支持,通过汇编语言编程对系统进行直接控制,运行结束后清除内存。该阶段系 统的主要特点是:系统结构和功能都相对单一,处理效率较低,存储容量较小,几乎没 有用户接口。以前在国内工业领域应用较为普遍,但是己经远远不能适应高效的、需要 大容量存储介质的现代化工业控制和新兴的信息家电等领域的需求。 第二阶段,e p m c i 一馓控制器r m i 啪c o n t m l l e ru n i t ) 阶段,该阶段不断扩展满足嵌 入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。 和s c m 相比,m c u 的最大特点是单片化、体积大大减小,从而使功耗和成本下降、可 靠性提高。微控制器是目前嵌入式系统工业的主流。微控制器的片上外设资源一般比较 丰富,适合于控制。 第三阶段,即s o g _ j 靼芯片系统( s ) s t e r n 彻c h i p ) 阶段,该阶段就是寻求应用系统 第一章绪论 在芯片上的最大化解决整个嵌入式系统大部分均可集成到一块或几块芯片中去,应用 系统电路板将变得很简洁,对于减小体积和功耗、提高可靠性非常有利,随着微电子技 术、l c 设计、e d a 3 1 具的发展,基于s o c 的单片机应用系统设计有较大的发展。 第四阶段,即e o s 一嵌入式操作系统阶段( e m b e d d e do p e r a t i o n s y s t e m ) 。该阶 段系统的主要特点是:嵌入式操作系统能运行于各种不同类型的微处理器上,兼容性好; 操作系统内核小、效率高,并且具有高度的模块化和扩展性:具备文件和目录管理、设 备支持、多任务、网络支持、图形窗以及用户界面等功能;具有大量的应用程序接口( a p i ) , 开发应用程序简单;嵌入式应用软件丰富。 第五阶段,是以基于i n t e r a c t 为标志的嵌入式系统,这是一个正在迅速发展的阶段。 目前大多数嵌入式系统还孤立于i n t e r n e t 之外,但随着i n t e r n e t 的发展以及i n t e r n e t 技术 与信息家电、工业控制技术等结合日益密切,嵌入式设备与i n t e r n e t 的结合将代表着嵌 入式技术的真正未来。 综上所述,s o c 和嵌入式操作系统在整个嵌入式系统发展中扮演越来越重要的作 用。为此,本课题选取目前应用最为广泛的x 8 c a l e 系列处理器作为研究的切入点。 1 2 嵌入式l i n u x 系统 嵌入式操作系统是操作系统领域的一个重要分支。由于l i n u x 的独特优势,使越来 越多的企业和科研机构把目光转向嵌入式l i n u x 的开发和研究上。嵌入式l i n u x ( e m b e d e dl i n u x ) 是指对l i n u x 经过小型化裁剪后,能够固化在容量只有几十万字节或 几十亿字节的存储器芯片或单片机中,应用于特定嵌入式场合的专用l i n u x 操作系统。 在计算机技术的发展史上,u n i x 操作系统的出现是一个重要的里程碑。早期的u n i x 曾免费供美国及一些西方国家的大学和科研机构使用,并提供源代码。后来l i n u x t o r b a l d s 主持了u n i x 的进一步开发,并将其命名为l i n u x 。 l i n u x 是一种很受欢迎的操作系统,它与u n i x 系统兼容,开放源代码。它原本被 设计为桌面系统,现在广泛应用于服务器领域。把l i n u x 用于嵌入式系统,一般都不是 原封不动地照搬,而是充分考虑各种具体嵌入式系统的特点,有针对地对l i n u x 内核加 以裁减、修改和补充,主要包括以下几个方面: 1 ) 将l i n n x 内核移植到一些典型的微控制器或s o c 芯片上并加以必要的补充。 对l i n u x 内核的代码进行删剪和裁剪,一来可以减小内核映像的“脚印”,二来 可以加快系统的初始化过程。 3 ) 嵌入式系统的某些常用的外部设备在通用系统中是很少见的。所以嵌入式系统 的内核中常常需要一些特殊的设备驱动程序。 4 ) 对于有实时要求的应用则需要视要求的高低,采取不同的对策。如按优先级调 度、提高时钟精度、实现可剥夺调度、解决优先级倒转问题和实现硬实时调度。 l i n u x 内核的代码是高度模块化的,内核的许多功能和成分都可以通过条件编译加 以取舍和裁剪,有些成分还可以独立编译成可以动态安装的“可安装模块”。经修改过 和扩充的各种嵌入式l i n u x 保留了这个特点,所以从同一个修补版,还可以再根据具体 的需要裁剪、编译出许多不同的可执行映像。 2 第一章绪论 传统意义上的操作系统,其内核应具备多个方面的功能或成分,既包含用于管理属 于应用层的“进程”成分,如进程管理,还包括进程| 、日j 通信、设备驱动和文件系统等等。 嵌入式系统来源于传统操作系统,它也具有普通操作系统的功能或成分。 虽然,l i n u x 操作系统在服务器和台式机上的应用已经有好几年了,并且在服务器 操作系统市场占据了相当的市场份额,i b m 、戴尔、惠普、康柏、o r a c l e 以及其他一些 知名的企业都对l i n u x 表现出了信任的态度。但是,桌面系统仍是w i n d o w s 的天下, 开放源代码的l i n u x 只是一个微软避免被控诉垄断而片面夸大的敌人。然而,在嵌入式 领域则不同,继p a l mo s 、v x w o r k s 、p s o s 、n e c u l e u s 和w i n d o w sc e 之后,l i n u x 已 经不再是一句口号。嵌入式l i n u x 终于绕过弯道,开始进入加速跑的坦荡大道。 采用l i n u x 进行嵌入式系统开发具有以下优点1 3 j : 1 内核微小。一个功能完备的l i n u x 内核要求大约1 m b 内存。而l i n u x 微内核只 占其中很小一部分内存,包括虚拟内存和所有核心的操作系统功能在内,只需占用 p e n t i u mc p u 系统的1 0 0 k 内存。只要有5 0 0 k 的内存,一个有网络栈和基本实用程序 的完全的l i n u x 系统就可以在一台8 位总线( s ) ( ) 的i n t e l3 8 6 微处理器上运行的很好了。 核心l i n u x 操作系统本身的微内核体系结构相当简单。网络和文件系统以模块形式置于 微内核的上层。驱动程序和其它部件可在运行时作为可加载模块编译到或者是添加到内 核。这为构造定制的可嵌入系统提供了高度模块化的构件力法。因此它是一个瞄准嵌入 式市场的轻量级操作系统。 2 资源丰富。嵌入式系统也常常要求通用的功能,这些功能的实现运用了许多现 成的程序和驱动程序,它们可以用于公共外设。l i n u x 可以在外设范围广泛的多数微处 理器上运行,并早己经有了现成的应用库。l i n u x 还具备一整套工具链,容易自行建立 嵌入式系统的开发环境和交叉运行环境,并且可以跨越嵌入式系统开发中仿真工具的障 碍。l i n u x 海洋般丰富的自由资源是其具有无限吸引力的关键所在。 3 硬件支持广泛。l i n u x 具有广泛的硬件支持特性,无论是r i s c 还是c i s c ,3 2 位还是6 4 位等各种处理器,l i n u x 都能运行。l i n u x 最通常使用的微处理器是i n t e lx 8 6 芯片家族,但它同样能运行于m o t o r o l a 公司的6 8 k 系列c p u 和i b m 、a p p l e 、m o t o r o l a 公司的p o w e r p cc p u 以及i n t e l 公司的s t r o n ga r mc p u 等处理器系统,这意味着嵌入 式l i n u x 将具有更广泛的应用前景。 1 3 国内外发展现状 目前,嵌入式l i n u x 系统开发正在蓬勃兴起,并且已经开辟了很大的市场,除了一 些传统的l i n u x 公司,像r e d h a t 、v al i n u x 等正在从事嵌入式l i n u x 的研究之外,一 批新公司( 如l i n e o 、t i m e s y s 等) 和一些传统的大公司( 如i b m 、s g i 、m o t o r o l a 、i n t e l 等) 以及一些开发专有嵌入式操作系统的公司( 如l y n x ) 也正在进行嵌入式l i n u x 的 研究和开发。 与国外相比,国内从事嵌入式技术研究比较晚,没有自己生产嵌入式芯片的能力, 在嵌入式操作系统方面有自主知识产权的产品很少,在这方面,源代码开放的l i n u x 已 经逐渐成为国内公司与国外厂商争一日之短长的有力武器。目前国内的l i n u x 嵌入式操 3 第一章绪论 作系统厂商队伍正在逐渐扩大,已形成百家争鸣的局面,在市场上主要有红旗嵌入式 l i n t l x 、博利思推出的p o c k e ti x 、蓝点的嵌入式l i n u x 系统、网卢科技推出的c o v e n t i v e 和共创软件联盟推出的c c l i i u x 。它们所具备的共同特点是:精简的内核,适用于不 同的c p u 、x 8 6 、s t r o n g a r m 、a r m 、m i p s 、p o w e rp c 等:提供完善的嵌入式g u i 和嵌入 式x w i n d o w s ;提供嵌入式浏览器、邮件程序、m p 3 播放器、m p e g 播放器、记事本等 应用程序;提供完整的开发工具和s d k ,同时提供p c 上的开发版本;用户可定制,提 供图形化的定制和配置工具;常用嵌入式芯片的驱动集;提供实时版本;完善的中文支 持等。其中c c l i f l u x 对通用的l i n u x 进行了合理的裁剪,实现了r o m r a m f l a s h 的文 件系统、软实时、能量低中断、电源管理、”v a 虚拟机、多平台和多线程支持,有望 成为中国嵌入式操作系统的标准。此外,“8 6 3 计划”重点支持项目中就有使用l i n u x 作 为嵌入式系统开发的方向。 市场方面,我国的市场也将为l i n u x 的发展铺平道路。国内目前彩电、v c d 学习机、 寻呼机和手机电话的数量越来越多、迅速发展的掌上电脑以及数千万辆汽车,它们都是 潜在嵌入式操作系统的应用平台。同时,i n t e r n e t 发展如此迅速,中国i n t e r n e t 用户 有数千万。面对如此之大的电子产品市场和潜在的用户群,以l i n u x 为主的嵌入式操作 系统面临的是前景光明的春天。 基于以上嵌入式系统在未来发展中的地位,尽快开展对嵌入式系统主流芯片应用的 研究和对源代码开放的操作系统的研究,是十分必要的。 1 4 主要研究内容 在嵌入式系统需求不断增长的今天,l i n u x 也凭借其内核微小、可裁减,资源丰富 和硬件支持广泛的优越特性加入到嵌入式系统开发的阵营,并逐步得到业内人士的认 可。采用l i n u x 进行嵌入式开发要面对的问题主要有两个:一个是操作系统的改造,裁 减内核或是直接改写l i n u x 的内存管理、进程调度机制,一个就是设备驱动程序的设计 开发。 本课题来源于实验室和企业合做建设。根据目前国内外对嵌入式的研究和开发,结 合实验室当前的实验条件,本课题采用了北京亿旗创新科技发展有限公司 “e f l a g a r m x s c a l e ”嵌入式开发系统作为开发板,处理器采用的是i n t e lp ) 0 气2 5 5 芯片。其采用x s c a l e 核心,其具有尺寸小、低功耗和高性能的特点。 根据具体的研究情况,本论文从以下几个方面进行研究和应用: 1 l i n u x 的体系结构的分析和内核的解读。 2 熟悉i n t e lp x a 2 5 5 的体系结构,了解地址分配情况并进行应用编程。 3 嵌入式i a n u x 在e f l a g - a r m x s c a i ,e 板卡上的移植,其中包括移植环境的 建立, b o o t l o a d c r 的设计与实现,l i n u x 内核的移植。 4 嵌入式l i n u x 在e f l a g - a r m x s c a l e 板卡上的开发,i a n u x 下驱动程序实 现机制研究,建立模型来实现。 5 嵌入式l i n u x 环境下的字符设备、块设备和网络通信设备驱动程序模块化研 究,并编写程序和给出可靠性验证方法。 4 第_ 二章嵌入式l i n u x 的体系结构及核心分析 第二章嵌入式l i n u x 的体系结构及核心分析 本章首先介绍嵌入式系统的体系结构,并在此基础上具体分析l i n u x 在该体系结构 上的架构,对硬件抽象层和内核层作详细的概述,最后给出在l i n u x 操作系统中的进程 状态分析和进程通信。为后面章节的内核和驱动移植提供理论基础。 2 1 嵌入式系统的体系结构 从计算机技术的发展来看一个好的体系结构是系统发展的基础,而对于嵌入式系统 应用的开发,它需要从硬件到软件的一个完整地设计,才能更好的适应系统地需求,降 低成本。从嵌入式系统的出现人们就一直致力于这方面的研究,以下我们将对嵌入式应 用系统的体系结构做一个详细的介绍。 国 二二】至巫 园 二二j 亟亟二 广 厂 i 第三层il 硬件无关的操作系统内核层 i - - - - - - - - - - - 一l 。一 囤 二二亟亟亘 圈 二二二亟 二 图2 - 1 嵌入式应用系统的体系结构 通过分析,我们发现体系结构层与层之间的依赖关系是上层完全依赖于下层,这种 依赖主要是通过明确定义的接口加以实现,能很好的满足体系结构的要求。 下面我们对图2 1 这个架构主要内容进行简要的描述: 1 1 硬件系统部分,这里主要指一些基于通用处理器如a r m 、m i p s 、x 8 6 、p p c 等 等的硬件系统。现在,由于通用处理器的价格降低,体系结构成熟,外围设备的设计规 范可扩展性好,可降低系统开发初期投入等等的特点,在很多嵌入式系统中采用这样的 硬件结构。而且,采用通用处理器系统结构的硬件系统,由于各种外围设备的接口明确, 比较容易做到硬件系统的可剪裁性。这与嵌入式系统的特点相符。 2 ) 硬件抽象层( h a l ) ,这一层在嵌入式系统中也叫板级支持包( b s p ) 。由于嵌入式 系统的硬件环境变化较大,这一层对于上层的o s 的可移植性很重要的。从形式上看,它 主要由一些硬件相关的数据结构、方法和宏组成,一个可移植的操作系统是通过它们来 屏蔽硬件相关的代码的。这就导致这部分既有硬件相关性又有操作系统相关性。从功能 上分,它主要包括系统初始化和硬件相关的设备驱动两部分内容。当然,有的专用嵌入 式操作系统,并不存在这一个概念层次。 5 第二章嵌入式l i n u x 的体系结构及核心分析 3 ) 硬件无关的操作系统内核层,这主要有进程管理,设备管理中的独立于特定硬 件部分,文件系统、内存管理、进程问通信部分、网络部分。在嵌入式系统中,以上各 个组成部分不是必须的,例如文件系统部分,进程问通信等部分往往是可选的。 4 ) 中间支撑软件层,这部分包括各种通用的基础软件( 如j a v a 虚拟机( j v m ) 、用户图 形界面( g u i ) 等等1 。它们为某些应用需求提供了高层的支持。提高了系统开发的效率及 系统运行的稳定性。当然,这一层对于不同的应用和不同的开发方案是可选的。 5 1 嵌入式应用软件,近年来嵌入式应用有了很大的发展,特别是由于专用嵌入式 系统的开发,一些嵌入式o s 和中间支撑软件得到了应用,从而提高了嵌入式应用软件的 兼容性,代码的可重用性。 图2 1 架构的核心思想之一是系统的可定制性,由于分层体系结构的特点,其中有 些层是可以不存在的,并且不影响系统的正常工作。由于通用操作系统是一种开放式的 软件,它拥有通用的、标准化的、广为人知的a p i 和广大的开发人员。而嵌入式系统开 发是主要为了追求满足产品需求的情况下,做到成本最小化。为避免现代嵌入式系统中 软件的成本越来越高的弊病,目前国内外逐步趋向于基于通用嵌入式操作系统来开发嵌 入式应用。通用嵌入式操作系统与专用操作系统之间,从用户角度来看的主要区别是: 通用操作系统的系统接口是标准化的,而专用操作系统则拥有自己的一套接口。 l i n u x 作为一个非常流行的通用操作系统,对它在嵌入式应用中的研究取得了不少 成果。 2 2l i n u x 在嵌入式系统中的架构 l i n u x 是一个完整的操作系统,而且它是开放式的,世界各地有许多科研机构在进 行研究。同样,对于它的嵌入式研究和应用也在不断的进行,如图2 - 1 ,l i n u x 主要在该 嵌入式应用系统体系结构的硬件抽象层以及和硬件无关的操作系统内核层发挥作用,下 面就这两个方面对l i n u x 的功能和作用进行分析。并探讨针对嵌入式系统,l i n u x 所必须 做的改变。 2 2 1 硬件抽象层的l i n u x 随着现代的操作系统理论的发展使得它具有高度抽象性和复杂性,要实现一个稳定 高效的操作系统需要花费很多人很多月的工作,而且,其上的一些比较通用的应用程序 和开发方法的积累就可能需要花费更多的时间。从软件工程的角度出发,重用这样的代 码具有很大的价值。然而,由于嵌入式系统固有的特点,其硬件设备有很大的变化。如 何在各种硬件平台上来重用操作系统的代码,就提出了硬件抽象层的概念,它屏蔽了底 层的硬件细节,提供了一个逻辑的硬件环境,操作系统则建立在这个抽象的基础上。 硬件抽象层完全把系统软件和硬件部分隔离开来,这样就使得系统的设备驱动程序 与硬件设备无关,从而大大提高了系统的可移植性从软硬件测试角度来看,软硬件的测 试工作都可分别基于硬件抽象层来完成,使得软硬件的测试工作的并行进行成为可能。 在抽象层的定义方面。需要规定统一的软硬件接口标准,其设计工作需要基于系统需求 来做,代码工作可由对硬件比较熟悉的人员来完成。抽象层一般应包含相关硬件的初始 6 第一二章嵌入式l i n u x 的体系结构及核心分析 化、数据的输入,输出操作、硬件设备的配置操作等功能。从功能上来分,这个层次包括 两个部分,它们是系统初始化部分和硬件相关的设备驱动部分。下面我们结合l i n u x 的 成果束分析这两部分。 1 、h a l 在系统初始化部分的功能 对整个系统来说初始化过程是一个包括软、硬件初始化在内的过程,按照启动的顺 序有如下表述: 1 ) 片级初始化,主要是对c p u 初起时的状态设置成系统要求的状态。是一个纯 硬件行为。 2 ) 板级初始化,这个过程是一对c p u 以外的其他设备和一些必要的数据结构做 一些初始化。这是一个软、硬件结合的行为。 3 ) 系统级初始化,这一部分由上层的操作系统来完成。是一个纯软件行为。可 以看出来,在初始化部分h a l 主要做了前两步的工作。这部分的工作在各个硬件平台上 是不一样的。对于a r m 开发平台,上述内容中的片级初始化主要有汇编代码两个文件来 实现的,它们分别是实模式下的初始化文件s e t u p s 和保护模式下的初始化文件h e a d s 。 而板级初始化和系统初始化则涉及到多个文件,其入口函数是在l i n u x i n i t m a i n c 中的 s t a r t 数。具体的分析在后面的章节将会具体给出。kemelot函 2 、h a i 在硬件相关设备驱动部分的功能 通用操作系统对设备管理的体系结构可以如图2 2 来描述。 用户进程 上t 设备无关软件( 文件系统) 上t 设备 i 设备服务子程序f 驱动 4 l 稗序 l 中断处理予程序i t 上 硬件设备 图2 - 2 设备管理系统层次结构 其中,设备无关部分主要是指由操作系统提供的设备管理机制,如在l i n u x 系统中 采用文件系统来管理设备,以提供如统一的接口,设备命名,设备保护,缓冲等等功能。 而硬件相关部分的设备驱动程序主要做对设备初始化。从设备中读取数据交给内核,数 据从内核送到设备,监测和处理设备出现的问题等等。有关l i n u x 设备驱动中的一些概 念,将在下面做出详细描述。 2 2 2l i n u x 内核层 7 第一= 章嵌入式l i n u x 的体系结构及核心分析 硬件无关的操作系统内核层也就是l i l 3 u x 内核层,该层发挥操作系统的核心功能, 实现文件系统、驱动程序、网络支持等很多功能,作为p c 机上应用比较成功的操作系 统l i n u x 的内核,在嵌入式应用中,l i n u x 内核必须进行必要的改良。以下将分别从操作 系统的进程管理、文件系统、内存管理和网络模块几个部分来分析它们。 图2 - 3l i n u x 内核的主要组成部分 1 进程管理部分 本部分是操作系统的核心所在,通常它在进行嵌入式研究时需要做如下改变: 1 ) 创建新进程。这部分内容在l i n u x 中,主要通过调用系统函数一- - f o r k 0 来实现。 f o r k 在系统进程表里面添加一个进程的数据结构,插入到系统的等待队列中,与父进程 一起接受o s 的调度,里面记录了有进程的所有信息,包括地址空间,子进程的地址空间 和父进程的是共享的。然而,根据特定的硬件环境需要对它的语义重新定义。如在i 3 8 6 系统中,它的语义与完全创建一个新进程的拷贝等价,即用它创建子进程后,父子进程 运行在不同的地址空间。而在u c l i n u x 中,由于硬件没有m m u ,而缺乏硬件的必要的数 据保护和完整的地址映射机制,故它的语义等价于v f o r k 0 。即父子进程运行在同一地址 空问。这里体现出在不同的硬件平台的限制下保持系统调用接口的语义完整性是困难 的。有关这些系统调用的选择问题是为了保持嵌入式应用的可移植性,在嵌入式l i n u x 领域己经制定了几个标准。其中,e l c 是由各大公司联合基于p o s i x 系列标准和l s b 2 0 ( l i n u xs t a n d a r ds a s h ) 而制定的。 8 第一章 嵌入式l i n u x 的体系结构及核心分析 2 1 调度进程运行。这一部分在l i n u x 下主要通过s c h e d u l e ( ) 函数和提供一些恰当的调 度时机来实现。然而,同时也牵扯到其他许多的内容,比如核心的可抢占性等等。对于 这一部分,更多的研究是在系统的实时调度性方面的研究,这旱不再赘述。 2 文件系统部分 本部分的研究和开发是非常活跃的一部分内容。而在l i n u x 系统中提供的v f s ( v i r t u a lf i l e s y s t e ms w i t c h ) 和l k m ( l o a d a h l el i n u xk e r n e lm o d u l e ) 机制为我们自己的文件 系统模块提供了必要的支持。接下来将着重描述嵌入式系统对文件系统的特殊要求: 1 ) 没有文件系统的嵌入式系统。有的嵌入式系统不需要文件系统,它把内核代码 和应用程序编译成一体固化在r o m 中。完全取消l i n u x 文件系统的研究牵扯至l j l i n u x 系统 的引导、初始化、进程和内核链接方式和文件系统模块的删除,甚至于对v f s 机制的代 码实现的删除等等。这方面的改造工作,有一定的工作量,但是其技术路线是明确的, 即我们可以利用核心线程的创建方法来把任务都创建在内核中一起来加载,根据这样的 路线理论上可以取消文件系统。 2 ) 嵌入式系统使用的特殊的存储设备的特殊要求,导致我们需要对原有文件系统 进行改良甚至重写。在嵌入式系统中常用的存储设备是f l a s h 存储设备,这种设备分为两 种:一种是n o rf l a s h 设备,如c f i 卡,另一种是n a n df l a s h 设备,如d i s k o n c h i p ,这 两种设备在结构和技术上都有较大的差别。而且,以前的文件系统开始就针对大容量硬 盘来设计,不能满足f l a s h 设备的要求。所以,在嵌入式l i n u x 研究中,人们专门为这样 的设备开发了一些嵌入式文件系统,比如f f s ( f l a s hf i l e s y s t e m ) 。同时由于嵌入式设备 的电源供应是不连续的,常常容易掉电,这对于有文件系统缓存的l i n u x 系统是一个很 大的问题,为了解决这一种问题,人们开发了嵌入式的日志文件系统j f f s 0 0 u m a lf i i e s y s t e m ) 。这些文件系统都存在一些可改良的地方,比如:目前t i n u x 上的j f f s 的文件信 息整理部分进行了对整块f l a s h 上锁的方法,这就大大影响了在此期间对f l a s h 的读写, 而事实上,这种整理可以归结到文件系统数据块的上锁上,当然,这种基于数据块上锁 的数据整理,需要一些好的策略来保证数据整理时不会对系统响应时间有很大的影响。 3 ) 更高安全性的文件系统开发,我们知道l i n u x 提供了一些系统级的文件系统安全 性,即在同一系统中要访问文件系统的中的信息必须用具有相应权限( s p 读( r ) 写( w ) 执行 ( x ) ) 的用户来访问。然而对于移动设备如p d a ,很难保证系统的单一性。最简单的,人 们可以通过一定的手段绕过原有系统的认证机制用其他同类系统的特权用户来访问用 户的秘密数据。如何解决这样的问题,一个方案是采用加密的文件系统,在这方面虽然 可用l o o p 设备做到一定的保密性,但是使用还是不方便,特别是移动设备中,使用的简 易性非常重要。所以,研究一种既方便又安全得文件系统是必要的,然而这牵扯到一系 列的技术和嵌入式系统的本身活动的限制,有待更进一步的研究和开发。 3 存储管理部分 这部分内容在许多体系结构中是相对成熟和稳定的,但是,针对嵌入式系统的特殊 性,其中可以进行的工作有: 1 ) 根据特定的硬件有无m m u ( 内存管理单元) 情况来作定制。比如基于三星 s 3 c 2 4 1 0 处理器的l i n u x ,l i n u x 仍然采用存储器的分页管理,系统在启动时把实际存储 9 第- 二章嵌入式l i n u x 的体系结构及核心分析 器进行分页。在加载应用程序时程序分页加载。但是出于没有m m u 管理,所以实际上 l i n u x 采用实存储器管理策略( r e a lm e m o r ym a n a g e m e n t ) ,这一点影
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- NBT 10980-2022 变电工程结算报告编制导则
- 广西南丹南方金属面试题及答案
- 2025年淮南中考英语试卷及答案
- 教育科技行业前瞻报告发布
- 公务员面试门票面试题及答案
- 恒力集团秋招题库及答案
- 公务员面试践行面试题及答案
- 贵州茅台校招面试题及答案
- 公务员考试水上芭蕾舞试题及答案
- 护士招聘考试全部题库及答案
- 肩周炎患者的护理课件
- 智能制造背景下的汽车焊接工艺优化与创新路径探索
- 群体伤患者的急救
- 2025-2030年中国农资流通行业市场现状供需分析及投资评估规划分析研究报告
- T/CGAS 026.2-2023瓶装液化石油气管理规范第2部分:平台建设
- 《电子技术基础》工学一体化-2.直流稳压电源的组装与调试教学活动策划表
- 2025民航招飞英语试题及答案
- 铁路建设项目土建标段隧道施工组织设计
- 大学生职业规划大赛《给排水科学与工程专业》生涯发展展示
- 护士的礼仪与行为规范
- 2025年中国石化市场产业链分析
评论
0/150
提交评论