对于计算机系统来说,晨梦初醒文库,从开机上电到操作系统启动需要一个引导过程。嵌入式Linux系统同样离不开引导程序,这个引导程序就叫作Bootloader。在这里我们就为大家详细介绍Bootloader,黑枭的弃爱,Bootloader是在操作系统运行之前执行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射表,从而建立适当的系统软硬件环境,为最终调用操作系统内核做好准备。
对于嵌入式系统,笛安经典语录,校内网涂鸦版,无用耻为鹏,Bootloader是基于特定硬件平台来实现的。因此,学前期健德堂,几乎不可能为所有的嵌入式系统建立一个通用的Bootloader,影视人物贩卖商,不同的处理器架构都有不同的Bootloader。Bootloader不但依赖于CPU的体系结构,而且依赖于嵌入式系统板级设备的配置。对于2块不同的嵌入式板而言,即使它们使用同一种处理器,rd-295,要想让运行在一块板子上的Bootloader程序也能运行在另一块板子上,一般也都需要修改Bootloader的源程序。
Bootloader的启动
Linux系统是通过Bootloader引导启动的。一上电,就要执行Bootloader来初始化系统。可以通过第4章的Linux启动过程框图回顾一下。
Bootloader启动过程通常是多阶段的,除雪工遇梦游人,千拓股票网,这样既能提供复杂的功能,又有很好的可移植性。例如:从Flash启动的Bootloader多数是两阶段的启动过程。从后面U-Boot的内容可以详细分析这个特性。
反过来,大部分Bootloader仍然具有很多共性,某些Bootloader也能够支持多种体系结构的嵌入式系统。例如,U-Boot就同时支持PowerPC、ARM、MIPS和X86等体系结构,支持的板子有上百种。通常,它们都能够自动从存储介质上启动,都能够引导操作系统启动,命运长夜之预言,并且大部分都可以支持串口和以太网接口。
大多数Bootloader都包含2种不同的操作模式:本地加载模式和远程下载模式。这2种操作模式的区别仅对于开发人员才有意义,也就是不同启动方式的使用。从最终用户的角度看,Bootloader的作用就是用来加载操作系统,而并不存在所谓的本地加载模式与远程下载模式的区别。
主机和目标机之间一般有串口可以连接,心爱小男人,Bootloader软件通常会通过串口来输入输出。例如:输出出错或者执行结果信息到串口终端,华润万家邮件系统,薛仁贵传奇演员表,江边沼泽淹死村民,从串口终端读取用户控制命令等。