第7章 引导装入程序
本章内容
引导装入程序的作用
引导装入程序的挑战
通用的引导装入程序:Das U-Boot
移植U-Boot
其他引导装入程序
小结
前几章已经提及并列举了引导装入程序的若干操作。引导装入程序(bootloader)是嵌入式系统的一个关键组件,它为其他系统软件的创建提供了基础。本章首先探讨引导装入程序在系统中的作用,接下来介绍引导装入程序所共有的一些特性。有了这些背景知识后,我们将深入研究嵌入式系统中流行的引导装入程序,最后介绍了几个较为流行的引导装入程序。
目前使用的引导装入程序有很多种,想要非常详尽地深入其细节,哪怕是针对最流行的那些引导装入程序,显然也是不切实际的。因此,我们只选择U-Boot来讲解引导装入程序的概念和示例。U-Boot是开源社区中最流行的一种引导装入程序,支持PowerPC、MIPS、ARM和其他一些体系结构。
7.1 引导装入程序的作用
当处理器板加电后,即使运行最简单的程序,也必须对硬件的大量要素进行初始化。每一种体系结构和处理器都有一套预先定义好的动作和配置,包括从板载存储设备(通常是闪存)获取初始化代码。这个早期初始化代码是引导装入程序的一部分,它负责激活处理器和相关的硬件组件。
大多数处理器在加电或复位时会在默认起始地址处获取头几段代码,硬件设计人员则根据这些信息为板载存储设备布线,并选择它要响应的地址范围。这样一来,在系统加电时,代码可以从一个已知的或可预测的地址处获得,从而实现软件控制。
引导装入程序提供了早期初始化代码,并负责初始化主板,以便使其他程序能够运行。这些代码通常由处理器的本机汇编语言编写,这也给我们带来许多挑战,本章将探讨其中一部分。