- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十四讲 嵌入式系统的Boot Loader 张朋月,手zhangpy@ 达盛知天培训中心 课程简介 课程内容:通过与PC系统与51单片机启动代码的比较来阐明嵌入式系统的bootloader. 课程目的:使学员了解嵌入式系统的BootLoader的概念及嵌入式处理器大体的启动配置流程。 讲座时间:25分钟 51单片机的初始化代码与PC机的BIOS(一) 各种处理器在上电或复位后都要从各自的ROM中读取一段代码来进行系统自身的初始化,在嵌入式系统开发过程中,这段代码被称为Boot Loader 在51类单片机中这种代码相对简单。 下面就是51单片机的初始化代码。 ORG 0000H LJMP MAIN ORG 0023H LJMP SETINT MAIN: CLR EA ------ SETINT: ------ 51单片机的初始化代码与PC机的BIOS(二) 在我们所熟知的X86的PC体系结构中,PC 机的引导加载程序由 BIOS来完成的,所说的BIOS就是一种存贮在一片EEPROM中的一段配置代码程序,主要完成PC机外设的硬件检测和系统资源的分配,然后将硬盘中MBR主分区中操作系统启动程序读取到RAM中,并将控制权交给操作系统的启动程序,从而启动操作系统。 由此可见51单片机系统的初始化是靠数行汇编语句来完成,而PC机的初始化是靠存贮在固定芯片中的BIOS程序代码来实现。 51单片机的初始化代码与PC机的BIOS(三) 接下我们研究一下PC的启动,PC的启动流程如下图示 51单片机的初始化代码与PC机的BIOS(四) 从现象来看,PC的BIOS更象是一种Boot程序,当Boot将控制权交给操作系统启动程序后,我们在PC的键盘按下F5或F8后,会看到系统提示我们是否正常启动还是进行到安全模式,如果我们安装有双操作系统,比如XP和Linux共同安装在同一台PC上,那可能就会提示,进入到那个操作系统,这种带有交互功能的Boot启动程序就可以定义为成是Boot Loader了,这个Boot Loader就存于主引导分区中,只是Boot Loader体现的相对较弱。 因此在PC系统中Boot和Boot Loader共存于同一系统中,只是分属和位置不同而已。PC的Boot Loader与操作系统密切相关,并侧重于与系统的交互装载引导功能,而Boot更侧重于引导功能,在非PC架构下的应用系统中,当Boot将控制权交给操作系统后,就无法再干预操作系统启动了,这也就是Boot与Boot Loader的主要区别。 嵌入式系统Boot Loader 的概念 简单地说,Boot Loader 就是在嵌入式操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。 通常,Boot Loader 是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的 Boot Loader 几乎是不可能的。尽管如此,我们仍然可以对 Boot Loader 归纳出一些通用处理方法,以指导特定的 Boot Loader 设计与实现。 Boot与Boot Loader 区别 Boot是与CPU最小核心系统(SDRAM和FLASH)密切相关的,其功能上应该分为两种,一种是主要负责最小核心系统的配置,并把Boot Loader或操作系统从固态存储器复制到内存中,并将控制权交给Boot Loader。而另一种就是较为复杂的Boot,要全面配置适应操作系统的环境,然后把控制权直接交给操作系统,相当于Boot Loader功能的载减。 Boot Loader可以说是首先含有Boot功能,但属于功能简单型,同时增加的交互功能和为适应操作系统启动的进一步配置功能,其与嵌入式操作系统有直接的关系,一些网络设备的启动都要在Boot Loader下才能完成。 Boot侧重于引导,Boot Loader侧重于引导和交互,很多情况下Boot Loader就完全完全当做Boot使用,但Boot一定不具有Boot Loader的功能 Boot Loader 几个关键点(一) 1. Boot Loader 与最小核心系统硬件平台的关系 每种不同的 CPU 体系结构都有不同的 Boot Loader。有些 Boot Loader 也支持多种体系结构的 CPU,比如 U-Boot 就同时支持 ARM 体系结构和MIPS 体系结构。除了依赖于 CPU 的体系结构外,Boot Loader 实际上也依赖于具体的嵌入式板级设备的配置。这也就是说,对于
文档评论(0)