跳至主要内容

博文

目前显示的是 一月 18, 2009的博文

【转】U-BOOT的启动流程及移植

1 Bootloader 及 u-boot 简介    Bootloader 代码是芯片复位后进入操作系统之前执行的一段代码,主要用于完成由硬件启动到操作系统启动的过渡,从而为操作系统提供基本的运行环境,如初始化 CPU 、堆栈、存储器系统等。 Bootloader 代码与 CPU 芯片的内核结构、具体型号、应用系统的配置及使用的操作系统等因素有关,其功能类似于 PC 机的 BIOS 程序。由于 bootloader 和 CPU 及电路板的配置情况有关,因此不可能有通用的 bootloader ,开发时需要用户根据具体情况进行移植。嵌入式 Linux 系统中常用的 bootloader 有 armboot 、 redboot 、 blob 、 u-boot 等,其中 u-boot 是当前比较流行、功能比较强大的 bootloader ,可以支持多种体系结构,但相对也比较复杂。 bootloader 的实现依赖于 CPU 的体系结构,大多数 bootloader 都分为 stage 1 和 stage 2 两大部分。 Bootloader 的基本原理见参考文献。    u-boot 是 sourceforge 网站上的一个开放源代码的项目。它可对 PowerPC(MPC5xx 、 MPC8xx 、 MPC82xx 、 MPC7xx 、 MPC74xx) 、 ARM(ARM7 、 ARM9 、 StrongARM 、 Xscale) 、 MIPS(4kc 、 5kc) 、 X86 等处理器提供支持,支持的嵌入式操作系统有 Linux 、 Vx-Works 、 NetBSD 、 QNX 、 RTEMS 、 ARTOS 、 LynxOS 等,主要用来开发嵌入式系统初始化代码 bootloader 。软件的主站点是 http://sourceforge.net/projects/u-boot 。 u-boot 最初是由 denx( www.denx.de ) 的 PPC-boot 发展而来的,它对 PowerPC 系列处理器的支持最完善,对 Linux 操作系统的支持最好。源代码开放的 u-boot 软件项目经常更新,是学习硬件底层代码开发的很好样例。    2 u-boot 系统启动流程   大多数 bootloader 都分为 stage1 和