欢迎来到天天文库
浏览记录
ID:14300004
大小:1.49 MB
页数:24页
时间:2018-07-27
《第五章 嵌入式linux系统引导装载程序建立》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第九章嵌入式Linux系统bootloader开发移植教学目标:掌握嵌入式Linux系统各种bootloader定义,了解bootloader基本功能以及bootloader来源。了解U-boot移植方法。主要内容:9.1bootloader概述9.2常见第三方bootloader类型9.3U-boot移植9.4vivi移植教学难点:1.bootloader功能2.U-boot和bootloader关系。3.U-boot移植方法9-1.Bootloader概述为了了解bootloader是什么,先分析嵌入式系统从上电复位启动到最后开始工作提供服务的整个工作
2、过程。大多数嵌入式系统启动过程如下图9-1所示,上电复位板级初始化系统初始化系统引导/升级远程升级本地升级应用初始化多任务应用本地引导远程引导操作系统功能Bootloader功能(1)上电复位和板级初始化,板级初始化具有完全的硬件依赖性,一般采用汇编语言实现,不同的嵌入式系统板级初始化要完成的工作具有一定的特殊性,但以下工作必须完成。uCPU初始化u堆栈指针寄存器初始化u中断控制器初始化u内存初始化(2)系统引导或者系统升级u将系统软件从NORflash中读取出来加载到RAM中运行,这种方式可以解决FLASH比RAM慢的问题,软件可压缩存储在flash中。
3、u直接在FLASH上运行程序,进入系统初始化。u将软件从外存如nandflash,CF卡,SD卡,MMC等中读取出来,加载到RAM运行。进入系统升级阶段后可通过远程网络或者本地串口等进行系统升级,远程升级一般支持RFTP,FTP,HTTP等方式。(3)系统初始化在该阶段主要进行操作系统等系统软件个功能部分的初始化工作,如根据系统配置初始化数据空间,系统所需外设接口等。(4)应用初始化将各种应用程序配置启动,带到一个合适的状态,等待用户使用。(5)多任务应用至此,用户才可以开始使用系统完成相关功能。1.Bootloader概念系统上电复位启动的以及系统引导升
4、级的工作主要是由称为Bootloader软件来完成.简单地说,BootLoader就是在操作系统内核运行之前运行的一段小程序,程序的主要功能是初始化系统基本硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。3.Bootloader特点及开发方法由于BootLoader是系统上电启动后第一个运行的软件,与系统硬件相关,严重地依赖于硬件而实现的。特别是在嵌入式系统世界,由于嵌入式系统硬件平台(主要是CPU架构)多种多样,没有办法建立一个通用的BootLoader。另外,Bootloader除了
5、依赖于CPU的体系结构外,实际上也依赖于具体的嵌入式板级设备的配置。这也就是说,对于两块不同的嵌入式板而言,即使它们是基于同一种CPU而构建的,要想让运行在一块板子上的BootLoader程序也能运行在另一块板子上,通常也都需要修改BootLoader的源程序。因为Bootloader的硬件相关性,使得绝大多数嵌入式系统都需要有专用的Bootloader,但是功能完善的Bootloader软件开发有一定的难度,开发者需要了解系统硬件结构。了解嵌入式系统硬件平台汇编语言程序设计等。一般的系统开发者不具备自主开发Bootloader能力,所以在系统开发中,多数
6、开发者选择移植第三方Bootloader软件的方法来解决这个问题。3.BootLoader的安装和启动系统加电或复位后,所有的CPU通常都从某个由CPU制造商预先安排的地址上取指令。比如,基于ARM7TDMIcore的CPU在复位时通常都从地址0x00000000取它的第一条指令。而基于CPU构建的嵌入式系统通常都有某种类型的固态存储设备(比如:ROM、EEPROM或FLASH等)被映射到这个预先安排的地址上。因此在系统加电后,CPU将首先执行BootLoader程序。下图就是一个同时装有BootLoader、内核的启动参数、内核映像和根文件系统映像的固态
7、存储设备的典型空间分配结构图。BootloaderRootfilesystemKernelBootparameters图9-2嵌入式Linux系统软件在固态存储器上分配Bootloader启动过程通常有两种方法,多阶段和单阶段,通常多阶段的BootLoader能提供更为复杂的功能,以及更好的可移植性。从固态存储设备上启动的BootLoader大多都是2阶段的启动过程,也即启动过程可以分为stage1和stage2两部分。而至于在stage1和stage2具体完成哪些任务将在下面讨论。大多数BootLoader可以有两种工作模式:"启动加载"模式和"下载"模
8、式,这种区别仅对于开发人员才有意义。但从最终用户的角度看,Boot
此文档下载收益归作者所有