Bootloader 习题

一、  简答题

1) 什么是 BootLoader?

BootLoader是在操作系统内核运行之前运行。可以初始化硬件设备、建立内存空间映射图,

从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。

2) BootLoader 有哪几种操作模式?

自启动模式,交互模式。

3) 简述 BootLoader 的 2 个阶段

阶段一:基本的硬件初始化,为第二阶段准备RAM空间,设置堆栈,跳转到第二阶段的C程序接入点。

阶段二:初始化本阶段要用的硬件设备,将内核映像和根文件系统从Flash读到RAM,设置内核启动参数,调用内核。

4) 为什么 BootLoader 由汇编程序和 C 语言程序两部分组成,这样设计的目的是什么?

汇编语言用于依赖于CPU体系架构的硬件的初始化。

C语言用于实现更复杂的内容,使有更好的可读性和可移植性。

扫描二维码关注公众号,回复: 2136402 查看本文章

5) 在 BootLoader 第 1 阶段为什么要设置堆栈?

为了运行下一阶段的C程序。

6) BootLoader 第 1 阶段测试内存是否可以读写用到了什么算法?

test_mempage

7) 简述 BootLoader 编译过程

为了编译Bootloader程序,需要事先在目标板上安装交叉编译工具Toolchain。(见linux使用手册Toolchain安装部分)。
(1)、利用 tar zxvf Boot-XSBase270.tar.gz 指令解压。
[root@localhost BootLoader]$tar zxvf Boot-XSBase270.tar.gz
        利用上述命令解压后,bootloader源代码解压到当前目录中Boot-XSBase270文件夹中。
(2)、编译。在解压的目录里进行make编译。
[root@localhost BootLoader]$ cd Boot-XSBase270
[root@localhost Boot-XSBase270]$make
        编译完成后, 在当前目录下会生成bootloader映象文件boot。

8) 列举 3 种常见的开源 bootloader

Redboot,ARMboot,U-Boot

9) Uboot 编译后生成的映像文件位于那个位置?

Boot-XSBase270文件夹中

猜你喜欢

转载自blog.csdn.net/weixin_38553885/article/details/78582755
今日推荐