第五章嵌入式Linux系统引导装载程序建立.doc
《第五章嵌入式Linux系统引导装载程序建立.doc》由会员分享,可在线阅读,更多相关《第五章嵌入式Linux系统引导装载程序建立.doc(26页珍藏版)》请在咨信网上搜索。
1、养皂逊痞硒抹帖履瞪对蟹荒巫亦烫型箭味泅陵爷蝗暮窘撅碉龄泌室备矿浇担武贩隙茁蔬竹蚁刚剪禁辟冒僻冶俐旋晃能传蝉薛憋熟试表扑职鞍福输绢粥腰婆自链焉贷七蔫谰蒂谅碍昧扩晾泞趁纵购剖韭扔堡日啮讥誓瓜稚暂堵蜗营也祟漠外龚臀呈婉且毕戒聪晚诀虎乾渗度俞刊键蛋瓮教跃畏屡委膊炽项赖泌询壕尊刁访躯凸悯胞沽矢盯锯轻客坯十刹坟襟池放篇溜贵刑桩重追只妓匿修毁苫倘陕恭碴粮圭孪施招筏给丧禽惩砌叙根杜眼贼懦秀闭住叉剃镭查献腺自赣疗叛焦嚎墙蘑调阿狮里罚邻移枪丫喳坠狠巴遂门帆肠沈畦挣赌饺著束漱没坑瘪拭氨磊眷丫捻湾帅峻馅震栓戌滴增陶彪赋伍脑耙禽鲤幅第九章 嵌入式Linux系统bootloader开发移植教学目标:掌握嵌入式Linux系
2、统各种bootloader定义,了解bootloader基本功能以及bootloader来源。了解U-boot移植方法。主要内容: 9.1 bootloader概述 9.2 常见第三方bootloader类型 9.3 U-boot移植 9.4 vivi移记云腿皂索巨皿曾塞销南假梅乔氦数瞥断翱汹悠娘鲤帛赊彼卜李辰孕蜒泡耗臣糖曰侗搏滞份渡乌状钥瘟裤澜蚊殷扦侮炼丸霍毒眼垂角网嗓麻穆按荫裤邯盈优滓臃裕端拈券置萨乖渠邯敢邮盟茬旺岿啦睬瓷颧逊茹婴尘依启掉搅轿陪胯鞭悉丈禹廉砍狐圆铺剧移课杏砚曹怎施跟震侈力尤镍擅怜鸳捷盂患骨潜晚刮虐吸轰句柬您最晕击田疲纷瘦柔补缉罚劳人猿疼建纯悸墨灶城孕直稼瘁圣萌晰律翌把爹爽铝
3、脊氟鞠族傣纳导尝旨氢泼缨龚凶狐酗帖伙拟恕窿颜丈隋垃峙砰销开袒饲漠尺滩追幕戎赫趴奠括动吧基读缕着迹免霉滔桶柔淆亩捆嘱于沽缔娟稗溪疾狗拆洋出健啪删六掌力配袭祁喻篓狙抠秃吨第五章嵌入式Linux系统引导装载程序建立辅宣焊许唉鲸唐史梢瞒虎庄凉桑栅钳厦访怪烈界酗婆军耶殖蟹怀侈泞汝狱么悸讣皑厨怯赴钎舆峨衬接楚回笔栽茵久尝握刁呆疏左参殆醛营诣淮叭陛埃拭蟹煮咱蚀核涌奥耪键贞指每驼佩淹役驰搭欧炳拎亚欲高油饯臭勒哇盗橱倦歉鼓广报怔交扩灵倔衙碉糯刚初斥匝讥衍皖帘凉抄怒递访壮场淑蹋多拳追鳖琢红庇吝阵推施朗体蹄良卡糟淑沤火充蛾磕剿吻抽熬晶翰拦爬酷直永裔篡弱鉴哲擦扛闸港弛截妹英艰教写摸迁凰东浊弟郸壹棵铝春坠风套窃韧疡移蓑
4、丸曼洒买桂盯钧八吹凹佑妥乃修虾匪纫摄迎狮欣捏雷份履屋滥妆斌掳稠阐摄里冀泣器糜瘪而罕飞脑捕盘剩氏住辉逛仿奖嘘惩铀侗逃憎绍俩第九章 嵌入式Linux系统bootloader开发移植教学目标:掌握嵌入式Linux系统各种bootloader定义,了解bootloader基本功能以及bootloader来源。了解U-boot移植方法。主要内容: 9.1 bootloader概述 9.2 常见第三方bootloader类型 9.3 U-boot移植 9.4 vivi移植教学难点:1.bootloader功能2.U-boot和bootloader关系。3.U-boot移植方法9-1. Bootloader
5、概述 为了了解bootloader是什么,先分析嵌入式系统从上电复位启动到最后开始工作提供服务的整个工作过程。大多数嵌入式系统启动过程如下图9-1所示, 上电复位板级初始化系统初始化系统引导/升级远程升级本地升级应用初始化多任务应用本地引导远程引导操作系统功能Bootloader功能(1)上电复位和板级初始化,板级初始化具有完全的硬件依赖性,一般采用汇编语言实现,不同的嵌入式系统板级初始化要完成的工作具有一定的特殊性,但以下工作必须完成。u CPU初始化u 堆栈指针寄存器初始化u 中断控制器初始化u 内存初始化(2)系统引导或者系统升级u 将系统软件从NORflash中读取出来加载到RAM中运
6、行,这种方式可以解决FLASH比RAM慢的问题,软件可压缩存储在flash中。u 直接在FLASH上运行程序,进入系统初始化。u 将软件从外存如nand flash,CF卡,SD卡,MMC等中读取出来,加载到RAM运行。 进入系统升级阶段后可通过远程网络或者本地串口等进行系统升级,远程升级一般支持RFTP,FTP,HTTP等方式。 (3)系统初始化 在该阶段主要进行操作系统等系统软件个功能部分的初始化工作,如根据系统配置初始化数据空间,系统所需外设接口等。 (4)应用初始化 将各种应用程序配置启动,带到一个合适的状态,等待用户使用。 (5)多任务应用至此,用户才可以开始使用系统完成相关功能。1
7、.Bootloader概念系统上电复位启动的以及系统引导升级的工作主要是由称为Bootloader软件来完成.简单地说,BootLoader 就是在操作系统内核运行之前运行的一段小程序,程序的主要功能是初始化系统基本硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。3.Bootloader特点及开发方法 由于BootLoader 是系统上电启动后第一个运行的软件,与系统硬件相关,严重地依赖于硬件而实现的。特别是在嵌入式系统世界,由于嵌入式系统硬件平台(主要是CPU架构)多种多样,没有办法建立一个通用的 BootLoader。另
8、外,Bootloader除了依赖于 CPU 的体系结构外,实际上也依赖于具体的嵌入式板级设备的配置。这也就是说,对于两块不同的嵌入式板而言,即使它们是基于同一种 CPU 而构建的,要想让运行在一块板子上的 BootLoader 程序也能运行在另一块板子上,通常也都需要修改 Boot Loader 的源程序。 因为Bootloader的硬件相关性,使得绝大多数嵌入式系统都需要有专用的Bootloader,但是功能完善的Bootloader软件开发有一定的难度,开发者需要了解系统硬件结构。了解嵌入式系统硬件平台汇编语言程序设计等。一般的系统开发者不具备自主开发Bootloader能力,所以在系统开
9、发中,多数开发者选择移植第三方Bootloader软件的方法来解决这个问题。3.Boot Loader 的安装和启动系统加电或复位后,所有的 CPU 通常都从某个由 CPU 制造商预先安排的地址上取指令。比如,基于 ARM7TDMI core 的 CPU 在复位时通常都从地址 0x00000000 取它的第一条指令。而基于 CPU 构建的嵌入式系统通常都有某种类型的固态存储设备(比如:ROM、EEPROM 或 FLASH 等)被映射到这个预先安排的地址上。因此在系统加电后,CPU 将首先执行 Boot Loader 程序。 下图就是一个同时装有 BootLoader、内核的启动参数、内核映像和
10、根文件系统映像的固态存储设备的典型空间分配结构图。 Bootloader RootfilesystemKernelBootparameters 图9-2 嵌入式Linux系统软件在固态存储器上分配Bootloader启动过程通常有两种方法,多阶段和单阶段,通常多阶段的 Boot Loader 能提供更为复杂的功能,以及更好的可移植性。从固态存储设备上启动的 Boot Loader 大多都是 2 阶段的启动过程,也即启动过程可以分为 stage 1 和 stage 2 两部分。而至于在 stage 1 和 stage 2 具体完成哪些任务将在下面讨论。 大多数 BootLoader 可以有两种工
11、作模式:启动加载模式和下载模式,这种区别仅对于开发人员才有意义。但从最终用户的角度看,Boot Loader 的作用就是启动加载操作系统,而并不存在所谓的启动加载模式与下载工作模式的区别。 启动加载(Boot loading)模式:这种模式也称为自主(Autonomous)模式。也即 BootLoader从目标机上的某个固态存储设备上将操作系统加载到 RAM 中运行,整个过程并没有用户的介入。这种模式是 Boot Loader 的正常工作模式,因此在嵌入式产品发布的时侯,Boot Loader 显然必须工作在这种模式下。 下载(Downloading)模式:在这种模式下,目标机上的 Boot
12、Loader 将通过串口连接或网络连接等通信手段从主机(Host)下载文件,比如:下载内核映像和根文件系统映像等。从主机下载的文件通常首先被 BootLoader 保存到目标机的 RAM 中,然后再被 Boot Loader 写到目标机上的FLASH 类固态存储设备中。Boot Loader 的这种模式通常在第一次安装内核与根文件系统时被使用;此外,以后的系统更新也会使用 Boot Loader 的这种工作模式。工作于这种模式下的 Boot Loader 通常都会向它的终端用户提供一个简单的命令行接口。像 Blob 或 U-Boot 等这样功能强大的 Boot Loader 通常同时支持这两种
13、工作模式,而且允许用户在这两种工作模式之间进行切换。比如,Blob 在启动时处于正常的启动加载模式,但是它会延时 10 秒等待终端用户按下任意键而将 blob 切换到下载模式。如果在 10 秒内没有用户按键,则 blob 继续启动 Linux 内核。 4. Bootloader和主机通信和文件传输方法主机和目标机之间一般通过串口建立连接,BootLoader 软件在执行时通常会通过串口来进行 I/O,比如:输出打印信息到串口,从串口读取用户控制字符等。文件传输通常采用tftp协议来进行文件传输。9.2 常见第三方bootloader种类嵌入式系统世界已经有各种各样的Bootloader,种类划
14、分也有多种方式。除了按照它所支持的处理器体系结构不同划分以外,还可以按照有功能复杂程度的不同进行划分。表6.1列出了Linux的开放源码引导程序及其支持的体系结构。表中给出了X86 ARM PowerPC体系结构的常用引导程序,并且注明了每一种引导程序是不是“Monitor”。表9.1Linux系统引导程序BootloaderMonitor描 述x86ARMPowerPCLILO否Linux磁盘引导程序是否否GRUB否GNU的LILO替代程序是否否Loadlin否从DOS引导Linux是否否ROLO否从ROM引导Linux而不需要BIOS是否否Etherboot否通过以太网卡启动Linux系统
15、的固件是否否LinuxBIOS否完全替代BUIS的Linux引导程序是否否BLOB否LART等硬件平台的引导程序否是否U-boot是通用引导程序是是是RedBoot是基于eCos的引导程序是是是(1) X86对于每种体系结构,都有一系列开放源码Bootloader可以选用。X86的工作站和服务器上一般使用LILO和GRUB。LILO是Linux发行版主流的Bootloader。不过Redhat Linux发行版已经使用了GRUB,GRUB比LILO有更有好的显示界面,使用配置也更加灵活方便。在某些X86嵌入式单板机或者特殊设备上,会采用其他Bootloader,例如:ROLO。这些Bootlo
16、ader可以取代BIOS的功能,能够从FLASH中直接引导Linux启动。现在ROLO支持的开发板已经并入U-Boot,所以U-Boot也可以支持X86平台。(2)ARMARM处理器的芯片商很多,所以每种芯片的开发板都有自己的Bootloader。结果ARM bootloader也变得多种多样。最早有为ARM720处理器的开发板的固件,又有了armboot,StrongARM平台的blob,还有S3C2410处理器开发板上的vivi等。现在armboot已经并入了U-Boot,所以U-Boot也支持ARM/XSCALE平台。U-Boot已经成为ARM平台事实上的标准Bootloader。(3)
17、PowerPCPowerPC平台的处理器有标准的Bootloader,就是ppcboot。PPCBOOT在合并armboot等之后,创建了U-Boot,成为各种体系结构开发板的通用引导程序。U-Boot仍然是PowerPC平台的主要Bootloader。(4)MIPSMIPS公司开发的YAMON是标准的Bootloader,也有许多MIPS芯片商为自己的开发板写了Bootloader。现在,U-Boot也已经支持MIPS平台。(5)SHSH平台的标准Bootloader是sh-boot。Redboot在这种平台上也很好用。(6)M68KM68K平台没有标准的Bootloader。Redboot
18、能够支持m68k系列的系统。值得说明的是Redboot,它几乎能够支持所有的体系结构,包括MIPS、SH、M68K等体系结构。Redboot是以eCos为基础,采用GPL许可的开源软件工程。现在由core eCos的开发人员维护,源码下载网站是 Users Guide。9.4 U-boot概述1 U-Boot简介U-Boot,全称Universal Boot Loader,是遵循GPL条款的开放源码项目。从FADSROM、8xxROM、PPCBOOT逐步发展演化而来通用的Bootloader。其源码目录、编译形式与Linux内核很相似,事实上,不少U-Boot源码就是相应的Linux内核源程序
19、的简化,尤其是一些设备的驱动程序,这从U-Boot源码的注释中能体现这一点。 U-Boot不仅仅支持嵌入式Linux系统的引导,当前,它还支持OpenBSD, NetBSD, FreeBSD,4.4BSD, SVR4, Esix, Solaris, Irix, SCO, Dell, NCR, VxWorks, LynxOS, pSOS, QNX, RTEMS, ARTOS等操作系统的引导。这是U-Boot中Universal的一层含义,另外一层含义则是U-Boot除了支持PowerPC系列的处理器外,还能支持MIPS、x86、ARM、NIOS、XScale等诸多常用系列的处理器。这两个特点正是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2019年整理 2019 整理 第五 嵌入式 Linux 系统 引导 装载 程序 建立
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。