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

2019-07-12 23:48发布

参考资料: 1 tekkaman博客 2 韦东山《嵌入式linux应用开发完全手册》第15章 3   http://www.arm79.com/ 1。到ftp://ftp.denx.de/pub/u-boot/下载u-boot-2010.06.tar.bz2,解压进入根目录,列出根目录文件。源码整体框架如下: 蓝 {MOD}:目录 黑 {MOD}:文件 绿 {MOD}:可执行文件 [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