嵌入式系统软件开发 -- bootloader_内核

嵌入式系统软件开发 -- bootloader_内核

ID:13828781

大小:3.03 MB

页数:100页

时间:2018-07-24

嵌入式系统软件开发 -- bootloader_内核_第1页
嵌入式系统软件开发 -- bootloader_内核_第2页
嵌入式系统软件开发 -- bootloader_内核_第3页
嵌入式系统软件开发 -- bootloader_内核_第4页
嵌入式系统软件开发 -- bootloader_内核_第5页
资源描述:

《嵌入式系统软件开发 -- bootloader_内核》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Bootloader与Linux内核西安交通大学软件学院A103杜小智xzdu@mail.xjtu.edu.cnBootloader与Linux内核主要内容嵌入式引导系统(BootLoader)技术Linux内核定制、裁剪和添加1BootloaderBootloader简介常用Bootloader的介绍Bootloader的烧写和使用Uboot3Bootloader简介Bootloader的概念Bootloader的启动Bootloader的种类4Bootloader的概念引入:对于计算机系统来说,从开机上电到操作系统启动需

2、要一个引导过程。嵌入式Linux系统同样离不开引导程序,这个引导程序就叫做BootLoader。对比:回忆一下PC的体系结构我们可以知道,PC机中的引导加载程序由BIOS(其本质就是一段固件程序)和位于硬盘MBR中的引导程序一起组成。BIOS在完成硬件检测和资源分配后,将硬盘MBR中的引导程序读到系统的RAM中,然后将控制权交给引导程序。引导程序的主要运行任务就是将内核映象从硬盘上读到RAM中然后跳转到内核的入口点去运行,也即开始启动操作系统。5Bootloader的概念而在嵌入式系统中,通常并没有像BIOS那样的固件程序。

3、因此整个系统的加载启动任务就完全由BootLoader来完成.比如在一个基于ARM7TDMIcore的嵌入式系统中,系统在上电或复位时都从地址0x00000000开始执行.而在这个地址处安排的通常就是系统的BootLoader程序。6Bootloader的概念Bootloader的概念和功能BootLoader是一段汇编代码,存放在MBR(MasterBootRecord)中,它的主要作用就是将操作系统启动代码读入内存。从功能上看,Bootloader就是在操作系统内核或用户应用程序运行之前运行的一段小程序。通过这段小程序可

4、以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核或用户应用程序准备好正确的环境。7Bootloader的概念Bootlaoder的不统一性/不通用性通常,BootLoader是依赖于硬件而实现的,特别是在嵌入式领域,为嵌入式系统建立一个通用的BootLoader是很困难的。当然,我们可以归纳出一些通用的概念来,以便我们了解特定BootLoader的设计与实现。当前在嵌入式Linux系统中,有了一些流行和通用的Bootloader框架。现实开发中,我们都是采用现有的B

5、ootLoader进行修改Vivi,blob,u-boot是最常见的,它们都是开源的8Bootloader的启动嵌入式Linux系统也是通过Bootloader引导启动的。一上电,就要执行Bootloader来初始化系统。系统加电或复位后,所有CPU都会从某个地址开始执行,具体的地址值是由处理器设计决定的。比如,基于ARM7TDMIcore的CPU在复位时通常都从地址0x00000000取它的第一条指令。而基于ARM处理器构建的嵌入式系统通常都有某种类型的固态存储设备(比如:ROM、EEPROM或FLASH等)被映射到这个预

6、先安排的地址上。因此在系统加电后,CPU将首先执行Bootloader程序。9Bootloader的启动用户可以利用串口和Bootloader进行交互Bootloader多数是两阶段的启动过程第一个启动阶段是和硬件平台相关的,大都采用汇编程序编写第二个启动阶段是和硬件平台无关的,大都采用C语言编写。大多数Bootloader都包含两种不同的操作模式:本地加载模式和远程下载模式。10Bootloader-启动举例11Bootloader-启动举例12Bootloader的启动网络启动方式13Bootloader的启动诸如ubo

7、ot的BootLoader本身集成网络功能支持这种方式开发板不需要配置较大的存储介质,跟无盘工作站有点类似。但是使用这种启动方式之前,需要把BootLoader安装到板上的EPROM或者Flash中。BootLoader通过以太网接口远程下载Linux内核映象或者文件系统。BootLoader下载文件一般都使用TFTP网络协议,还可以通过DHCP的方式动态配置IP地址。14Bootloader的启动磁盘启动方式传统的Linux系统运行在台式机或者服务器上,这些计算机一般都使用BIOS引导,并且使用磁盘作为存储介质。Linux

8、传统上是通过Lilo(LinuxLoader)引导的,后来又出现了GNU的软件Grub(GrandUnifiedBootloader)。这两种Bootloader广泛应用在X86的Linux系统上。在嵌入式系统领域应用的并不多。15Bootloader的启动Flash启动方式大多数嵌入式系

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。