3119|0

23

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

Bootloader 的结构 [复制链接]

    在移植之前先了解Bootloader 的一些通用概念,对理解它的代码会有所帮助。
    嵌入式Linux 系统从软件的角度通常可以分为以下4 个层次。
   (1)引导加载程序,包括固化在固件(firmware)中的boot 代码(可选)和Bootloader两大部分。
    有些CPU 在运行Bootloader 之前先运行一段固化的程序(固件,firmware),比如x86结构的CPU 就是先运行BIOS 中的固件,然后才运行硬盘第一个分区(MBR)中的Bootloader。在大多嵌入式系统中并没有固件,Bootloader 是上电后执行的第一个程序。
   (2)Linux 内核。
    特定于嵌入式板子的定制内核以及内核的启动参数。内核的启动参数可以是内核默认的,或是由Bootloader 传递给它的。
   (3)文件系统。
    包括根文件系统和建立于Flash 内存设备之上的文件系统。里面包含了Linux 系统能够运行所必需的应用程序、库等,比如可以给用户提供操作Linux 的控制界面的shell 程序、动态连接的程序运行时需要的glibc 或uClibc 库等。
   (4)用户应用程序。
    特定于用户的应用程序,它们也存储在文件系统中。有时在用户应用程序和内核层之间可能还会包括一个嵌入式图形用户界面。常用的嵌入式GUI 有:Qtopia 和MiniGUI 等。
显然,在嵌入系统的固态存储设备上有相应的分区来存储它们,如图15.1 所示为一个典型的分区结构。
                  
    “Boot parameters”分区中存放一些可设置的参数,比如IP 地址、串口波特率、要传递给内核的命令行参数等。正常启动过程中,Bootloader 首先运行,然后它将内核复制到内存中(也有些内核可以在固态存储设备上直接运行),并且在内存某个固定的地址设置好要传递给内核的参数,最后运行内核。内核启动之后,它会挂接(mount)根文件系统(“Rootfilesystem”),启动文件系统中的应用程序。
点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表