系统对比
u-boot打补丁
- 准备u-boot文件和补丁文件
- 解压
book@book-desktop:/work/system$ tar xjf u-boot-1.1.6.tar.bz2
- 打补丁
book@book-desktop:/work/system/u-boot-1.1.6$ patch -p1 < ../u-boot-1.1.6_jz2440.patch
注意:这里曾经出现无法打补丁,原因是参数中[-p1],没有加[-]符号。
- 配置
book@book-desktop:/work/system/u-boot-1.1.6$ make 100ask24x0_config
Configuring for 100ask24x0 board…
编译完成后,会在目录下生成一个u-boot.bin文件,烧写到开发板上进行测试。
烧写完成后在串口上会打印u-boot启动信息。
U-Boot 1.1.6 (Aug 2 2016 - 13:08:05)
DRAM: 64 MB
Flash: 0 kB
NAND: 256 MiB
*** Warning - bad CRC or NAND, using default environment
In: serial
Out: serial
Err: serial
UPLLVal [M:38h,P:2h,S:2h]
MPLLVal [M:5ch,P:1h,S:1h]
CLKDIVN:5h
+---------------------------------------------+
| S3C2440A USB Downloader ver R0.03 2004 Jan |
+---------------------------------------------+
USB: IN_ENDPOINT:1 OUT_ENDPOINT:3
FORMAT: <ADDR(DATA):4>+<SIZE(n+10):4>+<DATA:n>+<CS:2>
NOTE: Power off/on or press the reset button for 1 sec
in order to get a valid USB device address.
Hit any key to stop autoboot: 0
Booting Linux ...
NAND read: device 0 offset 0x60000, size 0x200000
Reading data from 0x25f800 -- 100% complete.
2097152 bytes read: OK
## Booting image at 30007fc0 ...
Image Name: Linux-2.6.22.6
Created: 2013-08-23 7:33:38 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1848668 Bytes = 1.8 MB
Load Address: 30008000
Entry Point: 30008000
Verifying Checksum ... OK
XIP Kernel Image ... OK
Starting kernel ...
- 编译
make
U-boot功能
U-boot目标
启动内核
U-boot实现功能
- 读写Flash
- 硬件相关初始化
初始化SDRAM
初始化时钟
初始化串口 - 为开发方便增加的功能
烧写Flash
网卡
USB
串口
U-boot的实质依然是一个单片机程序,只是复杂度比较高一些而已。