u-boot是很复杂的,它是一个裸机程序的集大成者,如果你的工作不涉及u-boot开发,可以先不学习它,会使用就可以了。复杂在于它的启动流程,在于它支持很多的设备,比如支持网卡、SD卡、Flash。但是,我们要记住它的核心功能:启动内核。
所以,学习u-boot时,要掌握2点:
1. u-boot本身怎么启动?重定位、把自己从Flash中读到内存里,需要理解这些知识
2. 怎么去读出Flash上的内核:
这会涉及u-boot中Flash的驱动, 但是我们可以只关注u-boot提供的命令,比如使用”nand read …”命令来读; 而不需要关注“nand read”命令的实现
1. uboot说明
uboot(bootloader)的终极目标就是启动内核
- 读flash(读出内核)读到SDRAM
- 初始化SDRAM,初始化时钟,关闭看门狗
- 启动内核
2. JZ2440编译
u-boot-1.1.6打补丁与编译,具体流程减压u-boot-1.1.6.tar.bz2,打补丁以后进行配置和编译即可,成功后即可在u-boot-1.1.6/看到生成的u-boot.bin。具体的命令流程如下:
tar -jxvf u-boot-1.1.6.tar.bz2
cd u-boot-1.1.6/
patch -p1 < ../u-boot-1.1.6_jz2440.patch
make 100ask24x0_config
make