没有合适的资源?快使用搜索试试~ 我知道了~
1-u-boot介绍及启动流程.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 69 浏览量
2021-11-24
19:37:25
上传
评论
收藏 285KB DOCX 举报
温馨提示
试读
11页
1-u-boot介绍及启动流程
资源推荐
资源详情
资源评论
1 U-boot 概念
U-boot,他是常用的嵌入式操作系统启动程序。著名的开源 bootloader 程序。可以启动
linux、android 等系统。
作为 bootloader 它的最基本的作用为:
1、把操作系统镜像从介质如 flash、nand、SD 卡等加载到内存(可以用于从 u 盘启动系统)
2、在内存中把操作系统启动,启动时可以向操作系统传递启动配置信息。
3、当然它还有一个简单的控制台,利用串口与用户交互以提供一些额外的辅助功能,如在 OS
启动前查看内存、数据拷贝、查看 OS 镜像信息、检查坏块等。
uboot 是 Universal BootLoad 。
一个“通用”的启动代码载入器。Linux 本身不能自己把自己读取到内存中并且运行,
所以他需要一个 loader (载入器)读入内存并且运行。
uboot 可以在很多种 cpu 架构上运行,同时也支持很多开发板,但是每种 cpu 架构之间
有差别,或者开发板的资源不同,假如在某款开发板上能正常引导启动操作系统的话,并不
意味着在其他款就能引导启动,建立一款统一的 bootloader 几乎是不可能的,但是经过大师
们的努力,能够实现通过简单的配置改动,就可以实现引导启动很多操作系统(也就是
bootloader 移植)(uboot 是 bootloader 中的一种,因为其源码是公开的,广受欢迎)
uboot 类似台式机的 BIOS + grub 启动 Linux 的组合。
嵌入式系统因为构造很特殊,所以他的系统启动一般都是要在 nor flash (不是我们常
见的 NAND flash 存储器,NOR flash 可以直接运行程序,NAND 不能直接运行程序,需要
读取到内存运行,和 BIOS 很类似,nor flash 成本很高)。这个前期启动需要做一些初始化
工作,以及因为环境限制,程序运行有很大的功能限制。这使得原本就不支持自己启动的
Linux 内核更需要一个 loader 来提供前期的准备,这就是 bootloader 的主要用处。
选择 U-Boot 的理由:
① 开放源码;
② 支持多种嵌入式操作系统内核,如 Linux VxWorks,
③ 支持多个处理器系列,如 PowerPC、ARM、x86、MIPS、XScale;
④ 较高的可靠性和稳定性;
⑤ 高度灵活的功能设置,适合 U-Boot 调试、操作系统不同引导要求、产品发布等;
⑥ 丰富的设备驱动源码,如串口、以太网、SDRAM、FLASH、LCD、NVRAM、EEPROM、
RTC、键盘等;
⑦ 较为丰富的开发调试文档与强大的网络技术支持
2 Bootloader 简介
2.1 bootlaoder 概念
简单地说,bootloader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程
序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个
合适的状态,以便为最终调用操作系统内核准备好正确的环境。
通常,bootloader 是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入
式世界里建立一个通用的 bootloader 几乎是不可能的。尽管如此,我们仍然可以对 bootloader
归纳出一些通用的概念来,以指导用户特定的 bootloader 设计与实现。
U-boot 完全开源 可以从网上下载 ftp://ftp.denx.de/pub/u-boot/
Vivi 是 Mizi 公司针对 SAMSUNG 的 ARM 架构 CPU 专门设计的,基本上可以直接使用,
命令简单方便。不过其初始版本只支持串口下载,速度较慢。在网上出现了各种改进版本:
支持网络功能、USB 功能、烧写 YAFFS 文件系统映像等。
U-BOOT 是一个开放源代码的项目,它支持大多数 CPU,可以烧写 EXT2、JFFS2 等文件
系统映像,支持串口下载、网络下载,并提供了大量的命令。相对于 Vivi,它的使用更复杂,
但是可以用来更方便地调试程序。
2.2 bootlaoder 的启动方式
CPU 上电或复位时,会从某个地址开始执行。ARM 结构的 CPU 从地址 0x0000000 开始,
通常这个地址处就存放了 BL1+bootloader 这样一上电就可以执行(bootloader 相当于 BL2)。
从开发和用户使用角度来分析,Bootlaoder 可以分为以下两种操作模式(Operation
Mode)。
自启动模式(Boot laoding):
这种模式下,bootloader 从目标机上的某个固态存储设备上将操作系统加载到 RAM 中
运行,整个过程并没有用户的介入。产品发布后,bootloader 工作在这种模式下。
交互模式或者下载(Downlaoding)模式:
在这种模式下,开发人员可以使用各种命令,通过串口连接或网络连接等通信手段从主
机下载文件(比如内核映像、文件系统映像)到 RAM 中,可以被 bootloader 写到目标机上
的固态存储介质中,或者直接进入系统的引导。
U-boot 能够同时支持这两种工作模式,而且允许用户在这两种模式之间进行切换。比
如,U-Boot 在启动时处于正常的自启动模式,但是它会延时若干秒(这可以设置),等待终
端用户按下任意键,而将 U-boot 切换到交互模式。如果在指定时间内没有用户按键,则
U-Boot 继续启动 LINUX 内核。
2.3 Bootloader 的结构
嵌入式 LINUX 系统从软件的角度通常可以分为 4 个层次:
Bootloader
引导加载程序,包括固化在固件(firmware)中的 boot 代码(可选)和 Bootloader 两
大部分。有些 CPU 在运行 Bootloader 之前先运行一段固化的程序(固件,firmware),比如 x86
结 构 的 CPU 就 是 先 运 行 BIOS 中 的 固 件 , 然 后 才 运 行 硬 盘 第 一 个 分 区 ( MBR ) 中 的
Bootloader。在大多嵌入式系统中并没有固件,Bootloader 是上电后执行的第一个程序。
LINUX 内核
特定于嵌入式板子的定制内核以及内核的启动参数。内核的启动参数可以是内核默认
的,或是由 Bootloader 传递给它的。
文件系统
包括根文件系统和建立于 FLASH 内存设备之上的文件系统。里面包含了 LINUX 系统能
够运行所必须的应用程序、库等,比如可以给用户提供操作 LINUX 的控制界面和 shell 程序、
动态连接和程序运行时需要的 glibc 或 uClibc 库等。
用户应用程序
特定于用户的应用程序,它们也存储在文件系统中。有时在用户应用程序和内核层之间
可能还会包括一个嵌入式图形用户界面。常用的嵌入式 GUI 有:Qtopia 和 MiniGUI 等。
显然,在嵌入式系统的固态存储设备上有相应的分区来存储它们,如下图所示为一个典
型的分区结构。
图 2.1 BOOT LOADER 分区结构图
“Boot parameters”分区中存放一些可设置的参数,比如 IP 地址、串口波特率、要传
递给内核的命令行参数等。正常启动过程中,Bootloader 首先运行,然后它将内核复制到内
存中(也有些内核可以直接在固态存储设备上直接运行),并且在内存某个固定的地址设置
好要传递给内核的参数,最后运行内核。内核启动之后,它会挂接(mount)根文件系统
(“Root filesystem”),启动文件系统中的应用程序。
小知识点:Kernel 含义:
Kernel 操作系统内核:操作系统内核是指大多数操作系统的核心部分。它由操作系统
中用于管理存储器、文件、外设和系统资源的那些部分组成。操作系统内核通常运行进程,
并提供进程间的通信。
剩余10页未读,继续阅读
资源评论
陆小马
- 粉丝: 732
- 资源: 2051
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于matlab实现用有限元法计算电磁场的Matlab工具 .rar
- 基于matlab实现有限元算法 计算电磁场问题 边界条件包括第一类边界和第二类边界.rar
- 基于matlab实现用于计算不同车重下的电动汽车动力性和经济性.rar
- 基于matlab实现遗传算法求解多车场车辆路径问题 有多组算例可以用.rar
- 浏览器.apk
- 基于matlab实现是一个matlab中的power system 中搭建的一个模型
- 基于JSP毕业设计-教学管理系统(源代码+论文).zip
- 基于JSP毕业设计-家政管理系统-毕业设计.zip
- 基于Python实现淘宝商品评论采集(含逆向)源代码
- 基于matlab实现多目标进化算法NSGAⅡ&Matlab讲解.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功