




已阅读5页,还剩75页未读, 继续免费阅读
(计算机应用技术专业论文)嵌入式linux移植与应用程序开发.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 随着计算机、通信及网络技术的高速发展,嵌入式系统广泛地渗透到各行各业及 人们日常生活中。由于嵌入式系统的复杂性不断增加,嵌入式操作系统成为嵌入式系 统中最重要的组成部分。 l i n u x 操作系统以其开源、内核较小、性能优异等众多优点而得到广泛的应用, 近年来显现了巨大的市场价值和广阔的应用前景。 论文在l i n u x 系统移植研究中,首先,进行了移植环境的设计与搭建,对开发主 机进行n f s 、t f t p 服务及串口通信程序k e r m i t 配置,通过安装开源软件 a r m l i n u x g c c - 3 4 1 创建了交叉编译环境;其次,实现了u - b o o t 在目标板的移植, 以实现其对硬件的初始化及操作系统内核的加载;再次,根据目标板的硬件环境对 l i n u x 内核进行修改,并编写了c s 8 9 0 0 网卡的驱动程序;然后,在上述基础上分别构 建了r a m d i s k 和n f s 根文件系统,为了减小根文件系统的大小,在根文件系统中使用 了b u s y b o x 作为命令集。最后,通过串口编程和多进程编程两个实例为实现了基于嵌 入式l i n u x 操作系统的应用程序开发。 关键词:嵌入式系统、l i n u x 、a r m 、u b o o t 、文件系统 a b s t r a c t w i t ht h eq u i c kd e v e l o p m e n to fc o m p u t e r ,c o m m u n i c a t i o na n d n e t w o r k t e c h n o l o g i e s ,e m b e d d e ds y s t e m sa r ew i d e l yu s e d b e c a u s eo ft h ei n c r e a s i n g c o m p l e x i t yo ft h ee m b e d d e ds y s t e m s ,t h ee m b e d d e do p e r a t i n gs y s t e mh a sb e c o m e t h em o s ti m p o r t a n tp a r to ft h ee m b e d d e ds y s t e m s r e c e n t l y ,i tt u r n so u tt h a tl i n u xo p e r a t i n gs y s t e mi so fl a r g ee c o n o m i c v a l u ea n dw i l l b eu s e dw i d e l yi nv a r i o u sa p p l i c a t i o n sb e c a u l s eo fi t so p e n s o u r c e ,s m a l1c o r e ,g o o dp e r f o r m a n c ea n do t h e ra d v a n t a g e i nt h i sp a p e r ,f i r s t l y ,t ob u i l dt h ed e v e l o p m e n te n v i r o n m e n t ,t h ea u t h o r i n s t a ll st h ea r m - l i n u x g c c 一3 4 1a n dc o n f i g u r e st h en f ss e r v e r ,t f t ps e r v e r a n dt h es e r i a lc o m m u n i c a t i o np r o g r a mk e r m i to i lt h eh o s tp c s e c o n d l y ,i no r d e r t ol o a dt h ec o r ea n di n i t i a li z et h eh a r d w a r e ,u - b o o ti sp o r t e d t h i r d l y ,t h e l i n u xc o r ei sm o d i f i e da c c o r d i n gt ot h eg i v e nh a r d w a r ea n dt h ed r i v e ro fc s 8 9 0 0 a i sd o n e t h e nr o o tf i l es y s t e mb a s e do nr a m d i s ka n d n f si sp o r t e d i no r d e rt o r e d u c et h er o o tf i l es y s t e mt h eb u s y b o xi su s e d f i n a l l y ,t h ea u t h o rt a k e st h e s e r i a lp o r ta n dm u l t i 。p r o c e s sp r o g r a m m i n ga se x a m p l e sf o rr e s e a r c h i n go nt h e m e t h o d so fd e v e l o p i n gt h ea p p l i c a t i o n so nl i n u x 。 k e yw o r d s :e m b e d d e ds y s t e m 、l i n u x 、a r m 、u - b o o t 、f il es y s t e m i i 论文独创性声明 本人声明:本人所呈交的学位论文是在导师的指导下,独立进行研究 工作所取得的成果。除论文中已经注明引用的内容外,对论文的研究做出 重要贡献的个人和集体,均己在文中以明确方式标明。本论文中不包含任 何未加明确注明的其他个人或集体己经公开发表的成果。 本声明的法律责任由本人承担。 论文作者签名:彳本承镎加7 年牛月侈日 论文知识产权权属声明 本人在导师指导下所完成的论文及相关的职务作品,知识产权归属学 校。学校享有以任何方式发表、复制、公开阅览、借阅以及申请专利等权 利。本人离校后发表或使用学位论文或与该论文直接相关的学术论文或成 果时,署名单位仍然为长安大学。 ( 保密的论文在解密后应遵守此规定) 论文作者签名: 导师签名: 磷哥己参季 享万 f 加妒7 年年月j 多日 多册7 年乒月,岁目 长安大学硕士学位论文 第1 章绪论 嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于 应用系统,对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一 般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部 分组成,用于实现对其他设备的控制、监视或管理等功能。 嵌入式系统一般指非p c 系统,它包括硬件和软件两部分。硬件包括处理器微处 理器、存储器及外设器件和i 0 端口、图形控制器等。软件部分包括操作系统软件( o s ) 和应用程序。有时设计人员把这两种软件组合在一起。应用程序控制着系统的运作和 行为;而操作系统控制着应用程序与硬件的交互作用。 1 1 研究背景及意义 本论文的研究工作基于国家西部交通建设科技项目( 编号2 0 0 4 3 1 8 8 1 2 2 2 ) 之嵌入 式超声波检测仪的系统软件设计。 超声波技术是目前应用最为广泛的物理探测手段,随着电子技术和计算机技术的 迅猛发展,目前己被广泛应用到混凝土非破损试验中。超声波检测仪是混凝土无损检 测中的必备装置,其工作原理是利用超声换能器向混凝土构件发射一定频率的超声波, 通过检测超声波在混凝土中的走时、首波幅值、主频等参数来推导混凝土内部的结构、 缺陷、强度,进而评价被检测混凝土的安全运行期和使用寿命。该仪器为混凝土无损 检测人员提供了一种科学、直观的检测手段。 一般超声波检测仪由硬件系统和软件系统两部分组成,软件系统是整个仪器的技 术核心,负责超声数据的采集、处理、分析等功能,其性能的优劣将直接影响到检测 数据的精度和操作的便利性。 基于a r m 的嵌入式超声波检测仪与工控机相比,体积可以做的更小并且将更加节 电,因此更加适用于野外作业,并且用嵌入式l i n u x 操作系统可以使系统更加稳定, 也有利于实现更加复杂的功能。因此基于a r m 的嵌入式l i n u x 移植对于本课题有着十 分重要的意义。 1 2 嵌入式系统的特点 嵌入式系统( e s ) 是计算机技术、通信技术、半导体技术、微电子技术、语音图 第1 章绪论 象数据传输技术,甚至传感器等先进技术和具体应用对象相结合后的更新换代产品。 因此往往是技术密集、投资强度大、高度分散、不断创新的知识密集型系统。反映当 代最新技术的先进水平。嵌入式系统不仅和一般的p c 机上的应用系统不同,就是针 对不同的具体应用而设计的嵌入式系统之间差别也很大。嵌入式系统一般功能单一、 简单,且在兼容性方面要求不高,但是在大小、成本方面限制较多。 嵌入式系统的核心是嵌入式微处理器。嵌入式微处理器一般就具备以下4 个特点t ( 1 ) 对实时多任务有很强的支持能力,能完成多任务并且有较短的中断响应时间。 ( 2 ) 具有功能很强的存储区保护功能。这是由于嵌入式系统的软件结构已模块化, 而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能, 同时也有利于软件诊断。 ( 3 ) 可扩展的处理器结构,以能最迅速地开展出满足应用的最高性能的嵌入式微处 理器。 ( 4 ) 嵌入式微处理器必须功耗很低,尤其是用于便携式的无线及移动的计算和通信 设备中靠电池供电的嵌入式系统更是如此,如需要功耗只有m w 甚至w 级。 嵌入式计算机系统同通用型计算机系统相比具有以下特点: ( 1 ) 嵌入式系统通常是面向特定应用的嵌入式c p u ,与通用型的最大不同就是嵌入 式c p u 大多工作在为特定用户群设计的系统中,它通常都具有低功耗、体积小、集成 度高等特点,能够把通用c p u 中许多由板卡完成的任务集成在芯片内部,从而有利于 嵌入式系统设计趋于小型化,移动能力大大增强,跟网络的耦合也越来越紧密。 ( 2 ) 嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体 应用相结合后的产物。这一点就决定了它必然是一个技术密集、资金密集、高度分散、 不断创新的知识集成系统。 ( 3 ) 嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在 同样的硅片面积上实现更高的性能,这样才能在具体应用中对处理器的选择更具有竞 争力。 ( 4 ) 嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同步 进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。 ( 5 ) 为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯 片或单片机本身中,而不是存贮于磁盘等载体中。 ( 6 ) 嵌入式系统本身不具备自举开发能力,即使设计完成以后用户通常也是不能对 2 长安大学硕士学位论文 其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发乜3 。 1 3 典型的嵌入式操作系统介绍 嵌入式操作系统的种类繁多,但大体上可分为两种:商用型和免费型。目前商用 型的操作系统主要有v x w o r k s 、w i n d o w sc e 、p s o s 、p a l mo s 、0 s - 9 、l y n x o s 、q n x 、 l y n x 等,它们的优点是功能稳定、可靠,有完善的技术支持和售后服务,而且提供了 如图形界面的网络支持等高端嵌入式系统要求的许多功能;缺点是价格昂贵且源码封 闭,这就大大影响了开发者的积极性。目前免费型的操作系统主要有l i n u x 和pc o s i i ,它们在价格方面有很大的优势。而嵌入式l i n u x 操作系统以价格低廉、功能强大 稳定、易于移植而且源码公开等众多优点正在被广泛采用。 ( 1 ) l ac o s - i i 嵌入式操作系统 l ac o s i i 是一个可裁减、源码开放、结构小巧、抢先性的实时操作系统内核,主 要面向中小型嵌入式系统,具有执行效率高、占用空间小、可移植性强、实时性能优 良和可扩展性能等特点。uc o s i i 最多可支持6 4 个任务,分别对应着0 6 3 ,其中0 为最高优先级。实时内核在任何时候都是运行就绪了的最高优先级别的任务,是真正 的实时操作系统。i ic o s - i i 最大程度的使用a n s ic 语言开发,现已成功移植到近4 0 种处理器体系上。 ( 2 ) v x w o r k s 嵌入式操作系统 g x w o r k s 是w i n d r i v e rs y s t e r m s 公司推出的一个实时操作系统,是目前嵌入式系 统领域中使用最广泛、市场占用率最高的系统。它支持多种处理器体系,如x 8 6 、i 9 6 0 、 s p a r c 、m o t o r o l am c 6 8 x x x 、m i p sr x 0 0 0 、p o w e r p c 等。v x w o r k s 是基于微内核结构, 由4 0 0 多个相对独立、短小精悍的目标模块组成,用户可根据需要增加或删减适当模 块来裁剪和配置系统。v x w o r k s 的链接器可按应用的需要来动态链接目标。 v x w o r k s 因其良好的可靠性和卓越的实时性,已广泛应用在通信、军事、航空航 天等高端技术及实时要求极高的领域中。 ( 3 ) w i n c e 操作系统 m i c r o s o f tw i n d o w sc e 是针对有限资源的平台而设计的多线程、完整优先权、多 任务的操作系统,但它不是一个硬实时操作系统。高度模块化是w i n c e 的一个特性, 这一特性有利于它对掌上电脑到专用的工业控制器的用户的电子设备进行管理。w i n c e 的操作系统的基本内核至少需要2 0 0 k 的r o t d 。它支持w i n 3 2a p i 子集、多种用户界面 3 第1 章绪论 硬件、多种串行和网络通信技术、c o m o l e 和其它进程间通信的先进方法。m i c r o s o f t 公司为w i n c e 提供了p l a t f o r mb u i l d e r 和e m b e d d e dv i s u a ls t u d i o 开发工具。 ( 4 ) s y m b i a n 操作系统 1 9 9 8 年6 月,诺基亚联合摩托罗拉、爱立信、西门子、s o n y 和p s i o n ( 英国一家 p d a 制作商) 联合成立s y m b i a n 公司,专门从事无线操作系统的开发,欲在手持设备方 面和微软分庭抗礼。s y m b i a n 开发出不久,除了上述6 家公司之外富士通、健伍、三 洋、索尼、三星、松下和s e n d o 也成为了s y m b i a n 的用户。这些公司在手持通讯领域 占据的市场份额超过了7 0 。s y m b i a n 的优势在于它得到了占据市场份额大多数的手持 通讯设备厂商的支持,在n o k i a 的大力倡导下,已经成为一个开放的、易用的、专业 的开发平台,支持c + + 和j a v a 语言。 ( 5 ) l i n u x 操作系统 l i n u x 是一套免费使用和自由传播的类u n i x 操作系统,是一个基于p o s i x 和u n i x 的多用户、多任务、支持多线程和多c p u 、内存保护、虚拟内存的操作系统。它能运 行主要的u n i x 工具软件、应用程序和网络协议。它支持3 2 位和6 4 位硬件。l i n u x 继 承了u n i x 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。l i n u x 以它的高效性和灵活性著称。l i n u x 模块化的设计结构,使得它能运行于众多体系上, 具有多任务、多用户的能力。l i n u x 是在g n u 公共许可权限下免费获得的,是一个符 合p o s i x 标准的操作系统。l i n u x 操作系统软件包不仅包括完整的l i n u x 操作系统, 而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理 器的x - w i n d o w s 图形用户界面,如同我们使用w i n d o w sn t 一样,允许我们使用窗口、 图标和菜单对系统进行操作。 l i n u x 具有u n i x 的优点:稳定、可靠、安全,有强大的网络功能。在相关软件的 支持下,可实现w w w 、f t p 、d n s 、d h c p 、e - m a i l 等服务,还可作为路由器使用,利用 i p c h a i n s i p t a b l e s 可构建n a t 及功能全面的防火墙。迄今为止,世界上已有近4 0 的i n t e r n e t 主机采用了l i n u x 作为操作系统,它们全部是在长时间地大负荷地工作着。 这从一个方面说明了l i n u x 操作系统的结构是非常坚固的、稳定可靠的。l i n u x 成为 了n t 、s u n o s 等其他商业操作系统的劲敌。 嵌入式l i n u x 是标准l i n u x 的嵌入式系统移植版,从本质上讲嵌入式与p c 系统没 有差别,所以,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 4 长安大学硕士学位论文 的全部优势,也同步着l i n u x 的发展而发展口1 。 1 4 研究内容及章节分布 l i n u x2 6 包含许多新的特性,为其在嵌入式领域的应用提供了强有力的支持, 新的内核越来越多的应用于嵌入式l i n u x 系统中是必然的趋势。同时,在手持设备、 消费类电子等嵌入式l i n u x 的主要应用领域,高容量低成本的存储解决方案也是必不 可少的。正是基于嵌入式l i n u x 这一发展趋势及其应用特点,针对目前嵌入式l i n u x 系 统多是基于l i n u x2 4 内核的现状,本文对基于$ 3 c 2 4 1 0 平台l i n u x2 6 移植进行 了研究,并且对移植过程中的关键问题给出了具体的解决方法。本文章节按排如下: 第一章绪论主要分析并阐述本课题研究的背景及意义,嵌入式系统的特点,并对 典型的嵌入式操作系统进行了介绍。第二章主要对嵌入式系统开发的软硬件平台进行 了研究分析。第三、四章是本文的核心,其中第三章主要对b o o t l o a d e r 的原理和作用 进行了介绍,并实现了u - b o o t 在目标板上的移植,以实现其对l i n u x 内核的加载。第 四章对l i n u x 内核配置、驱动编写、根文件系统进行了分析研究,并实现了它们在目 标板上的移植。第五章分别以串口和多进程编程为例实现了基于嵌入式l i n u x 的应用 程序编程。 5 第2 章嵌入式l i n u x 开发平台 第2 章嵌入式l i n u x 开发平台 在进行嵌入式系统的开发时,首先面临的难题就是如何挑选一个适合自己的开发 平台。a r i d 系列处理器是专门针对嵌入式设备设计的,是目前构造嵌入式系统硬件平 台的首选。 a r m 微处理器有多达十几种的内核结构、几十个芯片生产厂家和众多的功能组合, 这给广大嵌入式开发人员在确定方案时带来了定的困难。客观上讲,嵌入式系统一 般都是量身打造的。开发人员必须依据客户需求选择合适的软硬件平台,否则的话要 么无法完成所要求的功能,要么就会造成资源的浪费,挑选出一个合适的方案确实很 不容易。 a r m 公司设计了一系列的微处理器内核结构,以适应不同应用领域的需要。由于 标准l i n u x 操作系统的内存管理需要芯片的硬件支持,因此要选用a r m 7 2 0 t 以上带有 内存管理单元( m m u ) 的a r m 芯片,如a r m 7 2 0 t 、a r m 9 2 0 t 、a r m 9 2 2 t 、a r m 9 4 6 t 等。微 处理器的工作频率在很大程度上决定了其运算能力的高低,a r m 7 系列微处理器的典型 处理速度为0 9 m i p s 删z ,常见的a r m 7 芯片的系统主时钟为2 0 m h z 到1 3 3 m h z ;a r m 9 系列微处理器的典型处理速度为1 1 m i p s 州z ,常见的a r m 9 芯片的系统主时钟为 i o o m h z 到2 3 3 m h z ;a r m i o 系列微处理器的典型处理速度为1 2 5 m i p s 删z ,其时钟频率 则可以高达4 0 0 m h z 。不同a r m 芯片对时钟的处理各不相同。有些芯片只有一个主时钟 频率,而有些芯片的内部时钟控制器则可以分别为a r m 核、u s b 、u a r t 和d s p 等功能 部件提供不同频率。 大多数a r m 微处理器片内存储器的容量都不大,需要用户在设计嵌入式系统时扩 充外部存储器。除了a r m 微处理器核之外,几乎所有的a r m 芯片都根据各自不同的应 用领域扩展了相应的功能模块,并集成在芯片之中,从而形成了片内外围电路,如u s b 接口、i 0 接口、r t c 和l c d 控制器等。嵌入式系统的开发人员应该尽可能运用这些外 围电路,来实现系统所要求的功能。这样既可以简化系统的设计,同时又能够提高系 统的可靠性。 为嵌入式系统挑选合适的硬件平台是一件很复杂的工作,在展开对嵌入式超声波 检测仪的研究和开发之时,经过比较和鉴别,最终选用了基于a r m9 2 0 t 核心的s a m s u n g $ 3 c 2 4 1 0 芯片。 6 长安大学硕士学位论文 2 1 开发平台硬件参数 $ 3 c 2 4 1 0 处理器为a r m 9 2 0 t 内核1 6 - 3 2 - b i tr i s cc p u ,拥有有独立的1 6 k b 指令 和1 6 k b 数据c a c h e ,m m u , n a n df l a s hb o o tl o a d e r ,系统管理单元( s d r a m 控制器 等) ,3 通道u a r t ,4 通道d m a ,4 通道具备p w m 功能的定时器,i o 口,r t c ( 实时时 钟) ,8 通道l o b i t 精度a d c 和触摸屏控制器,i i c 总线接口,i i s 数字音频总线接口, u s b 主机,u s b 设备,s d 删c 卡控制器,集成l c d 控制器( 支持s t n 和t f i ) ,2 通道 s p i 和p l l 数字锁相环。该处理器集成度高,功能强大,便于手提便携设备以及其他 工控设备如指纹识别器,车载系统等的应用h 1 。 2 i i 目标板特性及资源 ( 1 ) 系统时钟:使用外部1 2 m h z 晶振,c p u 内部倍频至2 0 0 m h z + ( 2 ) a m d 公司2 m m b y t en o rf l a s ha m 2 9 l v l 6 0 d b ( 3 ) s d 融:6 4 m b y t e ( 3 2 m b y t ex2 ) ( 4 ) 3 通道u a r t 串口接口 ( 5 ) 2 通道u s bh o s t 和一通道u s bd e v i c e ( 6 ) i r d a 红外线收发器 ( 7 ) j t a g 接口 ( 8 ) i d e 接口 ( 9 ) r t c 实时时钟 0 0 ) i i c 总线e e p r o m a dt f t s t nl c d 接口 t s p 触摸屏控制器 0 3 s d 卡删c 卡主机控制器 8 通道1 0 位a d c 模数转换接口 0 5 ) s p i 接口 i i s 数字音频输入输出接口 a 7 ) i o m 以太网接口 7 第2 章嵌入式l i n u x 开发平台 2 1 2 目标板的地址资源分配 ( 1 ) n o rf l a s h 采用a m 2 9 l v l 6 0 d b ( 2 mb y t e s ) ,基址为o x o 。u - b o o t 固化在a m 2 9 l v l 6 0 d b 上。 ( 2 ) n a n df l a s h 系统的n a n df l a s h 选用s a m s u n g 公司的k 9 f 5 6 0 8 u o b ,6 4 m 。 ( 3 ) s d 融w 系统配置两片3 2 m b 的h y 5 7 v 5 6 1 6 2 0 芯片,地址空间为o x 3 0 0 0 0 0 0 0 0 x 3 4 0 0 0 0 0 0 。 开发板采用两片半字( h a lf - w o r d ) s d r a m 器件共同组成一个3 2 位数据宽度的s d r a m 系统,提高了其与c p u 的通信效率。 ( 4 ) 以太网卡 采用c s 8 9 0 0 a 片,工作方式为i o 模式,选通地址为0 x 1 9 0 0 0 0 0 0 ,由于c s 8 9 0 0 a 复位后默认基址是3 0 0 h ,因此其实际地址应为0 x 1 9 0 0 0 3 0 0 2 2 开发宿主机交叉环境的建立 交叉编译是嵌入式开发过程中的一项重要技术,它的主要特征是某机器中执行的 程序代码不是在本机编译生成,而是由另一台机器编译生成,一般把前者称为目标机, 后者称为主机。采用交叉编译的主要原因在于,多数嵌入式目标系统不能提供足够的 资源供编译过程使用,因而只好将编译工程转移到高性能的主机中进行璐1 。 l i n u x 下的交叉编译环境重要包括以下几个部分: ( 1 ) 针对目标系统的编译器g c c ( 2 ) 针对目标系统的二进制工具b i n u t i l s ( 3 ) 目标系统的标准c 库g l i b c ( 4 ) 目标系统的l i n u x 内核头文件 2 2 1a r m - 1i n u x - g c c 的安装 在编译u - b o o t1 1 6 时会用到a r m l i n u x g c 一3 3 2 ,而在编译l i n u x2 6 1 8 3 时将会用到更新版本的a r m - i i n u x g c - 3 4 1 ,因此可以同时安装这两个交叉编译器: h a h a c h d : s u c h d :h o m e h a h a # c d c h d :# t a rx v j f h o m e a r m li n u x g c c 一3 3 2 t a r b z 2 r 长安大学硕士学位论文 c h d :# t a rx v j f h o m e a r m - ii n u x g c c 一3 4 1 t a r b z 2 执行完上述命令后,会在u s r l o c a l a r m 下增加3 3 2 和3 4 1 的文件夹,相应 的交叉编译器路很径则为: u s r 1 0 c a l a r m 3 2 2 b i n a r m - li n u x g c c 一3 3 2 u s r 1 0 c a l a r m 3 4 i b i na r m li n u x g c c 一3 4 1 当用使用交叉编译器编译u - b o o t 时,可设置其路径: e x p r o tp a t h = $ p a t h :u s r 1 0 c a l a r m 3 3 2 b i n 此时使用命令: h a h a c h d : a r m - iin u x g c c - v 会看到以下版本信息:g c cv e r s i o n3 3 2 当用使用交叉编译器编译l i n u x2 6 1 8 3 时,可设置其路径: e x p r o tp a t h = $ p a t h :u s r 1 0 c a l a r m 3 4 1 b i n h a h a c h d : a r m - iin u x - g c c - v 会看到以下版本信息:g c cv e r s i o n3 4 1 另外,也可以在u - b o o t 和l i n u x2 6 1 8 3 主目录下的m a k e f i l e 里设置 c r o s s _ c o b i p i l e 变量时包含上述路径,就不需要再引入路径了。 2 2 2k e r m i t 安装与配置 为了更好地使用u - b o o t 和l i n u x ,需要通过串口将目标板和主机连接。u - b o o t 和l i n u x 可以配置成自动执行而不需要任何用户的干涉。 很多种方法通过串口有来控制目标板,比如说使用终端服务器。不过最常见的做 法是使用本机的串口,这时,主机需要安装一个终端程序,如c u 或者k e r m i t 。本文 将采用 k e r m i t作为终端程序。可以到k e r i m t的官方网站 h t t p :? ? 删、c o l u m b i a e d u k e r m i t 弋戴o k e r m i t 是连接串口和网络的通信软件。事实上在很多计算机和操作系统上使用 它,能够很好地满足我们的目的。 k e r m i t 在执行其它命令之前,会执行当前用户目录下的初始文件k e r m r c ,所以 可以非常简单的通过初始化命令来定制k e r m i t 。下面是使用u - b o o t 和l i n u x 时推荐 配置: “k e r m r c : 9 第2 章嵌入式l i n u x 开发平台 s e tm o d e mt y p en o n e # 没有m o d e m s e tli n e d e v t t y s o # 使用第一个串口 s e ts p e e d11 5 2 0 0 s e ts e r i a l8 n l s e tc a r rie r - w a tc ho f f s e th a n d s h a k en o n e s e te s c a p ea # b u a d1 1 5 2 0 0 # 8 位数据位,无奇偶校验,1 位停止位 # 设置e s c a p e 字符为c t r l a s e tp r o t o c o lz m o d e m# 传送文件时使用z m o d e m 协议 # s e tp r o t o c o ly m o d e m # s e tp r o t o c o lx m o d e m s e tw i n d o w5 这个设置使用的是主机第一个串口( d e v t t y s o ) ,以11 5 2 0 0 这个波特率与目标 板的串口连接。为了使当前用户能访问串口,要把用户加入到t r y 用户组中,当然也可 以直接以r o o t 用户来访问。然后可以连接目标板了: h a h a c h d : s u c h d :h o m e h a h a # c o n n e c t i n gt o d e v t t y s o ,s p e e d11 5 2 0 0 t h ee s c a p ec h a r a c t e risc t r l 一( a s c ii2 8 ,f s ) t y p et h ee s c a p ec h a r a c t e rf o l l o w e db yct og e tb a c k , o rf o l l o w e db y ? t os e eo t h e ro p t i o n s 当宿主机与目标板的串口连接好后,会显示u - b o o t 的启动信息: w e l c o m et oc h a n g a nu n i v e r s i t y t a n _ y o n g f e n g 16 3 c o m b o o tlo a d e rc o d e :3 3 f 8 0 0 0 0 一 3 3 f 9 a 810b s s :一 3 3 f a 0 5 6 c r a mc o n f i g u r a t i o n : s d 鼬:h y 5 7 v 5 616 2 0 术2 b a n k # 0 :3 0 0 0 0 0 0 06 4m b f l a s h :a m 2 9 l v l 6 0 d bs i z e2m b i n : o u t : s e r i a l s e r i a l 1 0 长安大学硕士学位论文 e r r :s e r i a l c h a n g a n # 2 2 3t f t p 与n f s 的配置 在内核调试时,u - b o o t 通过t f t p 协议将内核映像文件和根文件系统下载到目标 板的s d r a m 中;当加载n f s 文件系统时,也需要宿主机做为n f s 服务器。因此,要在 宿主机上设置t f t p 和n f s 服务器。在本文中,宿主机的i p 为2 0 2 1 1 7 6 7 2 3 6 ,网关 为2 0 2 1 1 7 6 7 1 ,子网掩码为2 5 5 2 5 5 2 5 5 0 ,目标板的i p 为2 0 2 1 1 7 6 7 2 0 0 。t f t p 目录为h o m e h a h a t f t p ;n f s 目录为h 伽e h a h a n f s r o o t 。 1 1 第3 章b o o t l o a d e r 的设计 第3 章b o o t l o a d e r 的设计 一个嵌入式l i n u x 系统从软件的角度看通常可以分为四个层次:引导加载程序、 l i n u x 内核、文件系统、用户应用程序。引导加载程序是系统加电后运行的第一段代 码。我们熟悉的p c 中的引导程序一般由b i o s 和位于m b r 的o sb o o t l o a d e r ( 例如l i l o 或者g r u b ) 一起组成。然而在嵌入式系统中通常没有像b i o s 那样的固件程序( 有的 嵌入式c p u 有) ,因此整个系统的加载启动任务就完全由b o o t l o a d e r 来完成。在嵌入 式l i n u x 中的引导加载程序即等效为b o o t l o a d e r 。 简单地说,b o o t l o a d e r 就是在操作系统内核运行前运行地一段小程序。通过这段 小程序,我们可以初始化必要的硬件设备,创建内核需要的一些信息并将这些信息通 过相关机制传递给内核,从而将系统的软硬件环境带到一个合适的状态,最终调用操 作系统内核,真正起到引导和加载内核的作用。 b o o t l o a d e r 是依赖于硬件而实现的,特别是在嵌入式系统中。不同的体系结构需 求的b o o t l o a d e r 是不同的;除了体系结构,b o o t l o a d e r 还依赖于具体的嵌入式板级 设备的配置。也就是说,对于两块不同的嵌入式板而言,即使它们基于相同的c p u 构 建,运行在其中一块电路板上的b o o t l o a d e r ,未必能够运行在另一块电路开发板上。 b o o t l o a d e r 的启动过程可以是单阶段的,也可以是多阶段的。通常多阶段的 b o o t l o a d e r 能提供更为复杂的功能,以及更好的可移植性。从固态存储设备上启动的 b o o t l o a d e r 大多数是二阶段的启动过程,也即启动过程可以分为s t a g e1 和s t a g e2 两部分6 姗。 本章将从b o o tl o a d e r 的概念、b o o tl o a d e r 的主要任务、b o o tl o a d e r 的框架 结构以及b o o tl o a d e r 的安装等四个方面来讨论嵌入式系统的b o o tl o a d e r 。 3 1a r mb o o t l o a d e r 的共性 从上面b o o t l o a d e r 的基本概念可以看出,b o o t l o a d e r 的设计与实现是与具体的 c p u 以及具体的硬件系统紧密相关的,要实现一个通用的a r mb o o t l o a d e r ,即要适合 所有的a r m 处理器以及硬件系统,是不太可能的事情。另外,不同的操作系统,可能 对具体的b o o t l o a d e r 还会有额外的要求。但是,我们还是可以根据a r m 的体系结构, 从理论上总结出一些a r m 系统b o o t l o a d e r 实现的共性,而这仅仅局限于理论上。至于 涉及到具体的设计与实现,则要根据自己的硬件系统进行移植。 1 2 长安大学硕士学位论文 对于a r mb o o t l o a d e r 的一些共同特性,理论上只局限于b o o t l o a d e r 的基本功能, 因为扩展功能众多,可以有串口、u s b 、以太网接口、i d e 、c f 等,无法进行归纳与总 结。 对于一个a r m 系统来说,本质上b o o t l o a d e r 作为引导与加载内核镜像的“工具, 在实现上要提供以下几个功能: ( 1 ) 初始化r a m ( 必需) :b o o t l o a d e r 必须能够初始化r a m ,因为将来系统要通过 它保存一些v o l a t il e 数据,但具体地实现要依赖与具体的c p u 以及硬件系统。 ( 2 ) 初始化串口( 可选,推荐) :b o o t l o a d e r 应该要初始化以及使能至少一个串 口,通过它与控制台联系进行一些d e b u g 的工作;甚至与p c 通信。 ( 3 ) 创建内核参数列表( 针对l i n u x 操作系统,推荐) 。 ( 4 ) 启动内核镜像( 必需) :根据内核镜像保存的存储介质不同,可以有两种启动 方式:f a l s h 启动以及r a m 启动;但是无论是哪种启动方式,下面的系统状态必须得 到满足: ( 1 ) c p u 寄存器的设置: r o = o ; r 1 = 机器类型; r 2 - - 启动参数标记列表在r a m 中的起始地址; 这三个寄存器的设置是在最后启动内核时通过启动参数来传递完成的。 ( 2 ) c p u 模式: 关闭中断; 设置为s v c 模式; b o o t l o a d e r 中没有必要支持中断的实现,这属于内核机制以及设备驱动管理的管 理范畴;s v c 模式是系统的一种保护模式,这样就可以进行一些只能在s v c 模式下的 操作,例如一些特定寄存器访问操作。 ( 3 ) c a c h e 和m m u 的设置: i v i m u 必须关闭: 数据c a c h e 必须关闭; 指令c a c h e 可以关闭也可以开启; b o o t l o a d e r 中所有对地址的操作都是使用物理地址,是实在的实地址,不存在虚 拟地址,因此姗u 必须关闭。b o o t l o a d e r 主要是装载内核镜像,镜像数据必须真实写 1 3 第3 章b o o t l o a d e r 的设计 回s d r a m 中,所以数据c a c h e 必须关闭;而对于指令c a c h e ,不存在强制性的规定, 但是一般情况下,推荐关闭指令c a c h e 。 b o o t l o a d e r 启动内核镜像的方法是通过跳转语句直接跳转至内核镜像的第一句 指令语句。 3 2 常用的b o o t l o a d e r 介绍 3 2 1v i v i v i v i 是由韩国m i z i 公司为a r m 处理器系列设计的一个b o o t l o a d e r ,因为v i v i 使用串口和主机通信,所以必须使用一条串口电缆来连接目标板和主机。它有如下作 用: ( 1 ) 把内核( k e r n e l ) 从f l a s h 复制到r a m ,然后启动它。 ( 2 ) 初始化硬件 ( 3 ) 下载程序并写入f l a s h ( 一般通过串口或者网口先把内核下载到r a m 中,然后 写入到f l a s h ) ( 4 ) 检测目标板( b o o t l o a d e r 会有一些简单的代码用以测试目标板硬件的好坏) 。 v i v i 有两种工作模式:启动加载模式和下载模式。启动加载模式可以在一段时间 ( 这个时间可更改) 后自行启动l i n u x 内核,这是v i v i 的默认模式。在下载模式下, v i v i 为用户提供一个命令行接口,通过接口可以使用v i v i 提供的一些命令。 3 2 2u - b o o t u - b o o t 是由德国的工程师w 0 1 f g a n gd e n k 从8 x x r o m 代码发展而来的,它支持很 多处理器,比如p o w e r p c 、a r m 、m i p s 和x 8 6 。目前,u b o o t 源代码在s o u r c e f o r g e 网站的社区服务器中,i n t e r n e t 上有一群自由开发人员对其进行维护和开发,它的项 目主页是h t t p :s o u r c e f o r g e n e t p r o j e c t s u b o o t 。u b o o t 的最新版本源代码可以 在s o u r c e f o r g e 的c v s 服务器中匿名获得。 u - b o o t 支持l i n u x 、n e t b s d 和v x w o r k
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第十单元课题2常见的酸和碱第一课时说课稿-2024-2025学年九年级化学人教版(2024)下册
- 2025年川芎素行业研究报告及未来行业发展趋势预测
- 2025年电缆阻火密封堵料行业研究报告及未来行业发展趋势预测
- 2025年车身电子稳定系统行业研究报告及未来行业发展趋势预测
- 玻璃厂合同履行跟踪管理规章
- 2025年促性腺激素释放激素激动剂行业研究报告及未来行业发展趋势预测
- 玻璃厂专利申请费用管理规定
- 玻璃厂报警核实管理办法
- 餐饮安全卫生检查标准汇编
- 2025四川阿坝州红原县医疗卫生辅助岗补充招募4人考试参考题库及答案解析
- 山东大学核心期刊目录(文科)
- 年产62万吨甲醇制烯烃(MTO)项目初步设计说明书
- 中医基础理论-脏象学说
- ICU患者的早期活动
- GB/T 8566-2007信息技术软件生存周期过程
- TSZUAVIA 009.11-2019 多旋翼无人机系统实验室环境试验方法 第11部分:淋雨试验
- GB/T 13452.2-2008色漆和清漆漆膜厚度的测定
- GB/T 12730-2008一般传动用窄V带
- ps6000自动化系统用户操作及问题处理培训
- 手机拍照技巧大全课件
- 基层医院如何做好临床科研课件
评论
0/150
提交评论