已阅读5页,还剩58页未读, 继续免费阅读
(计算机应用技术专业论文)嵌入式linux设备驱动程序和引导程序的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 本论文工作的硬件环境是以x s c a l ep x a 2 5 5 为处理器的嵌入式开发板,操作 系统采用的是源代码开放的嵌入式l i n u x 。论文在研究了嵌入式操作系统特点和 删处理器结构的基础上,合适地利用芯片硬件资源,编程实现系统板及其几个 接口的功能,发挥了嵌入式操作系统可裁剪性和对硬件接口的管理功能。 论文在分析了l i n u x 内核的基础上,研究了嵌入式l i l l u x 设备驱动程序的特点、 分类、层次结构、框架、功能和特性等,讨论了与设备驱动程序有关的l i n u x 下的 中断机制和相关函数,对l i l l u ) 【下的设备驱动程序设计的基本原理和设计过程进行 了详细的分析。实现了该嵌入式开发板的f 缸n cb u 丘旨驱动程序、触摸屏驱动程序 和u s b 驱动程序。 本论文的另一个工作是引导程序的的设计,在详细分析通用p c 上l i n l l ) ( 操作 系统的引导过程和实现过程的基础上,结合嵌入式系统的工作原理,构建并实现 了基于x s c a l ep x a 2 5 5 芯片的系统板的b 0 0 t l o a d e r 引导程序。 关键词:p x a 2 5 5 嵌入式l i n u x 设备驱动程序嵌入式系统引导程序 a b s t r a c t n i eh a r d w a r c0 ft l l e 咄i n 、o r ko ft h i sp a p e ri st h e “p l o i 硼b o a r dw i l i c hc p ui s x s 嘲ep ) 乙也5 5 皿e0 pe r a _ c i n gs y 啦mi se m b e d d e dl i n u x w h i c hs o u r c ec o d ei so p e n b a s e do ng t i l d y i n gt l l ee m b e d d e ds y s t 锄她da r ma r c l l i t e c t 哪,t l l eh a r d w a r eo ft l i e e x p l o i t e db o a r di sl l s e d 削l ya n ds o m eo f i t si n t e r f a c e sa r ei m p l e m e n t e d t h ec u t t e d p r o p 哪ra 1 1 dm a l l a g i n gf m e l yo 儿i n u x 雠锄b o d i e d 如l l y b a s e d 锄l y s i so fl i 仰xk 廿n c l ,l i i l u xd e v i c e “v e 体c i l a f t c r ,d s e s , a r c h i t e c t i l r e ,f h m e ,f h n c t i o na 1 1 dp r o p e r l ya r es m d i e di nt h i sp 印e lt h ei n :【e r n l p to f l i i l u xa n ds o m e 丘m c t i o n sw h i c ha r er e i a l j v et od e v i c e “v e r sa r ed i u s s e d t h eb a s i c p 咖c i p l e 她dd e s i 弘p r o c e s sd fl i l l u xd e “c e 埘v e 巧a r cd e s c r i b e dp a r t i 叫a d y f i l l a l y 帕f 锄eb u 彘r “v t b u c h s e n s i t i v es c r e e i ld r i v e ra n du s bd r i v 盯o f t l l ee x p l o i 伽 b o a r di si i l l p l e m e n t e d n l ed e s i 印o fb o o t l o a dp r 0 鲫ni s 锄o t h e rw o r ki nt h j sp 印e r b a s e do na n a l y s i s o fl i i l u ) 【b o o ( l 0 a dp r o c e s s 柚d 血p l e m c tp r o c e s so nt h eg e n e r a lp c ,卸dr c s e a r c h e m b b d d e ds y s c e m sb o 山a dp 血i c i p l e i n 仕屺e n dt h ew o r ka _ b o l l td e s i g n j n g b o o t l o a d e ro f t l l ee x p l o “e db o a r di sd c s c i i b e dp 州c u l a 订y k e y w o r d s :p ) 【a 2 5 5 e m b e d d e dl i n u xd e v i c ed i i v e 件e m b e d d e ds y s t e m b o o t l o a dp m g m m 西安电子科技大学 学位论文创新性声明 秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在 导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标 注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成 果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的 材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说 明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切的法律责任。 本人签名:鍪毒盛, 日期羔丑:! : 西安电子科技大学 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。学校有权保 留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内 容,可以允许采用影印、缩印或其它复制手段保存论文。同时本人保证,毕业后 结合学位论文研究课题再攥写的文章一律署名单位为西安电子科技大学。( 保密的 论文在解密后遵守此规定) 本学位论文属于保密,在一年解密后适用本授权书。 本人签名:么乏苤, 导师签名:! 虱盗 日期兰! 立:f : 第一章绪论 第一章绪论 本章介绍了嵌入式系统的发展历程,分析了当前嵌入式系统应用的现状和应 用领域的拓展,讨论了论文课题的研究背景和研究意义,提出了论文工作所要达 到的目标,介绍了论文的章节分配和各个部分的主要内容。 1 1 课题研究背景 随着计算机技术的飞速发展,进入新世纪,信息化的进程席卷了全球的每个 角落,在人们的生活工作之中,信息技术带来的方便、安全、快捷已经随处可见, 无论是传统行业还是新兴行业,都面临着信息化的问题。电子计算机在这一过程 中扮演着重要的角色。在生活中,为了满足人们各种需求,计算机的功能正朝着 多元化的方向发展。但在工业,交通,通信等领域中,为了达到特定的应用目的, 计算机的发展逐步走向了专业化的道路,从最初工业应用的单片机到今天正在兴 起的嵌入式系统,都印证了这一发展趋势。近年来,随着微电子技术的快速发展, 集成度更高,功能更强大的电子芯片已经广泛地应用于各类电子设备中,同时, 嵌入式系统的概念也己深入到了人们的生活和工作之中,面对时代提出的新要求, 嵌入式系统作为一种集成度高,功能稳定的应用模式将被广泛地推广,在各行各 业中充分发挥自己的作用。 嵌入式系统在飞速的发展着,在2 0 世纪7 0 年代单片机的出现,是嵌入式系统 的开端,不过那时候的应用只是用8 位的芯片执行一些单线程的程序,还谈不上“系 统”的概念。在2 0 世纪8 0 年代开始出现商业化的嵌入式“操作系统”,并在其上编写 一些简单的应用软件,不过这个时候的操作系统还称不上真正意义上的操作系统。 在2 0 世纪9 0 年代出现实时多任务的操作系统,并作为一种嵌入式系统软件平台成 为当前国际嵌入式系统的主流,目前所研究的嵌入式操作系统就是以实时多任务 操作系统为主。而在众多的嵌入式操作系统当中,l i n u x 以其开放源码、免费、稳 定性、可靠性、实时性等优点已经成为目前研究和应用最多的嵌入式操作系统之 一。随着计算机技术的不断发展,嵌入式系统的应用已经渗透到人们生活的各个 方面,应用范围越来越广,各种新的嵌入式系统的硬件设备层出不穷。由于在嵌 入式l i n u x 操作系统中,各种设备的驱动程序代码占了很大的比例,嵌入式l 劬x 下驱动程序以及嵌入式系统的引导程序目前已经成为众多技术厂商、高等院校和 科研单位的研究开发的重点。 2 嵌入式l i n u x 设备驱动程序和引导程序的研究 1 2 国内外研究和发展的现状 在硬件方面,嵌入式系统的核心部件是各种类型的嵌入式处理器。目前全世 界嵌入式处理器的品种总量已经超过1 0 0 0 多种,流行体系结构有3 0 几个系列。 上市的c p u 供应商,m o t o r o i a 、i n t c l 、a m d 等都开始生产性能优秀的嵌入式微处 理器。还有一些公司,如删、m 口s 等厂商,只设计但并不生产c p u ,他们把 生产权授予世界各地的半导体制造商。其中,删系列的处理器由于各种优点, 是近年来在嵌入式系统方面最具有影响力的微处理器。a r m 的设计非常适用于小 的电源供电系统。a p p l e 在n e w c o n 手持计算机中使用删,另外有几款数字无线 电话也在使用a r m 。目前a r m 系列的微处理器己经在占据了国内和国外的很大 一部分市场,应用非常广泛。 在软件方面,操作系统是嵌入式系统一个非常重要的组成部分。在上个世纪 9 0 年代,陆续出现了一些非常优秀的实时多任务的操作系统,目前应用最广的几 个嵌入式操作系统为嵌入式l i i l u ) 【、v x w j r l ( s 、w i n d o w sc e 、p a l l no s 等,嵌入式 l i n l 操作系统以价格低廉、功能强大又易于移植而正在被广泛采用,成为兴起的 力量。其中,在嵌入式l i n u x 操作系统当中,驱动程序的设计开发的重要性已经越 来越明显,各个半导体厂商以及操作系统厂商纷纷开发设计在l i 肌x 下的设备驱动 程序。 国内从事嵌入式技术研究比较晚,但发展很快。到目前为止,在嵌入式处理 器方面,3 2 位嵌入式处理器己呈现出群体突破的态势,方舟一号、方舟二号、龙 芯等一大批3 2 位嵌入式处理器陆续问世,但是开发工具、生产能力等问题还未解 决,阻碍了它们的推广应用,而操作系统方面有自主知识产权的产品很少,一般 都使用的是开放源码的操作系统。在嵌入式产品方面,主要还是应用国外芯片和 软件技术进行产品的设计和开发,产品有联想的p d a 、机顶盒等。但产品的种类 较少,价格较高,实用性不是很强。大部分涉足嵌入式开发的公司还处在起步阶 段,它们主要生产面向高校的实验开发板,象北京中科智控科技有限公司、北京 博创兴业科技有限公司,它们的产品大都是基于a r m 核的低端产品。很多生产商 已经看到了嵌入式产品的巨大市场潜力并加入到对嵌入式系统的研究和开发中 来,象蓝点软件、中科红旗、中软等公司都已经将嵌入式系统的开发和应用确立 为公司的主要发展方向之一。 总之,嵌入式系统在未来发展中的地位是越来越重要了,其应用也会越来越 广泛,尽快开展对主流嵌入式系统的研究和对源代码开放的操作系统的研究,是 十分必要的,在l i n u x 内核当中,对设备驱动程序以及引导程序的研究也是非常必 要的。 第一章绪论 3 1 3 课题研究的目的和意义 本论文研究的是基于嵌入式l i n l i ) ( 的设备驱动程序设计及嵌入式系统的引导 程序,在l i n l l 】【内核代码中,各种驱动程序的代码量已经占据了整个l i n u x 代码的 8 5 ,可见,驱动程序在l i n l l ) ( 操作系统当中的重要性可想而知。由于驱动程序属 于内核代码的一部分,研究驱动程序的基本原理和工作流程,对理解和学习l i n l l ) 【 操作系统内核的进程调度、内存管理、中断机制、文件系统都有很大的帮助。嵌 入式系统的引导程序也是非常重要的研究内容。这些都对学科建设和嵌入式系统 的教学研究工作有着积极的意义。 此外,本文以1 1 1 t e l 公司的) ( s c a l e p x a 2 5 5 的处理器为中心的嵌入式开发板上, 研究设计了其f r 锄eb u 丘打驱动、触摸屏驱动、u s b 主控驱动和设备驱动等,还 有其b o o t 【d a d c r ,这些都可以应用在实践的各种具体嵌入式设备驱动程序中,为 实际的生产和生活的嵌入式系统应用提供了设备驱动程序和引导程序设计的一些 解决方案。 1 4 本文主要研究内容及章节安排 本论文的选题来自计算机学院学科建设和教学科研工作的需要,主要研究基 于嵌入式l i m 的设备驱动程序和嵌入式系统的引导程序。 论文总共分五大章:第一章主要介绍课题的研究背景、国内外发展现状和课 题研究的目的和意义。第二章,论文首先从嵌入式系统入手,分析了其特点、体 系架构、应用领域、开发流程及几个目前比较流行的嵌入式操作系统。然后又分 析了当前很热门的删系列的处理器的体系架构。第三章,论文分析了l i l l l l ) ( 操 作系统的驱动程序设计的基本原理和工作流程。第四章,在以i n t e l 公司的x s c a l e p x a 2 5 5 处理器为中心的开发板硬件的基础上,进行了几个具体的应用比较广泛的 f r 锄eb u 腩r 驱动、触摸屏驱动和u s b 主控驱动和设备驱动等的开发设计工作。 在第五章研究了通用p c 和嵌入式系统下的引导程序,并构建了开发板的 b o o t l o a d e r 。第六章总结了全文,还有提出了在嵌入式l i n u x 下设备驱动程序和嵌 入式系统引导程序设计的一些开发经验以及要注意的问题,并提出未来嵌入式系 统中有关这些方面设计的一些要解决的问题。 4 嵌入式l i n “设备驱动程序和引导程序的研究 第二章嵌入式系统及a r m 概述 本章讨论了嵌入式系统的特点、嵌入式系统的体系结构。从论文工作选择操 作系统的角度,研究了主要的嵌入式操作系统的应用领域。为了掌握论文所使用 的硬件平台,本章对删处理器的结构和基本工作模式进行了研究。 2 1 嵌入式系统概述 2 1 1 嵌入式系统的特点和应用 正e e ( 1 1 1 s t i t u t eo f e l e c 砸c a la n de l e c 仃o i l i c se n g i n e e r s ) 的定义: d e v i c e su s e dt oc o m r o l ,m o i l i t o r ,o ra s s i s tt l l eo p e 枷o no fe q l l i p m e n t ,m h i n e r y o rp l 卸t s ( 控制、监视或者辅助设备、机器和车间运行的装置。) 上述e e 对嵌入式系统的定义很明显是针对应用方面来进行定义的,嵌入式 系统最初的应用主要就是此定义的这些方面。后来随着嵌入式系统的不断发展, 其应用范围显然已经远远超出了上述定义。 目前国内一个普遍被认同的定义是: 以应用为中心、以计算机技术为基础,软、硬件可裁剪,适应应用系统对功 能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。 嵌入式系统的定义的实质就是以应用为中心的专用计算机系统。以应用为中 心是嵌入式系统的实质和根本所在。离开了应用,嵌入式系统就失去了它的意义。 设计每一个嵌入式系统必须要先从其应用着手。根据具体的应用来设计不同的系 统;根据具体的应用来进行不同的软硬件裁减;根据具体的应用来选择进行对功 能、可靠性、成本、体积、功耗等的严格要求。总之,设计嵌入式系统就是以应 用为最终目的。 嵌入式系统的特点 嵌入式系统根据各自不同的应用都有不同的具体特点,这里总结了嵌入式系 统中一些共性的特点如下: ( 1 ) :非常强的专用性; ( 2 ) :软硬件可裁减性; ( 3 ) :系统精简; ( 4 ) :系统内核小; ( 5 ) :一般来说,高实时性的操作系统软件是嵌入式软件的基本要求; 第二章嵌入式系统及a r m 概述5 ( 6 ) :嵌入式系统是将先进的计算机技术、半导体技术和电子技术以及各个行业 的具体应用相结合后的产物: ( 7 ) :嵌入式系统软件开发要想走向标准化,就必须使用多任务的操作系统; ( 8 ) :嵌入式系统开发需要专门的开发工具和环境。 嵌入式系统的应用 嵌入式系统的应用到现在已经深入到人们生产和生活的各个方面,目前,嵌 入式系统四大热门应用如表2 1 所示。 表2 1 嵌入式系统目前的四个热门应用 应用行业具体应用举例 信息家电 机顶盒、掌上电脑、d v d 、m p 3 、数码相机、数字电视、w e b t v 、网 络冰箱、网络空调、家庭网关、智能家用电器等。 车载和交车载导航器系统、航空铁路公路运输系统、航空管理、雷达系统、交 通系统通指挥系统、停车系统、售票系统等。 军事工业数字化单兵信息装备夜视扫描、全球定位、指挥通信系统等。 医疗器械 心脏除颤器、心脏起搏器、患者信息和监视系统、理疗控制系统、电 磁成像系统等。 除上述之外,嵌入式系统的应用还有很多,随着嵌入式系统技术的不断发展, 其应用也会更加广泛。 2 1 2 嵌入式系统的体系架构和开发过程 一般来说,嵌入式系统的总体架构可以分为四个部分:嵌入式硬件( 主要包括 处理器和内存储器) 、嵌入式外围设备、嵌入式操作系统和嵌入式应用软件。如图 2 1 所示。 可见,嵌入式系统的体系结构跟通用p c 基本是样的。麻雀虽小,五脏俱全。 当然,有些嵌入式系统由于应用要求的功能比较简单,没有操作系统,但对于当 前大多数嵌入式系统来说,这四个部分都是包括的。这也是当今进行实时多任务 的嵌入式系统开发走向标准的的大趋势。 嵌入式系统是一种根据特定用途所开发的专用系统,它只完成预期要完成的 功能,因此其开发过程和开发环境同传统的软件开发相比有着显著的不同。嵌入 式系统开发的整个流程如图2 2 所示。 嵌入式系统通常是一个资源受限的系统,因此直接在嵌入式系统的硬件平台 上编写软件比较困难,有时候甚至是不可能的。目前一般采用的解决办法是首先 在通用计算机上编写程序,然后通过交叉编译生成目标平台上可以运行的二进制 代码格式,最后再下载到目标平台上的特定位置上运行。 6嵌入式l i n “设备驱动程序和引导程序的研究 否 图2 1 嵌入式系统的体系架构 图2 2 嵌入式系统的开发流程 需要交叉开发环境( c r o s sd e v c l o p m e n te n v 砷n m e n t ) 的支持是嵌入式应用软 件开发时的一个显著特点。交叉开发环境是指编译、链接和调试嵌入式应用软件 的环境,它与运行嵌入式应用软件的环境有所不同,通常采用宿主机目标机模 式,交叉开发环境如图2 3 所示。 建立交叉开发环境是进行嵌入式软件开发的第一步,目前常用的交叉开发环 境主要有开放和商业两种类型。开放的交叉开发环境的典型代表是g n u 工具链、 目前已经能够支持x 8 6 、a r m 、m 口s 、p o w e r p c 等多种处理器。 在完成嵌入式软件的编码之后,需要进行编译和链接以生成可执行代码,由 于开发过程大多是在使用i n t e l 公司x 8 6 系列c p u 的通用计算机上进行的,而目标环 境的处理器芯片却大多为a r m 、m i p s 、p o w e r p c 等系列的微处理器,这就要求在 建立好的交叉开发环境中进行交叉编译和链接。 第二章嵌入式系统及a r m 概述 7 图2 3 交叉开发环境 交叉编译器和交叉链接器是能够在宿主机上运行,并且能够生成在目标机上 直接运行的二进制代码的编译器和链接器。例如在基于娘m 体系结构的g c c 交叉开 发环境中,锄1 i n 慨一g c c 是交叉编译器,锄1 i n u ) 【一l d 是交叉链接器。 嵌入式软件经过编译和链接后即进入调试阶段,调试是软件开发过程中必不 可少的一个环节,嵌入式软件开发过程中的交叉调试与通用软件开发过程中的调 试方式有所差别。在通用软件开发中,调试器与被调试的程序往往运行在同一台 计算机上,调试器是一个单独运行着的进程,它通过操作系统提供的调试接口来 控制被调试的进程。而在嵌入式软件开发中,调试时采用的是在宿主机和目标机 之间进行的交叉调试,调试器仍然运行在宿主机的通用操作系统之上,但被调试 的进程却是运行在基于特定硬件平台的嵌入式操作系统中,调试器和被调试进程 通过串口或者网络进行通信,调试器可以控制、访问被调试进程,读取被调试进 程的当前状态,并能够改变被调试进程的运行状态。 2 1 3 嵌入式操作系统 为了使嵌入式系统的开发更加方便和快捷,需要有专门负责管理存储器分配、 中断处理、任务调度等功能的软件模块,这就是嵌入式操作系统。嵌入式操作系 统是用来支持嵌入式应用的系统软件,是嵌入式系统极为重要的组成部分,通常 包括与硬件相关的底层驱动程序、系统内核、设备驱动接口、通信协议、图形用 户界面( g u i ) 等。目前应用广泛的嵌入式操作系统主要有嵌入式l i i l u x 、v x w o r k s 、 w 砌o w sc e 和p a l m0 s 等。 嵌入式l m x ( e m b e d d e dl i i i u x ) 是指对标准l i n u x 经过小型化裁剪处理之后, 能够固化在容量只有几k 或者几m 字节的存储器芯片或者单片机中,适合于特定嵌 入式应用场合的专用l i n u x 操作系统。嵌入式l i n u x 的开发和研究是操作系统领域中 的一个热点,目前已经开发成功的嵌入式系统中,大约有一半使用的是l i i m x 。l i n i | ) 【 之所以能在嵌入式系统市场上取得如此辉煌的成果,与其自身的优良特性是分不 开的。它的主要优点如下: ( 1 ) :广泛的硬件支持。 8 嵌入式l i n “设备驱动程序和引导程序的研究 l i 肌x 能够支持x 8 6 、a i t m 、m i p s 、a l p h a 、p o w e r p c 等多种体系结构,目前 已经成功移植到数十种硬件平台,几乎能够运行在所有流行的c p u 上。甚至可以 在没有存储管理单元( m m u ) 的处理器上运行,这些都进一步促进了l i i l l l ) ( 在嵌入 式系统中的应用。 ( 2 ) :内核高效稳定。 l i n u x 内核的高效和稳定已经在各个领域内得到了大量事实的验证,l i i l u x 的内 核设计非常精巧,分为进程调度、内存管理、进程间通信、虚拟文件系统和网络 接口五大部分,其独特的模块机制可以根据用户的需要,实时地将某些模块插入 到内核或从内核中移走。这些特性使得l i d u x 系统内核可以裁剪得非常小巧,很适 合于嵌入式系统的需要。 ( 3 ) :开放源码,软件丰富。 l i n u 】( 是开放源代码的自由操作系统,它为用户提供了最大限度的自由度,由 于嵌入式系统千差万别,往往需要针对具体的应用进行修改和优化,因而获得源 代码就变得至关重要了。l i n u x 的软件资源十分丰富,每一种通用程序在l i n l l 】【上几 乎都可以找到,并且数量还在不断增加。在l i n l l 】( 上开发嵌入式应用软件一般不用 从头做起,而是可以选择一个类似的自由软件做为原型,在其上进行二次开发。 ( 4 ) :优秀的开发工具。 嵌入式l i n l l ) 【为开发者提供了一套完整的工具链( t o o lc h a i l l ) ,它利用g n u 的g c c 做编译器,用g d b 、蚝d b 、x g d b 做调试工具,能够很方便地实现从操作系统到 应用软件各个级别的调试。 ( 5 ) :完善的网络通信和文件管理机制。 l i n u x 从诞生之日起就与i i l t e m e t 密不可分,支持所有标准的i n i e m e t 网络协议, 并且很容易移植到嵌入式系统当中。此外,l i n l l ) 【还支持强t 2 、f a t l 6 、f a t 3 2 、r o m f s 等文件系统,这些都为开发嵌入式系统应用打下了很好的基础。 鉴于嵌入式l i i l u x 的上述优点本论文对设备驱动程序设计的研究和引导程序 的研究均采用嵌入式l i n l l ) 【系统为操作系统。 v x w o r k s ,是一个强实时性的操作系统,是w i i l d 砌v e r 公司专门为实时嵌入式 系统设计开发的操作系统软件,为程序员提供了高效的实时任务调度、中断管理、 实时的系统资源以及实时的任务间通信。以其良好的可靠性和卓越的实时性被广 泛地应用在通信、军事、航空航天等高精尖技术及实时性要求极高的领域中。 w h l d o 、v sc e ,应用也非常广泛,继承了微软的操作系统产品界面友好的一贯 风格,它是微软的产品,但不是削减的w i n d o w s 版本,它是从整体上为有限资源的 平台设计的多线程、完整优先权、多任务的操作系统。采用在模块化设计,并允 许它对于从掌上电脑到专用的工控电子设备进行定制。从s e g a 的d r e 锄c a s t 游戏 机到高价掌上电脑都采用w i n d o w sc e 操作系统。缺点是价格过高,产品成本急剧 第二章嵌入式系统及a i t m 概述 9 上升。 除了上面几个常用的嵌入式操作系统外,还有其他一些嵌入式操作系统,象 p a l mo s 是一种3 2 位的嵌入式操作系统,用于掌上电脑。此系统是3 c o m 公司的p a l l n c o m p u t i l l g 部开发的。它运行在一个抢占式的多任务内核之上,同一时刻用户界面 仅仅允许一个应用程序被打开,与同步软件h o t s ”c 结合可以使掌上电脑与p c 上的 信息同步,把台式机的功能扩展到掌上电脑上,是一款非常流行的掌上电脑操作 系统。还有,象q n x 是一款实时操作系统,由加拿大q n x 软件公司开发,广泛应 用于自动化、电信、计算机网络数据通信、p o s 机、零售机等任务关键型应用领域。 q n x 在高速增长的i n t c :r n e t 在终端设备、信息家电得到广泛应用。q n x 的体系结构 决定它有非常好的伸缩性,用户可把应用程序代码和q n x 内核直接一起编译。还 有象0 s e 主要是由d 咂 da _ 纽a b 下属的e n e a0 s es y s t e m sa b 负责开发和技术服 务,一直以来都充当实时操作系统以及分布式和容错性应用的先锋。o s e 支持容错, 适用于可从硬件和软件错误中恢复的应用,其独特的消息传输方式使其能方便地 支持多处理机之间的通信。在电信方面,已经有十余年的开发经验。 2 2 1 删的由来 2 2 删概述 a r m ( a “a t l c e dm s cm a c l l i n e s ) ,既可以认为是一个公司的名字,也可以认 为是对一类微处理器的通称,还可以认为是一种技术的名字。 a r m 最开始是一个公司的名字,它于1 9 9 0 年1 1 月在英国剑桥成立,前身为 a c o m 计算机公司,它既不生产芯片也不销售芯片,而是只出售芯片技术授权。它 主要设计删系列r j s c 处理器内核,也授权a 刚内核给生产和销售半导体的合作 伙伴,另外也提供基于删架构的开发设计技术。如软件工具、评估板、调试工 具、应用软件、总线架构和外围设备单元等等。a r m 公司采用通用的基础体系结 构,以极低的成本和功耗提供了高性能、多系列的3 2 位r j s c 处理器内核,在耗电、 数据传输、数据处理以及带d s p 功能等方面已技术领先,很快成为移动通信、手持 计算、多媒体数字消费和嵌入式解决市场的刚s c 标准。此外,a 刚拥有广泛的全 球技术合作伙伴,这其中包括领先的半导体系统厂商、实时操作系统厂商、电子 设计自动化和工具供应商、应用软件公司、芯片制造商和设计中心。a r m 的3 2 位 体系结构目前被公认是业界领先的3 2 位嵌入式s c 微处理器结构。 2 2 2a i t m 处理器的工作状态和基本工作模式 a r m 约定,a 蹦指令都为3 2 位的指令,字为4 个字节( 即3 2b i t s ) ,半字为2 1 0 嵌入式l i n u ) 【设备驱动程序和引导程序的研究 个字节( 1 6b i t s ) ,一个字节为8b i t s 。从编程的角度看,a r m 微处理器的工作状 态一般有两种,并可在两种状态之间切换。 第一种为删状态,此时处理器执行3 2 位的字对齐的a i t m 指令。 第二种为n i 啪b 状态,此时处理器执行1 6 位的,半字对齐n 哪b 指令。 当a j 蝴微处理器执行3 2 位的a i 洲指令集时,工作在a r m 状态;当a r m 微处 理器执行1 6 位的b 指令集时,工作在1 1 1 啪b 状态。在程序的执行过程中,微处 理器可以随时在两种工作状态之间切换,并且,处理器的工作状态的转变并不影 响处理器的工作模式和相应寄存器中的内容。 状态切换方法:a r m 指令集和1 1 1 u i l l b 指令集均有切换处理器状态的指令, 并可在两种工作状态之间切换,但堰m 微处理器在开始执行代码时,应该处于 a r m 状态。进入n 岫b 状态:当操作寄存器的状态位( 位0 ) 为l 时,可以采用执 行b x 指令的方法,使微处理器从a r m 状态切换到1 1 1 岫b 状态。此外,当处理器处 于n l l m b 状态时发生异常( 如m q 、f i q 、u n d e f 、a b o r t 、s w i 等) ,则异常处理返 回时,自动切换到t h 眦l b 状态。 进入a i 蝴状态:当操作数寄存器的状态为0 时,执行b x 指令可以使微处理器 从t h 砌b 状态切换到a i 洲状态。此外,在处理器进行异常处理时,把p c 指针放入 异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换 到a i 蝴状态。 a 1 w 微处理器支持7 种运行模式“,如表2 2 所示。 表2 2a r m 处理器运行模式 处理器模式对应模式的描述 用户模式( u s r )a r m 处理器正常的程序执行状态。 快速中断模式( f i q ) 用于高速数据传输或者通道处理。 外部中断模式( i r q ) 用于通用的中断处理。 管理模式( s v c )操作系统使用的保护模式,当复位或者软中断指令执行时 候就会进入此模式。 数据访问中止模式 当数据或指令预取中止时进入此模式,可用于虚拟存储及 ( a b t ) 存储保护。 未定义指令中止模式 当未定义指令执行的时候进入该模式,可用于支持硬件协 ( u n d ) 处理器的软件仿真。 系统模式( s y s )运行具有特权的操作系统任务。 螺m 微处理器的运行模式可以通过软件改变,也可以通过外部中断或者异常 处理改变。大多数的应用程序运行在用户模式下,当处理器运行在用户模式下的 时候,某些被保护的系统资源是不能访问的。除用户模式外,其余的6 种模式称为 第二章嵌入式系统及a 概述 非用户模式或者特权模式( 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 3a r m 状态下的寄存器组织 在认识了舢t m 的7 种工作模式的基础上,我们来对删的寄存器组织进行理 解。a 蹦的寄存器总共有3 7 个,分别为3 1 个通用寄存器和6 个状态寄存器。其中, 在通用寄存器中,又分3 种类型的寄存器【”,如表2 3 和表2 4 所示。 ( 1 ) :未分组寄存器r o r 7 ,这8 个寄存器可以运行在所有的运行模式下,未分组 寄存器都指向同一个物理寄存器。 ( 2 ) :分组寄存器r 8 r 1 4 ,对于分组寄存器,它们每一次所访问的物理寄存器与 处理器当前的运行模式有关。对于r 8 r 1 2 ,每个寄存器对应两个不同的寄存器, 当使用f i q 模式时,访问寄存器r 8f i q - r 1 2f i q ;当使用除f i q 模式以外的其他模式时, 访问寄存器r 8u s r r 1 2u s r 。 对于r 1 3 和r 1 4 ,每个寄存器则对应6 个不同的物理寄存器,其中一个是用户模 式和系统模式共用,另外5 个物理寄存器对应于其他5 种不同的运行模式。寄存器 r 1 3 在删指令中常用作堆栈指针。 r 1 4 也称作子程序连接寄存器或者连接寄存器l r 。当执行b l 子程序调用指令 的时候,r 1 4 中得到r 1 5 ( 程序计数器p c ) 的备份。 ( 3 ) :程序计数器p c ( r 1 5 ) 寄存器r 1 5 用作程序计数器( p c ) 。当处理器执行在a r m 状态的时候,所有 指令都是3 2b i t s 宽,因为r 1 5 用来存放的是指令的地址,所有指令必须为、v o r d 对齐, 所以p c 值由b i t s 3 l :2 】决定,b i t s 1 :o 】未定义。 表2 _ 3a i t m 状态下的通用寄存器和程序计数器 s y s t e m 八j s e rf i qs u p e r v i s o r a b o u t i r q u n d e f i n e d r or 0r 0r 0r 0r 0 r 1r 1r 1r 1r 1r 1 r 2i 也r 2r 2r 2r 2 l ur 3l ui ul ur 3 r 4r 4 r 4 r 4r 4 r 4 r 5飚r 5r 5必r 5 r 6r 6 r 6 r 6r 6r 6 r 7r 7r 7 r 7 r 7r 7 1 2 嵌入式l i n u x 设备驱动程序和引导程序的研究 r 8 r 8 6 q r 8r 8r 8 r 8 r 9 r 9 _ n q r 9r 9 r 9 r 9 r 1 0 r 1 0 - n q r 1 0r l or 1 0r 1 0 r 1 1 r 1 1 q r 1 1r 1 1r 1 l r 1 1 r 1 2 r 1 2 q r 1 2 r 1 2r 1 2r 1 2 r 1 3 r ”一行q r 1 3s v cr 1 3a b t r ”- j r q r 1 3 d r 1 4 r 1 4 n q r 1 4s v cr 1 4 曲t r 1 4 i f q r 1 4u n d r 1 5 ( p c )r 1 5 ( p c )r 1 5 ( p c )r 1 5 ( p c ) r 1 5 ( p c )r 1 5 ( p c ) 表2 4a r m 状态下的程序状态寄存器 c p s rc p s rc p s rc p s rc p s rc p s r s p s 哪q s p s rs v cs p s ra b t s p s r _ 岫 s p s ru 1 1 d 除了通用的寄存器,还有6 个程序状态寄存器,其中1 个用来作c p s r ( c u r r e m p r o g r a ms 诅t 璐鼬g i s t 盯,当前程序状态寄存器) ,c p s r 可以在任何模式下被访问。 它包括条件标志位、中断禁止位、当前处理器模式标志位以及其他一些相关的控 制和状态位。每一种异常模式下都有一个专用的物理状态寄存器。称为s p s r ( s a v e d p r 0 伊锄s 觚sr e g i s t e r ,备份的程序状态寄存器) ,共有5 个。当异常发生的时候, s p s r 用于保存c p s r 的当前值,从异常退出的时候可以用s p s r 来恢复c p s r 。由于 用户模式和系统模式不属于异常模式,它们没有s p s r ,当在这两种模式下访问 s p s r 的时候,结果是未知的。 第三章l i n u x 下设备驱动程序设计的基本原理1 3 第三章l in u x 下设备驱动程序设计的基本原理 设备驱动程序就是函数和数据结构的集合,它的目的是实现个简单的管理 设备的接口。内核用这个接口请求驱动程序控制设备的i o 操作。本章在分析了 l i n u x 内核的基础上,研究了l i n u x 设备驱动程序的分类、层次结构、框架、功能 和特性等,分析了与设备驱动程序相关的l i 肌x 中断机制。 3 1l i l l u x 内核简介 3 1 1l i m 内核的定义 l i l l l l ) ( 其实只是一个内核的标识,不同于我们平时所说的r e d h a t l i n l l ) ( 、d e b i 缸 g n u l i n i l 】【等发行版本,这些发行版本除了内核外还包括不同的外部应用程序以 方便用户使用和管理操作系统。内核( k e m e i ) 是操作系统的内部核心程序,它向 外部提供了对计算机设备的核心管理调用。 一般来讲,操作系统上运行的代码可以分成两个部分:内核所在的地址空间 称作内核空间;而在内核以外,剩下的程序统称为外部管理程序,它们大部分是 对外围设备的管理和界面操作。外部管理程序与用户进程所占据的地址空间称为 外部空间或用户空间。通常,一个程序会跨越这两个空间。当执行到内核空间的 一段代码时,我们称程序处于内核态,而当程序执行到外部空间代码时,我们称 程序处于用户态。内核负责对计算机硬件的管理和抽象,并合理分配这些资源给 各个执行程序共享使用。 3 1 2l i n m ( 内核的功能 l m x 系统支持多进程的并发运行,每个进程都请求系统资源,比如处理能力、 内存、网络连接和其他一些资源等。内核作为大的可执行代码,负责处理所有这 些请求。根据内核完成任务的不同,可将内核功能分成如下几部分【l j : ( 1 ) 进程管理:进程管理功能负责创建和撤销进程以及处理它们和外部世界的连 接( 输入和输出) 。不同进程之间的通信( 通过信号、管道或进程间通信原语) 是整个 系统的基本功能,因此也由内核处理。除此之外,控制进程如何共享c p u 的调度 程序也是进程管理的一部分。概括地说,内核的进程管理活动就是在单个或多个 c p u 上实现多个进程的抽象。 ( 2 ) 内存管理:内存是计算机的主要资源之一,用来管理内存的策略是决定系统 1 4 嵌入式l i n u 】( 设各驱动程序和引导程序的研究 性能的一个关键因素。内核在有限的可用资源上为每个进程都创建了一个虚拟寻 址空问。内核的不同部分在和内存管理子系统交互时使用一套相同的系统调用, 包括从简单的m a l l o c 丘e e 对到其他一些不常用的系统调用。 ( 3 ) 文件系统:“n u x 在很大程度上依赖于文件系统的概念,l i 肌x 中的每个对象 几乎都可以被看作文件。内核在没有结构的硬件上构造结构化的文件系统,所构 造的文件系统抽象在整个系统中广泛使用。另外,l i n u ) 【支持多种文件系统类型, 即在物理介质上组织数据的不同方式。例如,可以把磁盘格式化为符合l i 肌x 标准 的e x t 2 e m 3 文件系统,也可格式化为常用的f a t 文件系统。 ( 4 ) 设备控制:几乎每个系统操作最终都会映射到物理设备上。除了处理器、内 存以及其他很有限的几个实体之外,所有设备控制操作都由与被控制设备相关的 代码来完成。这段代码就叫做设备驱动程序,内核必须为系统中的每件外设嵌入 相应的驱动程序,包括硬盘驱动器、键盘和网口等。这方面的内核功能将是本文 讨论的主要内容。 ( 5 ) 网络功能:网络功能也必须由操作系统来管理,因为大部分网络操作都和具 体进程无关,数据包的传入是异步事件。在某个进程处理这些数据包之前,数据 包必须已经被收集、标识和分发。系统负责在应用程序和网络接口之间传递数据 包,并根据网络活动控制程序的执行。另外,所有的路由和地址解析问题都由内 核处理。 l i n l l ) 【的优良特性之一就是能够在运行时动态地扩展内核,这就意味着当系统 正在运行时也可以给内核增添新的功能。所以,当系统添加新的设备时,就可以 动态的给l i n u ) ( 内核添加新的设备驱动程序以支持新的设备。l i n u x 内核具有可裁 减性,并不是一成不变的。我们通常所说的嵌入式l i n i 】) 【操作系统,一般就是指经 过一定裁减的l i n l l ) 【操作系统。 3 2l i n u x 下的设备驱动程序概述 3 2 1 设备驱动程序的定义及分类 在介绍设备驱动程序之前,先得弄清这里的设备的含义。设备到底是什么呢? 它可以是一台计算机上任何一个部分,既可以直接制造在计算机的核心,也可以 是一个外围设备,比如s c s i 控制器、扩充的串行口、网卡等等。在说起编写新的 设备驱动程序时我们一般都指的是后一种情况,即已经弄到手的最新的接口卡添 加必要的软件方面的支持。 设备驱动程序是操作系统内核和机器硬件之间的接口。设备驱动为应用程序 屏蔽了硬件的细节,在应用程序看来,硬件设备只是一个设备文件。应用程序就 第三章l j n u x 下设备驱动程序设计的基本原理1 5 可以像操作普通文件一样对硬件设备进行操作。驱动程序是内核的一部分,故运 行在内核态( 用户的应用程序是运行在用户态) ,是和内核连接在一起的程序。 应用程序是通过设备文件来和驱动程序建立联系,即通过对设备文件的读写从而 对驱动程序发送命令。 设备驱动程序是这样一类软件:它们控制着设备的操作动作,并且提供了一 个可用的程序接口使其他程序能够与这个设备互动。各种设备驱动程序构成了它 们所控制的硬件和操作系统内核之间的一个过度层次。这个层次扎根于硬件,服 务于内核,极大地简化了内核的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 古城风教学课件
- 高层房产模板课件
- 工厂大修前安全课件
- 通知供应商产品升级换代的函(7篇)范文
- 工程的教学课件
- 工厂打架教育课件
- 工厂常用量具介绍课件
- 灌肠操作课件
- 工程材料作业讲解课件
- 工程材料检验课件
- 2026年广东省环保集团有限公司人员招聘考试模拟试题及答案
- 2026-2027北京初中语文秋季期七年级上册期中模拟试卷(三)
- 专项债项目运营管理指南
- 2026年《中国慢性阻塞性肺疾病诊疗指南(2026版)》
- 2026新能源领域薄膜过滤材料应用场景开发与商业模式探索报告
- 《第2课 有趣的平面空间》教学设计-2026-2027学年五年级美术上册岭美版
- 乌鲁木齐辅警考试仿真试题及答案解析
- 2026年六盘水市钟山区法检系统书记员招聘考试参考试题及答案详解
- 第九章 三维点云数据标注
- 纪委谈话室建设标准方案
- 初中生物实验课教案
评论
0/150
提交评论