(一)U-Boot 启动过程--详细版的完全分析 我们知道,bootloader 是系统上电后最初加载运行的代码。它提供了处理器上电复位后最开始需要执行的初始化代码。 在 PC 机上引导程序一般由 BIOS 开始执行,然后读取硬盘中位于 MBR(Main Boot Record,主引导记录)中的 Bootloader(例如LILO 或 GRUB),并进一步引导操作系统的启动。 然而在嵌入式系统中通常没有像 BIOS 那样的固件程序,因此整个系统的加载启动就完全由 bootloader 来完成。它主要的功能是加载与引导内核映像 一个嵌入式的存储设备通过通常包括四个分区: 第一分区:存放的当然是 u-boot 第二个分区:存放着 u-boot 要传给系统内核的参数 第三个分区:是系统内核(kernel) 第四个分区:则是根文件系统 如下图所示: u-boot 是一种普遍用于嵌入式系统中的 Bootloader。 Bootloader 介绍 Bootloader 是进行嵌入式开发必然会接触的一个概念,它是嵌入式学院<嵌入式工程师职业培训班>二期课程中嵌入式 linux 系统开发方面的重要内容。本篇文章主要讲解Bootloader的基本概念以及内部原理,这部分内容的掌握将对嵌入式 linux 系统开发的学习非常有帮助! Bootloader 的定义:Bootloader 是在操作系统运行之前执行的一小段程序,通过这一小段程序,我们可以初始化硬件设备、建立内存空间的映射表,从而建立适当的系统软硬件环境,为最终调用操作系统内核做好准备。意思就是说如果我们要想让一个操作系统在我们的板子上运转起来,我们就必须首先对我们的板子进行一些基本配置和初始化,然后才可以将操作系统引导进来运行。具体在 Bootloader 中完成了哪些操作我们会在后面分析到,这里我们先来回忆一下 PC 的体系结构:PC 机中的引导加载程序是由 BIOS 和位于硬盘 MBR 中的OS Boot Loader(比如 LILO 和 GRUB 等)一起组成的,BIOS 在完成硬件检测和资源分配后,将硬盘MBR 中的Boot Loader读到系统的RAM中,然后将控制权交给OS Boot Loader。Boot Loader 的主要运行任务就是将内核映象从硬盘上读到 RAM 中,然后跳转到内核的入口点去运行,即开始启动操作系统。在嵌入式系统中,通常并没有像 BIOS 那样的固件程序(注:有的嵌入式 cpu 也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由 Boot Loader 来完成。比如在一个基于 ARM7TDMI core 的嵌入式系统中,系统在上电或复位时通常都从地址 0x000000...