第8篇构建嵌入式Linux系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
者下载映像文件、并可以对FLASH等 存储设备进行管理
Bootloader的安装媒介
系统加电或复位后,处理器从某个预 先安排的地址上取指令。比如ARM在 复位时,从地址0x00取指。
嵌入式系统通常都有某种类型的固态 存储设备(比如:ROM、EPROM或 FLASH等),被映射到这个预先安排 的地址上,因此在系统加电后,处理 器首先执行Bootloader程序。
在下载模式中,目标机上的 Boot Loader 将通过串口连接 或网络连接等通信手段从主机(Host)下载文件。比如: 下 载应用程序、数据文件、内核映像等.
从主机下载的文件通常首先被BootLoader保存到目标机的 RAM中然后再被BootLoader写到目标机上的固态存储设备中。
嵌入式系统的引导模式
而在嵌入式系统中,通常并没有像BIOS那样的固 件程序,主要使用flash作为系统的存储媒介,很 少使用磁盘,整个系统的加载启动任务完全由 BootLoader来完成。
Bootloader的概念
简单地说,BootLoader就是在操作系统内 核运行之前运行的一段小程序。通过这段 小程序,我们可以初始化硬件设备、建立 内存空间的映射图,从而将系统的软硬件 环境带到一个合适的状态,以便为最终调 用操作系统内核准备好正确的环境。
Bootloader程序原理
引导加载程序是系统加电后运行的第一段软件代 码。PC机中的引导加载程序由BIOS(其本质就是 一段固件程序)和位于硬盘MBR中的OS BootLoader(比如,LILO和GRUB等)一起组成。 BIOS在完成硬件检测和资源分配后,将硬盘MBR 中的BootLoader读到系统的RAM中,然后将控制 权交给OS BootLoader。BootLoader的主要运行 任务就是将内核映象从硬盘上读到 RAM 中,然后 跳转到内核的入口点去运行,也即开始启动操作 系统。
第8章 构建嵌入式Linux系统
8.1 嵌入式Linux系统的构建流程 8.2 嵌入式Linux系统的组成 8.3 Bootloader 8.4 Linux内核的裁剪和编译 8.5 根文件系统
8.1 嵌入式Linux系统的构建流程
建立开发环境:交叉编译工具,编译环境等 配置开发主机,配置MINICOM 建立引导装载程序bootloader 下载别人已经移植好的linux操作系统 建立根文件系统 建立应用程序的flash分区 开发应用程序 烧写内核、根文件系统、应用程序 发布产品
Bootloader是最先被系统执行的程序
嵌入式系统的软件层次结构
Bootloader的烧写方式
通过JTAG口 通过以太网口 通过串口
Bootloader的控制方式
主机和目标机之间一般通过串口建立 连接, Bootloader软件在执行是通常 会通过串口来进行通讯,比如:输出 打印信息到串口,从串口读取用户控 制字符
通常,BootLoader是严重地依赖于硬件而 实现的,特别是在嵌入式应用。因此,在 嵌入式世界里建立一个通用的BootLoader 几乎是不可能的。
Bootloader的功能
硬件设备的初始化(CPU的主频、 SDRM、中断、串口等)
传递内核启动参数 启动内核 与主机进行交互、从串口、USB口或
第8章 构建嵌入式Linux系统
=== makefile 开始 === myprog : foo.o bar.o gcc foo.o bar.o -o myprog
foo.o : foo.c foo.h bar.h gcc -c foo.c -o foo.o
bar.o : bar.c bar.h gcc -c bar.c -o bar.o === makefile 结束 ===
ቤተ መጻሕፍቲ ባይዱ
bootloader的引导方式
启动加载(Boot Loader)模式: 启动加载模式也称为“自主”(Autonomous)模式。
在这种情况下,Boot Loader 从目标机上的某个固态存储设备 上将操作系统加载到 RAM 中运行,整个过程并没有用户的介 入。 下载(Downloading)模式:
度,消息处理等。 根文件系统:Linux内核启动后首先需要加载的文件
系统。
Boot Loader 参数 内核
根文件系统
第8章 构建嵌入式Linux系统
8.1 嵌入式Linux系统的构建流程 8.2 嵌入式Linux系统的组成 8.3 Bootloader 8.4 Linux内核的裁剪和编译 8.5 根文件系统
第8章 构建嵌入式Linux系统
8.1 嵌入式Linux系统的构建流程 8.2 嵌入式Linux系统的组成 8.3 Bootloader 8.4 Linux内核的裁剪和编译 8.5 根文件系统
嵌入式Linux的组成
嵌入式Linux由以下三个部分组成为: Bootloader:系统的引导程序 参数:内核启动时所必需的设置参数 内核:系统内核是系统的核心部分,主要负责进程调
Stage1:依赖于 CPU 体系结构的代码,比如 设备初始化代码等,通常都放在 stage1 中, 而且通常都用汇编语言来实现,以达到短小 精悍的目的。
也可以通过JTAG等其他接口进行通 信
Bootloader的工作方式
大多数BootLoader都包含两种不同的 操作模式。 “启动加载”模式 “下载”模式,
这种区别仅对于开发人员才有意义。 但从最终用户的角度看,BootLoader 的作用就是用来加载操作系统,而并 不存在所谓的启动加载模式与下载工 作模式的区别。
根据所使用的存储介质和开发阶段的不同,可以 采用不同的系统引导方式
(1)使用可以固化存储设备:产品化阶段 (2)使用磁盘设备 (3)通过网络引导:调试阶段
内核已下载到FLASH设备或磁盘设备上,通 过网络挂装根文件系统。
内核和根文件系统均通过网络来获取和安装。
Bootloader的典型结构框架
由于 Boot Loader 的实现依赖于 CPU 的体系 结构,因此大多数 Boot Loader 都分为 stage1 和 stage2 两大部分。
相关文档
最新文档