




已阅读5页,还剩53页未读, 继续免费阅读
(物理电子学专业论文)基于arm9的嵌入式操作系统的设备驱动设计.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉理:亡大学硕士学位论文 摘要 随着科技进步,当前u s b 2 0 标准数据传输速度已远远满足不了用户实际需 要,伴随而来,u s b 3 0 标准应运而生,接踵而至是高速数据传输时代的到来。 由于l i n u x 是源代码开放的操作系统,拥有广泛的自由软件爱好者为基础,使 得其成为第一个正式支持u s b 3 0 标准的操作系统,且在价格上极具竞争优势。 u s b 作为种总线技术,已经得到快速的普及和应用,本文实现了l i n u x 操作系统下u s b 驱动程序的设计以及无线u s b 网络设备驱动程序的设计。以 s 3 c 2 4 1 0 - a r m 9 为硬件平台,以及针对特定的u s b 硬件设备以及以c s 8 9 0 0 a 设备 为基础进行用户态驱动程序的设计实现。本文主要包括如下内容: ( 1 ) 分析国内外嵌入式系统行业现状以及指出其存在的不足之处; ( 2 ) 裁减并制作内核映像文件并进行系统移植。本文通过分析$ 3 c 2 4 1 0 硬 件板特点,根据硬件架构以及实际需要,定制并裁剪制作出合适于该板的操作 系统内核映像文件,并实现a r m 平台的嵌入式l i n u x 系统移植,为下文进行u s b 设备及无线网卡设备用户态驱动程序设计实现提供必要的开发环境; ( 3 ) 设计并实现u s b 设备驱动程序。针对特定平台的u s b 硬件设备模块进 行深入研究,分析u s b 3 0 通信协议和影响u s b 传输速率的因素。根据l i n u x 驱 动程序设计流程以及开发模型,以软件工程思想为指导,对所研究内容进行分 析,设计u s b 设备驱动程序的用户态驱动框架方案。为设备实现了基于文件系 统的接口,使应用程序可以把设备作为文件来进行访问。实现了u s b 总线驱动 模块提供的回调函数,最后对在数据结构与算法上对驱动程序进行优化,完成 设备驱动的安装、加载和卸载操作,并进行编译调试: ( 4 ) 设计无线u s b 网卡用户态驱动程序框架方案。研究无线网络通信原理 和网络设备工作机制,以及无线u s b 网络设备驱动结构,分析网络设备驱动程序 设计模板与具体网卡芯片之问的映射关系,设计针对具体网卡芯片c s 8 9 0 0 的驱 动流程。 关键词:操作系统映像,设备驱动,无线通信,文件系统,嵌入式系统 武汉理:r 大学硕十学位论文 a b s t r a c t w i t ht h ed e v e l o p m e n to ft e c h n o l o g y , t h et r a n s m i s s i o ns p e e do fu s b2 0f a r f r o mm e e t i n gt h er e q u i r e m e n to fu s e r s t h e nu s b3 0e m e 唱e sa st h et i m er e q u i r e s a n df l o w i n gw i t ht h eh i g hs p e e dd a t at r a n s m i s s i o nt i m e s l i n u xi st h es o u s ec o d e o p e no p e r a t i n gs y s t e m ,d u et oo w n w i d ef a n c i e r sa n d c o m p e t i t i v ep r i c e ,l i n u x b e c o m e st h ef i r s to p e r a t i n gs y s t e mt os u p p o r tu s b 3 0 a sau n i v e r s a ls e r i a lb u st e c h n o l o g y , u s bh a v ep u ti n t oa p p l i c a t i o nw i d e l y i n t h i sa r t i c l e ,i tr e l i a z e st h ed e s i g no fu s bd r i v e rp r 6 9 r a mu n d e ro p e r a t i n gs y s t e r m a n dw i r e l e s su s bn e t w o r kd r i v e rp r o g r a m b a s e do na r m 9 ,u s bh a r d w a r ea n d c s 8 9 0 0 a ,t h ed e s i g n i n go fu s e rd r i v e rp r o g r a mi sa l s or e a l i z e d t h i sa r t i c l ei n c l u d e d t h ec o n t e n ta sf o l l o w i n g : ( 1 ) a n a l y s i so fd o m e s t i ca n di n t e r n a t i o n a ls i t u a t i o na n dt h ee m b e d d e ds y s t e m s i n d u s t r y ,p o i n t so u ti t ss h o r t c o m i n g s ; ( 2 jc u ta n dm a k ei n i t r d 。i m ga n dt h e nt r a n s p l a n ts y s t e m a c c o r d i n gt ot h e h a r d w a ma r c h i t e l c t u r ea n dt h ep r a c t i c a ln e e d so ft h i sa r t i c l e ,t h i sp a p e ra n a l y z e st h e c h a r a c t e r i s t i c so ft h eh a r d w a r eb o a r d ,c u s t o m i z e sa n dc r e a t e sas u i t a b l ei n i t r d i m gi n t h eb o a r do ft h eo p e r a t i n gs y s t e ma n dr e l i a l i z e se m b e d d e da r ml i n u xs y s t e m p l a t f o r mm i g r a t i o n i ts u p p o r t st h en e c e s s a r yd e v e l o p e m n te n v i r o m e n tf o ru s e r d r i v e rp r o g r a mr e l i a z a t i o no ft h ef l o w i n gu s bd e v i c e sa n dw i r e l e s sn e tc a r dd e v i c e 。 ( 3 ) d e s i g na n di m p l e m e n tu s b d e v i c ed r i v e r s a c c o r d i n gt ot h ed e s i g np r o c e s s o fl i n u xa n dd r i v e rd e v e l o p m e n tm o d e l ,g u i d e db ys o f t w a r ee n g i n e e r i n gt h i n g l d n g , t h i sp a p e ra n a l y s i s e st h eu n d e rs e a r c h e dc o n t e n tt od e s i g nu s bu s e r s p a c ed r i v e r f r a m e w o r kp r o g r a m t h i sp a p e rr e l i a z e st h ei n t e r f a c ef u n c t i o nb a s e do nf i l es y s t e m t om a k et h ed e v i c eb ca c c e s s e da sd o c u m e n tb ya p p l i c a t i o np r o g r a m i tr e a l i z e s c a l p b a c kf u n c t i o nf o ru s bb u sd r i v e rm o d u l et oi n s t a l l ,l e a da n dd o w n l o a d o p e r a t i o na n dc o m p i l ed e b u g g i n g ( 4 ) d e s i g nw i r e l e s su s b n e tc a r du s e rd r i v e rf f a m e w o r k ;r e s e a r c hw i r e l e s s n e t w o r kc o m m u n i c a t i o np r i n c i p l ea n du s bn e t w o r kd r i v e rs t r u c t u r e ;a n a l y s i st h e m a p p i n gr e l a t i o n s h i pb e t w e e n n e t w o r k d r i v e rd e s i g nt e m p l a t ea n dn e tc a r dc h i p sa n d t h e nd e s i g nc s 8 9 0 0d r i v e rp r o g r a mb a s e d o ns p e c i f i cn e tc a r dc h i p s i i 武汉理r 人学硕七学位论文 k e yw o r d s :o p e r a t i n gs y s t e mi m a g e ,d e v i c ed r i v e r , p r o g r a m s ,f i l es y s t e m ,; e m b e d d e ds y s t e m i i l 独创性声明 本人声明,所呈交的论文是本人在导师指导下进行的研究工作 及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包 含为获得武汉理工大学或其他教育机构的学位或证书而使用过的材 料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作 了明确的说明并表示了谢意。 期:鲨! ! :二望 学位论文使用授权书 本人完全了解武汉理工大学有关保留、使用学位论文的规定, 即学校有权保留并向国家有关部门或机构送交论文的复印件和电子 版,允许论文被查阅和借阅。本人授权武汉理工大学可以将本学位 论文的全部内容编入有关数据库进行检索,可以采用影印、缩印或 其他复制手段保存或汇编本学位论文。同时授权经武汉理工大学认 可的国家有关机构或论文数据库使用或收录本学位论文,并向社会 公众提供信息服务。 研究生( 签名) :孔砒导师( 签名) :袱期跏1 。一n 武汉理 :大学硕十学位论文 1 1 课题研究目的意义 第1 章引言 所谓嵌入式系统,它就是以应用技术为中心,以计算机技术为基础,其软 硬件均可裁减,适用于用户对功能,可靠性,成本,体积功耗有严格要求的专 用计算机系统。由于当前嵌入式系统已经深入到我们生活的各个方面,而用户 对其实时性要求越来越高,实时性应用软件的开发受到实时系统的应用时间、 空间开销的限制,因此,通常需要在专门的开发平台上进行软件的交叉开发。 而这种交叉软件的开发的起点又是很高的n 1 。那么什么是宿主杌? 什么是目标机? 顾名思义,开发平台称为宿主机,应用系统是目标机。宿主机可以是与目标机 相同或不相同的机型。这种不同机型的开发平台称作交叉开发系统。 对于不同硬件平台,其硬件资源和实时性程度是不同的。由于嵌入式系统 的不断增加系统复杂性,嵌入式操作系统已经成为嵌入式系统中最重要的组成 部分。在各种各样的嵌入式操作系统中,开源的l i n u x 操作系统凭借其在内核 架构清晰、源代码开放性等诸多方面的优势,成为基于监控系统、手持设备等 嵌入式系统领域应用中的技术热点心3 。 当前市场上相当多的嵌入式系统领域应用涉及到可移动终端产品功能。例 如:u s b 产品的可热插拔功能,当然要利用u s b 设备接口;而涉及到互联网终 端产品实现上网功能,那当然必不可少的要用到网卡接口。要使这些硬件设备 接口发挥它他的作用,就需要对不同的设备进行驱动。而不同的设备接口的用 户态驱动程序是不同的嵋。 而目前市场上的不同种类,不同型号的u s b 控制芯片很多,在不同的应用场 合,其硬件外围电路架构亦不样。根据a r m 开发板上的u s b 硬件芯片型号或网 卡主控芯片器件型号,针对不同的u s b 设备或网卡设备丌发出相应的驱动,这 些驱动程序对于外围端口来说,具有统一的接口驱动程序,以满足实际工作的需 要。 本文主要是选取嵌入式系统软件有关a r m 9 硬件平台的设备驱动程序开发, 具有相当的现实意义。 武汉理jr = 大学硕士学位论文 1 2 国内研究现状及存在问题 当前,嵌入式系统软件的发展趋势主要体现在以实时操作系统( r t o s ) 为基 础的软件平台专业化和商品化。操作系统是嵌入式系统的软件开发平台,最关 键的部分是操作系统内核。内核的基本功能包括任务管理、定时管理、存储器 管理、资源管理、事件管理、系统管理、消息管理、队列管理等。这些管理功 能是通过内核服务函数形式交给用户调用的,也就是操作系统( o s ) 的应用编程 接口( a p i ) 的引入,解决了嵌入式软件开发标准化的难题。 近年来,国内嵌入式软件取得飞速发展,应用领域不断扩大,已成为国内 软件产业新的增长点。但国内嵌入式软件产业还存在着几大突出问题: 第一大突出问题是:自主知识产权技术非常薄弱。e m b e d d e do s 是嵌入式 软件的基础和核心,以实时性嵌入式操作系统为例,其己进入国内市场的国外 产品有w i n d r i v e r 和n u c l e a r 等,国内同类产品主要是基于自主版权的l i n u x 操作系统。但从整体市场来看,目前国外产品的市场份额明显高于国内产品。 第二大突出问题是:复合型人才非常短缺:由于嵌入式软件对人才的要求 较高,其从事嵌入式软件的人员要求很强的软硬件技术转化能力。目前,国内 嵌入式软件复合型人才基数小、队伍不稳定,缺口较大。 第三大突出问题是:嵌入式产品的合作平台带来的效果远没有发挥出来。 由于当前国内的很多e m b e d d e ds y s t e m 厂商规模普遍比较小,各厂商都倾向选 选择合作开发新产品新技术、共同规划并升级产业链,提供完善的产品开发环 境,形成利益共同体p 1 。但目前情况是,国内绝大多数嵌入式软件厂商,在新产 品策划设计上,大多没有什么创新规划,基本采取跟踪国外同类产品的设计规划 策略,无法对国内嵌入式软件系统提出明确需求,对客户需求也不十分明确。 所以国内嵌入式软件厂商在加强本地化和标准化建设方面进展缓慢。这种势头 给国内技术交流,技术合作,技术创新带来后果是与国外很多e m b e d d e ds y s t e m 厂商的差距会越来越远。对国内e m b e d d e ds y s t e m 厂商将来走向国际化非常不 利嘲。 目前针对市场上的不同种类,不同型号的u s b 主控制器芯片或网卡芯片非常 多。即使是同一款控制器芯片,它们在各自不同的应用场合,其硬件外围电路架 构亦不一样。所以,针对不同的应用场合的u s b 或网卡的硬件架构应该有不同的 驱动程序,而不是拿出_ 个通用的u s b 或网卡驱动程序。还有一点是,目前市场 上会出现的新旧u s b 设备的兼容性问题比较突出。因此,当前该领域存在的问 2 武汉理:r 大学硕士学位论文 题希望能够在此引起该行业内e m b e d d e ds y s t e m 厂商及相关从业研究人员的重 视。 据国外媒体报道,u s b3 0 是最新的u s b 规范,这个规范由英特尔、微软、 惠普等大公司发起。目前,其前者u s b2 0 已经得到了p c 厂商普遍认可,而相 较于u s b2 0 ,u s b3 0 的性能有了大幅的提升,具体如下: l 、速度大幅提升,每秒可达4 8 g b 传输速度; 2 、对需要更大电力支持的设备提供更好的支拱最大化了总线的电力供应; 3 、增加了新的电源管理职能; 4 、全双工数据通信,提供了更快的传输速度; 5 、向下兼容u s b2 0 设备。 实际上,早在2 0 0 7 年,向后兼容u s b3 0 的标准就已经正式建立,然而u s b 3 0 主板的面世被一再地推迟。近日,外界的分析师表示,就在不久的将来, 用户便可以与u s b3 o 技术( s u p e r s p e e d u s b ) 见面了。 据了解,u s b3 0 技术( s u p e r s p e e d u s b ) 的传输速率可达4 8 g b i t 秒,速 度是u s b2 0 最高速率的1 0 倍。可以说,u s b3 0 是用户迅速传输大型文件的 理想选择。 来自调研机构i n s t a r 的研究表明,2 0 1 2 年,u s b3 0 将会被用于7 0 的存 储设备,例如外置硬件、闪存驱动器、便携式媒体播放器等等。 i n s t a t 的报告还指出,2 0 1 0 年,u s b3 0 的采用率将会首度增加,并率先 在外部存储设备上普及,继而在未来几年中成为主流。 然而,i n s t a t 的分析师b r i a n0 r o u r k e 表示,为了提升普及率,u s b3 0 将会被迫大幅降价。 1 3 本文的主要工作及内容安排 本论文从应用层驱动程序设计的开发流程出发,首先结合嵌入式硬件架构, 针对目标硬件裁剪出适合目标板的嵌入式系统平台,然后从嵌入式操作系统的 移植入手,进行系统移植后成功构建嵌入式软件开发平台,在此基础上进行软 件开发。全文结构如下: 第一章:介绍本课题的选题目的和意义以及国内外研究现状以及国内该行 业所存在的种种问题。 第二章:究研a r m 9 处理器硬件结构,针对其特定硬件结构,对l i n u x 嵌入 武汉理:厂人学硕十学位论文 式系统进行相应裁减、配置、编译,然后进行系统移植,构建出实时程度较高 的嵌入式系统。 第三章:详细分析u s b 3 0 标准协议,根据驱动程序设计流程,进行l i n u x 下应用层u s b 驱动程序设计编码优化以及编译安装测试。 第四章:u s b 设备驱动程序详细设计。 第五章:究研a r m 9 处理器上另一网络设备模块网卡,针对目标板进行驱动 程序设计优化及安装调试,实现目标板无线网卡驱动程序,并与外界进行无线 网络数据通信。 第六章:针对本课题所做的工作内容做一个全文总结及下一步工作展望。 4 武汉理下大学硕士学位论文 第2 章硬件平台分析及l in u x 裁减移植 2 1 嵌入式系统及设备驱动特点分析 ( 一) 嵌入式系统及其特点分析 以客户需求为中心,以计算机技术为基础,以市场为风向标,并且软硬件 可裁剪的e m b e d d e do s ,适用于对产品成本、体积、功能、可靠性、功耗有为 特殊要求的专用c o m p u t e ro s 。它一般由嵌入式微处理器芯片、外围硬件设备、 嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其它设备的 控制、监视或管理等特殊功能h 。 嵌入式系统的组成包括两个部分:硬件部分和软件部分。图2 - 1 为任一嵌 入式系统都必须的软硬件架构框图。 用户应川程序 a p i 嫡数接口 操作系统 驱动中独立丁设备的接口 i j 驱动硬件操作 硬件 图2 - 1 嵌入式系统软硬件架构图 1 ) 针对本文的e m b e d d e do s 硬件包括:嵌入式中央处理器芯片、外部存储 器n a n df l a s h 及i 0 设备、网络接口( c s 8 9 0 0 芯片) 及u s b 接口:l c d 触摸屏接 1 2 1 等等。其核心是嵌入式中央处理器,其具有以下几个特点: ( 1 ) 功耗低,高性能。主频5 2 0 m h z ,功耗仅为7 5 0 m w 。处理器最高能达到 2 0 0 0 d m i p s 1 ,可以运行多通道视频,音频和部分应用程序,以满足越来越高的 消费产品的用户的需求。 ( 2 ) 可扩展存储处理器结构。根据不同的应用需求,可以扩展开发出不同 的外围硬件结构,满足不同的应用需求。 ( 3 ) 具有很强的多任务存储保护能力。对于目前的嵌入式软硬件模块各自 独立,为避免模块问的编译出错,就必须要求处理器有强大的存储保护功能n 引。 武汉理:t :人学硕十学位论文 2 ) 实现嵌入式系统功能的关键要素是软件,它包括嵌入式操作系统软件和 应用软件。在项目设计需要时,软件架构规划设计人员会考虑把这两种软件组 合在一起,利用应用程序控制系统运作及行为,从而实现某种功能n 胡:而操作系 统控制其与硬件的交互功能。 嵌入式系统软件有以下几个方面的特征: ( 1 ) 实用性。嵌入式软件是为嵌入式软硬件系统服务的,它要求与外部硬 件设备紧密相联。嵌入式系统以实际应用为中心,根据应用需要而定向开发的, 面向市场,这种软件的实用性针对特定行业,需要资深行业经验。每种嵌入式 软件都有自己独特的实用价值和应用环境制。 ( 2 ) 灵活的适用性。嵌入式软件常被认为是一种模块化软件,它能非常灵 活应用到种嵌入式系统中,而对嵌入式系统原有的特性和功能不造成影响。一 是嵌入式软件小巧,不需要占用大量系统存储资源;二是应用灵活,升级快速 灵活方便n 引。 ( - - ) 设备驱动及特点分析 设备驱动程序,是一种可以使计算机与硬件设备通信的特殊程序,可以理 解为操作系统的一部分。通过驱动程序来控制硬件的接口,操作系统只能通过 驱动程序来达到控制这个接口,以控制硬件设备工作的目的。假如某设备的驱 动程序未能正确安装,那么操作系统便不能有效控制此设备。正因如此,驱动 程序在系统中的所占的地位十分重要,一般当操作系统安装完毕后,首要的便 是安装硬件设备的驱动程序。 字符设备是指那些必须以串行顺序进行访问的设备,有先有后,比如:电 脑鼠标、键盘、触摸屏等等设备;而块设备是指以块为单位进行操作,以随意 顺序进行访问操作的设备瞳3 ,比如:软驱和电脑硬盘等相关块设备;最后是 网络设备,是指在完成用户数据包在网络介质上发送和接收的设备,将上层协 议传递下来的数据包以某种特定的媒介访问控制方式进行发送,并将接收 到的数据包传递给上层网络通信协议u7 1 ,比如:u s b 网络设备,网卡设备等等。 由于三类设备驱动程序各自的特点都有些不样:字符设备不需要经过系 统的快速缓冲区进行缓冲处理,而块设备需要经过系统的快速缓冲区进行缓冲 处理n 引。对于用户来说,它们都使用操作系统的库文件的系统函数作为接口, 来对底层的硬件设备进行访问控制,如o p e n 0 、c l o s e 0 、r e a d 0 和w r i t e 0 等等函数来进行对设餐的访问控制啪3 。 设备驱动程序与一般的应用程序及系统程序之间,存在下列的明显差别: 6 武汉理_ r :大学硕十学位论文 1 ) 驱动程序主要是在请求i o 进程与设备控制器之间的通信程序。 2 ) 驱动程序与i o 设备的特性及控制方式紧密相关。 3 ) 由于驱动程序与硬件紧密相关,因而其中部分代码必须用汇编语言书写。 l i n u x 系统对网络设备驱动程序构架分四个层次,分别为:网络设备接口 层、n e t w o r kp r o t o c o l 接口层、n e t w o r kd e v i c e 与m e d i a 层和提供实际功能的 设备驱动功能层。 ( 三) 编写设备驱动程序技术基础分析 编写驱动程序需要非常多的基础知识: ( a ) 驱动工程师在编写l i n u x 驱动程序时,需要懂得s r a m 、f l a s h 、s d r a m 等存储设备读写方式,u a r t 、u s b 等网络设备接口,还有中断原理、轮询和d m a 直接寄存器存储原理,p c i 总线工作方式和c p u 内存管理单位等硬件知识。 ( b ) 编写驱动程序要求驱动工程师拥有优秀的c 语言基础知识,能灵活运用 c 语言指针,指向函数的指针,结构体,动态的分配内存及释放内存等知识。 ( c ) 编写驱动程序还要求拥有相当深底的嵌入式l i n u x 内核知识,但并不要 求工程师对内核的各个模块都有深入的研究,但至少对于内核的对接口要比较 了解,特别是比较复杂的设备系统。 ( d ) 编写l i n u x 驱动程序要求软件工程师要拥有优秀的多任务条件下的任 务的并发控制相关知识及多线程同步知识,因为在设备驱动程序中会大量使用 自旋锁机制、互斥机制、信号量机制、消息对列的并发与同步机制n 引。 2 28 3 0 2 4 10 硬件平台分析 硬件平台是三星公司$ 3 c 2 4 1 0 为平台,基于a r m 9 2 0 t 内核的1 6 3 2 位精简 指令集e m b e d d e dp r o c e s s o r ,内核由a p 狲1 9 t d m i 、存储管理单元和高速缓存三部 分组成。h a r v a r d 体系结构支持5 级流水线操作。其中,m m u 可以管理虚拟 内存,高速缓存由独立的1 6 k b 地址和1 6 k b 数掘高速c a c h e 组成n 7 1 。a r m 9 2 0 t 有两个内部协处理器:c p l 4 用于调试控制,c p l 5 用于存储系统控制以及测试 控制。$ 3 c 2 4 1 0 支持从n a n df l a s h 启动。 ( 一) s 3 c 2 4 1 0 硬件平台分析 优龙科技采用的是三星公司的$ 3 c 2 4 1 0 处理器,其硬件平台,此平台提供了 丰富的内部和外部功能接口。包括:3 5 寸l c d 液晶显示屏、,。n a n df l a s h 系统 引导安装、s d r a m 控制器、3 通道通用异步接收发送装置、+ 4 通道直接内存访 武汉理工大学硕士学位论文 问、4 通道定时器、输入输出口、r t c 、8 通道l o 位a d c 和触摸屏接口、通用串 口总线主机、s d 主卡及c 卡接口等。 $ 3 c 2 4 1 0 支持两种启动模式:一种是从n a n df l a s h 开始启动:另一种是从 外部n g c s o 片选的n o rf l a s h 开始启动,可以选择同时预装两个操作系l i n u x 和u c o s 。拔下核心板上的跳线帽从n o rf l a s h 启动u c o s 系统或者n u c l e u s 系 统。装上跳线帽以后,从n a n d f l a s h 启动l i n u x 系统”“。 ( 二) a p 4 1 9 处理器特点分析 5 级流水线设计,提高时钟频率和并行工作处理能力。可以将每一条指令分 配到5 个时钟周期内,并且每一个时钟周期内,有5 条指令在工作执行。图2 2 表示的是a r m 9 的5 级最佳流水线取指方式。 r 0 舭 取盘讳黯执行访存回茸 r 4 取指详鹌执行访存划写 r 1 3 1取帑嬲 札舒访杠回写 r 6 时 戢揩 馥面 # 日毋往d 写 r r 8 ,r t i 取簿降妈 执行 谛存 回笃 时* 月捌 。t i t 2 。亿t 4 t 5l 佰lt 7 圈2 - 2a 肌9 的5 级流水线互锁 3 2 b i t 定点r i s c 精简指令集p r o c e $ s o r ,改进型a r m t h u m b 代码交织,增 强性乘法器设计。支持实时( r e a l t i m e ) 调试;片内指令和数据s r a m ,而且指 令和数据的存储器容量可调;片内指令和数据高速缓冲器( c a c h e ) 容量从4 k 字 节到l m 字节;设置保护单元,非常适合嵌入式应用中对存储器进行分段和保护 “”;采用a 黼a a h b 总线接口,为外设提供统一的地址和数据总线;支持外部协 处理器,指令和数据总线有简单的握手信令支持;支持嵌入式跟踪宏单元,支 持实时跟踪指令和数据“”。 23 构建交叉编译环境及系统裁减移植 2 3 1 构建交叉编译环境 编译嵌入式l i n u x 内核前,要先安装交叉编译工具t o o l c h a i n ,随板已附 带编译工具,其具体操作步骤如下: 武汉理工火学硕士学位论文 第一步:将c r o s s - 3 3 2 t a r b z 源代码拷贝到某个工作目录下, 该目录,执行解包命令,操作如下: t a rz x v fc r o s s - 3 3 2 t a r b z 2 ,之后可编辑e t c b a s h r c 文件, 增加交叉编译工具的环境变量路径: 之后进入 在文件中 e x p o r tp a t h = u s r 1o c a l a r m 3 3 2 bin :$ p a t h 。 第二步:进入解压后的目录文件:c dc r o s s t o o l - 3 3 2 ,查找a r m 9 的2 4 1 0 对应c p u 的脚本是d e m o a r m 9 t d m i s h ,并修改以下几行内容: t a r b a l l s d i r = $ h o m e d o w n l o a d s 存放工具源码压缩包目录 r e s u l t _ t o p = o p t c r o s s t 0 0 1 存放将要生成工具链目录 g c c _ l a n g u a g e s = ”e ,c + + ”支持编译c 和c + + 语言 # e v a l 、c a ta r m 9 t d m i d a t g c c 一3 4 5 - g l i b c 一2 3 5 d a t 、s h a 1 1 s h n o t e s t 所选工具链的版本号,“# ”除掉便可 第三步:把r e s u l t _ t o p = o p t c r o s s t 0 0 1 修改成为r e s u l t _ t o p = $ h o m e t o o l c h a i n s ,并在h o m e 的当前目录下建立d o w n l o a d s 下载目录文件夹和 t o o l c h a in s 工具链目录文件夹两个目录,用于存放源代码码压缩数据包和将要 生成的工具文件。 第四步:打开c r o s s t o o l 一3 3 2 目录下的g c c 一3 4 5 一g l i b c 一2 3 5 d a t 文 件,内容如下: b i n u t i l s d i r = b i n u t ii s 一2 1 5 g c c _ d ir = g c c 一3 4 5 g l i b c d i r = g li b c 一2 3 5 l i n u x _ d i r = l i n u x 一2 6 8 l i n u x _ _ s a n i t i z e dh e a d e rd i r = i i n u x li b c h e a d e r s 一2 6 1 2 0 g l i b c t h r e a d s f i l e n a m e = g li b c li n u x t h r e a d s 一2 3 5 然后就可以到网上去下载上面等号右边对应版本的几个源代码包,注意是 对应版本号,下载后放到d o w n l o a d s 目录下。注意,不需要解压。 第五步:进入c r o s s t o o l 文件夹,在命令行下执行d e m o a r m 9 t d m i s h 操 作,然后慢慢等待编译完成,完成后就可以在t o o l c h a i n s 目录中看到想要的工 具链,头文件以及库文件了。最后把工具链所在目录加到环境变量p a t h 中即可 使用工具链了。这样交叉编译工具就成功,如图2 - 3 所示。 9 武汉理【 学硕+ 学位论文 目el d kv i e w 卫r m i n a l 龟皇5h e l p r o o t t o m pa f m 一1 i n u x o c c v 4 s i n gu u l l t - i ns p e c s a r g e t a r mn o n el i n u xg n u e a b i o n f l 口ur e dw i t h :s ot a t c h j u t i a n l t e e5 p i n t i n u x s r c g c c43 c o n f i g u r e b u i ld 1 6 8 6 口( 1 l n u x g n u - t h o s t = i 6 8 6p c - l m u x g n u 。“t a r g e t 。a r n d n e l 1 n u xd n u e a b l e n b let h r e a d s d s a u t e i b m u d f a p d i s a b l e - 1 u s 邛一d i s a b l el i b ;t d c x x 。p c h w i t - q n u - ”w i t hg n u t l de n a b l e l a n g u a g e s = c e n a b l e s h a r e d e n a 口址j y l v ers g n u ,e n a b t e - c x aa t e x i _ 一t hp h g v e r s i o n = s o u r c e r y6 + + l i t e2 b o b q 3 。7 2 一w l t _ b u o u r l = h t t p sl l s u p p o r tc o d e s o u r c e r ( o m 5 n u t o o l c h a n 。d i s a b l e n l 5 p r e f i x 3 p t i c o d e s d u r ( e r y u i t h s y s r o o t = o p t 几o d e s o u r c e r y ar m n o r e 。l i n u x g n u e a b t l i b ( i t hb u i l d5 v 5r e e t = l s c r a t c h j u l j a n l i d e 一,e s p i 州u n u x i n s t a l l ar mn o n e l i n u x9 叫e b i l ib c w i t hg m p = s c r a t c h 】a r i a n r i t er e s p l n ,1 1 n u x ,o b j h os t f i bs2 8 0 b q 3 7 2 。a r - n o n e 1 i n u x g n u e a b i 一1 6 8 6 一p c l i n u xg n u u s r - w i t hm p f r 一s cr a t c h 】u l z a n l l t e 。r e s p n l i n u x o b j h o s tl l b s2 0 0 8 q 37 2ar mn o n el d n u xg n u e a b l 。1 6 8 6 d c t i n u x g n u u s r j5a b l eu b g o m p e n a b l ep o i s o n s y s t e m d lr e c t or i e s w i t h b u il d l n m et o o i s 2 s c r a o h j u l i a n r i t e tr e o l n 儿l n u x ,l n t al l ,ar m n o n e - l i n u xg n u e a b j z b i n w z t hb u i l dt i m t 0 0 is = l s c r a t ( h 1u i a a l l _ i t e r e s p i n l i n u x i n s t a l 【ar m n o n el i n u xg n u e a b t b l n b r e a dm o d e l p o s ix c ( v er 5 i o n4 32e s o u r ( e r y6 l n ez 0 0 b q 3 。7 2 1 圉2 - 3a r r - l i n u x - g c c 交叉编译环境的建立 在完成上述工作基础上,便可进行下一步工作:系统裁减编译移植。 2 3 2 制作并加载引导程序 在试验室内部的$ 3 c 2 4 1 0 的a 洲板上,进行相关的嵌入式软件项目开发工 作,首先对a r m 板安装移植一个嵌入式操作系统。此操作系统需要根据a 板 相关硬件结构,裁减出一个简单高效,实时性强,以适用于定制开发扳要求,项目 需要的嵌入式操作系统并进行移植“”。 e m b e d d e do s 包括3 部分:g r u b ,l i r u x 内核和r o o tf s 。 b o o ti o a d e r ( 引导加载程序) :是系统加电后运行的第一段代码。完成由 硬件启动到操作系统启动的过渡,为运行操作系统提供基本的运行环境“”。 其任务是从引导设备装载内桉,引导系统运行。本文用的是v i v i 引导。 内核( k e r h e ) :操作系统的核心。l i n u x 内拨提供很多基本功能,如内存 管理、中断管理、进程调度、多进程线程管理、文件系统、网络初始化配置以 及设备驱动程序“。 根文件系统( r o o tf i i e s y s t e m ) :是存放运行、维护系统所必须的各种工 具软件、库文件、脚本、配置文件和其他特殊文件( 比如设备节点) 的地方, 也可以安装各种软件包。 首先配置v i v i 引导程序所支持a 蹦9 开发板的相关参数,下载v i v i 引导程 武汉理 二大学硕十学位论文 序源代码后,修改v i v i m a k e f i l e 顶层m a k e f i l e 文件以下三处地方: ( 1 ) 指定编译时需要用到的头文件的路径: l i n u x _ i n c l u d e _ d i r = u s r l o c a l a r m i n c l u d e ( 2 ) 指定编译时需要用到的库文件的路径: l i n u x i n c l u d e d i r = u s r 1 0 c a l a r m i n c l u d e ( 2 ) 指定编译时需要用到的库文件的路径: a r mg c cl i b s = u s r 1o c a l a r m lib g c c - 1ib a r m - 1in u x 4 3 2 其次,交叉编译器根据顶层m a k e f i l e 去调用各文件子目录m a k e f i l e ,根 据m a k e f i l e 中程序的编译规则进行v i v i 源代码编译工作。 最后,在命令行下执行命令:m a k ev i v i 就可以的到一个名为v i v i 的映象 文件,然后通过下载工具,烧到n a n d f l a s h 中指定的地址( 这个地址在f l a s h 分区表2 - 1 表中已给出) ,启动后通过串口打印就可以看到v i v i 的启动信息。 2 3 3 系统裁减及移植 限于篇幅,这里就不再对l i n u x 内核结构裁减作详细分析。 ( 1 ) 为f l a s h 进行分区 打开超级终端或d n w 终端显示工具启动2 4 1 0 开发板,进入v i v i ,按照 以下命令重新分区,分区信息如表2 一l 所示。 v i v i b o np a r t01 2 8 k 1 9 2 k2 2 4 0 k5 3 1 2 k :m6 4 7 0 4 k 此时f l a s h 已被格式化掉,注意千万不要重启开发板,否则出现严重后果。 表2 - if l a s h 分区表 分区起始地址 分区大小分区作用 p a r t o o x o o x 0 0 0 2 0 0 0 0 ( 1 2 8 k引导程序 ) 。 p a r t l o x 0 0 0 2 0 0 0 0 o x 0 0 0 10 0 0 0 ( 6 4 k )引导程序参数 p a r t 2 0 x o 0 0 3 0 0 0 0o x 0 0 2 0 0 0 0 0 ( 2 m ) 系统内核 p a r t 3 o x 0 0 2 3 0 0 0 0o x 0 0 3 0 0 0 0 0 ( 3 m )r o o t 文件系统 p a r t 4 o x 0 0 5 3 0 0 0 0o x 0 3 a 0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论