(检测技术与自动化装置专业论文)嵌入式linux系统中cf卡驱动程序的设计.pdf_第1页
(检测技术与自动化装置专业论文)嵌入式linux系统中cf卡驱动程序的设计.pdf_第2页
(检测技术与自动化装置专业论文)嵌入式linux系统中cf卡驱动程序的设计.pdf_第3页
(检测技术与自动化装置专业论文)嵌入式linux系统中cf卡驱动程序的设计.pdf_第4页
(检测技术与自动化装置专业论文)嵌入式linux系统中cf卡驱动程序的设计.pdf_第5页
已阅读5页,还剩69页未读, 继续免费阅读

(检测技术与自动化装置专业论文)嵌入式linux系统中cf卡驱动程序的设计.pdf.pdf 免费下载

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

文档简介

西南交通大学硕士研究生学位论文第1 页 摘要 随着各种新技术的出现,人们对计算机的认识越来越深刻。计算正逐步走 进设备里面,计算机系统也从各种有形的外观变为无形。大到航天航空领域、 小到手中的p d a ,都移植入了计算机系统,人们把这样的一个系统叫做嵌入式 系统。嵌入式l i n u x 系统不仅继承了传统l i n u x 的许多优点,如易于开发,高 效,功能强大、稳定,易于扩充,免版费,开放源码等,而且对原有系统做了 大量的嵌入化改造,使其能够更好的适应嵌入式应用的需要。 嵌入式设备的各个特点限定了它的设备驱动程序必须定制,并且和嵌入式 操作系统以及应用程序完全绑定在一起构成一个不可分割的整体,因此,不同 的嵌入式产品在开发时都必须设计自己的设备驱动程序,虽然很多的嵌入式操 作系统都提供了驱动程序范例。但实际运行的驱动程序都必须针对具体硬件的 资源分配和某些特性之处进行修改,甚至重新设计。 本文侧重对基于a r m 9 的l i n u x 设备驱动程序的设计开发做了深入的研究和 实践。在嵌入式l i n u x 系统中,为了要利用c o m p a c t f l a s h 存储卡( 简称c f 卡) 作为存储设备,从c f 卡的硬件特性入手,在系统层基于c f 卡的m e m o r y 寻址访 问方式来改造c f 卡的低层驱动,并在应用层实时管理c f 卡的热插拔事务,最 终实现了一个利用c f 卡作为方便快捷的存储设备的嵌入式l i n u x 系统 关键词;嵌入式l i n u x ,设备驱动程序,a r m ,c f 卡 西南交通大学硕士研究生学位论文第1 i 页 a b s t r a c t w i mt h ee m e r g e n c eo fa l lk i n d so fn e wt e c h n i q u e ,p e o p l e sc o g n i t i o n so f c o m p u t e rb e c o m em o r ea n dm o r ed e e p t h ec a l c u l a t i o ni sw a l “n gi n t ot h e e q u i p m e n t sg r a d u a l ly a n dt h ec o m p u t e rs y s t e ma l s oc h a n g ei n t ot h et a i l g i b l ef r o m t h ee v e r yk i n do fi m m a t e r i a lf 她i e s f r o mt h ea v i a t i o na n dn a v i g a r i o nr e 萄o nt o t h ep d ao no u rh a l l d sa r ea l lt r a n s p l a l l ti n t ot h ec o m p u t e rs y s t e m ,、v ec a l l e dt h i s k i n do fs y s t e ma se m b e d d e ds y s t e m ,i ti sa i le m c i e c y ,l i t t l eo c c u p a n c ya n dc h e a p s y s t e m l i n u xs y s t e mi sn o to n l yi n h e r i tt h et r a d i t i o n a l “n u x ,s u c ha st h ee a s yt 0 d e v e l o p m e n t ,e 街c i e n t l y t h ef 妇c t i o ni ss t r o n ga n db 嘻s t a b l e ,f r e e ,a n do p e n s o u r c e ,e t c b u ta l s od i dm a n ye m b e d d e da l t e r a t i o nt om a k ei ta d 印tt ot h en e e do f t h ea p p l i c a t i o ni ne m b e d d e ds y s t e mb e t t e l e v e r yc h a r a c t e r i s t i c so ft h ee m b e d d e dd e v i c el i m i tt h a ti t sd r i v e rm u s t t a i l o r 卸dw i t ht h ee m b e d d e ds y s t e ma n d 印p l i c a t i o np r o g r 姗f u l lb i n d e di n t oa w h o l ep o r t i o n s 0d i f f 毫r e n te m b e d d e dp r o d u c t sm u s td e s i g nt h e i ro w nd r i v e r s a l t h o u g h ,m a i l ye m b e d d e do p e r a t i n gs y s t e mp r o v i d e dd r i v e r se x a m p l e b u t w h e nw er u nt h ed r i v e r w em u s td os o m em o d i n c a t i o n s ,e v e n r e d e s i g n , a c c o r d i n gt ot h eh a r d w a r e ss p e c i a l i t y i nm yt h e s i s ,m ym a j o rj o bi sd os o m er e s e a r c ha i l d p r a c t i c ei nl i n u x d e v i c ec l r i v e r sd e s i g na n dd e v e l o p m i ;l l t i no r d e rt ou s et h ec fc a r da sas t o r a g e d e v i c ei nt h ee m b e d d e dl i n u xs y s t e m ,t h eh a r d w a r ec h a r a c t e r i s t i c so ft h ec fc a r d i sn r s ti n t r o d u c e d ,a n dt h e nt h el o wl e v e li i r i v e ro ft h ec fc a f di sr e b u i l db a s e d 0 nt h em e m o r ya d d r e s s i n gm o d ei nt h es y s t e ml a y e ra n da l s oar e a l - t i m e m a i l a g e m e m t ot h eh o tp l u ga f f a i r so ft h ec fc a r di sm a d ei nt h ea p p l i c a t i o nl a y e r f i n a l l y ,a ne m b e d d e dl i n u xs y s t e mi sr e a l i z e d ,w h i c hu s e sm ec fc a r da sa c o n v e n i e ma n dq u i c ks t o r a g ed e v i c e k e yw o r d s :e m b e d d e dl i n u x ,d c v i c edr i v e ,a r m ,c fc a r d 西南交通大学硕士研究生学位论文第1 页 第1 章概述 在以计算机技术、通讯技术相结合的信息时代的快速发展和互联网的广 泛应用的形势下,3 c ( 通信、计算机、消费电子技术) 合一的趋势己经形成, 人们对信息的需求越来越大,对获取信息速度和便捷性的要求也越来越高, 传统媒体已无法满足这一要求,虽然互联网的兴起和发展为人们获取和处理 信息提供了极大的方便,但是计算机的技术性强、价格昂贵,又阻碍了人们 对互联网的应用,信息技术应用市场迫切需要一种既便宜又容易操作的产品, 其结果必然就是将计算机工业的中心从计算产品转移到信息产品,从而出现 信息家电的概念。 从字面意义上来讲,信息家电就是指信息产品及其技术之间的一个融合 问题,它包括:机顶盒、w e b 游戏机、w e b t v 、w e b p h o n e ,还有掌上电 脑、手持p c 、可穿戴p c 等所有能通过网络系统交互信息的消费类电子产品, 从长远来看,电冰箱、洗衣机、微波炉等植入数字网络技术也是未来信息家 电十分重要的发展方向。总之,随着信息电子技术的不断发展,信息家电家 族将不断扩大,它横跨信息技术领域和家电领域,逐渐模糊了原本径渭分明 的电脑、通讯、家电的市场界限,官将成为未来发展的强有力的技术推动, 将取代传统家电,成为市场主流。 分析其技术实质就是从现有的传统个人计算机及移动通讯设备中剥离出 一些常用的功能,再与数字技术和网络技术紧密结合,使之以一种更趋于简 单精巧的分解形式渗入到诸多的实体中,将电脑和家电设备完美地融为一体, 但是它不管在硬件的性能、体积方面还是在软件功能、通用性等方面均与传 统的个人计算机有很大的不同,严格来说它属于计算机系统的一个重要分支 嵌入式系统,下面将针对嵌入式系统进行简单的介绍。 1 1 计算机工业分类 通常计算机分类按照计算机的体系结构、运算速度、结构规模、适用领 域等,可分为大型计算机、中型机、小型机和微计算机,并以此来组织学科 和产业分工,这种分类沿袭了约4 0 年。近1 0 年来随着计算机技术的迅速发 展,实际情况产生了根本性的变化,例如7 0 年代末8 0 年代初定义的微计算 机演变出来的个人计算机( p c ) ,如今己经占据了全球计算机工业的9 0 市场, 西南交通大学硕士研究生学位论文第2 页 并且其处理速度也超过了当年大、中型计算机的定义。 随着计算机技术和产品对其它行业的广泛渗透,以应用为中心的分类方 法变得更为切合实际,也就是按计算机的嵌入式应用和非嵌入式应用将其分 为嵌入式计算机和通用计算机。通用计算机具有计算机的标准形态,通过装 配不同的应用软件,以类同面目出现并应用在社会的各个方面,其典型产品 为p c ;而嵌入式计算机则是以嵌入式系统的形式隐藏在各种装置、产品和系 统中。 今天嵌入式系统带来的工业年产值己超过了1 万亿美元,1 9 9 7 年来自美 国嵌入式系统大会( e m b e d d e ds y s t e mc o n f e r e n c e ) 的报告指出,未来5 年仅基 于嵌入式计算机系统的全数字电视产品,就将在美国产生一个每年1 5 0 0 亿美 元的新市场。美国汽车大王福特公司的高级经理也曾宣称,“福特出售的计 算能力己超过了i b m ”,由此可以想见嵌入式计算机工业的规模和广度。美 国著名未来学家尼葛洛庞帝9 9 年1 月访华时预言,4 5 年后嵌入式智能( 电脑) 工具将是p c 和因特网之后最伟大的发明。 1 2 嵌入式系统的定义 嵌入式系统是以应用为中心、以计算机技术为基础、软件硬件可裁剪、 适应应用系统,对功能、可靠性、成本、体积、功耗严格要求的专用计算机 系统,它将操作系统和功能软件集成于计算机硬件系统之中,简单的说就是 系统的应用软件与系统的硬件一体化,类似于b 1 0 s 的工作方式,具有软件 代码小,高度自动化,响应速度快等特点。特别适合于要求实时的和多任务 的体系。嵌入式系统是将先进的计算机技术、半导体技术和电子技术和各个 行业的具体应用相结合后的产物。嵌入式系统的结构如图1 1 所示i l d 】: 综观嵌入式技术的发展,大致经历了以下4 个阶段: 第一阶段是以单芯片为核心的可编程控制器形式的系统,同时具有与 监测、伺服、指示设备相配合的功能。这种系统大部分应用于一些专业性极 强的工业控制系统中,一般没有操作系统的支持,通过汇编语占编程对系统 进行直接控制,运行结束后清除内存。这一阶段系统的主要特点是:系统结 构和功能都相对单一,处理效率较低,存储容量较小,几乎没有用户接口。 由于这种嵌入式系统使用简便、价格很低,以前在国内工业领域应用较为普 遍,但是已经远远不能适应高效的、需要大容量存储介质的现代化工业控制 和新兴的信息家电等领域的需求。 西南交通大学硕士研究生学位论文第3 页 幽1 1 嵌入式系统结构图 第二阶段是以嵌入式c p u 为基础、以简单操作系统为核心的嵌入式 系统。这一阶段系统的主要特点是:c p u 种类繁多,通用性比较弱;系统开 销小,效率高:操作系统具有一定的兼容性和扩展性;应用软件较专业,用 户界面不够友好:系统主要用来控制系统负载以及监控应用程序运行。 第三阶段是以嵌入式操作系统为标志的嵌入式系统。这一阶段系统 的主要特点是:嵌入式操作系统能运行于各种不同类型的微处理器上,兼容 性好;操作系统内核精小、效率高,并且具有高度的模块化和扩展性;具备 文件和目录管理、设备支持、多任务、网络支持、图形窗口以及用户界面等 功能;具有大量的应用程序接口( a p i ) ,开发应用程序简单:嵌入式应用软件 丰富。 第四阶段是以基于i m e m e t 为标志的嵌入式系统,这是一个正在迅速 发展的阶段。目前大多数嵌入式系统还孤立于i n t e m e t 之外,但随着i n t e m e t 的发展以及i n t e r n e t 技术与信息家电、工业控制技术等结合日益密切,嵌入 式设备与i n t e m e t 的结合将代表着嵌入式技术的真正未来。 1 3 嵌入式系统的技术特点和应用前景 嵌入式系统主要由嵌入式处理器、相关支撑硬件和嵌入式软件系统组成, 它是集软硬件于一体的可独立工作的“器件”。嵌入式处理器主要由一个单片 机或微控制器( m c u ) 组成。而这些嵌入式c p u 目前多是8 位和1 6 位的,与 3 2 位或6 4 位的高性能处理器相比,具有很强的经济性和现实性,同时对嵌 西南交通大学硕士研究生学位论文第4 页 入式处理器的功耗、体积、成本、可靠性、速度、处理能力和电磁兼容性等 方面的要求比较严格,嵌入式系统的硬件都必须高效率地设计,量体裁衣、 去除冗余,力争在同样的硅片面积上实现更高的性能,这样才能提高竞争力。 相关支撑硬件包括显示卡、存储介质( r o m 和r a m 等) 、通讯设备、i c 卡或 信用卡的读取设备等。嵌入式系统有别于一般的计算机处理系统,它不具备 像硬盘那样大容量的存储介质,而大多使用闪存( f l a s hm e m o r y ) 作为存储介 质1 4 ,5 1 。 由于嵌入式系统和具体的应用有机结合在一起,它的升级换代也是和具 体产品同步进行的,因此嵌入式系统产品一旦进入市场,具有较长的生命周 期。嵌入式系统中的软件,一般都固定在只读存储器中,而不是以磁盘为载 体可以随意更换,所以嵌入式系统的应用软件生命周期也和嵌入式产品一样 长。另外各个行业的应用系统和产品,与通用计算机软件不同,很少发生突 然性的跳跃,嵌入式系统中的软件也因此更强调可继承性和技术衔接性,发 展比较稳定。嵌入式处理器的发展也体现出稳定性,一个体系一般要存在8 1 0 年的时间。一个体系结构及其相关的片上外设、开发工具、库函数、嵌入式 应用是一套复杂的知识系统,用户和半导体厂商都不会轻易放弃一种处理器。 嵌入式软件是实现嵌入式系统功能的关键,它包括与硬件相关的底层软 件、操作系统、图形界面、通讯协议、数据库系统、标准化浏览器和应用软 件等,对它的要求也和通用计算机不同: 软件要求固态化存储 为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存 储器芯片或单片机本身中,而不是存储于磁盘等载体中。 软件代码质量、可靠性要求高 尽管半导体技术的发展使处理器速度不断提高、片上存储器容量不断增 加,但在大多数应用中,存储空间仍然是宝贵的,还存在实时性的要求。为 此要求程序编写和编译工具的质量要高,以减少程序二进制代码长度、提高 执行速度。 系统软件的高实时性是基本要求 在多任务嵌入式系统,对重要性各不相同的任务进行统筹兼顾的合理调 度是保证每个任务及时执行的关键,单纯通过提高处理器速度是无法完成和 没有效率的,这种任务调度只能由优化编写的系统软件来完成,因此系统软 件的高实时性是基本要求。 西南交通大学硕士研究生学位论文第5 页 总体看来,嵌入式系统具有便利灵活、性能价格比高、嵌入性强等特点, 可以嵌入到现有任何信息家电和工业控制系统中。从软件角度来看,嵌入式 系统具有不可修改性、系统所需配置要求较低、系统专业性和实时性较强等 特点。 鉴于嵌入式系统的种种特点,可以预见在即将到来的后p c 时代,嵌入 式系统将发挥更大的作用,它将拉近人与计算机的距离,形成一个人机和谐 的工作与生活环境。嵌入式系统在传统的工业控制和商业管理领域已经具有 广泛的应用空间,如智能工控设备、p o s a t m 机、i c 卡等:在家庭领域更具 有广泛的应用潜力,如机顶盒、数字电视、w 曲t v 、网络冰箱、网络空调等 众多消费类和医疗保健类电予设备等:此外还有在媒体手机、袖珍电脑、掌上 电脑、车载导航器等方面应用,将极大地推动嵌入式技术深入到生活和工作 的方方面面。它在娱乐、军事方面的应用潜力也是巨大的。而且是有目共睹 的。 1 4c f 卡概述 纵观最近几年,嵌入式系统的广泛应用、嵌入式处理器蓬勃发展,在通 信、航空航天、医疗设备、消费类电子产品等领域一展身手。嵌入式处理器 的外围设备也曰新月异。例如记忆棒、u s b 口、c f 卡等【5 】。 由于c f 卡具有携带方便、易于升级、存储量大、抗震性好等优点,应 用范围越来越广。1 9 9 5 年l o 月,s a n d i s k 、柯达、卡西欧、惠普、摩托罗 拉、佳能等1 2 5 家厂商发起成立了c o m p a c t f i a s h 协会致力于制定新一代的 基于r a m 和r o m 技术的固态非易失的存储介质标准c f 卡标准,使不 同厂家开发的c f 卡及其接口器件可以互相兼容。目前,c f 卡标准已有1 4 版 本,容量从最早的2 m 字节到现今的l g 字节。 同时,c f 卡遵从a 1 r a i d e 工业设计标准,连接装置与p c m c i a 卡相似, 只不过c f 卡是5 0 引脚( p c m c i a 卡6 8 引脚) ,可以很容易插入无源6 8 引 脚t y p e l l 适配卡并完全符合p c m c i a 电力和机械接口规格。另外,c f 卡的兼 容性佳,不仅同时支持3 5 v 和5 v 的电压,而且不同的c f 卡都可以用单一 的机构读写,特别是c f 卡升级换代时也可以保证旧设备的兼容性。而纯电 子运动的c f 卡耗电量很低,仅为i b m 微型硬盘的5 。 本文欲从硬件和软件角度出发,介绍c f 卡在基于a r m 嵌入式系统中 的设计和应用。 西南交通大学硕士研究生学位论文第6 页 1 5 课题的目的和内容 嵌入式操作系统作为嵌入式系统中的核心,是系统功能的外在体现,它控 制着整个系统的所有资源并提供开发应用程序的基础,占据着非常重要的地位, 嵌入式设备的各个特点限定了它的设备驱动程序必须定制,并且和嵌入式操作 系统以及应用程序完全绑定在一起构成一个不可分割的整体。因此,不同的嵌 入式产品在开发时都必须设计自己的设各驱动程序,结合我们的实际情况,本 课题将主要围绕此部分进行,内容包括两部分: 设计已有开发板基于a r m 9 的s 3 c 2 4 1 0 中c f 卡与a r m 9 的接口电路 编写l i n u x 嵌入式系统下c f 的驱动程序 西南交通大学硕士研究生学位论文第7 页 第2 章嵌入式l i n u x 操作系统 嵌入式操作系统是操作系统领域的一个重要分支。由于l i n u x 的独特优 势,使越来越多的企业和科研机构把目光转向嵌入式l i n u x 的开发和研究上。 嵌入式l i n u x 操作系统是嵌入式系统当中很重要的部分之一,是联系应用软 件和硬件设备的桥梁。它既要满足一些特殊的应用场合。实现一定的功能, 还需满足可靠性,体积,功耗以及成本等诸多的条件。 2 1 嵌入式l n u x 的特性 嵌入式系统通常对实时性、内存体积、资源有特定的要求,下面介绍 l i n u x 在这些方面的技术可行性【5 _ 7 】。 2 1 1 实时特性 简单的说,嵌入式系统常被错误的划分为实时系统,但其实它们中大多 数并不要求具备实时性。实时性是相对的,硬实时性是能在极短的时间( 微秒 级) 内响应,并以某种确定的方式去处理事件。 对于大多数的嵌入式系统来说,由l 到5 毫秒的实时响应时间就足够了。 l i n u x 内核对实时进程的调度提供了一定程度的支持能满足大部分软实时, 无法实现硬实时,不过采用r b l i n u x 能很好的解决该问题。 2 1 2 内存占用 l i n u x 的内核是长驻内存的,在简单的系统中,当启动后,内核和各种 应用进程均驻留在内存中,但也可以利用l i n u x 动态装卸程序的能力来节省 r a m :发应用程序只需在运行时,才临时装载在内存中,一旦运行结束,就 释放捧占用的资源。 典型的嵌入式系统都有闪存( f l a s hm e m o r y ) 闲存可被组织成一个 文件系统( 用闪存的驱动程序作为从闪存到文件系统的接口) ,所有应用程序 以文件的形式被存放在闪存中,并且必要的时候被装载到闪存中。另外,l i n u x 还可以通过以下的机制节省r a m : 1 ) 系统启动后,释放那些为启动而占用了r a m 空间的代码。 2 ) l k m 可动态地装卸驱动程序,只装载那些正在使用的驱动软件。 2 ) l k m 可动态地装卸驱动程序,只装载那些正在使用的驱动软件。 西南交通大学硕士研究生学位论文第8 页 2 1 3 文件系统 使用v f s 管理各文件系统 l i n u x 中的v f s ( v i r t i l a lf i l es y s t e ms w i t c h ) 是一种开放的接口机制, 使l i n u x 能够支持大部分的文件系统,如e x t 2 ,m s d o s ,m i n i x ,v f a t ,n t f s i s 0 9 6 6 0 等,并允许这些文件系统问的互相访问。其中e x t 2 是l i n u x 上的 专用标准文件系统,性能强大,通常被编译进内核作为根文件系统,根文件 系统不可动态加载。 1 ) b u f 诧r c a c h e 提高速度 为了减少磁盘i o 操作,l i n u x 内核在文件的物理数据块调入内存后,使 用块b u 舵rc a c h e 管理这些数据,当需要访问某个数据块时,首先根据块号 和所在设备号在b u 骶rc a c h e 中查找,只有不存在时才做实际的i o 操作。 21b u f f e rc a c h e 带来的问题 由于l i n u x 在进行磁盘i o 时不采用“w i t et h r o u g h ”方式,也就是说,当 把数据写入文件时,l i n u x 并不真砥写入设备,而是把数据先写入b u f r e r c a c h e 中,等在以后统一写入。统一写入的工作由k f l u s h d 内核线程和u p d a t e 守护 进程负责在适当的时机完成。这就可能出现这样的情况:写磁盘命令己返回, 但实际的写操作还未开始,如果这时由于某种原因而掉电,数据将全部丢失。 另外,同样的原因甚至还能导致整个系统的崩溃,即整个文件系统被破 坏。这个问题的部分解决可使用l i n u x 提供的文件系统检查和修复工具f s c k 。 在嵌入式系统里,f s c k 本身占用的存储空间则是一个代价。 文件系统和存储介质分配 文件系统可建立在一个传统的磁盘上,也可建立在f l a s hm e m o r y 中。f l a s h 内存被组织成很多小块的扇区,把其中一个作为引导块,即此处 存放c p u 上电后运行的第一个程序:引导程序,并利用余下的块建立一个文 件系统,l i n u x 的内核映像就可以被引导程序从f l a s h 中加载到r a m 中运 行。 一般不采用闪存作内存交换区( s w a p ) ,因为闪存有写次数限制,在对它 写次数达到一定的值后( 一般1 0 0 0 到4 0 0 ,0 0 0 次) 将不能在进行闪存的写入。 在嵌入式系统中可这样安排: 1 ) f l a s h 存放只读文件( 如内核映像) ; 2 ) 速度很快的r a m 中运行程序: 3 ) 基于l i n u x 的嵌入式系统还需要一个r a m d i s k 来建立根文件系统。 西南交通大学硕士研究生学位论文第9 页 在一个基于l i n u x 的嵌入式系统中,通常应有这样的配置: 1 ) 3 2 位嵌入式c p u ; 2 ) 2 6 4 兆的r a m ; 3 ) 3 2 兆的f l a s h 或r o m 或e p r o m 。 2 2 嵌入式l n u x 系统的优势 现在市面上有各种各样的嵌入式操作系统。在繁多的嵌入式操作系统中, 很难说出那一种嵌入式操作系统就一定优于其它的嵌入式操作系统。但这之 中,l i n u x 操作系统以其自身的特色和优势成为了嵌入式操作系统研究中的 新特点l 。 2 2 1 充分满足硬件设备的实时性要求 严格要求的实时性的决定因素与中断例程本身和内核中的其他驱动程序 有关:而影响延迟时间主要受中断的优先级和其他进程暂时也关闭中断响应 的影响。因此管理和驱动中断的机制必须保证实时要求,大多数嵌入式系统 并不具备严格的实时性,比如w i n d o w s c e 基本上不具备实时性的特点。但 是,嵌入式l i n u x 可以很好的满足实时性要求。 2 2 2 具有广泛的适应性和高度的可靠性 和其他运行于p c 的系统相比,l i n u x 在适应和稳定方面性能是非常突出 的。而嵌入式l i n u x 也是如此。 嵌入式l i n u x 不仅支持x 8 6 芯片,丽旦是个垮平台的系统,到口前为 止,可以支持二,三十种c p u 。很多c p u 包括家电业的芯片,都开始做l i n u x 的平台移植工作。也就是说,如果今天采用l i n u x 内核的结构在网络方面是 非常完整的。提供了包括十兆,百兆和千兆的以太网络以及无限网络。 此外,高可靠性是嵌入式l i n u x 领先于其他嵌入式操作系统最明显的地 方。 2 2 _ 3 具有小巧的功能完善的内核 一般来说,需要使用嵌入式操作系统的硬件体积都十分有限,不能像一 般的计算机那样采用海量存储器来进行数据存储。一般是采用软件固化的方 法,将程序和操作系统“嵌入”到整个产品里面。在这个技术中减少操作系统 西南交通大学硕士研究生学位论文第1 0 页 的体积是关键。不能想象在一个紧凑的硬件设备外面再接一个通用的硬盘或 是打算将几十兆上百兆的操作系统输入到普通的r o m 或r a m 里面去。同时, 如果为了追求内核的体积而将一些必要的功能去掉,则不能完全胜任各种不 同的任务。因此,对嵌入式系统来说功能和体积是一对互斥事件。嵌入式 l i n u x 除了本身体积较小以外,还保留了l i n u x 操作系统中非常有特色的一 点:用户可以自己裁减内核。用户完全可以根据不同的任务来选定操作内核 的模块,而将不用的部分去掉,减少体积,从根本上解决了体积和功能的矛 盾 1 们。 2 3 嵌入式l i n u x 系统的构成 一个特定的嵌入l i n u x 操作系统可以是,从一个只有启动程序,内存管 理,进程管理,设备管理,定时器服务等的小型内核系统,到能支持各种文 件系统和多种网络服务的完整服务器【1 1 ,1 2 1 。 2 3 1 最小的l i n u x 系统 1 ) 引导程序,完成硬件初始化和内核加载。 2 ) 最小化的l i n u ) ( 内核,配置成仅仅支持内存,进程管理和定时器服务 的微内核。 3 ) i n i t 程序,作为初试用户进程。 2 3 2 基本的乙i n u x 系统 基本的l i n u x 系统的形成需要在最小的l i n u x 系统的基础上再加上: 1 ) 硬件设备的驱动程序,包括s e r i a lc o n s o l ep o r td r i v e r 等。 2 ) 一个或几个应用进程,提供必要的应用功能,实现具体的应用目标。 2 3 3 实用的l i n u x 系统 实用l i n u x 系统的形成需要在基本“n u x 系统的基础上再加上: 1 ) 根文件系统。基于f l a s h 或r o m 或r a m 建立。 2 ) 网络能力。如支持t c p i p 协议栈。 2 4 嵌入式l n u x 面临的挑战 目前,嵌入式l i n u x 系统开发正在蓬勃兴起,并且己经开辟了很大的市 西南交通大学硕士研究生学位论文第”页 场,除了一些传统的l i n u x 公司,像r e d h a t ,v a l 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 ,还需要从以下几个方面进行努力。 2 4 1 扩充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 内核,从功能上扩充l i n u x 的实 时处理和控制系统。如嵌入式系统r t - 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 本身的任务,实时任务不同于“n u x 普通进程,它是以l i n u x 的内核模块( ( l o a d a b i ek e m e lm o d u l el k m ) 的形式存 在的,需要运行实时任务的时候,将这个实时任务的内核模块插入到内核中 去,实时任务和l i n u x 一般进程之间的通信通过共享内存或者f i f o 通道来 实现f 1 3 1 6 ,i7 i 。 2 4 2 改变l i n u x 内核的体系结构 l i n u x 的内核体系采用的是m o n o l i t h i c ,在这种体系结构中,内核的所有 部分都集中在一起,而且所有的部件在一起编译连接。这样虽然能使系统的 各部分自接沟通,有效地缩短任务之间的切换时间,提高了系统的响应速度, 实时性好并提高了c p u 的利用率,但在系统比较大的时候体积也比较大,与 嵌入式系统容量小、资源有限的特点不符合。而另外种内核体系结构 m i c r o k e m e l ,在内核中只包括了一些基本的内核功能如创建和删除任务、任 西南交通大学硕士研究生学位论文第12 页 务调度、内存管理和中断处理等部分,而文件系统、网络协议栈等部分都是 在用户内存空间运行。这种结构虽然执行效率不如m o n o l i t h i c 内核,但大大 减小了内核的体积,同时也极大地方便了整个系统的升级、维护和移植,因 此更能满足嵌入式系统的特点需要。为此,为使嵌入式“n u x 的应用更加广 泛,可以考虑将l i n u x 目前的m o n o l i t h i c 内核结构中的部分结构改造成 m i c r o k e m e l 体系结构。通过这种折中办法,可以使得到的l i n u x 既具有很好 的实时性,又能满足嵌入式系统体积小的要求【1 4 ,”】。 2 4 3 完善l i n u x 的集成开发环境 提供完整的集成开发环境是每一个嵌入式系统开发人员所期待的。一个 完整的嵌入式系统的集成开发环境一般需要提供的上具是编译,连接器、内核 调试,跟踪器和集成图形界面开发平台。其中的集成图形界面开发平台包括编 辑器、调试器、软件仿真器和监视器等。在“n u x 系统中,具有功能强大的 g c c 编译器工具链,使用了基于g n u 的调试器g d b 的远程调试功能,一般由 一台客户机运行调试程序调试宿主机运行的操作系统内核:在使用远程开发 时还可以使用交叉平台的方式,如在、聃n d o w s 平台下的调试跟踪器对l i n u x 的宿主系统做调试。但是,l i n u x 在基于图形界面的特定系统定制平台的研 究上,与w i n d o w s 操作系统相比还存在差距。因此,要使嵌入式l i n u x 在嵌 入式操作系统领域中的优势更加明显,整体集成开发环境还有待提高和完善 【1 8 ,l9 1 磷南交遘大学焱士研究生学僚论文第13 炎 第3 章l i n u x 设备驱动程序的原理及设计 随饕l i n 毽x 系绫越来越流行,入翻绫霉l i 矬毽x 凌冬驱动疆痔熬兴趣氇在 稳步增长。没有设备鞭动程序,就不会有功能究艇的运行系统。尽管每个驱 动程序都不一样,具有设备的特殊性,但是这些设备驱动程序的设计原理、 基本技术技巧都是一样的。 设备鞭动程寒在毛l 珏骶麦棱孛掺演着特豫豹角色。德翻燕一个令独巍瓣 “黑盒子”,使某个特定的硬件响应一个定义良好的内部编程接口,同时完龛 隐蔽了设铸的工作细节。用户操作通过一组标准化的调用完成,而这些调用 是和特定嬲驱动程序茏荚蛇。将这毖调眉映射到佟瘸予实环磺传的设备特定 簿攥律上,翻是设备驱动程痔豹援务。这个编糕接叠麓够侵得驱动程彦独立 于内核的熊他部分而建立,在需要的时候可以在运行时“插入”内核。这种模 块化的特点,使得l i n u x 驱动程序的编写简单化m 2 1 ,2 3 1 。 3 。1l i n u 系统环境编程及内核分析 设备驱动程序魑内核的一部分,它完成以下的功能:对设铸初始化和释 放,包掇识别设备、注船设备、创建设备文件、分酝资源等;实瑷对设器文 彳牮豹各种操作,为撩作系统内核提供对设备进行操作的方法,甑括打开和荚 澳设螯、对设套避纷读写鞠控铡等搡襻;孛凝处遴,毪捂谈剐串凝、浚糕疆 眠进程等。编写驱动程序,实际上也就是编写l i n u x 内核的一部分。所以在 l 泌u x 系绞环境下懿缡程互佟蹑l i 狂u x 涎嚣麓壤剿,笼其怒内核壤铡楚密切 相关的。但遗撼的魑,现肖的书簸资料基本上都是把这丽糟分”来的。本文 谈图采溺一拳孛耨瓣霸瘦,懿l i n 碱环境下的编疆方法、按巧跟毛i n u x 肉孩税 制结合起来起讨论和分析,以求能用尽可能少的篇幅把这两个关键问题做 一令麓攀戆獠摇。鑫予本文致力予介缝嵌入式l i 器娃x 设备辍动羧序豹设计并 发,因此这一小节将分橱豹重点放在岛嵌入式系统蠢关的装手阏题上。 3 ,1 1 进程机制和管理 进程管理功能负责创建和撤销进程以及处理它们和外部世界的连接( 输 入和输出) 。不同进程之间的通信( 通过信号、管道或进程间通信原语) 是整个 系统的基本功能,因此也由内核处理。除此之外,控制进程如何共享c p u 的 调度程序也是进程管理的一部分。概括地说,内核进程管理活动就是在单个 西南交通大学硕士研究生学位论文第1 4 页 或多个c p u 上实现多个进程的抽象。理解嵌入式系统的进程管理,对于在该 系统中创建进程、进行多线程编程十分有利。 l i n u x 系统是分时多用户系统,它具有多进程系统的特点,c p u 按时间 片分配给各个用户使用,每个进程都有自己的运行环境,使得c p u 在做进程 切换的时候能够保存进程当前的执行状态。 l i n u ) 进程的状态共有6 种t a s kr u n n i n g ,a s ki n t e r r u p t i b l e , t a s k s t o p p e d ,t a s k u n i n t e r r u p t i b l e ,t a s k z o m b i l e , t a s k - w a p p i n g 。 当c p u 运行的进程是c u r r e n t 进程,但是该进程由于申请资源、进行工o 操作、收到信号等多种原因,而不得不放弃c p u 处于等待状态,此时调度进 程会根据优先权等因素选择合适的进程分配c p u 。 处于等待状态的进程,会继续等待条件的满足( 如获得申请的资源,收到 信号等等) ,一旦条件满足,则进程状态将变为t a s kr u n n i n g 并被挂入运 行队列,从而有机会分配到c p u 继续执行下去。 处于运行状态的进程收到跟踪调试信号( s i g s t o p ) 或者调用跟踪的系统 调用函数后,通过设置p f _ p t r a c e d 或p ft r a c e s y s 信号,将进程的状 态改变为1 a s ks t o p p e d 状态。 处于暂停状态的进程在收到s i g k i l l 或s k g c 0 n t 信号以后,会被唤 醒,进程的状态将改变为t a s kr u n n i n g 。 最终进程的结束是通过调用d 0 e x i t 释放所占用的资源( 除p c b 结构之 外) ,并且该进程的状态切换到t a s k z o m b i e ,等待s y sw a i t 释放处于 z o m b i e 状态的子进程p c b 。 3 1 2 内存管理机制 内存是计算机的主要资源之一,用来管理内存的策略是决定系统性能的 一个关键因素。内存管理是操作系统的核心,它负责管理计算机系统的存储 器。同时内存管理必须要克服物理内存的局限,使用户进程在透明的方式下 获得比实际内存大的多的内存空间。为此l i n u x 采用了虚拟内存的技术,成 功的实现了以虚拟内存为核心的内存管理策略,具有强大的分页机制,公平 的交换方式,各类有效的高速缓存j 以及以页保护为主的保护措施等等。内 存管理的目的是为了尽可能的方便用户。同时l i n u x 系统通过对用户进程虚 拟内存的有效管理,做到了虚拟内存对一般用户的l i n u x 程序员的透明。 西南交通大学硕士研究生学位论文第15 页 l i n u x 的内存管理采用了页式管理,使用多级页表,动态地址转换机制 与主存辅存共同实现了虚拟内存;每个用户进程拥有4 g b 的虚拟地址空间, 进程在运行的过程中可以动态的浮动和扩展。 “n u x 系统不仅有独特豹虚拟内存管理机制,还有其独特的实现技术。 这些技术使得l i n u x 系统的内存管理具有自己的特色,例如页面交换、页面 缓存等等【2 4 1 2 5 ,2 6 1 。 3 1 3 文件系统及设备驱动程序 l i n u x 在很大程度上依赖于文件系统的概念。文件系统是操作系统的核 心部件之一,u n i x 中的每个对象几乎都可以被看作文件。内核在没有结构的 硬件上构造结构化的文件系统,所构造的文件系统抽象在整个系统中广泛使 用【2 7 ,2 8 ,2 9 1 。 l i n u x 下采用的是虚拟的文件系统v f s ( m i a lf i l e s y s t e ms w i t c h ) 。说他 虚拟,是因为所有的数据结构都是在运行以后才建立,并在卸载时删除,而 在磁盘上并没有存储这些数据结构。l i n u x 操作系统不仅支持多个不同的文 件系统如e x t 2 ,m s d o s ,v f a t 等等,还支持这些文件系统相互间的访问, 每种文件系统都有自己的组织结构和文件操作函数,相互之间差别很大。那 么l i n u x 对于上述文件系统的支持是通过虚拟文件系统( v f s ) 的引入而实现 的,如图3 1 所示: 图3 1v f s 与具体文件系统的关系示意图 虚拟文件系统的所有数据结构都是在系统运行之后建立的,在系统卸载 的时候删除。磁盘上没有虚拟文件系统的数据结构,它并不是一个真正的文 西南交通大学硕士研究生学位论文第16 页 件系统。要想让系统工作,必须要有像e x t 2 这样的逻辑文件系统,并且让虚 拟文件系统和逻辑文件系统与l i n u x 内核进行通信有一致的接口。 v f s 通过提供一个统一的接口( 实际上就是f i l eo p e r a t i o n 数据结构,请 参考相关的文献) ,一个具体的文件系统想被l i n u x 支持,就必须按照这个接 口编写操作函数,而将自己的细节对内核其他的子系统隐藏起来。总之,v f s 的功能包括: ( 1 ) 记录可用的文件系统的类型; ( 2 ) 将设备同对应的文件系统联系起来: ( 3 ) 处理一些面向文件的通用操作: ( 4 ) 涉及到针对文件系统的操作时,v f s 把它们映射到与控制文件、 目录、以及i n o d e 相关的逻辑文件系统。 几乎每个系统操作最终都会映射到物理设备上。除了处理器、内存以

温馨提示

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

评论

0/150

提交评论