已阅读5页,还剩60页未读, 继续免费阅读
(计算机软件与理论专业论文)通用的开放bootloader的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一 a b s t r a c t l i i 1l ii i ii ll 1 1 1 1 l 、t17 3 3 8 01 a l o n gw i t ht h er a p i dd e v e l o p m e n to fe m b e d d e ds y s t e m ,b o o t l o a d e r ,a sac o r e t e c h n o l o g y o fe m b e d d e ds y s t e i nd e v e l o p m e n t ,h a sb e c o m em o r ep o p u l a ra m o n g d e v e l o p e r s b o o t l o a d e rm a i n l yl o a d sa n d b o o t so sa n d a p p l i c a t i o np r o g r a m s a l t h o u g hi t h a sf e wc o d e s ,i t ss t i l la ne s s e n t i a l p a r to fe m b e d d e ds y s t e m b e c a u s eh a r d w a r eo f c u r r e n te m b e d d e ds y s t e m sv a r i e sw i d e l y ,i ti sv e r ys i g n i f i c a n tt oe s t a b l i s hac o m m o na n d s t a n d a r db o o t l o a d e rf o re m b e d d e ds y s t e m i no r d e rt or e a l i z ea no p e nb o o t l o a d e r , w e e x t e n s i v e l ys t u d yd o z e n so fb o o t l o a d e r si no p e ns o u r c ec o m m u n i t y ,a n dt h e np r o p o s e a n di m p l e m e n tas p e c i f i cb o o t l o a d e rd e s i g np l a ns u p p o r t i n gm a n yk i n d so fa r c h i t e c t u r e s i n c l u d i n gs c p u d b u s t h em a i nw o r ki sl i s t e db e l o w a tf i r s t ,w ep r o p o s ead e s i g nm e t h o di n t r o d u c i n gh a r d w a r ea b s t r a c t i o nl a y e ri n t o b o o t l o a d e rs y s t e mi no r d e rt os o l v et h ep r o b l e mo fb o o t l o a d e rt r a n s p l a n t i n gi n e m b e d d e ds y s t e m i ts u p p l i e sau n i v e r s a ll o g i c a lh a r d w a r el a y e ra n ds h i e l d st h es p e c i f i c d e t a i l si nb o t t o ml a y e rh a r d w a r e i tc a np r o d u c et h en e c e s s a r yc o n f i g u r a t i o nf i l e s a u t o m a t i c a l l yf o ru s e r sb yi n p u t t i n gp a r a m e t e r si n f o r m a t i o n w eu s et h eo p e nb o o t l o a d e rm o d e lt oc a r r yo u th i e r a r c h i c a ld e s i g ni no r d e rt os o l v e t h ep r o b l e mo fh a r d w a r ee n v i r o n m e n td i v e r s i t y ab o o t l o a d e rh i e r a r c h i c a ls t r u c t u r ei s b u i l tt oa s s i s tt h en e wd e v e l o p e dp r o c e s s o r sw i t hi t se x c e l l e n to p e na r c h i t e c t u r e b a s e do nt h ei d e a sa b o v e ,w ed e s i g na o p e nb o o t l o a d e rd e s i g np l a n i ts u p p l i e sa s e t o fc o m p l e t es p e c i f i c a t i o n so fh a r d w a r ea b s t r a c t i o nb o t t o ml a y e re n c a p s u l a t i o na n du p p e r l a y e ro p e r a t i o ni n t e r f a c es p e c i f i c a t i o n s ,s ot h a tt h eu p p e rl a y e rs o f tw a r e si ne m b e d d e d s y s t e ms h i e l d t h es p e c i f i cd e t a i l si nb o t t o ml a y e rh a r d w a r ef a c i n gag e n e r a ll o g i c a l h a r d w a r el a y e r a tl a s t ,w ei m p l e m e n tao p e nb o o t l o a d e rb a s e do ns a n cd e v e l o p m e n tp l a t f o r m , a n dc o m p l e t et h eb a s i cf u n c t i o n so fb o o t l o a d e ra n ds i m p l ed i r e c t i o nf o ru s e t h er u n n i n g r e s u l t si ns 3 c 4 4 b 0d e v e l o p m e n tb o a r db a s e do na r ma r c h i t e c t u r ep r o v et h eu n i v e r s a l i t y o fb o o t l o a d e rd e s i g n e db ya u t h o r t h eb o o t l o a d e rd e s i g n e di n t h i sp a p e rc a ns u p p o r tc u r r e n tp o p u l a re m b e d d e d m i c r o p r o c e s s o ra n de m b e d d e do p e r m i n gs y s t e m i tc a nb o o tt h eo p e r a t i n gs y s t e ms u c ha s l i n u x ,v x w o r k sa n dn e t o s ii ne v e r yk i n do fe m b e d d e dm i r o p r o c e s s o r u s e rc a ns e l e c t s u i t a b l eo p e r a t i n gs y s t e mb a s e do ns p e c i f i cd e v e l o p m e n t r e q u i r e m e n t s k e y w o r d s :o p e nb o o t l o a d e bh a r d w a r ea b s t r a c t i o nl a y e r l a y e rm o d e l , s c p u d b u s :s 3 c 4 4 b o ; 目录 第一章绪论1 1 1 研究的目的和意义1 1 2 国内外研究动态分析2 1 2 1 嵌入式系统的研究动念2 1 2 2s o c ( s y s t e mo nc h i p ) 技术的研究动态3 1 3 创新点和主要工作5 1 4 论文结构5 第二章b o o t l o a d e r 的开放性7 2 1b o o t l o a d e r 的开放性7 2 2 通用硬件抽象层9 第三章开放的b o o t l o a d e r 的设计1 1 3 1 开放b o o t l o a d e r 的层次结构1 1 3 2 开放b o o t l o a d e r 功能模块设计1 3 3 2 1 基本配置定义1 3 3 2 2 体系结构描述1 6 3 2 3c a c h e 控制1 7 3 2 4m m u 控制1 9 3 2 5 异常和中断控制1 9 3 2 6i o 访问控制2 1 3 2 7 系统定时器控制2 2 3 2 8 嵌入式系统的初始化2 2 第四章基于s c p u - d b u s 体系结构的开放b o o t l o a d e r 的实现2 5 4 1 课题研究的平台环境2 5 4 1 1 硬件平台2 5 4 1 2 软件平台2 8 4 2 基于s c p u d b u s 体系结构的开放b o o t l o a d e r 的总体设计实现2 8 4 2 1 地址规划设计2 9 4 2 2 设置中断向量表3 1 4 2 3 s t a g e l 的代码实现3 2 4 2 4s t a g e 2 的代码实现3 4 4 。3 测试结果及其分析3 5 第五章基于a r m 体系结构的开放b o o t l o a d e r 的测试4 0 5 1 测试平台简介4 0 5 1 1 硬件环境4 0 5 1 2 软件环境4 1 5 2 测试结果及其分析4 2 第六章总结与展望4 4 6 1 全文工作总结4 4 6 2 问题与展望4 4 参考文献4 5 攻读学位期间的研究成果4 8 致谢4 9 学位论文独创性声明5 0 学位论文知识产权权属说明5 0 第一章绪论 1 1 研究的目的和意义 第一章绪论 嵌入式系统是把计算机技术直接嵌入到应用系统中,它融合了计算机软硬件技 术,通信技术以及半导体微电子技术。嵌入式系统通常的定义为:以计算机技术为 基础,以应用为中心,软硬件可裁减的,适应于系统对功耗、体积、成本、可靠性、 功能等综合性功能严格要求的专用计算机系统。也就是说,嵌入式系统将系统内嵌 入式了计算机技术。与通用的计算机系统相比,嵌入式系统是一种专用的计算机系 统,它主要是面向具体的应用,针对特定的领域完成特定的功能。相对于普通p c 来讲,第一,嵌入式系统的资源比较有限;第二,嵌入式系统一般都要求具有实时 性;第三,嵌入式系统对可靠性的要求较高;第四,嵌入式系统一般不需要与人交 互而独立运行,因此要求系统要具有较好的稳定性,同时应该具有相应的自动纠错 能力;第五,嵌入式系统作为一个微型系统,软硬件结合较为紧密;第六,不同于 应用软件的开发,嵌入式系统的开发一般采用宿主机一目标机模式。 引导加载程序( b e e t l o a d e r ) 是任何一个嵌入式系统加电后运行的第一段代码,其 主要功能就是为调用操作系统内核进行前期的铺挚,将系统带到一个软硬件合适的 状态。进行的主要工作包括:硬件设备的初始化、监测内存的可用性、同时建立内 存空间的一个映射图等等。最后,将操作系统加载进来。b o o t l o a d e r 完成了系统启 动和系统软件加载工作的程序。在p c 的体系结构中,有其自己的引导加载程序, b o o t l o a d e r 是由位于硬盘m b r 中的o s b o o t l o a d e r 和b i o s 两部分组成。首先,其 进行硬件检测和资源分配,然后由b i o s 将硬盘m b r 中的引导加载程序复制到系 统的内存当中,最后,将控制权交给o sb o o t l o a d e r 。然后,b o o t l o a d e r 从硬盘把 内核读到r a m 中,并跳转到内核的首地址处开始执行,之后,操作系统开始运行。 嵌入式系统的引导加载程序和p c 的略有不同。般情况下,嵌入式系统没有像b i o s 那样的固件程序,因此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 的共有特点,为开放b o o t l o a d o r 的设计与实现做好准备。b o o f l o a d e r 作 为底层硬件和上层应用软件之间的一个中间件软件,主要任务便是完成处理器和周 边电路正常运行所要的初始化工作。它实现了屏蔽底层硬件差异的功能,因此,方 便了上层系统软件和应用软件的编写和移植工作。 1 鉴于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 将大大的方便系统 软件和应用软件的设计,并且解放开放人员对于与硬件关系缜密的引导加载程序的 设计,具有重要的意义。 本课题作为国家“8 6 3 ”计划安全结构网络终端技术专项的子课题,针对 启动加载系统的上述问题,在前期工作 1 3 2 0 1 的基础上,研究并实现了支持双总线 安全结构的开放b o o t l o a d e r 。开放b o o t l o a d e r 可以依据用户输入的嵌入式系统的硬 件信息来自动产生系统配置文件从而来支持多种处理器结构和操作系统。具有丌放 的接口,为以后新嵌入式系统的丌发提供了相应的支持。 1 2 国内外研究动态分析 1 2 1 嵌入式系统的研究动态 嵌入式系统已经越来越多地应用在现代人的生活和工作中。他同样是由软件和 硬件组成的。在进行开发时,需要用相应的辅助工具。嵌入式系统的硬件包括:微 处理器处理器、外设器件以及存储器和i o 端口、图形控制器等等。对于处理 器而言,嵌入式系统的处理器一般有四种形式:m p u ,亦即微处理器,它由通用计 算机中的c p u 演变而来,保留其中与嵌入式系统紧密相关的部分,其他的裁减掉; m c u ,亦即微控制器,典型代表是单片机,如8 0 5 1 单片机等,它是目前工业方面 应用的主流;e d s p ,亦即嵌入式数字信号处理器,它在系统结构和指令算法方面 进行了设计,专用于信号处理等方面;还有一种是s o c ,即片上系统,它实现了软 硬件的无缝结合,综合性极高,它将操作系统的代码模块直接嵌入式到处理器片内。 此外,随着集成电路集成度的提高,s o c 芯片将更加成熟。嵌入式系统的软件一般 包括两部分,亦即操作系统和应用程序。操作系统软件一般要求具有实时和多任务 的特点。 总体来看,嵌入式系统具有如下特点:嵌入性强、性能价格比高、便利灵活, 实时性较强、系统专业性、系统所需配置要求较低、不可修改性等特点,并且可以 方便的嵌入到现有任何工业控制系统和信息家电中。目前,比较有影响的3 2 位嵌 入式微处理器有a l h a 、s a t e 、a r m 、p o w c r p c 、p a 、m i p s 等等。而具有低功耗、 高性能和低成本等一系列显著优点的a r m 处理器,是目前3 2 位、6 4 位嵌入式处 理器中应用最为广泛的一个系列,他已经成为低功耗、高性能嵌入式微处理器的代 名词。 2 第一章绪论 1 2 2s o c ( s y s t e mo nc h i p ) 技术的研究动态 回顾计算机发展史,计算机技术发展与i c ( 集成电路) 技术发展紧密相关。半 个多世纪以来,计算机发展主要经历了真空管( 1 代) 、晶体管( 2 代) 、集成电 路( 3 代) 、微处理器( 4 代) 等时代。目自仃i c 设计产业中出现了系统设计和i p ( i n t e l l e c t u a lp r o p e r t y ) 核设计的分工,形成了以s o c ( s y s t e mo nc h i p ) 技术为主 导的c h i p l e s s 设计方式,从而进入s o c 时代( 5 代) 1 2 。 s o c 的定义多种多样,由于其内涵丰富、应用范围广,很难给出准确定义。从 狭义角度讲,它是信息系统核心的芯片集成,是将系统关键部件集成在一块芯片 上;从广义角度讲,s o c 是一个微小型系统,集处理器i p 核、各外围设备i p 核、 i p 核互联总线于一体。国内外学术界一般倾向将s o c 定义为将微处理器、模拟i p 核、数字i p 核和存储器( 或片外存储控制接口) 集成在单一芯片上。它通常是客 户定制的,或是面向特定用途的标准产品。 s o c 设计技术始于2 0 世纪9 0 年代中期,随着半导体工艺技术的发展,i c 设计 者能够将愈来愈复杂的功能集成到单硅片上,s o c 正是在集成电路( i c ) 向集成系 统( i s ) 转变的大方向下产生的。1 9 9 4 年m o t o r o l a 发布的f l e xc o r e 系统( 用来制 作基于6 8 0 0 0 和p o w e r p c 的定制微处理器) 和1 9 9 5 年l s il o g i c 公司为s o n y 公司 设计的s o c ,可能是基于i p ( i n t e l l e c t u a lp r o p e r t y ) 核完成s o c 设计的最早报导。 s o c 的技术核心是i p 核的复用,充分的利用已有的设计积累。s o c 具有很多优势, 可减少功耗开销、减少印刷板上部件数和管脚数、减少板卡失效的可能性、有利 于板卡的性能改善( 片内连线缩短) 、降低风冷要求、减少系统开发成本等,具有 较强的市场竞争力。由于上述各种优点,s o c 技术的发展非常迅速,是工业界和学 术界的最热门的领域之一。 系统级芯片技术s o c 设计不仅仅是一个计算机专业领域的概念,而是微电 子、计算机及电子系统设计应用领域等多学科的交叉和融合,目前无论是国际还 是国内都在s o c 设计领域展开了激烈的竞争。s o c 按实现技术可分为两类:一类是 a s i c ( a p p l i c a t i o ns p e c i f i ci n t e g r a t e dc h i p ) s o c ,以微处理器和芯片设计公司为主 导,追求良好的性价比,适合大批量规模生产;另一类是s o p c ( s y s t e mo n a p r o g r a m m a b l ec h i p ) ,以f p g a 厂商和科研机构为主导,适合多品种少批量产品开 发。 a s i cs o c 按指令集来划分,主要有x 8 6 系列、a r m 系列、m i p s 系列、 s p a r c 系列和类指令系列等。基于x 8 6 的s o c 产品有国家半导体公司的s c 2 2 0 0 , 适合做无线浏览器、瘦客户机和机顶盒等产品,再如a m d 公司的g e o d e 系列产 品;基于a r m 系列的更是数不胜数,如s h a r p 的l h 7 a 4 0 0 ,s a m s u n g 的 3 s 3 c 4 4 a o a ,o k i 的m l 6 7 q 5 3 0 等;基于m i p s 的主要有a m da l c h e m ya u l 0 0 0 、 a u l 5 0 0 等系列产品; 基于类指令的产品,如c r u s o e t m 5 8 0 0 ,采用超长指令,代码效率很高。国内s o c 研制丌发者主要基于m i p s 系列和类指令系列,如中国科学院计算机研究所的“聚 芯 s o c ( 基于龙芯c p u 核,兼容m i p s i i i 指令集) 、北京大学的北大“众志”( 定 义少许特殊指令) 、北京方舟科技公司的“方舟2 号”( 自定义指令集) 、国芯 c c o r e ( 继承m c o r e ) 等,提供了面向不同应用领域的解决方案。 a s i c 电路是永久性的,设计和制造成本高,适用于大规模的批量生产,以均 摊成本。与之相对的是可编程逻辑器件f p g a ( f i l e dp r o g r a m m a b l eg a t ea r r a y ) ,可 以通过对电路的编程实现特定功能。f p g a 产生初期,只有数万逻辑门的规模,一 般被用做电路板上不同元器件的连接逻辑。近十几年随着半导体技术的不断进, 步,f p g a 的生产工艺、集成度、器件编程等飞速发展,单位成本不断下降,性能 不断提高。而同时,a s i c 芯片的开发成本越来越大,开发周期越来越长,产品面 市时间却越来越紧迫,f p g a 和a s i c 之间的界限逐渐被打破,出现了s o p c 技 术。 s o p c 是s o c 技术和可编程逻辑技术结合的产物,是一种特殊的嵌入式系统: 首先它是s o c ,即可以由单个芯片完成整个系统的主要逻辑功能;其次,它还是可 编程系统,具有灵活的设计方式,可裁减、可扩充、可升级,具备一定的系统可 编程功能。可编程器件内具有小容量的r a m 资源,可以选择不同的i p 核被来构成 不同的系统( 单处理器、多处理器系统) ,有些可编程器件内还包含部分可编程模 拟电路。s o p c 的出现也是市场和技术共同推动的结果:它具有a s i cs o c 几乎所 有的优点,同时又克服了一些明显的缺点,市场对s o p c 的需求越来越大;随着 技术的发展,百万门以上密度的f p g a 和c p l d 芯片己经面市并发展前景非常好, 功能强大的系统级芯片开发工具也已经推出,可以对百万门电路进行快速的分析 和编译。 s o p c 的解决方案有多种,目前主要有基于f p g a 的嵌入i p 硬核的s o p c 系统 以及基于f p g a 的嵌入口软核的s o p c 系统,其中m 核主要指处理器核。如果将 a r m 等处理器核以硬核方式植入f p g a 中,利用f p g a 的可编程逻辑资源,按照 系统功能需求来添加接口功能模块,这样就将f p g a 软件灵活的硬件设计和硬核处 理器的强大功能有机的结合起来,构成了一个高效的基于口硬核的s o p c 系统。 但是该方案还有一些不足:处理器硬核大都来自第三方公司,这样就需支付一定 的支持产权费用,增加了系统成本;由于硬核是预先植入的,处理器的结构如总 线规模、接口方式、指令形式等都是不可更改的,也不能根据需要添加多处理器 或裁剪处理器资源,这样就大大降低了s o p c 系统硬件设计的灵活性;只有某些特 4 第一章绪论 定的f p g a 芯片中包含硬核嵌入式处理器,选择面窄,有可能引起资源浪费。而嵌 入i p 软核的s o p c 系统能够很好的解决以上不足,最有代表性的软核处理器有 a l t e r a 公司的n i o s l i 及x i l i n x 公司的m i c r o b l a z e 处理器。它们由f p g a 厂商直接提 供,用户无需支付额外的知识产权费用。厂商针对f p g a 的特殊结构对软核处理器 进行了优化并提供丌发工具的支持,使用户能够在其生产的f p g a 芯片中实现该处 理器,并能够随意配置各种参数( 如运算快慢、资源占用、缓存大小、指令定制 等) ,而且在f p g a 资源足够的情况下能植入多个处理器1 3 j 。 另外,在进行片上系统设计时,由于要考虑系统的整体架构,除了要选择使 用哪种c p u 外,还要选择总线。为了提高开发模块的重复利用率,降低丌发成 本,用户可采用多种总线,包括s o c 芯片内部总线、芯片间总线( 如s p i 、1 2 c 、 并行总线等) 、板卡间总线( i s a 、p c i 、v m e 等) 、设备间总线( u s b 、1 3 9 4 、 r s 2 3 2 等) ,以使片上系统模块间不会面临干扰、匹配等问题。目前s o c 芯片内总 线架构有很多种,如i b m 公司的c o r e c o n n e c t 、a r m 公司的a m b a 、s i l i c o r e 公司 的w i s h b o n e 、开放核心协议国际联合( o c p i p ) 的o c p ( o p e nc o r ep r o t o c 0 1 ) 与 虚拟插座接口联盟v s i a ( v i r t u a ls o c k e ti n t e r f a c e a l l i a n c e ) 的v c i ( v i r t u a lc o m p o n e n t i n t e r f a c e ) 、a h e r a 的a v a l o n 总线等4 1 。 1 3 创新点和主要工作 本课题是国家“8 6 3 ”计划安全结构网络终端技术专项的一个子课题,针 对s c p u d b u s 安全体系结构,研究并实现了一种支持该体系结构的开放b o o t l o a d e r 子系统,论文中具体的创新工作如下: 1 针对嵌入式系统中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 会依据用 户输入的参数信息,自动的生成自身的配置文件,完成引导加载程序的配 置,并按照配置文件对系统进行引导和加载: 2 针对嵌入式系统开发平台构建中的硬件环境差异问题,采用了对开放 b o o t l o a d e r 模型进行分层设计的方法,使得开放b o o t l o a d e r 层结构清晰分, 具有良好的开放式架构,允许在其中加入对新开发处理器的支持。 1 4 论文结构 本论文在前期工作的基础上,完成了开放b o o t l o a d e r 子系统的设计和实现,论 5 文的结构安排如下: 第一章:介绍了本文研究的目的和意义,讨论了嵌入式系统、开放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 的特 点等。 第三章:提出了开放b o o t l o a d e r 的设计方法o p e no o t l o a d e r 基于硬件抽象 层的层次模型和功能模块,并阐述了b o o t l o a d e r 开放性和通用性机制的基本理论。 第四章:基于s c p u d b u s 体系结构,研究了开放b o o t l o a d e r 的实现,并对具 体实现过程进行了阐述,并基于课题组自主研发的网络终端对其进行了测试,结果 能够成功引导课题组自主设计的操作系统n e t o s i 。 第五章:以基于a r m 体系结构的s 3 c 4 4 b 0 主板为例,对本文实现的开放 b o o t l o a d e r 进行了测试,最后对测试结果进行分析。 第六章:对本文的研究工作进行了总结,分析了当前存在的问题,并且讨论了 下一步研究的方向。 6 第二章b o o t l o a d e r 的开放性 第二章b o o t l o a d e r 的开放性 2 1b o o tio 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 。而且,它不 仅依赖于c p u 的体系结构,同时也依赖于具体的嵌入式板级设备的配置。换言之, 对于两块不同的嵌入式板而占,即使它们是基于同一种c p u 而构建的,要想让运 行在一块板子上的引导加载程序同时也能运行在另一块板子上,通常也都需要修改 b o o t l o a d e r 的源程序。当然,有些b o o t l o a d e r 也支持多种体系结构的c p u ,比如 u b o o t 就同时支持a r m 体系结构和m i p s 体系结构。鉴于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 主要有: l 、u b o o t 。 全称为u n i v e r s a lb o o t l o a d e r 。u b o o t 是由开源项目p p c b o o t 发展起来的, g r m b o o t 并入了p p c b o o t ,和其他一些a r c h 的l o a d e r 合称u b o o t 。它是由一开始 德国d e n x 软件工程中心的w o l f g a n gd e n k 基于8 x x r o m 和f a d s r o m 的源码创 建,一开始名为p p c b o o t 。但是,之后经过不断的添加对新的处理器的支持,包括 s y s g og m b h 对a r m b o o t 工程项目的添加。以二者为基础创建了u b o o t 。u b o o t 是 目前非常主流的一个通用的b o o t l o a d e r ,它支持l y n x o s 、a r t o s 、v x w o r k s 、 n e t b s d 等嵌入式操作系统,而且支持x s c a l e 、n i o s 、a r m 、x 8 6 、m i p s 、p o w e r p c 等诸多常用系列的处理器。 u b o o t 的编译形式,源码目录均类似于l i n u x 的内核,因其中的许多源码即是对 l i n u x 内核程序的简化。目前u b o o t 已经成为功能最多、灵活性最强,并且开发最积 极的开源b o o t l o a d e r 。 7 青岛人学硕七学位论文 2 、b l o b 。 b l o b 是b o o t l o a d e ro b j e c t 的缩写,它是一款功能强大的b o o t l o a d e r ,可以对l i n u x 操作系统进行引导。它由著名的丌源嵌入式工程l a r t 发展而来。是一个开源的引 导加载程序。他同样是源码开放,遵循g p l 。目f j ,b l o b 支持的c p u 已经很多,如: s a l1 0 0 ,s a l11 0 ,p x a 2 5 5 ,p x a 2 7 0 等等,用户可以根据自己的需要对其进行定制。 其基本功能为: a 对硬件进行初始化,如:串口、存储器等等; b 对l i n u x 内核进行引导,同时提供r a m d i s k ; c 可以实现给l a r t 下载个内核或者r a m d i s k 的功能; d 可以实现给f l a s h 片更新内核或者r a m d i s k 的功能; e 可以测定存储的配置,并且传送给内核; f 提供一个命令行。 3 、o p e n b i o s 。 o p e n b i o s 是一个兼容o p e n f i r m w a r e ( i e e e1 2 7 5 1 9 9 4 ) 的固件。它目前主要 支持i p f 、a m d 6 4 、x 8 6 和a l h a 等体系结构的处理器。 4 、r e d b o o t 。 r e d b o o t 是由r e d h a t 公司发布的一个弓i 导加载程序。它也是一个月源的项目。 它对着e c o s 而发布,因此,它具有简洁、可灵活配置和高可靠性等优良品质。此外, r e d b o o t 还提供了一个交互式的命令行接口,因此可以管理f l a s h 映像、对r e d b o o t 进行相关的配置等等。 r e d b o o t 可以通过两种方式下载到目标板中,一种是经由串口下载,使用 x - m o d e m 或y - m o d e m 协议,另外一种是经由以太网口下载,方法是通过 b o o t p d h c p 服务获得i p 参数,使用t f t p 方式下载程序映像文件。此种方法经 常被用于调试支持和系统初始化。此外,它还可以通过这两种方式与g d b 进行通 信,对应用程序进行调试等等。 5 、l i n u x b l 0 s 。 l i n u x b i o s 的起初目标是希望能在冷启动状态下启动l i n u x 内核来替代p c 上 常用的b i o s 。起初的动机是用于维护庞大的c l u s t e r 集群。他与l i n u x 进行了完美的 结合,它只进行少量的初始化工作,剩下的全部交给l i n u x 来完成。因此,它的速 度非常快,号称最短时间只有3 5 秒。 6 、。 。 v i 是韩国m i z i 公司为a r m 9 处理器开发的一款b o o t l o a d e r 。它有两种工作 模式:启动加载模式和下载模式。v i 的默认模式是在启动加载模式下,它可以在 8 第二章b o o t l o a d e r 的开放性 段时间后( 这个时间可更改) 自行启动l i n u x 内核。另外一个是下载模式,v i v i 在 该模式下为用户提供了一个命令行接口,用户可以通过这些命令来使用v i v i 提供的 一些命令和功能。 7 、a r m b o o t 。 a r m b o o t 是一个基于p p c b o o t 的a r m 平台的开源固件项目,是为基于a r m 或者s t r o n g a r mc p u 的嵌入式系统所设计的。同时它也是一个为p o w e r p c 平台上 的系统提供类似功能的姊妹项目。a r m b o o t 支持的处理器构架有s t r o n g a r m , a r m 7 2 0 t ,p x a 2 5 0 等等。 a r m b o o t 是g p l 下的唯一支持f l a s h 闪存,b o o t p 、d h c p 、t f t p 网络下载, p c m c l a 寻线机等多种类型来引导系统的引导加载程序。其目标是成为一个通用的 和轻便的引导加载程序。其主要特性为: a 可以支持好多种类型的f l a s h ; b 允许三种方式的下载方式,映像文件可以经由b o o t p 、d h c p 、t f t p 从网 络传输; c 允许内存的显示及对内存的修改; d 支持从串行口下载二进制文件; e 支持j f f s 2 文件系统等等。 8 、a n g e l b o o t 和a n g e l 支持i n t e l 的a s s a b e t 。 它是一种典型目标板+ 主机型的b o o t l o a d e r 。它的目标板代码存放于f l a s h 中, k e r n e l 是通过串口的方式被加载到f l a s h 中,之后,对r c 文件进行简单的配置即可。 在启动时,它分别把r a m d i s k 和k e r n e l 加载到r a m 中,然后再从k e r n e l 的起始处 开始执行。 a n g e l b o o t 和a n g e l 作为一个整体而存在。a n g e l 在启动的时候执行,它是运行 在目标板上的部分。a n g e l b o o t 是运行在主机上的那部分,它通过和a n g e l 的配合 来控制对k e r n e l 的加载。此外,a n g e l 也可以被用于做调试器代理。 2 2 通用硬件抽象层 硬件抽象层h a l ( h a r d w a r ea b s t r a c t i o nl a y e r ) 是一个接口层。通过硬件抽象 层,我们可以对底层的硬件进行抽象。这样的话,上层的操作系统就可以与硬件抽 象层打交道,从而忽略底层硬件的细节。方便了操作系统和相关应用程序的移植和 设计。此外,硬件抽象层根据现实情况定义之后,硬件的开发和软件的开发便不再 需要串行进行,可以并行进行,从而缩短了项目的开发周期。 硬件抽象层的概念首先是由微软公司提出,提出的初衷是为了方便操作系统在 不同硬件结构上的移植。硬件抽象层的引入使得嵌入式操作系统的通用程度大大的 9 青岛人学硕士学位论文 提高了。从硬件抽象层的角度来讲,它的设计应该满足硬件相关和软件无关的特点。 此外,接口的定义应该尽量的简单明了,同时满足功能齐全的特点。此外,可测性 的接口将对系统的软硬件测试和集成非常有利。总的来说,硬件抽象层可以分为以下 几点: 1 、上层软件 2 、虚拟驱动设置管理模块 3 、内部通信s e r v e r 4 、内部以太网 5 、内部通信c l i e n t 6 、川户接入口 本文提出了将硬件抽象层引入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 会依据用户输入的参数信息,自动的生成自身的配置文件,完成引导加 载程序的配置,并按照配置文件对系统进行引导和加载。 1 0 第三章开放的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 不再局限于特定的处理器体系结构,从而b o o t l o a d e r 适用 的范围在很大程度上得到了拓广。总之,采用硬件抽象层技术对于增强b o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年江西大唐国际抚州发电有限责任公司招聘21人笔试历年参考题库附带答案详解
- 2025-2030年镁矿地质勘查服务企业制定与实施新质生产力战略分析研究报告
- 2025-2030年非专用容量分配装置行业盈利模式创新与变革分析研究报告
- 2025-2030年磁法勘探设备企业制定与实施新质生产力战略分析研究报告
- 初中英语九年级下册《Unit 2 Great People》第4课时综合技能(Integrated Skills)高端教学导案
- 小学英语六年级下册Unit 2 Last weekend Part A融合课深度教学设计
- 初中七年级英语下册Unit8 Is there a post office near there Section B 3aSelf Check应用写作与综合探究教案
- 2026年教师仪容仪表及职业形象规范题库
- 知识产权教育与职业发展-洞察与解读
- 基于任务型教学法的中级汉语口语课《刷卡消费享受生活》教学设计
- 乐视战略失败案例分析
- 卫星制造厂建设方案
- 2026年烟花爆竹经营(零售)许可证代办合同
- 延后发工资协议书
- 2025年开封大学单招职业技能测试题库附答案
- 2026年亚马逊运营岗位高频常见面试题
- 妊娠期垂体瘤患者产前激素准备方案
- 中国东方航空校招试题及答案
- 82-2手榴弹使用课件
- GB/T 4960.5-2025核科学技术术语第5部分:辐射防护与辐射源安全
- 营养护理专科试题题库及答案解析
评论
0/150
提交评论