嵌入式系统BootLoader.ppt
《嵌入式系统BootLoader.ppt》由会员分享,可在线阅读,更多相关《嵌入式系统BootLoader.ppt(31页珍藏版)》请在三一办公上搜索。
1、嵌入式系统BootLoader,BootLoader,Boot loader是与系统硬件环境高度相关的初始化软件,它担负着初始化硬件和引导操作系统的双重责任。每一个特定系统的Boot loader都会有所不同。Boot loader移植是在特定硬件平台上操作系统移植至关重要的一步,是引导操作系统和根文件系统的基础。对了解嵌入式系统底层运行机制、优化和快速启动的研究都有重要的意义。,PC 机中的引导加载程序,两部分组成BIOS(其本质就是一段固件程序)位于硬盘 MBR 中的 OS Boot Loader(如LILO 和 GRUB 等)流程BIOS 在完成硬件检测和资源分配后,将硬盘 MBR 中的
2、 Boot Loader 读到系统的 RAM 中,然后将控制权交给 OS Boot LoaderBoot Loader 的主要运行任务就是将内核映象从硬盘上读到 RAM 中,然后跳转到内核的入口点去运行,即开始启动操作系统。,嵌入式系统中引导加载程序,系统的加载启动任务就完全由 Boot Loader 来完成ARM7TDMI中,系统在上电或复位时从地址 0 x00000000 处开始执行,这个地址是Boot Loader 程序典型的嵌入式系统 boot loaderBlob:boot loader object的缩写开源,遵循GPL,很好的Linux loader,主要针对ARMU-boot:
3、universal boot loader的缩写,开源,遵循GPL,支持ARM,MIPS,X86,Nios等处理器可启动VxWorks,QNX,Linux等多种操作系统,Boot Loader 的概念,在操作系统内核运行之前运行的一段小程序功能初始化硬件设备建立内存空间的映射图调整系统的软硬件环境,以便操作系统内核启动不通用依赖于硬件CPU依赖于主板board 不同的 CPU有不同的Boot Loader 有些 BootLoader 支持多CPU,如U-Boot支持ARM和MIPS,固态存储设备的典型空间分配结构,Boot Loader 的执行,第一条指令eg:地址 0 x00000000嵌入
4、式系统通常有固态存储设备(比如:ROM、EEPROM 或 FLASH 等)被映射到这个预先安排的地址上系统加电后,CPU 将首先执行 Boot Loader 程序,用来控制 Boot Loader 的设备或机制,主机和目标机之间一般通过串口建立连接Boot Loader执行时通常会通过串口进行 I/O如输出打印信息到串口,从串口读取用户控制字符等,Boot Loader 的启动过程,从固态存储设备上启动的 Boot Loader 大多都是 2 阶段启动过程可以分为 stage 1和 stage 2 两部分 BOOTLOADER一般分为2部分汇编部分执行简单的硬件初始化C语言部分负责复制数据,设
5、置启动参数,串口通信等功能BOOTLOADER的生命周期1.初始化硬件,如设置UART(至少设置一个),检测存储器等2.设置启动参数,告诉内核硬件的信息,如显示控制台LCD或串口、VGA等.3.跳转到操作系统的首地址.4.消亡,Boot Loader 的操作模式,启动加载模式自主(Autonomous)模式从目标机上的某个固态存储设备上将操作系统加载到 RAM 中运行Boot Loader 的正常工作模式下载模式通过串口连接或网络连接等通信手段从主机(Host)下载内核映像和根文件系统映像等。从主机下载的文件通常首先被 Boot Loader 保存到目标机的 RAM 中,然后再被 BootLo
6、ader 写到目标机上的FLASH 类固态存储设备中。第一次安装内核与根文件系统时或对其更新时使用通常都会向它的终端用户提供一个简单的命令行接口,BootLoader 与主机之间进行文件传输所用的通信设备及协议,通常Boot Loader 通过串口与主机之间进行文件传输传输协议通常是 xmodemymodemzmodem 协议中的一种可通过以太网连接并借助 TFTP 协议来下载文件串口传输的速度是有限的主机提供 TFTP 服务,BootLoader的主要任务,stage1通常包括以下步骤硬件设备初始化为加载BootLoader的stage2准备RAM空间拷贝BootLoader的stage2到
7、RAM空间中设置好堆栈跳转到stage2的C入口点BootLoader的stage2通常包括以下步骤初始化本阶段要使用到的硬件设备检测系统内存映射(memorymap)将kernel和根文件系统映像从flash上读到RAM空间中为内核设置启动参数调用内核,stage1,基本的硬件初始化,目的为stage2的执行以及随后的kernel的执行准备好一些基本的硬件环境 1屏蔽所有的中断为中断提供服务通常是OS设备驱动程序的责任,BootLoader的执行全过程中可以不必响应任何中断中断屏蔽可以通过写CPU的中断屏蔽寄存器或状态寄存器(如ARM的CPSR寄存器)来完成2设置CPU的速度和时钟频率。3R
8、AM初始化包括正确地设置系统的内存控制器的功能寄存器以及各内存库控制寄存器等。4初始化LED通过GPIO来驱动LED,其目的是表明系统的状态是OK还是Error如板子上没有LED,那么也可以通过初始化UART向串口打印BootLoader的Logo字符信息5关闭CPU内部指令数据cache,为加载 stage2 准备 RAM 空间,通常把 stage2 加载到 RAM 空间中来执行 stage2 通常是 C 语言执行代码,考虑堆栈空间空间大小最好是 memory page 大小(通常是 4KB)的倍数一般1M RAM 空间已经足够,地址范围可以任意安排如 blob 就将 stage2 可执行映
9、像从系统 RAM 起始地址 0 xc0200000 开始的 1M 空间内执行stage2_endstage2_startstage2_size对所安排的地址范围进行测试必须确保所安排的地址范围可读写的 RAM 空间测试方法可以采用类似于 blob 的方法以 memory page 为被测试单位,测试每个 page 开始的两个字是否是可读写的,拷贝 stage2 到 RAM 中,拷贝时要确定两点(1)stage2 的可执行映象在固态存储设备的存放起始地址和终止地址(2)RAM 空间的起始地址。,设置堆栈指针 sp(trampoline.S中完成),通常把 sp 的值设置为(stage2_end-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 BootLoader
链接地址:https://www.31ppt.com/p-5394178.html