第001课_U-boot分析与使用,第001节_u-boot分析之编译体验
u-boot分析之编译体验
小笔记
一、
一上电:
PC → BIOS → 引导操作系统 → 识别C盘、D盘 → 运行应用程序,QQ、MSN
嵌入式系统 → bootloader(u-boot)→ linux内核 → 挂接根文件系统 → 应用程序
二、
bootloader,最终目的是启动内核。
三、
① 解压缩:tar xjf ***.bz2;(uboot源代码压缩文件)
② 打补丁:patch -p1 < ..补丁文件;
③ 配置:make 100ask24x0_config;
④ 编译:make;
四、
最终目的:
从Flash读出内核,放到SDRAM;
然后启动内核。
五、
U-Boot要实现的功能:
① 能够读Flash+写Flash;(为开发方便:①写Flash ②网卡 ③USB)
②初始化SDRAM,初始化时钟,初始化串口;
③启动内核;
总结:
U-Boot:单片机程序。
(硬件相关初始化)
关看门狗,
初始化时钟,
初始化SDRAM,
从Flash读出内核,
启动内核。
开发功能:
烧写Flash
网卡
USB
串口
U-Boot配置过程
单片机程序 UBoot
补丁文件中修改过的代码表示:
“---”表示原来代码。
“+++”表示修改后的代码。
打开补丁文件(u-boot-1.1.6_jz2440.patch):
@@-0,0+1,566@@
“-”表示没有修改过的代码;“+”表示修改后的代码
原来代码的从34开始,往下共6行。修改之后的代码也是从34行开始,但是修改后是往下8行。
原来的6行是“1,2,3,6,7,8”行。中间“4,5”两行前面有“+”表示增加的内容。
补丁打到哪里去?
显示是补丁打到:u-boot-1.1.6/board/100ask24x0/100ask24x0.c 这个源代码去。打补丁时一般已经是进入到u-boot-1.1.6这个目录。
因为已经在u-boot-1.1.6这个目录下,所以写path时忽略去目录“u-boot-1.1.6”。用到参数“-p1”,是指忽略去第一个“/”前的路径。
所以在u-boot-1.1.6这个目录下,键入命令:patch -p1 < ../u-boot-1.1.6-jz2440.patch,即可打补丁。
u-boot命令:
print:打印出环境变量
set bootdelay 10:设置“倒数计时”为10秒。加save命令保存,reset命令重启后可以看到“倒数计时”。
总结:
一、UBoot目标是启动内核:从flash上读出内核到SDRAM中去。启动内核。
二、硬件相关的初始化:关‘看门狗’、‘初始化时钟’、‘初始化SDRAM’、‘从Flash上读出内核’、‘启动内核’。
三、增强功能:烧写Flash(从网卡或从USB)。串口(通过串口写指令)。
1、读flash;
2、初始化SDRAM;
初始化时钟,单板上电后是以12M运行的(晶振为12M)。
初始化串口。为开发板方便要写flash功能(通过网络或USB烧镜像到单板上)。