补丁文件:
diff -urN u-boot-1.1.6/board/100ask24x0/100ask24x0.c u-boot-1.1.6_jz2440/board/100ask24x0/100ask24x0.c
--- u-boot-1.1.6/board/100ask24x0/100ask24x0.c 1970-01-01 07:00:00.000000000 +0700
+++ u-boot-1.1.6_jz2440/board/100ask24x0/100ask24x0.c 2010-11-26 12:54:37.034090906 +0800
@@ -0,0 +1,96 @@
diff -urN 原文件路径 打了补丁后的文件路径
---- 原来的文件路径
++++ 打了补丁后的文件路径
@@ -从第几行开始,一共几行结束 +从第几行开始,一共几行结束 @@
比如:
@@ -1,6 +1,8@@
1
2
+内容
3
+内容
4
5
6
制作.patch
1.diff -urN 111.c 222.c > 333.patch
2.patch < 333.patch
***********就把333.patch的补丁内容放到222.c中了
打补丁:patch -p1 < ../u-boot-1.1.6_jz2440.path
配置 make 100ask24x0_config
编译:make
********************************编译完成后就生成了u_boot.bin了
一.
u-boot的最终目的是启动内核: ①从flash上读出内核,读出放倒sdram上去
②启动内核
二. 那么u-要实现上面的功能必须:
①要会读flash
②要会写flash(可以是另外自己加的功能,为了开发方便,在u-boot运行的时候支持烧写)
③能写入sdram,既然要用到sdram那就必须初始化SDRAM
初始化SDRAM的时候又要初始化时钟
要想启动u-boot的时候输入命令等一系列操作还需要初始化串口
④要能启动内核
关看门狗
初始化时钟(一上电开发板是以12兆的频率来运行的)
硬件相关的初始化 <= 初始化化sdram
设置栈(让sp寄存器指向某个内存,调用c函数,这个C函数要做的事情就是读出内核,启动内核)
从flash读出内核,写到sdram
启动内核
u-boot其实就是一个裸板程序
烧写flash
烧写的内容可以从网络上来,也可以从usb来,所以还需要:
添加新的功能 <= 网卡
usb
串口