u-boot-1.1.6 源码分析(1)--总体结构

参考资料:

1 tekkaman博客

2 韦东山《嵌入式linux应用开发完全手册》第15章

3   http://www.arm79.com/

1。到ftp://ftp.denx.de/pub/u-boot/下载u-boot-2010.06.tar.bz2,解压进入根目录,列出根目录文件。源码整体框架如下:

蓝色:目录

黑色:文件

绿色:可执行文件

[root@localhost u-boot-2010.06]# tree -L 1
.
├──
api
├──
arch
├──
board
├── CHANGELOG
├── CHANGELOG-before-U-Boot-1.1.5
├──
common
├── config.mk
├── COPYING
├── CREDITS
├──
disk
├──
doc
├──
drivers
├── examples
├──
fs
├──
include
├── lib
├── MAINTAINERS
├── MAKEALL
├── Makefile
├──
mkconfig
├──
nand_spl
├──
net
├──
onenand_ipl
├── post
├── README
├── rules.mk
└── tools

16 directories, 11 files

 

 

2。u-boot 模式

a。启动加载(Boot loading)模式

上电后,Bootloader从板子上的某个固态存储器设备上讲操作系统加载到RAM中运行,整个过程没有用户的接入。产品发布时,Bootloader工作于这种模式下。

如果设置了bootm命令就会进入这种模式。

如果设置了bootdelay命令就可以在这个设定的时间内进入下载模式。

b。下载(Downloading)模式

在这种模式下,开发人员可以使用各种命令。操作flash,设置环境变量,下载kernel image、文件系统image 等等。完全用于开发阶段。

 

3。Bootloader 在嵌入式Linux系统中的位置

Bootloader   Boot-parameter   kernel   Root-filesystem

图片

4。Bootloader 与 内核的交互。

Bootloader与内核的交互是单向的,Bootloader将各类参数传递给内核。在Linux-2.4.x以后的内核都期望以标记列表(tagged list)的形式来传递启动参数。标记,就是一种数据结构;标记列表就是挨着存放多个标记。

标记列表以标记ATAG_CORE开始,以标记ATAG_NONE结束。在地址0x30000100的地方。

 

5。几个重要的地址

内存起始地址--0x3000 0000

内存大小64M --0x0400 0000

内存最后地址--0x33FF FFFF

ATAG_CORE开始地址--0x3000 0100

Nor/Nandflash起始地址--0x0

内核存放地址2M处--0x2000 0000

yaffs2文件存放地址5M处--0x5000 0000

你可能感兴趣的:(数据结构,linux,image,嵌入式,include,makefile)