一、什么是uboot
-
PC机的启动流程
(1)PC上电后,自动启动部署在PC机主板上(ROM)的BIOS程序;
(2)BIOS程序初始化内存和硬盘,从硬盘中将操作系统读到内存中;
(3)CPU跳转到内存中执行操作系统程序直到启动;
(4)当操作系统启动时,BIOS任务完成,二者在执行时间上无交集的; -
嵌入式启动流程
(1)开发板启动方式与pc机方式相同,区别是设备不同,即BIOS替换为uboot,硬盘替换为flash;uboot存储在支持启动的flash中;
(2)Android启动方式与开发板相同,区别是操作系统启动后加载根文件系统及以后的过程不一样;
总结:uboot类似于PC机的BIOS,用来引导操作系统启动的一段裸机程序。 -
uboot需要的满足条件
(1)自身支持开机启动。uboot是开机后执行的第一个程序,因此对于不同的设备,必须对uboot源码进行移植和修改(start.S文件)以匹配当前设备的硬件;
(2)支持整个系统在flash上的烧录下载。整个系统包括:uboot、kernel、rootfs等的镜像文件;
(3)能够管理部分SoC级和板级的硬件。uboot引导操作系统时需要初始化flash和SDRAM以及其他的硬件操作,因此需要能够管理硬件。SoC级:内部外设,如串口等;板级:外部外设,如网卡灯;
(4)uboot的作用就是启动内核,因此当操作系统启动时,uboot任务已经完成,uboot程序就会结束;