




已阅读5页,还剩73页未读, 继续免费阅读
(信号与信息处理专业论文)基于arm平台的存储卡系统设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 随着现代计算机技术和互联网技术的飞速发展,嵌入式系统成为了当前信息 行业最热门的焦点之一。而a r m 以其高性能低功耗的特点成为目前应用最广泛的 3 2 位嵌入式处理器。在嵌入式操作系统方面,l i n u x 凭借其性能优异、结构清晰、 平台支持广泛、网络支持强劲及开放源代码等多方面的优势,被嵌入式系统开发 者广泛地采用。l i n u x2 6 包含许多新的特性,为其在嵌入式领域的应用提供了强 有力的支持,新的内核越来越多地应用于嵌入式l i n t t x 系统中。 本文的工作基于艾科公司研发的硬件平台a r k l 6 0 0 开展。该平台上集成了多 个功能模块,例如l c d 、1 2 s 、g p i o 、1 2 c 等,同时支持x d 、c f 、m m c 、s d 等 多种硬件存储设备,在设备通信方面提供了u s b 、串行通信等传输方式。本文的 主要工作是研究l i n u x 在a r m 芯片上的移植,并在此基础上阐述l i n u x 设备驱动 的开发。文章首先构建了交叉编译环境,然后在分析a r k l 6 0 0 硬件体系结构的基 础上详细阐述了b o o t l o a d e r 程序设计与实现、l i n u x 2 6 内核移植、r a m d i s k 文件 系统移植的全过程,为后续项目的实施搭建了一个良好的开发平台。论文最后阐 述了l i n u x2 6 内核中开发块设备驱动程序的实现方法,并以x d 块设备驱动程序 为例,详细阐述了l i n u x 驱动程序的开发流程。 论文的主要工作量在于b o o t l o a d e r 程序的设计与实现、l i n u x 系统移植和x d 块设备驱动程序的开发。因为项目平台独特的硬件环境,一些程序代码要严格依 赖硬件设备设计。在l i n u x 移植中的主要工作包括串口控制台的驱动、设置系统 的存储布局、初始化系统定时器、初始化系统中断、在l i n u x 系统中建立标识本 硬件平台的结构体变量、配置并编译l i n u x 内核等。 关键词:系统启动引导,l i n u x 移植,文件系统,块设备驱动,逻辑物理转换表 a b s t r a ( 了r a b s t r a c t w i t ht h er a p i dd e v e l o p m e n to fm o d e mc o m p u t e rt e c h n o l o g ya n di n t e r n e t t e c h n i q u e s ,t h ee m b e d d e ds y s t e mb e c o m e so n eo ft h ea t t e n t i o nf o c u si ni n f o r m a t i o n i n d u s t r y n o w a d a y s ,a r mw i t h3 2 - b i te m b e d d e dp r o c e s s o rb e c o m e st h em o s tw i d e l y a p p l i e df o ri t se x t r a o r d i n a r yp e r f o r m a n c ea n dl o wp o w e rc o n s u m p t i o n f r o mt h ep o 血 o fe m b e d d e do p e r a t i o ns y s t e m , l i n u xh a st h ea d v a n t a g eo fg o o dp e r f o r m a n c e , c l e a r s t r u c t t t r e , w i d ep l a t f o r ms u p p o r t i n g , s t r o n gn e t w o r ks u p p o r t i n ga n ds o u r c eo p e n , s o ,i t h a sb e e nw i d e l yu s e db ye m b e d d e ds y s t e md e v e l o p e r s l i n u x 2 6h a sm a n yn e wf e a t u r e s t h a tp r o v i d es t r o n gs u p p o r t i n gf o re m b e d d e ds y s t e ma p p l i c a t i o n u n d o u b t e d l y , i ti st h e i n e v i t a b l et r e n do fa p p l y i n gt h en e wk e r n e li n t om u c hm o r el i n u xe m b e d d e ds y s t e m s t h ep r o j e c ti sb e g a nw i t ht h eh a r d w a r ep l a t f o r ma r k l6 0 0 ,w h i c hi sa np r o j e c to f a r k m i c r oc o m p a n y t h ep l a t f o r mi n t e g r a t e san u m b e ro ff u n c t i o n a lm o d u l e s ,s u c ha s l c d ,1 2 s ,g p i o ,1 2 ce t c f u r t h e r m o r e , i ts u p p o r t sx d ,c f , m m c ,s ds u c h l i k es t o r a g e d e v i c e s i nt h ea s p e c to fe x t e r n a ld e v i c ec o m m u n i c a t i o n , u s ba n ds e r i a lt r a n s m i s s i o n a r es u p p o r t e di nt h es y s t e m t h em a i nt a s ko ft h ea r t i c l ei st os t u d yh o wt om i g r a t e l i n u xt oa na r m c h i p ,f o l l o w i n gt h i ss t e pi st od e v e l o pl i n u xb l o c kd e v i c ed r i v e r s f i r s to fa l l ,p a p e rb u i l daa c r o s sc o m p i l e re n v i r o n m e n t a n dt h e no nt h eb a s i so f a r kl6 0 0h a r d w a r es y s t e ms t r u c t u r ea n a l y s i s ,t h ea r t i c l ed e t a i l e di n t r o d u c e dw h o l e p r o c e s so ft h em i g r a t i n g ,f r o md e s i g na n di m p l e m e n to fb o o t l o a d e rp r o g r a m m i n gt o m i g r a t i n gl i n u x2 6k e r n e la n dr a m d i s kf i l es y s t e m ,f i n a l l yh a v ec o n s t r u c t e daw e l l d e v e l o p m e n tp l a t f o r mf o rt h ee x e c u t i o no fc o n s e q u e n ti t e m t h ea r t i c l ea tl a s td e s c r i b e d t h er e a l i z a t i o no fb l o c kd r i v e ri nl i n u x2 6k e r n e l ,m a k ea ne x a m p l eo fx dc a r dd r i v e r , d c t a i l e di n t r o d u c e dt h ew h o l ep r o c e s so fl i n u xd r i v e rd e v e l o p m e n t t h em a i nt a s ko ft h et h e s i si sd e s i g na n di m p l e m e n to fb o o t l o a d e rp r o g r a m m i n g a n dl i n u xp o r t i n ga n dd e v e l o p m e n to fx dc a r db l o c kd e v i c ed r i v e r b e c a u s eo ft h e u n i q u eh a r d w a r ep l a t f o r me n v i r o n m e n t ,an u m b e ro f c o d e sm u s tb es t r i c t l yd e p e n d e n t o l lh a r d w a r e t h em a i nw o r ko fl i n u xt r a n s p l a n t a t i o ni n c l u d e ss e r i a lc o n s o l ed r i v e r , s e t t i n gs p a c eo fh a r d w a r em e m o r y , s y s t e mt i m e ri n i t i a l i z a t i o n , s y s t e mi n t e r r u p t i o n i n i t i a l i z a t i o n m o r e o v e r , w es h o u l dm a k es u r et h es t r u c t u r ew h i c hc a l lb er e c o g n i z e db y a b s t r a c t l i n u xs y s t e mb ec r e a t e dc o r r e c t l y a l s oi ti sv e r yi m p o r t a n tt oc o n f i g u r ea n dc o m p i l e l i n u xk e r n e l k e y w o r d s :s y s t e mb o o t l o a d e r , l i n u xp o r t i n g ,f i l es y s t e m ,b l o c kd e v i c ed r i v e r , l o g i c - p h y s i c a lc o n v e r s i o nt a b l e i i i 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名:垦查茎圣日期:a 矿矿陴多月之日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名: 甾未尹云 导师签名: 日期:庆pp 了年乡月之日 第一章绪论 第一章绪论 随着电子技术的快速发展,特别是大规模集成电路的产生而出现的微型机, 使现代科学研究得到了质的飞跃,而嵌入式微控制器技术的出现则是给现代工业 控制领域带来了一次新的技术革命。由嵌入式微控制器组成的系统,最明显的优 势就是可以嵌入到任何微型或小型仪器、设备中。 嵌入式系统被定义为:以应用为中心,以计算机技术为基础,软件硬件可剪 裁,适应应用系统,对功能、靠性、成本、体积、功耗严格要求的专用计算机系 统【1 1 。目前嵌入式技术广泛应用于智能家电,消费类电子,多媒体,网络工程,卫 星通信,军事工业等领域,具有无限优越的应用前景。 1 1嵌入式系统的应用领域及发展现状 嵌入式系统技术具有非常广阔的应用前景,其应用领域可以包括【2 3 】: ( 1 ) 工业控制 基于嵌入式芯片的工业自动化设备具有很大的发展空间,目前已经有大量的8 位、1 6 位、3 2 位嵌入式微控制器应用在工业过程控制、数控机床、电力系统、电 网安全、电网设备监测、石油化工系统等领域。就传统的工业控制产品而言,低 端型往往采用8 位单片机,但是随着技术的发展,3 2 位、“位微处理器逐渐成为 工业控制设备的核心。 ( 2 ) 交通管理 在车辆导航、流量控制、信息监控与汽车服务方面,嵌入式系统技术已经获 得了广泛应用,内嵌g p s 模块的移动定位终端已经在各种运输行业成功使用。 ( 3 ) 信息家电 这将成为嵌入式系统最大的应用领域,冰箱、空调等的网络化,智能化将引 领人们的生活步入一个崭新的空间。 ( 4 ) 环境监测 电子科技人学硕士学位论文 环境监测包括水文资料实时监测,防洪体系及水土质量监测,堤坝安全,地 震监测网,实时气象信息网,水源和空气污染监测等。在很多环境恶劣,地况复 杂的地区,嵌入式系统将实现无人监测。 ( 5 ) 机器人 嵌入式芯片的发展将使机器人在微型化,智能化方面的优势更加明显,同时 会大幅度降低机器人的价格,使其在工业领域和服务领域获得更广泛的应用。 除了以上这些应用领域,嵌入式系统还有很多其他方面的应用。嵌入式系统 已经进入到现代社会中人们生活的方方面面,可以说是“无处不在”,尤其是在控 制方面的应用。就远程家电控制而言,除了开发出支持t c p i p 的嵌入式系统之外, 家电产品的控制协议也需要制定和统一,这需要家电生产厂家来做。同样的道理, 所有基于网络的远程控制器件都需要与嵌入式系统之间实现接口,然后再由嵌入 式系统来控制并通过网络实现。所以,开发和探讨嵌入式系统有着十分重要的意 义。 1 2嵌入式系统的发展趋势 随着市场对超微型嵌入式应用技术和产品的要求不断增长,以及半导体技术 和系统设计方法的进步,嵌入式系统在目前的发展形势下,表现出以下几大趋势 1 4 - 5 1 : ( 1 ) 嵌入式应用软件的开发需要强大的开发工具和操作系统的支持 随着因特网技术的成熟,带宽的提高,i c p 和a s p 在网上提供的信息内容日 趋丰富,应用项目多种多样,像电话手机、电话座机以及电冰箱、微波炉等嵌入 式电子设备的功能不再单一,电气结构也更为复杂。为了满足应用功能的升级, 设计师们一方面采用更强大的嵌入式处理器,如3 2 位、6 4 位r i s c 芯片或信号处 理器d s p 增强处理能力;同时还采用实时多任务编程技术和交叉开发工具技术来 控制功能复杂性,简化应用程序设计,保障软件质量和缩短开发周期。 ( 2 ) 联网成为必然趋势 为适应嵌入式分布处理结构和应用上网需求,2 l 世纪的嵌入式系统要求配备 标准的一种或多种网络通信接口。针对外部联网要求,嵌入式设备必需配有通信 接口,相应需要t c p i p 协议簇软件支持;由于家用电器相互关联( 如防盗报警、 2 第一章绪论 灯光能源控制、影视设备和信息终端交换信息) 及实验现场仪器的协调工作等要 求,新一代嵌入式设备还需具备i e e e l 3 9 4 ,u s b ,c a n ,b l u e t o o t h 或i r d a 通信接口, 同时也需要提供相应的通信组网协议软件和物理层驱动软件。为了支持应用软件 的特有编程模式,如w e b 或无线w e b 编程模式,还需要相应的浏览器,如 h t m l , w m l 等。 ( 3 ) 小尺寸,微功耗和低成本 为满足这种特性,要求嵌入式产品设计者相应降低处理器的性能,限制内存 容量和复用接口芯片。这就相应提高了对嵌入式软件设计技术的要求。如:选用 最佳的编程模型和不断改进算法,采用j a v a 编程模式,优化编译器性能。因此, 既要软件人员有丰富经验,更需要发展先进嵌入式软件技术,如j a v a , w e b 和w a p 等。 ( 4 ) 提供精巧的多媒体人机界面 嵌入式设备之所以为亿万用户乐于接受,重要因素之一是它们与使用者之间 的亲和力,自然的人机交互界面,如司机操纵高度自动化的汽车主要还是通过习 惯的方向盘、脚踏板和操纵杆。人们与信息终端交互喜欢通过以g u i 屏幕为中心 的对媒体界面。手机的手写中文输入,语音拨号上网,收发电子邮件以及彩信收 发已取得初步成效。目前一些先进的手机或p d a 上已实现短信息语音收发,但离 掌式语音同声翻译还有很大距离。 ( 5 ) 无所不在的智能 无所不在的智能是嵌入式系统应用的高级境界,它是指一种嵌入了多种感知 和计算设备,并能根据上下文识别人的身体姿态,手势,语音等,进而判断出人 的意图,并做出相应反映的具有适应性的数字环境,它通过智能的,用户定制的 内部互连系统和服务制造理想的氛围,完成理想的功能,从而有效提高人们的工 作和生活质量。它的关键技术基础是:无所不在的计算。即无论何时何地,任何 人需要,就可以通过某种设备访问到所需的信息。从计算技术的角度来看,可以 认为存在一个巨大的分布式网络,这个网络由围绕在用户周围的成千上万个嵌入 式系统互连而成,用来满足其在信息,通讯,出行和娱乐等方面的需求。“无所不 在的计算“迫使计算机隐退于人类生活的世界之外,各式各样的计算装置将会越来 越小,甚至隐藏起来,装置可能会跟着使用者移动或嵌入到环境的各种物件中, 如汽车、家具、家电、衣服以及消费品中,这些装置通过无线技术与整个世界连 3 电子科技大学硕士学位论文 接。现在的世界是由人去适应环境中的各种装置,无所不在的智能远景中的世界 是由隐藏在环境中的电脑主动提供使用所需的服务,而且这些服务使用起来很简 单、很直觉化。 1 3课题的来源及论文的主要工作 本文的课题来源于艾科创新技术有限公司的一款面向音视频处理的s o c 芯片 a r k l 6 0 0 ,该芯片目前已经应用到数码相框这个项目中,并且该款产品已经推向 市场,取得客户比较好的评价。该论文的主要工作是:交叉编译工具链的创建、 b o o t l o a d e r 的设计与实现、l i n u x 内核的移植、根文件系统的实现、x d 卡块设备 驱动程序的设计与实现等。 1 4 论文主要工作和章节安排 本文对基于嵌入式硬件平台a r k l 6 0 0 的l i n u x 移植进行讨论,并且针对移植 过程中的关键问题给出了具体的解决方案。论文的组织结构如下: 第一章绪论介绍了嵌入式系统的应用现状,发展前景,同时也简要介绍了本 论文的章节安排。 第二章建立开发环境。本课题在开发主机上构建交叉编译环境,利用它来交 叉编译内核和驱动。 第三章介绍a r m 体系架构,对b o o t l o a d e r 实现中严重依赖的处理器特性作 出详细说明,并分析本文中使用的硬件平台a r k l 6 0 0 的结构。 第四章设计并实现了系统的b o o t l o a d e r 。实现了通过i r o m 引导存储在n a n d 中的内核和r a m d i s k 根文件系统。 第五章移植l i n u x 系统。在移植l i n u x 系统的过程中,主要完成以下工作:初 始化系统中断,定制系统时钟,驱动系统s d r a m 和定时器,配置串口控制台, 建立l i n u x 系统可识别的硬件平台结构体,定制并编译l i n u x 系统。 第六章介绍l i n u x 系统设备驱动的特点,并以x d 卡块设备驱动为例,说明 了l i n u x 下驱动程序开发的方法和过程。 第七章对论文主要内容进行总结并展望今后的学习和工作。 4 第二章嵌入式开发环境创建 第二章嵌入式开发环境创建 嵌入式系统的开发必须依赖于一定的开发环境,这个开发环境中包括一定的 硬件和软件。嵌入式系统开发是一个跨平台的开发过程,这样可以将整个开发环 境划分为两部分:主机( p c 机) 部分和目标机部分。其中主机主要完成程序的交 叉编译,目标机主要完成程序的运行。交叉编译是嵌入式开发过程中的一项重要 技术,它的主要特征是一台机器中执行的程序代码不是在本机编译生成,而是由 另一台机器编译生成,一般把前者称为目标机,后者称为主机【6 】。 2 1 构建交叉编译环境 在开发工作的后期为了进行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 r c h i t e c t u r e ) 、操作系统( o p e r a t i n gs y s t e m ) 。平台描述:完整 格式:c p u 制造厂商操作系统,缩减格式可以去掉“制造厂商”和操作系统版本号, 例如a r m l i n u x ,m i p s l i n u x ,i 38 6 一l i n u x 。 2 1 1为什么需要交叉编译 首先,在项目的起始阶段,目的平台尚未建立,因此需要做交叉编译,以生 成所需要的b o o t l o a d e r ( 启动引导代码) 以及操作系统核心;其次,当目的平台能 启动之后,由于目的平台上资源的限制,当编译大型程序时,依然可能需要用到 交叉编译,多数嵌入式目标系统不能提供足够的资源供编译过程使用,只能将编 译工程转移到高性能的主机中进行。以下是交叉编译时会经常用到的环境变量: h o s t ,t a r g e t 与p r e f i x h o s t :主机平台,一般是一个基于x 8 6 架构的计算机,即i 3 8 6 平台 t a r g e t :目标平台,如a r m 、m i p s 、p o w e r p c 、s u p e r h 等 p r e f i x :交叉编译器的安装位置 电子科技人学硕士学位论文 2 1 2 构建交叉编译的过程 l 、源文件准备们 b i n u t i l s - 2 14 t a r g z g e e - c o r e - 2 9 5 3 t a r g z g c c - g + + 2 9 5 3 t a r g z g l i b c - 2 2 4 t a r g z g l i b c l i n u x t h r e a d s - 2 2 4 t a r g z l i n u x 一2 4 21 t a r g z p a t c h 一2 4 21 - r m k l g z b i n u t i l s - 2 14 t a r g z 这个压缩包包含有l d ,a r , a s 等一些产生或者处理二进制文件 的工具。g e e - c o r e - 2 9 5 3 t a r g z 这个压缩包是g c c 的主体部分,g c c 是g n u c o m p i l e rc o l l e c t i o n 的简称,顾名思义,它能够编译很多种高级语言,例如c 、c h , j a v a 等,而这个压缩包中含有c 编译器,及公共部分,而对其他语言的支持,采 用另外的压缩包单独发布。g c c g + + 2 9 5 3 t a r g z ,这个压缩包就是为使g c c 能够 编译c + + 程序而单独发布的。g l i b c 2 2 4 t a r g z ,l i b c 是很多用户层应用都要用到的 库,k e r n e l 和b o o t l o a d e r 不需要这个库的支持,这个库主体部分封装在这个压缩包 内。g l i b c 1 i n u x t h r e a d s 2 2 4 t a r g z ,这是l i b e 用于支持p o s i x 线程而单独发布的一 个压缩包。l i n u x - 2 4 21 t a r g z ,这个压缩包就是l i n u x 的内核。p a t c h 一2 4 2 1 - r m k l g z , 这个压缩包是用来给l i n u x 内核打补丁,以使其可以支持a r m 的硬件平台。 2 、工作目录搭建 创建如下的目录树结构 m k d i ra n t i m k d i rt 0 0 1 c h a i n m k d i rb u i l d d i r m k d i rs r c d i r m k d i rs e t u p d i r m k d i rk e r n e l a r l n 这个目录是最顶层工作目录,所有的编译工作都在这里完成。t 0 0 1 c h a i n 这个目录是交叉编译工具的安装位置,它下面的b i n 子目录存放创建好的编译器, 汇编器,连接器,以及编译好的c 库也会安装到这个目录之下。s e t u p d i r 这个目 6 第二章嵌入式开发环境创建 录用来存放下载的压缩包。s r c - d i r 这个目录用于存放b i n u t i l s ,g e e , g l i b e 解压之后的 源文件。k e r n e l 这个目录用来存放内核文件,对内核的配置、编译工作将在这个目 录中完成。b u i l d d i r 用来编s r c - d i r 中的源文件,具体就是b i n u t i l s ,g e e ,g l i b c 的编 译工作将在这个目录下完成。这种源文件目录和编译目录分离的编译方式是g n u 所推荐的。完成上述操作后,就可以得到如下所示的目录: 【x i a 0 8l o c a l h o s ta r 琳】s l s b u i l d d i rk e r n e l s e t u p - d i r s r e - d i rt o o l - c h a i n e d s r c - d i r t a r - x v z f s e t u p d i r b i n u t i l s 一2 1 4 t a r g z t a r - x v z f s e t u p - d i r g e e - c o r e - 2 9 5 3 t a r g z t a r - x v z f 。| 瓢枇| g l i b e - 2 2 4 t a r g z t a r - x v z f s e t u p d i r g l i b c - l i n u x t h r e a d s - 2 2 4 t a r g z - - d i r e c t o r y = g l i b c 一2 2 4 这样在 s r c - d i r目录下就形成了3个源文件目录 b i n u t i l s 2 1 4 ,g c c c o r e - 2 9 5 ,3 ,g l i b e - 2 2 4 ,其中分别存放着b i n u t i l st o o l s ,g e e ,g l i b c 的源代码。如下所示: x i a 0 8l o c a l h o s ts r c - d i r l s b i n u t i i $ 一2 1 4 g c c 一2 9 5 3 9 1 i h c 一2 2 接下来到b u i l d - d i r 中创建3 个与这三个源文件目录对应的编译目录。 e d 。b u i l d d i r m k d i r 。b u i l d d i r b u i l d b i n u t i l s r n k d i r 。b u i l d - d i r b u i l d g e e m k d i r 。b u i l d d i r b u i l d - g l i b c 如下所示: xl a o l o c a l h o s tb u il d - t i l t s l s b u j _ d - b i n u t i l sb u i l d - g e e b u i l d - g l i b e 将在这三个目录中完成对b i n u t i l st o o l s ,g e e ,g l i b c 的配置和编译工作。下面还要把 内核文件解压到k e r n e l 目录下,并打补丁。 e d k e r n e l t a r x v z f s e t u p - d i r l i n u x 一2 4 2 1 t a r g z b z i pp a t c h 一2 4 2 1 - r m k l g z c d l i n u x 一2 4 21 p a t c h - p l s e t u p d i r p a t c h 一2 4 2 1 一r r n k l 3 、确定几个系统变量 7 电子科技大学硕士学位论文 c a 。| 。| e x p o r tt a r g e t = a r m - l i n u x e x p o r tp r e f i x = h o m e x i a o b u i l d _ c r o s s _ c o m p i l e a r m t o o l c h a i n 注意使用绝对 路径 e x p o r tt a r g e a ,r e f i x = $ p r e f i x $ t a r g e t e x p o r t k e r n e l s o u r c e l o c a t i o n = h o m e j x i a o b u i l d _ c r o s s _ c o m p i l e a r m k e r n e l h i n u x 2 4 21 e x p o r tp a t h = $ p r e f i x b i n :$ p a t h 几个系统变量经常要用到,t a r g e t 定义了目标机,p r e f i x 是工具链的安装目录, k e r n e ls o u r c el o c a t i o n 是内核文件位置。 4 、创建b i n u t i l s 运行如下命令来创建b i n u t i l s c d b u i l d d i r b u i l d - b i n u t i l s 。s r c d i r b i n u t i l s 一2 14 c o n f i g u r e 也唱e t = $ t a r g e t - p r e f i x = $ p r e f i x m a k e m a k ei n s t a l l 这时$ p r e f i x b i n 下创建了一些文件,包括a r m 1 i n u x 1 d ,锄1 i n u x a s 等。 5 、编译内核 c d k e m e l l i n b x 2 4 21 改m a k e f i l e 文件使m a k ea r c h = a r mm e n u c o n f i g ,在s y s t e mt y p e s 中选择正确的 硬件类型,然后m a k ed e p ,退出后执行如下操作 m k d i r $ t a r g e tp r e f d n c l u d e c p d r $ k e r n e ls o u r c el o c a t i o n i n c l u d e a s m i 38 6 t 八r g e tp r e f i x i n c l u d e a s m c p d rs k e r n e ls o u r c el o c a t i o n i n c l u d e l i n u x r g e tp r e f i x i n c l u d e l i n u x c p 七s k e r n e ls o u r c el o c a t i o n i n c l u d e a s m g e n e r i c r g e tp r e f d ( i n c l u d e 6 、创建b o o t - t r a pg c c ,这个g c c 没有g l i b c 库的支持,所以只能用于编译内核, 8 第二章嵌入式开发环境创建 b o o t l o a d c r 等,后面创建c 库也要用到这个编译器,所以创建它主要是为创建c 库做准备,如果只想编译内核和b o o t l o a d e r 那么,就可以到此结束。 c a 一b u i l d d r b u i l d - g e e i j s r c - d i r g c c - 2 9 5 3 c o n f i g u r e 【a r g e t = - $ t a r g e t - p r e f i x = $ p r e f i x - w i t h - h e a d e r s = $ e r n e ls o u r c el o c a t i o n 以n c l u d e - - e n a b l e l a n g u a g e - - c d i s a b l e - t h r e a d s 然后修改 s i c d i r g c e - 2 9 5 3 g c c c o n f i g a r m t - l i n u x 文件,在 t a r g e t l i b g c c 2 一c f l a g s 中添加如下两个定义- d i n h i b i t l i b e - d _ _ _ g t t u _ p o s i x _ h ,然后执行m a k e 和m a k ei n s t a l l ,这时$ p i 江f 儿i n 下创建了一 些文件,主要创建了a r m - l i n u x - g c c 。 7 、创建g b l i c c d b u i l d g l i b c e x p o r tc c = $ p r e f b i l l 锄- l i n u x g e e 一s r e - d i r g l i b c 一2 2 4 c o n f i g u r e _ 】s t = $ t a r g e t - p r e f i x = $ t a r g e a3 r e f i x e n a b l e a d d - o n s m a k e m a k ei n s t a l l 8 、创建功能健全的g c c ,并创建g 卜+ 在成功创建了l i b c 之后,就可以创建功能丰富的g c c 编译器了,并且可以创 建支持编译c 抖程序的g h 。 c d 。s r c d i r t a r - x v z f s e t u p d i r g e e - g 斗斗2 9 5 3 t a r g z c d 。b u i l d d i r b u i l d - g e e e x p o r tc c 2 9 e e 一s r e - d i r g c c 2 9 5 3 c o n f i g u r e - 1 胁? g e 仁$ t a r g e t - p r e f i x = $ p r e f i x 嘲a :b l e l a n g u a g e = c ,c 抖 然后修改 s r e - d i r g c c 一2 9 5 3 g c c c o n f i g a r m t - l i n u x 文件 , 在 t a r g e t - - l i b g c c 2 一c f l a g s 中去除如下两个定义- d i n h i b i t l i b c - d _ g t h r _ p o s i x _ h 然后执行m a k e 和m a k ei n s t a l l 。至此交叉编译完成。 9 电子科技大学硕十学位论文 第三章项目硬件平台分析 本论文开发使用的硬件平台是a r k l 6 0 0 ,它基于艾科公司自主研发的处理器, 在这个平台上集成了多种设备,包括l c d ( l i q u i dc r y s t a ld i s p l a y ) 、1 2 s ( i n t e r - i c s o u n db u s ) 、u s b ( u n i v e r s a ls e r i a lb u s 通用串行总线) 、m p 3 、u a r t ( u n i v e r s a l a s y n c h r o n o u sr e e e i v e rt r a n s m i t t e r 通用异步收发器) 、g p i o ( g e n e r a lp u r p o s ei o 通用型输入输出) 等,是一个功能完备,性能良好的硬件平台。埘( 1 6 0 0 采用a r m 公司的a r m9 2 0 t 为处理器核心部分,本章限于篇幅,将不对硬件平台中的各个 模块都加以叙述,而只对后面移植l i n u x 和x d 卡驱动相关的硬件部分详细的加以 阐述。 3 1a r k l 6 0 0 平台结构框图 图3 1 是a r k l 6 0 0 平台设备结构图,从图中可以看出a h b 总线接有1 0 个主 设备:a r mc p u 、d m a c 、u s bh o s t 、j p e g 、s c a l e r 、l c d 、i r o m 、n o rf a s h 、 s d r a m 、s 洲。注意d m a c 的优先级,研发初期d m a c 在总线上的优先级被 设定为最低,结果后面1 2 s 驱动中通过d m a c 传输数据时速度缓慢造成声音短时 间断。因此,建议在系统设计中把d m a c 优先级设置偏高一些。n o r f a s h 和s d r a m 之间存在着引脚复用。其中s d r a m 是需要被初始化才能被e p u 访问,并且可以 通过r e m a p 寄存器来控制它的影射地址。本系统中,上电后第一条指令只可能在 非易失性n o r f l a s h 或i r o m 里,具体从那里启动可以通过跳线来设定。在确定从 n o r f l a s h 还是i r o m 启动后,就可以根据系统的寄存器来确定是从u a r t 、u s b 、n a n d 、 s p i f l a s h 四种方式之一来启动系统。 i r o m 是a r k l 6 0 0 里集成的非易失性的存储器用来存储c p u 最开始上电时 要执行的启动和初始化代码由于a r m 上电后默认从0 x 0 地址取指令,所以如果 l o 第三章项目硬件平台分析 圉圉圉圉圉圈 日圈圉 图3 - 1a r k l 6 0 0 平台的结构框图 是跳线设定从i r o m 启动,则系统设计时,必须确保i r o m 在系统的0 x 0 的地方。 另外系统也可以从n o r f l a s h 启动,n o r f l a s h 也是非易失性的存储器,n o 胡a s h 读的 也不需要初始化,象s r a m 一样可以被直接读取,但要注意的是它跟s d r a m 存在 引脚的复用,所以在使用前应该将引脚状态设定在n o r f l a s h 状态。如果系统跳线设 置从n o r f l a s h 启动的话,同样也要保证系统设计时将n o r f l a s h 置于0 x 0 地址开始处。 s r a m 是一个易失性的存储器,掉电后就没有内容了,但在r c r n a p 前后s r a m 在 系统的地址都没有发生变化。由于有这样的特性,所以比较适合在s r a m 中做系 统的r e m a p 和s d r a m 的初始化操作。s d r a m 在初始化后方能使用,并且在系 统r c m a p 前后的物理地址是发生变化的,之所以变化的原因是:在r e m a p 前必须 保证在o 地址是非易失性的存储,用它来存储b o o f l o a d e r 代码,而在系统引导起来 后,将0 地址映射为s d r a m 存储介质,这样可以加速代码访问的速度,因为放在0 电子科技大学硕士学位论文 地址开始的向量表是要经常被访问的,而将他放在s d r a m 中则可以加快访问的 速度同时还可以软件修改向量表的内容。a h b 2 a p b l 是用来连接a h b 和a p b 的 桥,并且a h b 和a p b 的时钟频率可以配置,可以为1 :1 或l :2 等。a h b 通常称 为高速总线
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年广州市劳动合同模板
- 2025年新乡市诚城卓人学校招聘教师若干名模拟试卷及一套答案详解
- 2025年深圳市建筑工程行业员工劳动合同
- 2025广东广州市黄埔区教育局招聘事业编制教职员206人考前自测高频考点模拟试题(含答案详解)
- 2025海南省高校毕业生三支一扶计划招募模拟试卷附答案详解(模拟题)
- 2025湖北襄阳市枣阳市招聘事业单位人员206人模拟试卷及答案详解(夺冠系列)
- 湖南、广西2025-2026学年高三上学期阶段性检测(二)英语 含答案
- 江西心理考试题库及答案
- 【借款协议】过桥资金借款合同8篇
- 篮球主教练考试题及答案
- 2025年高校教师思政素质和师德师风考试题库及答案
- 2025年中医理疗师考试题库及答案
- 强迫性障碍护理查房
- 2025年辅警考试公安基础知识考试试题库及参考答案
- 音乐欣赏课件
- 物业对中介管理办法
- 骨科病人饮食护理课件
- 2025年军事理论基础考试试卷及答案
- 股东合伙人知识产权共享与保护合同
- 银川能源学院《经济数学(一)》2023-2024学年第一学期期末试卷
- 2025年统编版(2024)小学道德与法治二年级上册《我为班级做贡献》教学设计
评论
0/150
提交评论