友善之臂---U-boot

1.嵌入式Linux系统

友善之臂---U-boot友善之臂---U-boot


一个嵌入式系统从软件角度来看分为三个层次:

1)引导加载程序:

包括固话在固件(firmware)中的boot程序(可选)和BootLoader两大部分


2)Linux内核Kernel:

特定于嵌入式平台的定制内核


3)根文件系统:

包括系统命令和应用程序


2.嵌入式Linux系统中的典型分区结构

一个同时装有BootLoader、内核启动参数、内核映像和根文件系统映像的固态设备(比如Nand flash)的典型分配结构图:

友善之臂---U-boot

友善之臂---U-boot

3.建立交叉编译环境

X86      gcc

ARM     arm-linux-gcc


4.u-boot介绍

1)U-boot,全称Universal Boot Loader,即通用BootLoader,是遵循GPL条款的开放代码项目。

2)U-boot是德国DENX小组开发的用于多种嵌入式SOC(MIPS、x86、ARM、XScale)的BootLoader程序

3)“通用”有两层含义:

  a)可以引导多种操作系统

       支持如下操作系统:Linux、NetBSD、VxWorks等

  b)支持多种框架的CPU

      支持如下框架的CPU:PowerPC、MIPS、x86、ARM、XScale等


5.获取U-boot源码:

ftp://ftp.denx.de/pub/u-boot/


6.U-boot的两种模式

1)下载模式

下载u-boot.bin、uImage、rootfs

2)引导模式

引导内核启动


7.U-boot初体验

1)编译

make distclean

make smdk2440a_config

make

U-boot.bin:二进制可执行文件,它就是可以直接少烧入Nand Flash、NOR Flash文件


8.启动过程

PC                ---->    BIOS          ------>  可引导操作系统(windows)  ----->   识别C、D盘     ----->  运行应用程序QQ、MSN

嵌入式系统    ---->   BootLoader  ------>    Linux Kernel                        ----->挂载根文件系统   ----->应用程序

BootLoader最终目的:

启动内核:

a)从flash读出内核放到SDRAM

b)启动内核

U-boot要实现的功能:

1)读flash +(为了开发方便:写Flash、网卡、CPU)

2)初始化SDRAM、初始化时钟、初始化串口、

3)启动内核