Bootloader.ppt
- 格式:ppt
- 大小:544.51 KB
- 文档页数:64
第三节BootLoaderUn Re gi st er ed本节目标•深入理解BootLoader 启动过程•掌握uBoot 的定制•了解uBoot 的代码树构成•uBoot 的下载烧写Un Re gi st er edBootloader 定义•Bootloader 是硬件启动的引导程序,是启动操作系统的根本;•是在操作系统内核或用户应用程序运行之前运行的一段小程序。
通过这段小程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用准备好环境;•在一般典型的系统中,整个系统的加载启动任务就完全由Bootloader 来完成。
Un Re gi st er edBootloader 特点•Bootloader 不属于操作系统内核,采用汇编语言编写,因此针对不同的CPU 体系结构,这一部分代码不具有可移植性;•在移植操作系统时,这部分代码必须加以改写。
•Bootloader 不但依赖于CPU 的体系结构,而且依赖于嵌入式系统板级设备的配置。
Un Re gi st er edBootloader 启动模式•启动加载模式:在这种模式下,Bootloader 从目标机上的某个固态存储设备上将操作系统加载到RAM 中运行,整个过程并没有用户的介入。
•下载模式:在这种模式下,目标机上的Bootloader 将通过串口或网络等通信手段从开发主机(Host )上下载内核映像和根文件系统映像等到RAM 中。
然后可以再被Bootloader 写到目标机上的固态存储媒质中,或者直接进行系统的引导。
Un Re gi st er edBootloader 基本功能•初始化硬件•将操作系统内核从Flash 拷贝到SDRAM 中,如果是压缩格式的内核,还要解压缩•改写系统的内存映射,原先Flash 起始地址映射为0地址,这时需要将RAM 的起始地址映射为0•提供Linux 内核的启动参数•启动Linux 内核•设置堆栈指针并将bss 段清零将来执行C 语言程序和调用子函数时要用到•改变pc 值,使得CPU 开始执行真正的操作系统内核。