Linux之bootloader
最近完成了项目bootloader的uboot移植,感慨还有些的,在此写下一些记录,对这几个星期所学来个记录之。
Bootloader介绍
简单地说,Bootloader就是在操作系统内核运行之前运行的的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间映射关系,从而将系统的软硬件环境带到一个合适的状态,为最终加载系统内核做好准备。在嵌入式系统中,通常并没有像BIOS那样的固件程序,因此整个系统的加载启动任务就完全由Bootloader来完成。通常bootloader比较依赖于硬件平台,特别市嵌入式系统中,因此,在嵌入式世界建立一个通用的Bootloader是一件比较困难的事情。
Bootloader的存储位置
系统加电或复位后,所有的cpu通常都从某个由cpu制造商预先安排的地址上取指令,而基于cpu构建的嵌入式系统通常都有某种类型的固态存储设备被映射到这个预先安排的地址上,以确保开机cpu首先执行bootloader程序。
Bootloader的操作模式
(1)启动加载模式
在这种模式下,bootloader从目标机上的某个固态存储设备上将操作系统加载到RAM中运行,整个过程是自动,这种模式用于产品发布。
(2)下载模式